Knights Store Page Live (“Coming Soon”)

The Knights Steam Store page is now live! The game is listed on Steam as “Coming Soon”. This means that people will be able to browse the game, and perhaps wishlist it, if they choose to do so.

In other news, I also pushed an updated build about a week ago with the following changes:

  • Fixed a bug where knight controls were still active while the game was paused (e.g. if you pause, then click mouse, then unpause, then it would drop your item).
  • Fixed a bug with daggers, where the knight graphics would sometimes get stuck showing the dagger (so it looked like the knight was walking around the dungeon with a “mini sword”).

I have been unwell with some type of cold/flu for about a week, and still not feeling better, so I’m going to wait a few days and then I’ll try to get back to working on Knights. The next step (as I’ve mentioned before) will be to organize a playtest and record some footage for the trailer video.

That’s all for now. Thanks for reading!

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 the Steam Store page or the game’s website.

Also, if you want to play the game on Steam before it’s officially released, just drop an email to stephen (at) solarflare.org.uk, and I can send you a Steam key.

Store Page Preview; Potion Change; Steam Trailer

Store Page

I have been spending the last few days setting up the Steam store page. It isn’t live yet, but I can show a screenshot of its current state:

(Click the image to enlarge, or see a higher quality version.)

I think this looks reasonable, but if you have any feedback, leave a comment below.

If I don’t get any feedback in the next few days, I’ll probably just submit this to Valve for review – assuming the review is successful, the page would then go live with a “Coming Soon” release date.

Potion Change

Earlier today I pushed an updated build to Steam which reduced the duration of potions slightly. The reasoning for this change was the following:

A couple of years ago, Knight_Rider requested that I increase the variance of potion times, to make it more like the original game. For example, in the original you could have “dud” potions which lasted only a few seconds. I duly did this, and potions were changed to have a time distribution which was more similar to the original Knights.

However, after playtesting a bit recently, I now think that this change made potions last a bit too long overall. The change made it so that the average potion time was about 80 seconds, but there was a “long tail” so that potions could last up to a maximum of 6 minutes. Given that a Knights quest can be over in 3-5 minutes (for smaller maps at least), I felt this was a bit excessive.

I have therefore tweaked the random distribution so that the average time is now 73 seconds (slightly lower than before), but the “long tail” has been cut out, with the new maximum being 3 minutes. This doesn’t actually make all that much difference in practice (for example, the variance that Knight_Rider wanted is still there, and the “dud” potions still exist), but I do think that removing those extra-long-lasting potions is good for gameplay (e.g. it’s more interesting if you have to find a new potion every now and then, as opposed to having one potion that lasts the whole game), so that’s why I made the change.

NB: I’m talking about “normal” potions (strength, super, invisibility, etc.) here. Some potions like Invulnerability or Poison Immunity have different rules, and those have not been changed.

Steam Trailer Video

The last major thing that we still need is to make a trailer video for the Steam store page. (Steam requires this before you can release the game.) I was thinking of perhaps holding a playtest sometime soon, and recording footage from that, to potentially use in a trailer.

For reference, the Steam trailer requirements are documented here: https://partner.steamgames.com/doc/store/trailer. In summary:

  • Trailer should be as high resolution as possible, upto 1920 x 1080.
  • 30/29.97 or 60/59.94 fps.
  • High bit rate (5,000+ Kbps).
  • In .mov, .wmv, or .mp4 file format.
  • H.264 video and AAC audio is preferred, but Steam can transcode from many formats.
  • 16:9 aspect ratio is preferred (but 4:3 also accepted).
  • The trailer should primarily show gameplay as this is what the player will want to see (they want to know what they will be doing in the game and what playing will look/feel like).

Other Stuff

Just so I don’t forget, I will note here that I still haven’t added ZaRR’s Russian translation to the game, but that can be sorted out in due course. I also need to update the credits page, e.g. to set the actual release date, and probably to credit ZaRR and ImpassIve for their help with playtesting the Steam version.

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/.

Knights is coming soon to Steam – if you would like access to the test build, send an email to stephen (at) solarflare.org.uk, and I will send you a Steam key.

Knights News

