Infinitum was Allodium’s first online game released in 2010. It combined online battles and town building in one strategy game which is still pretty rare even today.
The game featured online map that was created using real geo data of Czech Republic and contained over 8,000 cities. Every city was a possible base of operations where players could build as much as 30 different buildings and produce armies.
Armies then moved directly on the map asi you might know from desktop RTS games. Cities could be occupied and stolen and since every player could own as many cities as he or she was able to defend, some players ruled quite impressive realms.
This concept proved that realistic map creates much stronger player attachment then a fantastic one.
Since units were actually shooting at each other on the map and there was virtually no limit to the size of skirmishes, battles between alliances were quite impressive. They took mostly form of Czechia fighting Moravia, two parts of Czech Republic.
On the other hand, this proved to be a flaw in the design of the game. The possibility to occupy and steal a city after winning over it’s defenders lead to a kind of a trench warfare, because both parties were scared of the big battle. One run of the server took as long as 4 months, while the super battle mostly happened near the end of this period. Both armies would meet on the battlefield presenting units built over the course of several months. Mayhem that happened was something to remember. But utterly led to a defeat of one side and then to a pillaging campaign of the other party, so the enemy would never rise again. This also meant that one party virtually quit playing, since they lost everything. This was probably too hardcore, but some people seriously loved the concept.
Other features of the game included automatic diplomacy system integrated with online forum and many more minor tweaks over games like Travian, which was definitely an inspiration at the time. One example being a global map, which showed all units in the world, so you didn’t have to wander the map in order to find enemies.
Game inspired massive meta gaming, with alliances forming 24/7 patrol shifts against surprise night attacks, drafting multi-page contracts, bribery, betrayal and meetups where alliances met in real life.
The game was monetized via premium payments for some additional features like global map etc.
Since Allodium team came from business side of IT, the game engine was build over a proven architecture for business systems. At the center was a MSSQL server with many procedures written in TSQL.
The game real-time nature was simulated by using a C# loops which loaded and pushed data back into the database. The loop would select state of some cities, calculate the progress and push the changes back to the database. This is where the first database optimization techniques were used to make things more smooth.
Frontend was written in Adobe Flash using mix of normal Flash and Adobe Flex. It used polling to load data in AMF from the server. This is also where the code generation came into use, since AMF was very slow with reflection of classes from MSSQL resultsets. So a custom workaround was developed which resulted in more than a 1000 times faster load time.
Another interesting feature that Allodium used on the frontend was a graph based memory cache to massively speed up selection of data. Since Infinitum used mostly the server side to make joins on tables (second version did this on the client side) there have been some speed issues. They could result in a possible database overload when many people looked on the same place on the map. So the memory graph cache was introduced which was constantly updated from the database. Clients would not ask database, but instead the cache. Every object had direct references to every other related object (city to its units, owner etc.), so getting the data quickly was very easy. This was also a perfect place to use a code generators, since the whole cache was created automatically and automatically allowed the use of the data on the client by flash developers.
This feature has definitely a place in many modern systems, which struggle under the load on their single point of failure, the database. It’s a fine example of a technical skill of Allodium engineers team.
The game was live for three years before Allodium discontinued it and released a it’s successor Infinitum: Battle for Europe.