I’ve finally reached a point where I have to admit that my 3D math skills are not enough to figure out all the projection, and view matrix math needed to get Diligent engine working. So the conclusion has to be that all the open source graphics engines are bad. So instead we need to look towards using a full-blown engine, and rewriting the engine game in it.
Some of the previous related threads:
But to summarize I wanted to just change out the graphics engine, because that was the problematic part of the game. The rest of the engine worked just fine. It would have saved us from having to rewrite the entire game. But as there just simply is no good open source graphics engine, it’s finally time to give up and move to using an open source engine.
Over the past few years Godot has basically become the leading open source game engine with good community and activity towards new features. So once the decision was/is made to move to a different engine, Godot was basically the only sensible choice. It has a bunch of good features, like a lot of documentation, no missing features that we’d need, exporting to mac as long as we don’t need native code modules for performance reasons, and hopefully the artists and other non-programmers on the team could learn to put in the assets themselves with Godot.
So far some of the most unsure parts like the backgrounds, and (partly) the compound clouds have been reimplemented in Godot, so there probably won’t be major problems, other than it taking a lot of time, with the rewrite in Godot. Luckily syntax of C# is similar to C++ and AngelScript, so it is relatively easy to port over basic code, but the way Godot works is structured much differently so major architecture and design choices need to be made.
If you or someone you know hasn’t joined Thrive because of the choice of the engine or the programming language, now is the time to reconsider. This week we’ll have a small release 0.4.3.1 which has just some changes that were made to thrive after the last release. There are some major bugs in it, but I don’t want to spend my effort trying to fix them. After the release we’ll fully switch gears to remaking all features in Godot.
Hopefully this will be the final major tech change needed to keep Thrive going.
Emphasize on this quote. Godot with C# is significantly more user friendly and easy to learn when compared to the previous engine setup. The amount of prerequisite programs required to compile the game was at the very least halved, and setting up the engine takes significantly less time than before. To anyone not on the development team yet and harbor a passion for the idea and spirit of this game, this really is the time to get involved with the project.
A side note to community forum members who may be worried that this is a major setback in development, please be reassured that this change will benefit the game far more than the negative impacts it can potentially bring. The game now runs significantly more smoothly on all devices, many people who have relatively old computers will be surprised at how well they can run the build releasing on Saturday godot build once it is complete.
And if you were one of the unlucky bunch who experienced crashes from opening the game with an error log saying something similar to “bsf fatal error…” be reassured that this specific crash is guaranteed to be gone. Godot is a massive game engine run by a large company rather than by an individual, which was how the bsf graphics engine was maintained. And therefore Godot is much more tested on weird and obsolete graphics processing units and the game we produce from it should not crash even on old and/or weak integrated GPUs (eg. Intel HD 4000s, Intel HD 620 series…).
Saturday is actually the release of 0.4.3.1 with the few changes done on the old engine version since the last release. I’m not sure when the next Godot version (or test build) will be made.
The conversion is coming along. I’ve made the rest of the things to be fixed / reimplemented in the Godot engine version Github issues to track once the conversion has reached feature parity and is ready for release: https://github.com/Revolutionary-Games/Thrive/milestone/14