ITD3 Dev news #1 - The announcement
The state of things
As we have mentioned before through the in-game news of Infinitode 2, we are currently busy supporting Infinitode 2 and preparing it to be released in China. In the meantime, Infinitode 3 is being in development, and this blog is meant to shed some light on this process.
It is been a long time since the last update for Infinitode 2 has came out but things will change soon. The reason for such a big delay is simple - if I start working on the next update, the Chinese version of the game will be delayed again, and we have already spent a couple of years on that. As soon as it gets released, I'll begin to work on the next update for Infinitode 2.
But, enough talking about that, something tells me you are here to know more about the next game.
Infinitode 3 (name is not final)
Another (tower defense) game where I'll do my best to use all of the prior experience and your feedback to create something even better.
Currently this game is in its early stage of the development - you know, mostly technicall stuff which won't be so interesting to read about, but still I'll write about it to make you feel the progress and a taste of the upcoming game.
But before we start, let me sum up everything that has been told before and answer some of your questions.
Why another game instead of a regular update
I've been writing about this in the ingame news so you can skip this part.
This decision was made during the development of Update 1.9.0 for Infinitode 2, which had to cover some of the technical aspects of the feature called "Community maps". Working on the update made me realize that the architecture of Infinitode 2 has to be heavily modified which may introduce many new bugs or loss of data - in other words, it was too risky. Further thinking on this issue resulted in this list of reasons to go with a sequel:
- Infinitode 2 is considered complete and stable, it has all of the planned features
- New major updates won't bring much to the already complex game and may even break something / overcomplicate it
- The architecture of the game and its codebase were not designed for many of the new cool features we want to add
- It's been more than 5 years since I've started to work on Infinitode 2, we need to aim for a newer hardware and more recent technologies
I must admit - one of the main reasons (if not the most important one) why I'm still working on Infinitode is because I like the process of development almost as much as playing the finished game, and it is critical for me to make this process more convenient and enjoyable to keep on going.
Infinitode 2 has quite low requirements - you can probably run it on any kind of PC or any Android device which has been released in the last 10 years. The whole game fits into 15mb of disk space and can run on 48mb of RAM, so you can imagine how tied my hands are as I can't simply drop support for any of the old devices or make the game grow 50mb in size all of a sudden. It was actually not the best move, and while I'm not going to completely disregard the idea of a game with a small footprint and low hardware requirements, the bar needs to be raised a bit.
Please note: these requirements are not final. These are the common requirements for every platform:
- At least 256Mb of RAM
- At least 500Mb of free disk space on PC / 100Mb on mobile
- Preferably a discrete (or at least not the worst of the integrated) GPU on PC / OpenGL ES 3.0 support on mobile
- 64 bit CPU, 2 cores / 1.6Ghz
- Internet connection for multiplayer / competitions / cloud sync (not required to play singleplayer mode)
- Android 8.0 or later*
- Windows / Linux OS with Java 17 support
* Note: some of the cheaper devices my run Android 8.0 but that does not mean all of the OS's features are implemented properly. For example, according to the official info, all of the devices running Android 5.0 or later should support OpenGL ES 3.1 (source) but in fact many of the uncertified low-end devices running on Android 10+ fail to do so. Read it as: Android 8.0 does not guarantee that Infinitode 3 will run on your device.
As you may already noticed, there's no support for iOS or MacOS - let me explain why.
Drop of support for iOS
As I've mentioned earlier in the in-game news, iOS won't be supported from the start of the development and while there's not much has to be done to run Infinitode 3 on iOS, I won't focus on it.
If you are using an iOS device, Infinitode 2 will still be there for your joy but I'm afraid you should not expect to play this next game on it. There are many reasons for that:
- There's no Java on iOS because Apple has decided so - iOS does not allow to run any kind of virtual machines. Infinitode 2 works thanks to the RoboVM project (which has been discontinued once already) which basically pre-compiles Java app - that's a completely different approach and lacks much of the Java's flexibility. RoboVM is a half-measure I don't want to tie my hands with again.
- Some of the important features of LibGDX are not implemented for iOS and I've failed to implement them too due to an unknown technical issues. This means I won't be able to use them on the other platforms too if I want to call Infinitode 3 a truly cross-platform game.
- iOS binaries are pre-compiled, which means there's no way to include Java libraries / dynamic bytecode in runtime. One of the main features of Infinitode 3 is its flexibility and support of mods, which would be absent in iOS and, again, won't allow the game to be completely multiplatform.
- iOS (through RoboVM) does not support OpenGL ES 3.0+, it only allows to use a very basic set of OpenGL ES 2.0. Also, Apple has discontinued the support of OpenGL and now forces everyone to use Metal, which means that graphics also work in a hacky way.
- I don't like Apple and don't want to support it in any way. They may sell some good hardware but I feel like I've spent too much money just to be able to make a game for them so that they can take another cut off the game's revenue. Apple is all about money, and I've been too naive to try and release a hobby project just to allow more people to play it. The fact is, if you want to develop for Apple devices, you have to spend money on their fees and buy their devices, which also means you'll have to get this money back somehow through your app. Just don't want to think about it.
- Apple forces to use its technologies that are not used by anyone else. Swift, Objective-C, Metal - I don't know and don't want to know any of that, it seems meaningless for me to learn something that is not used as a standard.
- The documentation is, well, lacking. XCode is overbloated. I don't like Apple's keyboard and hate their mouse. And there are many more reasons why the thought of getting rid of iOS makes me feel better.
If you are still reading, thank you - I needed someone to complain to. Anyways, the tl;dr; is - no Infinitode 3 for iOS, because it lacks many features and I don't like to develop for it.
The upcoming news
In the nearest articles, I'm going to describe some technical aspects of Infinitode 3 and explain how they work / why I've chosen to use them. I'll not describe the game design of Infinitode 3 nor any of its game-related features, there probably won't be many spoilers / early footages of the game. It will be just a long boring story of how someone has developed yet another game engine, because that's what I'm currently busy with.
If you have any suggestions or requiests for this blog, please write them down in the comments - I really need to know if anyone would be interested in such a content or will it be just a waste of my keyboard's hp.