INFINITUM: BATTLE FOR EUROPE (2014-CURRENT)
Infinitum: Battle for Europe is a cross-genre strategy game where up to 10,000 players battle for the old continent in real-time. The map was based on the actual geography and contained 15,000 existing European cities. Using real Europe instead of a fantasy created much stronger player attachment. The gameplay was a mix of town building and real-time battles. Players could construct factories, manage resource flows and upgrades of their city. The industry then supports field units that were deployed on the map to fight. The Combat actually required a lot of strategy and tactics. The best game experience came from playing as a member of an alliance. Giant battles with tens of players coordinating online were not uncommon. Armies could be shared and controlled directly by other players, so it’s was not necessary to be online all the time. Think of Settlers meet Civilization meets Dune meets Defcon.
As a successor to first Infinitum game, Infinitum: Battle for Europe took the concept of the first game to a next level. The next level being represented by whole Europe, not just Czechia as a battleground.
One of the biggest changes and main features was an AI opponent, the GSA. A whole faction led by computer battling all the players on the whole map at once. GSA stands for Global Security Agency, a paramilitary group which seizes power in Europe after a global war. GSA had its bases scattered over the whole map, every capital in current Europe being one. With a super fort on Island. Conquering Island super fort meant a victory for the alliance.
GSA AI had many interesting features. For instance it could move swarms of units over the whole map. It would gather forces for a few hours before actually attacking a fort. This was triggered by a fort being taken from GSA by players. GSA would then gather more units from forts over the whole map, bring them to a rally point and cleverly attack the fort in question. This lead a to a firm belief of some players, that GSA is being actively steered by administrators in order to attack certain alliances. Of course it was just a game of luck, since GSA selects targets randomly (tries not to attack one target too often).
The whole game was completely rewritten and redesigned. City building got a completely new graphics. Also the material system introduced Beryllium, a rare resource that worked as a premium resource. The system of materials and resources distinguished between material being wood, concrete etc. and resources being energy or housing capacity. This required players to create more balanced cities, though still allowed for creation of very different cities by players.
The new map also allowed fortification of units, so players could create strongholds on various area of maps. What it did not allow for was a destruction of other player cities. Destruction of cities proved to be a very limiting factor to the first version of the game. Though many players loved it, many players were forced out of the game. This is obviously not a very good thing from the perspective of a game company. So this whole feature was removed and players had a opt-in fights instead.
In order to allow for faster movement, aerial deploys and evacuations were also introduced. This meant that in few minutes a small skirmish could became a huge battle with a large percentage of players involved.
This version of Infinitum also introduced a mission system guiding newbies from the start and skirmish system with small maps and automatic opponents.
The monetization of the game included selling premium advisers which enabled premium functions. The whole premium was later made free, with only purchase of more materials and pre-build cities being paid for.
Infinitum: Battle for Europe was completely redesigned. Many improvements have been made in the design of the database and core loops, where all possible interlocking was eliminated. Now every loop could run separately while still in sync with the whole system. This allowed for much faster response times from the whole system, no lags in bigger battles and far less demanding hardware to run on.
One of the biggest changes was the implementation of database joins on the client. First version of Infinitum sent a complete result set with all relevant data already joined. So if a client asked for data about a particular city, server would join all the relevant tables, filter the result and send one object containing all the data. This while being the normal approach, limits the bandwidth required by the server, but it’s also very CPU intensive on the server.
The new implementation utilized a massive code generation component made for Infinitum. For getting the city data, client would ask several different requests. The server would reply with much less complex data, only filtered by the security settings (I can’t see you city, etc.). Joining the data was done on the client computer using his CPU. This removed much of the computations stress from the server and allowed for a more stable operation. It has also lowered the costs of the server. Obviously, it’s heavier on traffic, but traffic is cheap, where servers aren’t.
The whole data structure on the client computer was designed to be smarter and self updating. Client used combination of polling in correct intervals and push notifications for some more random events. Every client had it’s own representation of the important data of the game and so client seemed to have all the information available instantly. Which was obviously not true, since every client just had it’s own simulation of the server data, which was just synced in a correct order at the right time.
This whole framework allowed the game to run from just one server per world, where the server was a only a better office machine. This made new Infinitum much less costly to operate and also made it more green. 😉
The system runs on a custom made blade solution utilizing normal microATX boards instead of costly blade solutions from big manufacturers.
Infinitum: Battle for Europe is available at www.infinitumgame.com