As mentioned in the previous post, I have begun work on bringing Knights to Steam.
Since then, I have made the following progress:
- The Lua documentation has been completed.
- I made various optimizations and code tweaks, to try to make the in-game animation smoother, reduce latency, and reduce CPU usage. For example, on my (relatively slow) computer, the game now uses about 30% of one CPU core in-game, instead of 40-50% previously.
- I’ve begun work on adding a “host migration” feature. To explain why this is needed:
- Currently the game uses either a server model (for online games) or a host/client model (for LAN games).
- For Steam, the plan is to move away from the server model and use a host/client model, based around the Steam P2P networking features.
- To make this work smoothly, I want to add a “host migration” feature so that if the host player leaves the game, another player can take over as host. (The alternative would be for the game to just close if the host player leaves, but that would not be very user-friendly.)
- For host migration to work, there needs to be a way to smoothly transfer the “game state” from one machine to another, so that the new machine can take over hosting duties. I don’t want to go into all the technical details here, but suffice to say, I have a plan for doing this, and have started working on it, but the work is not yet complete.
The next steps will be:
- Complete the “host migration” feature as described above.
- Add support for “reconnect”. Currently if a player leaves the game and rejoins, they will be added as an “observer” and won’t be able to continue playing from where they left off. This is annoying, as sometimes you get disconnected accidentally and want to come back in, but can’t currently.
- At this point, we will probably be about ready to get a dev version of the game onto Steam and start integrating with actual Steam features. This is still a little way off, but it will be a good milestone when it does happen 🙂
- There are also a couple of bugs that have crept in, that I want to look at. The most annoying is that the Invulnerability effect doesn’t seem to work any more (a Lua error message is displayed). I assume this must be a result of updating Lua to the latest version (which I did a while back) but unfortunately didn’t notice at the time. Hopefully this will be relatively straightforward to fix, though.
So, to summarize: Work is continuing on getting Knights ready to be put on Steam. The basic plan is to do a couple more months of “prep” work (e.g. improving the networking systems, fixing bugs), before beginning the integration with Steam proper once that is done.
I will continue to post updates here as things progress.
About Knights
Knights is a multiplayer game in which players must explore randomly generated dungeons and race to complete various quests. For more information please visit https://www.knightsgame.org.uk/.
Thanks so much! Keep it up!
Thank you for your support 🙂