A new Steam build is online today! Here are the changes, since my previous update (about 2 weeks ago):

  • Added a help panel to the Quest Selection screen, giving detailed descriptions of each quest setting. This covers a good chunk of the content that the players would previously have got from reading the manual (hopefully the Tutorial does the rest).
  • Adjusted various other pieces of text.
  • Lua module system changes: depends.txt is removed, and a mod namespace with various new functions (like mod.RegisterMod, mod.GetRegisteredMod, etc.) has been added.
  • Added kts.GetPlayerID function, returns a string uniquely identifying a player (requested by ImpassIve).
  • Player names can now be printed in localized messages (requested by ImpassIve).
  • Added kts.VERSION which is just a string containing the Knights version, as an integer (currently 28).
  • Fixed a small bug in the Random Quest algorithm – I was looking over the code for this and I noticed that it can sometimes be biased towards certain options (for example, it was picking Ancient Book of Knowledge more than the other books). This should now be fixed.

I think this is now a good “release candidate” build – except for one thing, which is ZaRR’s Russian translation – I’ll follow up about that separately.

I’m going to spend the next few days setting up the Steam store pages, then we’ll have to think about doing some proper playtesting, and making a trailer video.

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/.

Knights is coming soon to Steam – if you would like access to the test build, send an email to stephen (at) solarflare.org.uk, and I will send you a Steam key.

New Steam build

I’ve pushed a new build to Steam today. Since last week’s update the changes are as follows:

  • Text boxes now allow cut, copy, paste, and other shortcut keys (e.g. ctrl+backspace to delete a whole word).
  • Spent some time trying to fix the laggy Steam Overlay rendering – hopefully it is better now.
  • The Knights window will now flash on the taskbar, if someone presses “Ready to Start” and you are focused on a different window. This is to get your attention so you can respond.
  • Lots of tooltips and help text added:
    • Main menu and Start Game screens: hover text for all buttons
    • Options screen: various tooltips
    • Online Multiplayer screen: tooltip for “show incompatible games”
    • LAN games screen: static help text added
    • In-game screen: tooltips for inventory items, health indicator, and skulls
  • Other text changes:
    • Rewrote credits screen (to simplify and shorten it)
    • Some tutorial messages changed
    • Removed several localized error messages, in favour of a single “Network protocol error” message, with a numeric error code (this reduces the number of messages that need to be translated)
    • “Vote to restart” text tweaked slightly, plus this text now disappears if the game ends (winner/loser screen active)
    • Some small updates to game manual and other text files (readme, acknowledgments)
    • Removed the “first time message” (a short text displayed when the game starts for the first time) – I think this is now redundant given the tooltips and other help for new players that was added; and anyway, a lot of people would probably have clicked through it without reading it.

Some questions:

  • Is the hover text on the main menu helpful, or just annoying? I can’t make my mind up 🙂
  • Is the Steam multiplayer game flow (creating and joining games) sufficiently clear and understandable, or do we need some extra help text or tooltips?

Remaining tasks:

  • I still want to add some tooltips to the Quest Selection menu screen, if possible. (I think this could benefit from tooltips due to the large number of options and settings.)
  • Need to do another pass on the Lua module system, following recent feedback from ImpassIve. This will take a few days probably.
  • Steam store artwork, text, and a trailer video are still needed (I confirmed that Steam does require a trailer before you can release). Perhaps we can record a multiplayer game sometime, and use footage from that for the trailer (ZaRR did already make a video recently, but I’m not sure if we can use it, for various reasons). For the images, maybe someone from the community could be willing to help, or else I could have a go myself (or perhaps pay an artist to do it). We don’t have to think about this right away though – I have 1 or 2 more weeks programming to do first, probably.

As always, if anyone wants to help playtest, just let me know and I can send one or more Steam keys so you can access the private build. Look forward to seeing you in the dungeons!

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/.

GitHub Issues list

Just a quick note today, to say that I’ve logged some issues in GitHub, representing potential future work items for Knights.

https://github.com/sdthompson1/knights/issues

A couple of things to say:

  • Including an issue doesn’t mean I will definitely work on it. It is more like, “I want to write this down so I don’t forget about it” 🙂
    • But at some point I’ll want to go through the list and prioritize what to work on first. If you have a “favourite issue” that you want done first, let me know 🙂
  • Of course, anyone with a GitHub account is welcome to add new issues, or comment on the existing ones.
    • Or if you don’t have a GitHub account, leave a comment below, and I’ll paste your comments into GitHub for you (with attribution of course).
  • There’s also a bunch of stuff that I didn’t bother to add to the list because I plan to work on it over the next couple of weeks. For example:
    • Steam overlay seems a bit laggy, investigate
    • Maybe display “(typing)” when someone is typing
    • Allow copy/paste in text boxes (shouldn’t be too hard to add)
    • Various other stuff! (hopefully not too much)

