Posted September 07, 2024 by Shadow9876
#shadowchess #release #history
As most probably suppose ShadowChess wasn't built in a day. But the process of willing this game into existence was longer than one might think.
Firstly, the current iteration of the game was built with Godot, Rust, Blender, Musescore and a few other tools. From this first sentence it's crystal clear that ShadowChess is quite a complex game. Regardless, my choice for a fast programming language felt to Rust, which is a performant, memory safe language I came to know reasonably well in the past few months. Thanks to this language a rewrite of my chess engine was faster (and safer) than expected.
For the other roughly 75% of the code I had little choice but to use GDScript which is a C++, Lua, Python-like, half-memory collected, object oriented programming language and is also the default scripting language in Godot. Because of the scale of the project, at one point it became nearly impossible to use the default editor built into Godot. At that very point I choose to switch editors and went with VSCodium, a fully open version of Visual Studio Code.
The remaining half of the story is mainly the fate of assets. From the previous iterations of the game - which I will get to eventually - there remained a lot of useful assets, though these had a minor problem, namely licensing. For you see, a lot of images simply used unknown pictures from the internet, which was simply unprofessional from me, though when these assets were first created I was a bit younger than now. Anyways, I had to port these assets to ones which can be clearly licensed and used by the game, so I did just that. But to name a few of my tools I have to include Blender, GIMP, Inkscape and Kdenlive which all helped me tremendously. As I already hinted at music - as in all previous iterations - was composed via Musescore, and was then refined with Audacity later. Of course I've left the 3d assets for the end, those were made with Blender.
Overall this version is a huge leap from the previous iterations because of its "advanced" graphics, "quality" of code and new game mechanics. To explain the latter I included in this version a working (although a bit unusable) history for moves and planning. This feature may help players to better grasp the position and help prepare them for the moves of the opponent. Furthermore I decided on making Real Life Difficulty easier via providing a life system to the player (instead of killing them outright).
So that is all for this release and if you are curious I'll now talk a few words about previous iterations of the game.
So, this game started as a 2d tech demo in python which was probably impressive for me at least. It ran horribly, was not optimised and the inputs worked in one specific way only. Over the next half a year I managed to remake it into a working game with a "story" added to it (still in python), then as I grew older I decided on Godot and C++ and made a 3d version of the game. Now this 3d version was utterly beyond refactoring therefore I choose to remake it from scratch and here we are. A game made in Godot and Rust.
Thank you all for your attention.