I have decided to go ahead and attempt to make a Steam release of Knights!
This will be as a free game on Steam. Whilst I could conceivably try to charge money for it (and, indeed, some people have suggested that in the past), personally I think free is better, because:
- Knights has always been free.
- Keeping it free will mean that more people get to experience the game (and this is especially important for a multiplayer game, where you want as large a playerbase as possible, ideally).
- It’s not clear that a remake of a 30+ year old Amiga game would make much money anyway, so there isn’t much point trying to charge for it, in my opinion.
(If the game does somehow become popular and people start asking for a way to support the developers, then I could consider setting up a ko-fi or patreon or something, but we’ll cross that bridge when we come to it.)
The advantages of a Steam release would be:
- No need for me to host any server infrastructure myself — we can leverage Steam’s infrastructure instead. (See previous blog post for why this is a good thing.)
- Easier installation — people can just click and play, rather than having to install a separate EXE file from the internet, which they might not trust.
- Improved multiplayer features — we can leverage Steam matchmaking, “invite friends” features, etc.
- Spreading the word — people might see their friends playing Knights on Steam and decide to try it out for themselves.
I have now asked Kalle Marjola (the original Knights creator) for his permission to do this, and he has agreed, provided that I mention his name somewhere, which of course I will. (In fact, his exact words were, “Oh that sounds great!”)
So what needs to happen next?
- The first thing I want to do is finish off the Lua scripting documentation, which is still a work in progress. The point of this is to make it easier for people to make mods for Knights. (Perhaps we can even integrate with Steam Workshop to allow easier installation of mods, although I will focus on getting the base game working first!) This documentation work will take a couple of weeks at least.
- I then need to think about how the multiplayer will work (technically) on the Steam platform. My version of Knights has always been server-based, but on Steam there is no “game server”, instead just peer-to-peer connections between players. The obvious solution is to designate one player to be the “host”, and then that player acts as a “game server”. (This does give a slight “host advantage” to that player, since their ping time to the “server” will be zero, but we will have to live with that for now.) Then the technical challenges are as follows:
- We probably need some kind of “host migration” feature — otherwise the game would just end if the host player leaves, which isn’t ideal. This is technically challenging, but I think I can see a way of doing it.
- It would also be nice to allow new players to join a game after it has started, or existing players to reconnect after a disconnection (neither of these are possible with the current implementation), so I’ll have to think about how those could be implemented.
- We also need to integrate with the Steam lobby and friends APIs, which means e.g. adding UIs to create a new game (either private or publicly visible), view existing games (and join them), invite a friend to a game, or respond to an invite. This will need a bit of work, but there are no major technical difficulties here — it is just a case of doing the work basically.
- There are other Steam features to consider as well:
- Steam Community (e.g. we could set up a Steam based discussion forum for the game)
- Rich Presence (I have only a vague idea what this is, but it might be interesting to set up, if it doesn’t take too long)
- Steam Input (supporting different controller types, basically) — this could be good as there are all kinds of controllers that people use nowadays, not just keyboard and mouse (although I guess keyboard and mouse remains the most popular).
- Voice Chat — may be worth researching a bit at least
- Achievements — not sure, but maybe we could have some simple ones like “complete a destroy book with wand quest” or “kill 100 zombies” or something.
- Ranked online games and leaderboards — might be interesting I suppose, but not an immediate priority.
- Maybe some other stuff I haven’t thought of yet.
- The game might also need a slight UI overhaul as well, just to make it a little bit more presentable for Steam. If it’s only going to be a free game, then we don’t need to put an enormous amount of effort into this, but maybe sprucing it up a little bit would be reasonable. Can think about this once the technical side is worked out.
There’s also stuff like setting up the store page, and whatnot, but again, we can cross that bridge when we come to it.
For those who are wondering, I’m currently working part-time, which gives me at least 1-2 days per week to work on Knights, so there is time for me to work on this stuff. Even so, it’s going to take a long time – it could be months or even years before we get to a release – so don’t expect anything soon. But I felt it would be worth announcing something here so that the Knights community (such as it is) can know where the game is heading next.
The next few months could be an exciting time, so stay tuned and I will try to keep people updated 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/.