© Oliver Keppelmüller 2017-2018
Developer’s blog
Switching Engines
6th June 2017 by Oliver Keppelmüller
In the previous Developer’s Blog, we revealed Grand Tactician will not be following in the
same exact footsteps of Oliver’s previous title, The Seven Years War. While switching to a
new engine with a new coding language does sound like a lot of work, leave it to the one
man game studio to quickly overcome this challenge too. Now, with Unity, the payoff
should be a more stable and visually pleasing experience for the hardcore strategy fans,
without compromising in gameplay. Let’s have Oliver explain it a bit more:
The Seven Years War was coded in Blitz3D, which used coding in basic and having C++
DLLs in the back. Making TSYW I spent approximately 1/3 of the time to develop the
necessary engines like single surface techniques for showing thousand of sprites. This had
to be created from zero as hardly no suitable engines existed. Although this helped me
looking detailed into the material and learning to understand the backgrounds, I had to
spend a thousand hours only to get the basic issues working.
Combined with very deep game content this did lead to a development time of almost four
years. At some point I had to stop implementing cool new features, as the increased
workload could not be handled any more. Wrestling with the engine limitations meant, at
same time, that some other important topics received less attention than they should
have: UI, beta testing, tutorials, manual… Teaming up with Ilja helped me overcome this
shortage a bit, but only post-release.
Furthermore the old DX 7.1. engine of Blitz3D led to some stability problems on new PCs.
This was the main reason in my opinion why I decided to go another way for the next
project and checked some existing engines on the market. Unity seemed to be a good
choice as it includes a lot of little helpers and the supporting community is quite large.
The only problem was the switch to a different coding language: C#.
Although my wife was not happy discovering all the C++ books in our travel luggage of
our summer holidays 2016, I managed somehow to get into the language and Unity itself.
Within 3 months I was able to set up a sample battlefield with some nice features like
changing weather and seasons. This convinced me that I had taken the right decision and
I started the first implementation discussions with Ilja.
Within the first 6 months a lot of things happened, but also the background functionalities
of Unity had to be discovered. We experimented with surface textures, vegetation and
freezing rivers. Then added the first sample buildings, this time deciding to go further and
create destroyable buildings with fire animations, which was actually quite fun coding.
Another new feature we desperately wanted to add was functional cover objects like walls
and fences.
But nevertheless I also reached the limits of Unity, especially when we talk about showing
thousand of soldiers with animation. Our main goal on the unit front is to be able to show
not only 20 units per side, but hundreds of them with each of them including hundreds of
soldiers shown. After some experimenting, we had to compromise and fall back on using
sprites instead of 3D soldiers, again. So some experience of TSYW had to be taken up, like
the single surface engine - which had to be created from zero, again. But while re-writing, I
was able to improve the sprite design a bit in a way that allows more variation and
animations, without having a lot of sprite tables eating up VRAM needed elsewhere.
The DX11 and 12 support of Unity not only brings more stability to gameplay, but also adds
to performance and graphical appearance. We are convinced that Grand Tactician will be a
lot more pleasing to the eye than TSYW. With Unity we can have quite nice looking
battlefields and effects with relatively little effort, being able to concentrate on the more
important topics in the gameplay, like improving UI and so on. But more about that in the
future!
This is where we stand at the moment. We keep you informed about the further game
progress!
Cheers,
Oliver
PS. Below are some screenshots from the development build, showing seasons, weather,
and the overall visual quality the new engine allows.