Hey guys, I have basically finished Uni and have a job in software development lined up for the 26th. I will be able to work on the server in my spare time outside of work which is awesome *basically during weekends* :). Joining me in development is Zephro who is working on a webgl version of the game client.
Between now and the last update, not a lot has changed due to being super busy. My friend Zephro and I have recently been exploring Node.js it seems that its design will solve quite a few of the problems we have with the current development. Issues with multi-threading, race conditions and such. We don't want the game to crash and for people to lose all their items or progress. Some of the runtime errors in C++ can be quite hard to debug especially when you have no idea when/where it has occurred.
I realise the design flaws that we have with the current server from seeing how Node works I have decided a recode would have to be done. I wrote up something along the lines of what I would do to implement the event loop style of node in other languages like C++ you can read about Concurrent IO system here.
However Node.js seems decent enough so we may just stick with that. Yes this means a slight learning curve, its a big change to how I was currently thinking about coding but it seems to make more sense. Async for the wins! Along with Node.js there is three.js allowing us to use webGL in the browser, yes this means we could implement a web browser version of game clients without needing to use gay things like flash. Zephro is experimenting with that and web-sockets some pretty "new" technology that if/when pulled off will be great for game development in the future. His status is currently able to login he is up to character creation. Benefits of webclient for future games we make is that it will work on nearly anything providing it supports webgl,websockets and other features we use and that we cater to the input of the device. Obviously mobile devices like smart phones or pads would have touch areas and virtual controllers for moving and such where as computers have mouse and keyboard usually. The area of development is quite interesting.
We are working on porting the existing server that was up to world and with inventory and npc/monsters slightly working from C++ to Node.js, your probably thinking JavaScript for a server the fk? but it does seem quite decent once we had a good way to work with binary data/packets in a structured way. Restruct to which we have made some modifications and contributions. Everything is simpler sort of once we learn how to do in Node.
Right now the port is up to coding in Character Create/Delete. But when I have finished course fully *1 week* and have time to spend we hope to get this back up to where we were.
I realise most people probably don't care about which technologies we use to get the pserver going just that it gets finished to a playable state but none the less I felt I should update with what we are doing.
Since Node should solve a lot of issues I can code parts of the server to do with the game rather than worrying about the problems that popped up with out knowing the best practices for development of a server. To fix the C++ one it would require recoding it so we will try doing it in Node for now if that fails the option to recode is always there. But C++ takes longer to develop in than js surprisingly.
Cya till next update