I guess the plan would be – let’s try and release on Steam fairly soon (once we’re confident most of the bugs are solved) – then think about planning future tasks!

Until next time…

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/.

Knights news

Progress on Knights continues. In the last (roughly) two weeks I added the following:

  • Fixed various bugs, e.g. fixed a crash on the “Loser” screen at the end of the game, and the “desync” error should be fixed now. Also fixed some issues with non-English keyboard layouts.
  • Added support for Steam’s “recently played with” feature (View -> Players in the Steam client).
  • Added an option to disable the screen flash effect from wands and pentagrams.
  • Changed the in-game font. I now ship a font file with the game (as opposed to getting a font from the OS) – this simplifies the code and also means that the look of the game will be consistent between different OS’s.
  • Work on the Lua modding system is ongoing. For example, each mod now has its own self-contained folder on disk (in knights_data/modules/). The Lua require and module functions were removed (in favour of a new depends.txt file) and mods can now include localized text in different languages.
    • Eventually the plan is to connect this up to Steam Workshop so that users can easily browse and download mods for the game.
    • This does mean some slight changes to existing mods will be needed, but that shouldn’t be too hard to do. Ideally I’d like to get the existing community-made mods (e.g. spiders, telewand, rat rider) working again and available on Steam Workshop before too long.

There now isn’t that much left to do before the first release, but I want to do the following at least:

  • Need to do some artwork for the Steam store/library pages. I will probably just take some images from the game (e.g. the “Winner” image) and slap the word “Knights” over the top and see what that looks like! (Unless any graphic designers are reading and want to help me with this? 🙂 )
  • I still want to add tooltips to the game. I don’t want to put tooltips everywhere, but putting them in one or two key places might help, e.g. it might help to have tooltips to explain the various quest options (like “Type of Book” or “Number of Gems” etc).
  • I want to do a “text pass” and update some of the in-game text strings, “credits” text, and so on.

See you in the dungeons!

P.S. If anyone would like to try out a pre-release version of the game, just email me and I can give you a Steam key.

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/.

Knights Steam version progress

After a “month off” in January, I have been back to working on the upcoming Steam version of Knights. Here is what was accomplished so far this month:

  • Restart game feature: You can now press ESC then R in-game to vote to restart (i.e., end the current game and go back to quest selection). A majority of players must vote for this to happen. This provides a way to “abort” a quest without everyone having to actually leave and then rejoin the game.
  • Chat filtering: Chat now passes through Steam’s servers, and offensive words are filtered out, according to your Steam settings.
  • Localization: The in-game UI now supports Unicode characters, and almost all in-game strings are now in the localization.txt file. This enables the game to be translated to other languages – maybe some people will volunteer to do translations 🙂 (I think ZaRR already mentioned he might be willing to help with a Russian translation.)
  • The LAN Games option has been added back into the Steam version. I also reworked it somewhat, e.g. the LAN discovery code now uses mDNS instead of broadcast packets (this makes it more likely to work with modern routers and firewalls).
  • The Connect to Server game option was removed.
    • I did think about keeping this option, but in the end, in view of things like the Online Safety Act (in the UK), and increasing focus on online safety generally, I don’t think it makes sense to support game servers run by random people on the Internet any more. The main venue for online multiplayer Knights, going forward, should really be Steam. This allows users to take advantage of Steam’s safety features like user blocking, chat filtering, user reporting, etc., which should hopefully mean a safer experience for everybody. (Of course, the Knights community has been very good and completely non-toxic in the past, but we don’t know what will happen when we open the floodgates to Steam players 🙂 )
  • Some bug fixes were done, e.g. I fixed a bug where the display would not update properly after a player was eliminated in a wand of securing quest. Also some extra security checks were added to the network code.

