Utopia – créez votre IA

By


Il existe des études qui montrent que jouer de longues heures aux jeux vidéo peut être nuisible, il y en a beaucoup d’autres qui prouvent le contraire.

Cliché jeu vidéo


Selon le site Hitek.fr :

Après avoir joué 30 minutes par jour à Mario Kart 64 durant deux mois, des jeunes âgés de 23 à 25 ans ont vu le nombre de leurs cellules grises augmenter considérablement dans certaines zones du cerveau responsables de la mémoire ou de la motricité des mains.

D’ailleurs certains jeux permettent de prendre des décisions plus rapidement et d’augmenter les réflexes.
Aujourd’hui, nous allons parler d’un énorme projet : UTOPIA.

Il s’agit d’un jeu, et comme pour Mario Kart 64, il va vous permettre d’aiguiser certains de vos sens : ceux de la programmation. En effet, Utopia va vous plonger au cœur de combats spatiaux. Vous prendrez la tête d’une armée de drones que vous aurez préalablement programmés. Ainsi, vous aurez la possibilité de dévoiler le véritable stratège qui est en vous en programmant le comportement de vos vaisseaux.

Image utilisateur
Voici l’équipe du jeu :

  • Jérôme « Lynix » Leclercq : le fondateur et dirigeant du projet
  • Grégoire « Chidie » Rinolfi : programmeur, conseille sur la création du jeu et aide à son élaboration.
  • Yannick « Shade Master » Copin : le programmeur/sounder, s’occupe des musiques du jeu ainsi que d’une partie du code du jeu.
  • Stéphane « R1kemwa » Feront : Graphiste 3D, se charge des bruitages ainsi que de faire des vaisseaux pour le jeu.
  • Damien « Angelis » Elsensohn : Graphiste 2D, s’est occupé du logo et de la charte graphique du site et du forum.

Démarré en 2009 par Lynix, alors âgé de 16 ans, Utopia est un projet de jeu vidéo de type MMO. Comme tous les MMO irréalistes démarrés par un débutant avec des étoiles dans les yeux, celui-ci embarquait un univers persistant capable de gérer des millions d’entités en temps réel. Utopia, est un jeu de programmation, orienté sur le développement, la gestion et les combats spatiaux.

Un jeu qui allie l’amusement et l’apprentissage de la programmation.

Le principe est le suivant : le joueur n’est pas en charge de l’action directe, mais de la programmation d’intelligences artificielles capables d’analyser et réagir aux situations auxquelles elles sont exposées, le cas typique : un combat de vaisseaux spatiaux.

Le joueur peut donc concevoir/assembler les vaisseaux de son choix, pour ensuite les programmer comme bon lui semble.

Il est également possible pour un joueur de piloter un vaisseau directement, pour prendre part à l’action, se retrouver au milieu d’un combat de plusieurs centaines de vaisseaux et remplir un rôle particulier.

Pour parvenir à la réalisation de ce projet Jérôme et son équipe ont créé une équipe communautaire. L’objectif est de rendre le projet totalement ouvert.

  • Le code source du jeu est intégralement disponible sur GitHub et les contributions sont encouragées.
  • Certaines idées du jeu sont disponibles sur un site ouvert où tout le monde peut proposer ce qu’il veut.
  • Un canal dédié au projet est disponible sur le Discord du groupe NaN (groupe de programmeurs).
  • Le développement du jeu est en grande partie diffusé en temps réel sur la plateforme Twitch.

Vous vous souvenez du moteur Nazara Engine ? Eh bien, sachez qu’Utopia a été développé avec ce fameux moteur ! Voici un exemple parfait de mise en application de cet excellent outil.


Interview de Lynix par Feldrise.

Bonjour Lynix. On s’est déjà vu la semaine passée concernant votre moteur de jeu Nazara. Aujourd’hui, nous allons parler de votre jeu, Utopia, qui utilise le moteur Nazara.

Pouvez-vous me parler un peu du principe du jeu (histoire, but, etc.) ?

Attention, pavé en approche.

C’est un jeu dont j’ai eu l’idée il y a presque dix ans, en 2009, avant même de savoir correctement programmer en C++.

