After being contacted by Tortas, I'm going to go into development with him and his team to build a community with the framework I've coded. You can find the thread over
here.
Hey guys, thought I'd show off a little bit as to what I've accomplished in the last few months of inconsistent work I've put in. I started with a Dementhium server, but after running into trouble after trouble with their design patterns (What design pattern?) I decided to start my own source.
From scratch. That's right, Right Click -> New Project.
Of course, I'm still taking a peek at Dementhium for how packets are structured and what they do, but beyond that I'm using Eclipse 639 as a reference. Oh and I've taken Dementhium's cache handling with a grain of salt and a few modifications (Not that dementhium wrote their own cache handling, it's clearly a slightly refactored rip).
EDIT:
Changelog:
- Added Interface handling
- Added player saving
- Added SQLite Support
- Using sockets now instead of NIO
(Anyone want to help me out with NIO? I had some issues with the cache)
- Cache sending works now (NIO was breaking when sending the large files)
- Refactored everything into org.maxgamer.rs package
- Removed unused debug
- Added ActionQueue system for queuing tasks (Eg running, woodcutting, fletching, vial-filling type actions)
- Added Player commands
- Added Player chat
- Tonnes of javadocs
- Tonnes of bug fixes.
So now I've got a release up. Primarily for learning, if you use it you have to give credit where credit is due. Here are the links I've got from DropBox, although they're still uploading as of right now so they may be a while.
Server (Only):
https://dl.dropboxusercontent.com/u/...cape/Blaze.rar
Cache (Required for Server):
https://dl.dropboxusercontent.com/u/...cape/cache.rar
Client (Eclipse 639):
https://dl.dropboxusercontent.com/u/...Eclipse639.rar
Installation Instructions:
#1 Download the server, unzip it somewhere.
#2 If you do not have a 637 cache, download it from above, unzip it.
#3 Place the cache in the root folder of the server (cache/ folder).
#4 If you do not have a client, download the one above, unzip it
#5 Open the server's run.bat file
#6 Open the client's local.bat file
#7 Login with admin admin for full permissions.
You can use MySQL if you want but currently it just uses SQLite,see config/database.yml for details.
Be careful, YML files break if you place tabs in them! Use four spaces instead.
So what have I actually accomplished in 15,839 (Update: 17379) lines of code, 171 (Update: 207) source files and roughly 100-200 hours of programming and design time? Some might say it's not a lot, but without further adieu:
Lobby Support, including Email handling, Last Seen and Last IP (Though, the screenshot doesn't show that)
World List Support (Flags, Members, Location/Activity/Flag/Population) - So far I've run into issues with pinging the world (I'm not sure, possibly it's something that was removed from Eclipse639's client?)
Multiplayer, with update masks for movement, teleportation, character models. Nothing fancy yet, but the framework is there
Fully clipped A* pathfinding (Though I'm yet to test how efficient it is). I've had so much trouble with clipping, but it has paid off!
And lastly, the shiniest (But absolutely not most difficult) jewel in my arsenal, custom maps. I generated this one in four lines of code:
So, where am I heading to next? I'd like to secure up the network protocol so it's a bit safer to attacks. Possibly investigate using the walking system without ticks (Crazy, but I hear something about Hyperion removing ticks, at least partially?) which would make the server seem way more responsive.
When I get to the end of the project, I'd like to do something like this guy
http://www.rune-server.org/runescape...ided-bots.html with bots, hopefully with a nicer API.
Ultimately though, I'm here to do this for fun and to write an API that is clean, modular and easy to comprehend for anyone who jumps straight into developing with it, compared to the some of the filthy code running around the forums. I'd like to even look into a plugin system (Being a Bukkit Developer, it's a force of habit) though possibly using a system that relies on plugins rather than has them as optional extras.
Update:
So bots + combat? Lumbridge is having an uprising: