Russia 1917: Future features

The November 2025 update on the new home page, the 21 enemy camps and the organisation of the artificial intelligence.

First screenshot of the new Russia 1917 home page
First screenshot of the new Russia 1917 home page

Here is a new update on the development of Russia 1917. November was particularly busy, with progress on the interface, historical content and artificial intelligence.

🌐 Home page update

The game’s home page has been reworked:

  • The buttons are now dynamic, making the interface feel more alive.
  • A new menu presents the features planned for future versions, helping visitors better follow the development of the project.

Second screenshot of the new Russia 1917 home page

⚔️ Adding the 21 enemy camps

The Bolsheviks will now have to face 21 opposing forces, reflecting the complexity of the Civil War and the foreign interventions.

Here is the full list:

  • The Germans
  • The North Americans (troops that arrived in Murmansk and Arkhangelsk)
  • The Belarusian bourgeois nationalists
  • The Finnish bourgeois nationalists
  • The Ukrainian bourgeois nationalists (separate from the Makhnovshchina)
  • The British (intervening in two different areas: northern Russia and the Caucasus)
  • The French (French troops landed in Odessa)
  • The Japanese (intervention in Khabarovsk)
  • The Czech Legion (which revolted in Omsk and sought to reach Vladivostok)
  • The Polish bourgeois nationalists
  • Denikin’s White armies
  • Kolchak’s White armies
  • Yudenich’s White armies
  • The Basmachi (in revolt in Kazakhstan)
  • The Kronstadt anarchists
  • The Makhnovshchina, the Ukrainian anarchists
  • The Greens (peasants opposed to the policy of “War Communism”)
  • The Balts (the bourgeoisie of Estonia, Lithuania and Latvia)
  • The forces that remained loyal to the Kerensky government

For gameplay reasons, the computer treats all these factions as “Whites”.

Historically, this brings together very different movements. For example, the Kronstadt anarchists and Kolchak’s troops are both identified as “White” and do not fight each other. This is certainly not entirely accurate historically, but the simplification keeps the gameplay readable and straightforward for the player.

Illustrations have also been added to visually distinguish all these forces.

Illustrations used to distinguish the enemy forces in Russia 1917

🧩 Internal structure: how do troops appear?

To manage the appearance and disappearance of units, we designed a large 85-row table representing every month of the Civil War.

Each row contains:

  • the new troops entering the game,
  • the troops that must disappear,
  • the associated historical events.

At the beginning of each month, the program reads this table and updates the situation.

But this table is not fixed.

It changes dynamically according to the player’s decisions.

✦ Example: Finnish independence

  • If the player accepts Finnish independence, as happened historically, the Germans intervene immediately to support the Finnish bourgeois forces.
  • If the player refuses, we can assume that the German intervention would have taken place later. In that case, the corresponding row in the table is moved to another date.

This system makes it possible to alter the historical chronology or create a new one while remaining simple and flexible.

🧠 Improvements to the “White” AI

The AI is now organised around four major functions, each with a specific role.

1️⃣ “Monthly decision” function

At the beginning of each month, the AI checks the dynamic table to determine:

  • which troops must appear,
  • which troops must be removed,
  • which events are activated.

2️⃣ “Information” function

The AI then analyses the overall situation:

  • total number of troops,
  • number of nearby allies,
  • number of nearby enemies,
  • controlled cities,
  • nearby allied cities,
  • position of the nearest Bolshevik unit,
  • nearest enemy or neutral city.

This stage creates a kind of “mental map” that allows the AIs to make coherent decisions.

3️⃣ “Action” function

Based on the information collected, the AI chooses a strategy:

  • attack an enemy unit,
  • attack a city,
  • or stay in place to defend.

A soldier, usually the one closest to the target, then receives a clear order.

Nationalist factions nevertheless have a limited area of operation to avoid absurd situations, such as Japanese troops appearing in Warsaw.

4️⃣ “Troop creation” function

The AI assesses whether it needs to reinforce its forces.

It then decides whether or not to create new units, taking into account:

  • the balance between allied and enemy forces,
  • an element of randomness to make its behaviour more human.

Dividing the system into several AIs also makes it possible to give each function a different update rate.

The information AI runs every second to provide a real-time update on nearby enemies.

The action AI runs less often because it requires more calculations and acts according to the context and its objectives.

For example, it can wait to see whether its previous action worked before starting a new one.

⚙️ Optimisation

The next step is to simplify and optimise these calculations to prevent slowdowns.

The goal is to find a balance between:

  • responsiveness,
  • calculation time,
  • believable AI behaviour.

If the AI reacted too quickly, it would send all its troops out in the very first second, making battles either far too difficult or too easy.

We are therefore working towards behaviour that feels more natural and, above all, more varied.

🤝 Community

A dedicated Discord has been created: “Marxist Games – Russia 1917”.

It will be used to collect your feedback, suggest ideas, test features and discuss the history of the Revolution and the Civil War.