Russia 1917 : L’optimisation a un caractère de classe !

Optimisation mobile, accessibilité matérielle, allocation des ressources, entretien avec Gameaton et présence de Marxist Games à ManiFiesta.

Graphique montrant une anomalie
Graphique montrant une anomalie

Bonjour à tous,

Ce mois de juillet a été très productif — vive les vacances, me direz-vous.

Vous avez déjà pu voir que j’ai mis en place un nouveau site web et que le site est passé de MarxistsGames.org à MarxistGames.org.

L’optimisation d’un jeu a un caractère de classe

J’ai beaucoup travaillé sur l’optimisation du jeu et je trouve que c’est vraiment important de vous en parler.

Russia 1917 doit tourner sur mobile, mais dans la pratique, je le teste surtout sur mon ordinateur personnel. Après chaque nouvelle fonctionnalité ajoutée, je ne faisais donc pas systématiquement de test sur mobile.

Et puis, lors d’un test, j’ai découvert soudain un ralentissement. Au lieu d’aller à une vitesse constante, les unités accéléraient et ralentissaient en permanence. C’est le signe que l’ordinateur devait effectuer trop de calculs et que cela ralentissait le jeu. Évidemment, le problème est encore plus visible sur un smartphone, vu sa puissance de calcul plus limitée.

Il faut savoir que je pratique beaucoup le timeslicing. C’est une technique qui consiste à demander à l’ordinateur de répartir ses calculs sur plusieurs images plutôt que de tout calculer sur une seule.

Par exemple, j’ai une fonction qui vérifie si une unité ennemie occupe une ville bolchevique afin de la capturer. Cette fonction n’a pas forcément besoin d’être vérifiée 60 fois par seconde.

J’ai donc configuré ce contrôle pour qu’il ne se fasse pas à chaque nouvelle image — donc 60 fois par seconde — mais seulement une fois toutes les 60 images, soit environ une fois par seconde.

Le joueur n’y voit pratiquement aucune différence, mais le smartphone effectue ainsi 60 fois moins de calculs pour cette fonction.

Le problème que j’avais était que l’un des calculs exécutés sur une des images du jeu était trop lourd. Toutes les secondes, j’avais donc un ralentissement du jeu. La répartition des calculs n’était pas correcte : une seule image nécessitait beaucoup trop de ressources, ce qui provoquait cet effet de ralentissement régulier.

Graphique montrant une anomalie dans la répartition des calculs

Graphique de l’anomalie dans la répartition des calculs.

J’ai finalement résolu le problème.

Ce qui est intéressant dans cette démarche, c’est que j’ai construit directement dans le jeu un graphique permettant de suivre la vitesse des FPS (Frames Per Second, c’est-à-dire le nombre d’images par seconde).

J’ai également créé des boutons qui me permettent de désactiver certains processus directement pendant que le jeu tourne, afin d’observer l’impact de chaque calcul sur le nombre de FPS.

Capture du jeu avec le compteur de FPS visible en bas à droite

Image du graphique avec, en bas à droite, le compteur de FPS.

Boutons permettant de désactiver certaines fonctions pendant l’exécution du jeu

Boutons permettant de désactiver en temps réel certaines fonctions qui prennent beaucoup de temps de calcul.

Dans le développement de jeux vidéo, on conseille généralement de développer d’abord un jeu sur PC, puis de l’optimiser ensuite pour une version mobile.

Dans mon cas, puisque je souhaite créer directement un jeu pour mobile, je dois effectuer cette optimisation de manière continue.

Cette démarche d’optimisation — et notamment la création de mon graphique — m’a poussé à tester le jeu sur les smartphones de différentes personnes.

J’ai ainsi pu le tester sur le téléphone de ma mère, qui n’est pas une digital native et qui possède un smartphone relativement peu puissant.

Lors de ce test, j’ai découvert que l’image de fond du jeu, c’est-à-dire la carte principale, ne s’affichait tout simplement pas, ce qui cassait complètement la jouabilité du jeu.

Sur mon smartphone de test, je pouvais afficher une image de 6 000 pixels de côté. Ce n’était pas le cas sur celui de ma mère, qui n’acceptait que des images de 2 048 pixels de côté.

J’ai donc dû découper ma grande image en plusieurs images plus petites afin qu’elle puisse être prise en charge correctement sur son smartphone.

Les tests réalisés sur différentes machines m’ont donné les résultats suivants :

Prix du smartphone à l’achatFPS moyen dans le jeuJouable
255 € — Galaxy A3650 FPSOui
100 € — Galaxy A4130 FPSOui
20 € — iPhone 6S10 FPSNon

Ce tableau montre bien une chose : si je veux rendre le jeu le plus accessible possible, je ne peux pas attendre du joueur qu’il possède un smartphone coûtant plus de 250 €.

