I am pleased to report Phase 1 complete and Phase 2 of our development roadmap ahead of schedule. I built a virtual machine to host a downgraded Visual Studio 2010 environment and with a little fiddling shortly thereafter was able to successfully recompile the game source code! The latest KITO v6 build was refactored for VS2013, but the original source code for IW I am working with had not been updated the same way yet and required use of older software versions to compile properly. While I found this kind of a pain to deal with, I did discover in the process there are a great many assets in the IW source code not found in the latest KITO build to make it worth the effort. With this hurdle cleared, I am now set to make some very minor tweaks to change the server environment and admin and mod access and get the server running on its new hosting environment.
I found something interesting while working with the current live server – IW is compiled in Visual Studio as a Windows executable, but the server is actually running Linux and not Windows. The server is using WINE to run the IW server application as a Windows program on top of Linux instead of as a native Linux application. While WINE claims it eliminates performance and memory penalties versus other virtual machine or emulator solutions, it still creates additional overhead and possibly other related performance or stability problems compared to just running an application natively on Linux. It is definitely far more cost effective to continue running a Linux server to host the game rather than a Windows server due to all the Micro$oft licensing fees, but eliminating WINE and compiling the game server to run natively on Linux is a high priority now to improve game performance and stability. Luckily, this should not be too difficult to do – I already have the code recompiling on Linux as well, but with some errors. I have to work through the errors and refactor the Windows-specific bits of code but should be able to then migrate the server executables to run natively on Linux. The game client itself would still be a Windows program.
Taking things one step at a time though, I will start by just making the critical edits to the source code needed in order to deploy onto the new server, now that I am at least able to recompile. I will then just deploy as is, running via WINE like the current server, but on the new server hosting. That way, everyone can get connected to the new server and be prepared for future updates and perhaps experience some very minor performance improvements from the new server as well. I will probably have this cranked out within the next week, so you guys can hopefully expect to see a fresh download that will connect you to a shiny new server next weekend.
This will put us squarely into Phase 3: source code cleanup. I want to get Impressive World to a point where we can make some new additions as soon as possible and keep the game fresh while we are working on migrating to a new game engine. Let’s face it, the transition to an entire new game engine will be pretty intense, difficult, and time consuming from a development standpoint, and you guys don’t just want to wait around that long before you see anything new! This way we can continue to make some minor improvements to the existing game for you to enjoy while the new engine is in the works. Right now, here are the top priority cleanup items for the existing game source that I am working to get done as quickly as possible for you.
- Database migration – All user, character, and inventory data needs to be migrated out of the filesystem and into a database. This will improve server speed, performance, and security all in one go.
- Linux refactor – The server executables should be recompiled to run natively on Linux, technically they are currently Windows native only. This will also improve server performance and stability while keeping our hosting costs low.
- Game updater – The game client needs an auto-updater. Players should not need to download a new copy of the game themselves with every update, the game should be able to patch itself when launched
- Add new models! – Finally getting into updating the actual game content that everyone cares about! You probably will not see entire new maps or drastic changes to gameplay until we are working with the new engine due to the time involved to create these assets, but we should be able to start squeezing in some new models and easier content in the meantime.
There you have it, I hope you are as excited as I am to see what’s ahead for Impressive World! I am still sorta new here so if anyone has feedback on longstanding bugs or problems with the game, or new ideas or features they would like to see added or changed, please share your thoughts in the comments below or on our forums.