RTF DevLog: Demo Launch Postmortem


Dear followers, it has been a while since our last update, especially since the last DevLog update. However, this isn't because we've lost interest, but quite the opposite; we've been very busy with the demo launch. We wanted to incorporate some additional features, eliminate major bugs, and fine-tune the balancing. In this DevLog, we therefore want to take some time to review the development surrounding the demo launch.

Before the Demo

Originally, we intended to release a playable version much earlier, but there were always many features that we needed to add to capture the spirit that the game was supposed to embody. On the other hand, we were also eager to test our game with you and gather your feedback. Therefore, we set ourselves a deadline to build a playable version. From other developers, we knew that Steam events like "Open World Survival Crafting Fest" or "Steam Next Fest" could be absolute game changers for small indie studios. We aligned our schedule with this in mind. We wanted to build a demo as quickly as possible, then address the bugs and fine-tune the balancing before adding new features again, to offer a really good demo version for the "Steam Next Fest".

Late Game Content

Unlike Rust and other survival games, we wanted to create a self-contained gaming experience with late-game content and an ending. Therefore, we contemplated what such an ending might look like to determine a winner. After a brainstorming session, we came up with the idea that setting off a nuclear bomb, which wipes the entire server and makes it unplayable for several hours until the radioactivity subsides and the server resets, could be a fitting end. This would not only provide an ending but also a new beginning through the server reset. Building a nuclear bomb requires several parts, some of which can be found or must be purchased at vending machines. This reintroduced the importance of collecting the in-game currency, Satoshis (Sats). Moreover, it increases the incentive to attack enemy bases to hinder their progress.

Balancing and Improvements

During development, temporary solutions often end up being built into the code and remain until they can no longer be avoided. This was exactly how our in-game items were organized: hard-coded. However, this was not the best solution for balancing, nor for preparing the items for inclusion in a wiki. Therefore, we wrote several parsers. One to parse the items from the existing code into CSV files. Another to fill and update our wiki from the CSV file when changes occur. And a third to enable the use of the CSV file in the game. Although this sounds like a lot of effort at first, we will definitely recoup this time.


After the Demo

On April 5th, we released the demo, and it was a real success for us; by the same evening, several hundred people were playing our game. Not only did our wishlist explode, but so did our bug tracker. Fortunately, there were no major showstoppers initially. There were some edge cases that we hadn't encountered even with over 100 hours of gameplay. By the first weekend, we had released an initial patch that brought several quality-of-life improvements and fixed some bugs.

What helped us was watching other people discover the game since we knew it inside and out. We knew what needed to be done and how things worked. Observing others provided a fresh perspective on how we could make the game more accessible in certain areas. For example, in the second patch, we simplified the building system to give players more options and make it more accessible.

And then it happend: A major showstopper, at least for some players. Occasionally, we had isolated reports from players who couldn't start the game. Initially, we couldn't imagine where the error might be coming from, but after reading some logs and conducting tests, we identified the cause. It was, of course, the last-minute feature: Our CSV parser. As it turned out, there are culture-specific issues in C# that can cause quite a bit of trouble. In our case, it was because we wanted to parse floats, but the system default for the decimal separator was a comma, not a dot, which caused issues with float.Parse().

Overall, we were quite satisfied. The demo was playable without any major issues from day one for most people and has been significantly improved since then. For the past week, we have started incorporating new content and features. Support for additional languages was highly requested by our community, which was unexpected. Thanks to the Localizor platform and the community, especially members like Scpk, KapTom, Mirage, Heureka, and Vedia, we can now offer the following languages, albeit not yet perfectly: Chinese (simplified), English, French, German, Japanese, Polish, Portuguese, Russian, Spanish, and Thai.

Currently, we are also working on persisting the world so that it can be reloaded after a server crash or restart. This is particularly important for players who want to create their own games. With a few tricks, you can already play the demo on Linux using Proton, even though there is no official build yet. We will provide Linux support shortly. Additionally, we are exploring the possibility of controller support concerning the Steam Deck.

Moreover, we have started work on the next major game feature: ✨Electricity✨.

Thanks for reading :)

P.s. If you want to help us or get more involved, feel free to connect with us on Discord.


Leave a comment

Log in with itch.io to leave a comment.