Hello everyone,
This month of July was very productive — long live the holidays, you might say.
You may already have noticed that I launched a new website and that the site moved from MarxistsGames.org to MarxistGames.org.
Game optimization has a class character
I have worked a great deal on optimizing the game, and I think it is really important to talk about it.
Russia 1917 has to run on mobile, but in practice I mainly test it on my personal computer. So after adding each new feature, I was not systematically testing the game on mobile.
Then, during one test, I suddenly discovered a slowdown. Instead of moving at a constant speed, the units kept accelerating and slowing down. This is a sign that the computer has too many calculations to perform and that the game is being slowed down. Obviously, the problem is even more visible on a smartphone because its computing power is more limited.
I use timeslicing a lot. This is a technique that asks the computer to spread calculations across several frames instead of calculating everything in a single frame.
For example, I have a function that checks whether an enemy unit is occupying a Bolshevik city so that it can capture it. This function does not necessarily need to be checked 60 times per second.
So I configured this check not to run on every new frame — 60 times per second — but only once every 60 frames, or roughly once per second.
The player notices almost no difference, but the smartphone performs 60 times fewer calculations for this function.
The problem I had was that one of the calculations executed on one of the game’s frames was too heavy. Every second, the game therefore slowed down. The distribution of calculations was incorrect: a single frame required far too many resources, producing this regular slowdown effect.
Graph of the anomaly in the distribution of calculations.
I eventually solved the problem.
What is interesting about this approach is that I built a graph directly into the game to monitor FPS speed (Frames Per Second, meaning the number of images displayed each second).
I also created buttons that allow me to disable certain processes directly while the game is running, so that I can observe the impact of each calculation on the FPS count.
Image of the graph with the FPS counter in the bottom right.
Buttons used to disable in real time certain functions that require a lot of processing time.
In video game development, people generally recommend developing a game on PC first and then optimizing it for a mobile version.
In my case, because I want to create a mobile game from the outset, I have to carry out this optimization continuously.
This optimization process — and in particular the creation of my graph — encouraged me to test the game on different people’s smartphones.
I was therefore able to test it on my mother’s phone. She is not a digital native and owns a relatively low-powered smartphone.
During this test, I discovered that the game’s background image — the main map — simply did not display at all, which completely broke the game.
On my test smartphone, I could display an image 6,000 pixels wide and high. That was not the case on my mother’s phone, which only accepted images up to 2,048 pixels on a side.
So I had to split my large image into several smaller images so that her smartphone could handle them correctly.
Tests carried out on different devices produced the following results:
| Smartphone purchase price | Average FPS in the game | Playable |
|---|---|---|
| €255 — Galaxy A36 | 50 FPS | Yes |
| €100 — Galaxy A41 | 30 FPS | Yes |
| €20 — iPhone 6S | 10 FPS | No |
This table clearly shows one thing: if I want to make the game as accessible as possible, I cannot expect the player to own a smartphone costing more than €250.
My ambition is not to reach only hardcore gamers who will invest in powerful and expensive smartphones, but on the contrary people who may rarely play video games yet could be interested in a Marxist approach.
We are therefore not necessarily dealing with an audience that will invest a lot of money in a very powerful phone.
If I want to make the game as accessible as possible, owning a smartphone worth more than €100 must not be a condition for playing. Today, that objective has been achieved.
But if I also want left-wing activists living in countries of the Global South to be able to play Russia 1917, I need to make the game work properly on smartphones costing less than €20. That is not yet the case today.
As we can see, making Marxist culture accessible through video games also requires real technical work.
If I want to reach the working class or peoples of the Global South, I need to invest time in optimization.
Capitalism tends to allow poorly optimized games onto the market, which encourages players to invest in more powerful machines even when this is not technically necessary.
In short, the optimization of a video game affects its accessibility, so we can say that game optimization has a class character.
Where does Russia 1917 fit into the video game landscape?
That is the question the website Gameaton.com asked me:
“Where does Russia 1917 stand in relation to other games, and what are its influences?”
A question I was delighted to answer.
Gameaton homepage. Click the image to read the article.
In short, I placed a great deal of emphasis on the political dimension of the game and on the choices I make to give those political decisions concrete meaning.
Russia 1917 does not merely ask the player to make a political decision — for example, decreeing the eight-hour working day and observing the consequences — but also requires them to devote resources to implementing it.
A political measure without any civil servant responsible for checking its implementation remains nothing more than a pious wish.
I also stressed the importance of assessing the political consequences of our decisions: it is not enough to decide; we then have to observe the consequences of the choices that were made.
The resource allocation menu
In terms of development progress and new features, I created a new menu: resource allocation.
Image from the game showing the resource allocation menu: vacant positions are shown in grey and filled positions in red.
This is probably the most important new feature I have worked on recently.
From the beginning of the game, the player has around fifteen ministries — called people’s commissariats at the time — whose staffing needs gradually increase.
These needs grow when new political decisions are implemented, but also according to the strategic situation.
For example, the more cities become Bolshevik, the more civil servants are needed to administer them.
Likewise, if a new education policy is decreed, human resources have to be assigned to it. Those people are then no longer available elsewhere, particularly for fighting.
The simplicity of the game nevertheless forces me to use a very abstract system: red points represent both troops on the battlefield and groups of civil servants working in the different ministries.
Moving troops into the ministries, and vice versa, can give the impression that Soviet Russia at that time was one enormous barracks in which everyone was a soldier. It is not an ideal choice, and I will continue looking for ways to reduce that impression. But the simplicity of the game also comes at this price.
Marxist Games will be at ManiFiesta
This Sunday, September 13, the independent studio Marxist Games will be present at the ManiFiesta festival in Ostend, Belgium.

ManiFiesta festival poster.
ManiFiesta is a major gathering that brings together a large part of the Belgian left, with concerts, debates, parties and exhibitions. In spirit, it can notably be compared with France’s Fête de l’Humanité.
We will be there with a stand to present the studio and the game Russia 1917.
You will be able to find us inside the central building, near the book fair.
More information: www.manifiesta.be
See you soon,
Antoine