J’avais envie de mélanger deux de mes passions, les jeux de stratégie/gestion dans un environnement spatial et la programmation, donnant donc un jeu de stratégie de programmation.

Le principe du jeu est de gérer un empire spatial, composé de diverses planètes, stations spatiales et surtout flottes de vaisseaux.

La subtilité intervient ici : chaque vaisseau de la flotte est programmé par le joueur pour accomplir les tâches de son choix.
On peut donc imaginer programmer un chasseur pour trouver un ennemi et tirer dessus, classique.

Mais pourquoi pas un petit vaisseau sur lequel on aurait placé un petit « rayon répulseur » programmé pour se placer devant un astéroïde et le pousser en direction des vaisseaux importants/peu mobiles de la flotte ennemie ?

Ou encore un petit vaisseau éclaireur allant repérer les points faibles des vaisseaux ennemis, transmettant la position à un vaisseau en retrait disposant d’un énorme canon qui tirerait dessus à distance ?

Ou encore un vaisseau suicidaire, doté de gros boucliers dont le but serait simplement de s’écraser sur le vaisseau-mère ennemi ?

Ou encore un vaisseau tentant de « hacker » les vaisseaux ennemis en injectant du code dans le leur ?

Etc.

L’intérêt d’Utopia c’est de laisser le joueur totalement libre de la façon dont il souhaite régler les conflits armés, mais aussi pourquoi pas d’ouvrir le jeu au commerce (et de devoir programmer des vaisseaux dans ce sens-là, etc.).

Bref, en résumé, Utopia c’est plein de possibilités

Oh d’accord, donc Utopia n’est pas récent ! Mais alors, pourquoi avoir fait l’Ungine plutôt qu’Utopia ? Est-ce que votre moteur n’était pas fait pour Utopia à la base ?

À la toute base si, j’ai commencé l’Ungine (et ensuite Nazara) pour pouvoir faire Utopia.

Comme tout développeur sensé j’avais commencé par utiliser des bibliothèques, mais j’étais frustré de ne pas comprendre leur fonctionnement interne et je me suis vite passionné pour le développement de moteurs de jeux… Et voilà pourquoi Utopia a neuf années de retard.

Et pourquoi faire des lives Twitch sur le développement du jeu ?

Alors ça c’est une idée totalement imprévue à la base. Je n’ai jamais été très friand du direct / streaming et je n’ai donc découvert réellement Twitch qu’en 2017.

J’ai découvert que certains passionnés streamaient du développement logiciel/de jeu vidéo, et mieux que ça, que ça intéressait du monde.

Du coup je me suis posé la question « pourquoi pas », j’ai lancé l’expérience assez vite et ça m’a beaucoup plu de pouvoir interagir avec le public, d’avoir une motivation pour avancer, d’échanger des idées, et de faire connaître le jeu au final.

Quels sont les avantages que t’a apportés le fait de diffuser en direct le développement ?

Je dirais que ça a été assez difficile de me restreindre à ne programmer que deux fois par semaine le jeu, mais ça m’oblige à avancer et ça c’est très important. J’ai une activité régulière où j’avance le jeu, où je programme et où je m’amuse à le faire en public.

En revanche certains algorithmes complexes sont embêtants à montrer en live, car chaque tâche que je planifie doit pouvoir se finir en quelques heures, et certaines tâches devraient prendre beaucoup plus que ça.

Mais ça m’a apporté pas mal de rigueur à ce niveau, dont je suis très content au final.

Est-ce que vous vous attendiez à un certain succès avec ces lives ?

À aucun moment. Je pensais avoir quelques personnes et finir un jour par en avoir régulièrement une dizaine. J’ai fini par en avoir trois ou quatre fois plus et j’en suis toujours très surpris. Il faut croire que les gens aiment entendre quelqu’un insulter son code pendant des heures.

Et pour finir, comment voyez vous l’avenir de Nazara et Utopia ?

Honnêtement aucune idée, je pense pousser les projets autant que je le pourrai, comme je le fais depuis le début. Tant mieux si ça finit par plaire à quelqu’un d’autre que moi.

Merci beaucoup de votre temps et de vos réponses, ce fut un grand plaisir de vous interviewer ! Et à bientôt sur Twitch.