Posted March 17, 2023 by Radiant Sloth
Hello everyone!
I hope you enjoyed my mini technical series talking about optimization (part 1 and part 2) last weeks! Meanwhile, I made really good progress with the development and I have plenty to share today! Namely a fresh trailer for Destroy The Monoliths, the brand new Steam page and the release of the alpha version 0.4. Let’s get started!
Yes, you read it right! I finally created a Steam page for my upcoming new game. I hope you will enjoy looking at those new screenshots and GIFs I made for this special occasion! More importantly, please add the game to your wishlist! You will get notified when the game launches, and you can also follow to not miss any news! It does not seem like much, but it actually does help a lot with the Steam algorithms to increase the visibility of the game on the store. So thanks for your support!
This means I edited a new trailer too, with a new music track! Let’s watch it together here!
Let’s now talk about the new alpha version 0.4 that you can play as of now on itch! The first major change concerns the XP system. I rolled back some of the experimentation from version 0.3. I was not happy with the upgrades interrupting out of nowhere. And the progress bar on the HUD was looking terrible in my opinion. But I did like having the progress tied to the monoliths rather than the minions. So I introduced the XP orbs back, but they are now dropped by damaged monoliths. You will automatically collect them at the end of the mission if you win. But the best move is to collect them manually from time to time. This way, you can get new upgrades as soon as possible!
The minions keep dropping healing orbs, but I made sure they look different from the XP orbs. They are now white and smaller.
Moreover, the leveling is back to an exponential scale. You will need more XP each time to level up. But if you drain all monoliths health and win the mission, you are guaranteed to get to the end of the scale. Besides, you will now get more upgrades in later missions since there are more monoliths, so more damage to inflict and more XP to collect!
Let’s talk about a feature I recently added. To start a new campaign, you will first get to a creation menu where you can choose various options to customize your playthrough. This means I am introducing some slight meta progression. I do not plan to use a meta currency, but rather to have some simple unlock conditions. For example, winning a campaign with one game mode could unlock the next game mode.
For now, there is no much choice as you can see on the screenshot. But this prepares for future updates! I plan to work on these different aspects:
Overall, I am very happy with this direction. I think this meta layer was necessary and will bring a lot of gameplay variety and replayability to the game!
With the meta layer, I am finally keeping track of some global stats. You can now see them in the journal screen! Later, it will also contain some lore entries and achievements.
Also, the menu at the end of a mission is now nicer and displays the mission stats.
While polishing some elements of the UI, I finally got to add nice input icons instead of using text. Both for keyboard/mouse and controllers. I feel the UI looks way cleaner like that!
Also, I removed the static background of the title screen. Instead, I generate on the fly a dynamic map that showcases random buildings and monoliths at random locations. And the smooth camera movement makes it very satisfying to look at. I really like this new title screen!
I am finally done with some important technical reworks. The main one concerns the unique identifiers of any content data, whether it be buildings, weapons, enemies, etc. I was previously using integers but I realized this would cause problems in the future. I need the identifier to also indicate if the data belongs to the full version, demo version, or even a potential DLC version if I ever make one. So I reworked the internals to organize content into packages and use string identifiers instead. This means it will also be easier to maybe add modding support in the future. Even if two modders use the same name for a building, it would not cause problems as long as they register the data with different package names.
I also reorganized the folder structure to have one content data folder per package. This way, I can export or ignore folders depending on the version. The game then loads what is available without any error. I use Godot feature tags for this. I am quite happy with this system. It feels easier to manage all the versions in the same project. For Skycliffs I was using a git branch for the demo. It was very tedious to cherry pick commits from the master branch to apply bug fixes to the demo version as well. With Destroy The Monoliths, it will be more manageable!
I made some improvements to some of my tools too. For instance, I have a scene to generate buildings thumbnails. I can now easily tweak with a graphical interface the zoom level, rotation and translation to make sure it looks good in the frame before saving the image. The scene remembers the configurations so I can regenerate all the thumbnails very easily if I change the textures later.
Since we are talking about tools, let’s have a peek at my cheat panel! I use it to quickly test and debug stuff. It is also very convenient to take screenshots and record some specific footage for reddit or Youtube Shorts.
A lot of tweaks, polish and technical preparation in this new alpha version 0.4! However, not a lot of new content. But I feel the core mechanics and the code base are now really solid. So the project can now slowly move out of pre-production and get into the production phase. This means I will focus a lot more on adding content and secondary features in the future! So stay tuned for that!
Don’t forget to wishlist Destroy The Monoliths on Steam, and to give v0.4 a shot on itch (full changelog below!). As always, I’m looking forward to reading your feedback. If you know friends who may enjoy the game, please spread the word! It helps me a lot!
Thanks for reading, and see you next time!