The remaining things that need to be done are:

  • Mods: I want to at least have a plan for supporting Knights mods (through Steam Workshop) in the future. There were a lot of good mods made by the community back in the day (rat rider, spiders, teleport wands, etc) and it would be nice to make these available again. This might not be in the release on day one but it should be part of the plan.
  • Tool tips: I had an idea to add tool tips to the UI. This might e.g. help explain to new players what all the different quest options do. (Especially since no-one reads game manuals any more, so we do need some way for players to find out what the options do!)
  • Bug fixes: There are still lots of bugs and other small tweaks that need to be dealt with. For example, I’m currently looking at a bug with non-English keyboard layouts that ZaRR mentioned to me.
  • Playtest: Probably we should get a few people together for a playtest, in a couple of months time, once I have fixed all the bugs I already know about 🙂
  • Steam store page: I still need to come up with text and images for the Steam store and library pages. I’m also not sure if Steam requires you to include a video, or if it’s optional – will have to look into that.

But, to summarize, it’s mostly just small tweaks and bug fixes to be done at this point. I guess it will take around 1-2 months to get these done, but we’ll see how it goes. Exciting times ahead!

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/.

Knights update

I’ve realised it has been about 4 months since the last update (and I said I would update every 2-3 months) so sorry about that!

Since the last update, I’ve done the following:

  • I created the Knights app on Steam, although it hasn’t been made public yet.
  • I figured out how to upload builds to Steam, so that part is working.
  • The integration with Steam is progressing well, e.g. we now use Steam’s P2P networking features, and inviting friends to games works.
  • Fixed some Lua build issues (this was causing the Makefile to not work properly on non-Debian Linux distributions).
  • Fixed a bug where Invulnerability wasn’t working (due to a Lua error).
  • Begun adding Unicode support for the in-game text rendering (although it’s not finished yet).
  • Probably made a whole bunch of other minor tweaks/fixes that I have forgotten about!

What is still left to do:

  • Review safety and security – e.g. I want to try to make the network code as secure and hacking-resistant as possible; also Steam themselves have some safety features (e.g. chat filtering, blocking, privacy options) that I need to make sure that Knights supports.
  • Add a “Vote to End Game” button (or similar), in case players want to end a quest early.
  • Maybe make some small tweaks to the UI. E.g., adding tool tips in one or two places might make sense.
  • Need to add “LAN” and “Online server” modes back into the game (I temporarily removed those while getting the Steam integration working, but it would be good to put them back).
  • Fix any remaining bugs, and do some testing.

Hopefully it shouldn’t take too long to do most of those. I also now have some Steam keys for the game that I can give to people, in case we want to do a multiplayer test, before the full public release of the game.

After that the only thing left would be making the artwork and videos for the Steam store page. I’ll figure that out once we get there 🙂

I guess that about covers the current state of things so I’ll wrap up for now. Hope everyone reading has a good Christmas, and I’ll report back in the new year!

Progress update

Just a quick note to say what I have been working on for the last couple of months.

I’ve added a “reconnect” feature to the game. Previously, if a player left a game for any reason, they would just be removed from the game entirely — and would not be allowed to rejoin. Now, if a player leaves, their knight remains in the dungeon, but they appear as “(Disconnected)” in the player list. If they later reconnect, they can jump back in and resume from where they left off. Meanwhile, the other, non-disconnected players can continue playing, until one of them wins the quest in the normal way. (Players could also kill the disconnected knight and take their stuff, but some might consider that unchivalrous!)

Unfortunately, one side-effect of this change is that it is now quite hard to actually “abort” a quest and start a new one. (Pressing ESC-Q no longer works, because that now just makes you leave the game, with a possibility of returning later, instead of actually ending the game.) I was thinking of adding some kind of “Vote to restart” feature to address this. Basically, one player would click a button to call a vote, and if enough players agree, then the current quest would be abandoned, and the game would return to the quest selection menu. (This isn’t done yet, but hopefully I can add it soon.)

The other thing I’ve been working on is beginning the integration with Steam’s matchmaking features — or at least preparing the ground for this. I have been working on creating the concept of a “lobby” in the code. A player can create a “lobby” on their local machine, which encapsulates the state of a Knights game. Other players can join the lobby, and the lobby state can also be transferred from one machine to another, allowing for host migration. This is still work in progress, but is going reasonably well. Once I get that working, I will try hooking it up to the actual Steam APIs, so that, for example, a player could create a game and invite a friend to join it, or allow other players to join via Steam’s matchmaking system. (This will also mean creating the actual Steam app id for the game, which I think costs $100 at the moment, but that shouldn’t be too big of a deal.) This is probably still a couple of months away at least, but it will be cool to see it finally working!

Thanks for reading. I’ll try and keep posting updates here every 2-3 months or so.

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/.

Knights on Steam – initial progress

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/.