Mon ambition n’est pas de toucher uniquement des hardcore gamers qui vont investir dans des smartphones puissants et chers, mais au contraire des personnes qui ont peut-être peu l’occasion de jouer aux jeux vidéo, mais qui pourraient être intéressées par une approche marxiste.

Nous ne sommes donc pas forcément en contact avec un public qui va investir beaucoup d’argent dans un téléphone très puissant.

Si je veux rendre le jeu le plus accessible possible, je ne dois donc pas faire de la possession d’un smartphone à plus de 100 € une condition pour pouvoir jouer. Aujourd’hui, sur ce point, l’objectif est atteint.

Mais si je veux permettre à des militants de gauche vivant dans les pays du Sud de jouer également à Russia 1917, je dois réussir à faire fonctionner correctement le jeu sur des smartphones à moins de 20 €. Et ce n’est pas encore le cas aujourd’hui.

On le voit : rendre accessible la culture marxiste à travers le jeu vidéo nécessite aussi un véritable travail technique.

Si je veux toucher la classe ouvrière ou les peuples du Sud, il faut investir du temps dans l’optimisation.

Le capitalisme a tendance à laisser des jeux non optimisés sortir sur le marché, ce qui va inciter les joueurs à investir dans des machines plus puissantes alors que ce n’est vraiment pas nécessaire techniquement.

Bref, l’optimisation d’un jeu vidéo influence son accessibilité, donc on peut dire que l’optimisation d’un jeu a un caractère de classe.

Quelle est la place de Russia 1917 dans le paysage vidéoludique ?

C’est la question que m’a posée le site Gameaton.com :

« Où se situe Russia 1917 vis-à-vis des autres jeux et quelles sont ses influences ? »

Une question à laquelle j’ai eu le plaisir de répondre.

Homepage du site Gameaton présentant l’article consacré à Russia 1917

Homepage du site Gameaton, cliquez sur l’image pour lire l’article.

En résumé, j’ai beaucoup insisté sur l’aspect politique du jeu et sur les choix que je fais pour rendre ces choix concrets.

Russia 1917 ne propose pas seulement au joueur de prendre une décision politique — par exemple décréter la journée de huit heures et en observer les conséquences — mais lui impose également d’y consacrer des moyens.

Une mesure politique sans aucun fonctionnaire chargé de vérifier son application reste seulement un vœu pieux.

J’ai également insisté sur la question du bilan politique de nos décisions : il ne suffit pas de décider, il faut ensuite observer les conséquences des choix effectués.

L’article complet est à lire ici.

Le menu d’allocation des ressources

Au niveau de l’avancement du jeu et des nouvelles fonctionnalités, j’ai réalisé un nouveau menu : l’allocation des ressources.

Menu d’allocation des ressources de Russia 1917

Image du jeu montrant le menu d’allocations des ressources, en gris les postes à pourvoir, en rouge les postes pourvus.

C’est d’ailleurs probablement la nouvelle fonctionnalité la plus importante sur laquelle j’ai travaillé récemment.

Dès le début du jeu, le joueur dispose d’une quinzaine de ministères — appelés à l’époque commissariats du peuple — dont les besoins en effectifs augmentent progressivement.

Ces besoins augmentent lorsque de nouvelles décisions politiques sont appliquées, mais aussi en fonction de la situation stratégique.

Par exemple, plus le nombre de villes devenant bolcheviques augmente, plus il faut de fonctionnaires pour administrer ces villes.

De la même manière, si l’on décrète une nouvelle politique d’enseignement, il faut lui allouer des moyens humains. Ces personnes ne sont alors plus disponibles ailleurs, notamment pour combattre.

La simplicité du jeu m’oblige cependant à utiliser un système très abstrait : des points rouges représentent aussi bien les troupes présentes sur le terrain que les corps de fonctionnaires travaillant dans les différents ministères.

Déplacer des troupes vers les ministères, et inversement, peut donner l’impression que la Russie soviétique était à ce moment-là une immense caserne où tout le monde était militaire. Ce n’est pas un choix idéal et je vais encore chercher comment atténuer cette impression. Mais la simplicité du jeu est aussi à ce prix.

Marxist Games sera à ManiFiesta

Ce dimanche 13 septembre, le studio indépendant Marxist Games sera présent au festival ManiFiesta, à Ostende, en Belgique.

Affiche du festival ManiFiesta 2026

Affiche du festival ManiFiesta.

ManiFiesta est un grand rassemblement qui réunit une large partie de la gauche en Belgique, avec des concerts, des débats, des fêtes et des expositions. On peut notamment le comparer, dans son esprit, à la Fête de l’Humanité en France.

Nous serons présents avec un stand afin de présenter le studio et le jeu Russia 1917.

Concrètement, vous pourrez nous retrouver à l’intérieur du bâtiment central, près de la foire aux livres.

Plus d’informations : www.manifiesta.be

À bientôt,

Antoine