Jeux programmables

À peine Notch lance-t-il qu’il travaille sur un nouveau titre que la nouvelle fait le tour des sites d’informations sur le jeu vidéo, le tour des forums. Buzz qui commence le 1er Avril pour se transformer en véritable annonce : Notch travaille sur un Elite like.

Des mots qui font rêver. Notch pour les uns, ne pouvant imaginer être déçus par le bac à sable le plus réussi de ces dernières années, Minecraft. Elite pour d’autres, qui se souviennent des heures passées dans les années 80 à explorer l’espace.

Mais ce qui intrigue finalement le plus, c’est ce petit plus : le vaisseau spatial que pilotera le joueur sera doté d’un véritable ordinateur de bord. Un vrai de vrai, qui se programme.

Sur la page officielle du jeu, c’est la ligne qui semble intéresser le plus de monde : Fully working computer system. Des spécifications sont même disponibles pour cet ordinateur qui est la base du scénario du jeu.

Et un peu plus tard, sur un wiki dédié à 0x10c, nous voilà avec toute une communauté autour de cet ordinateur virtuel. Un émulateur, des applications, des guides de programmation.

Je ne vois qu’une explication à cet engouement : programmer, c’est vraiment fun !

Programmer, c’est fun !

Pour peu que 0x10c ait autant de succès que Minecraft, ce sera toute une génération, voire deux ou trois, de programmeurs qui vont ouvrir de grands yeux derrières leurs indispensables lunettes. Quoi ? Notre hobby, métier ou passion qui nous a fait passer si longtemps pour des ours asociaux deviendrait un truc tendance ?

Après que musiciens et graphistes aient déjà rendu visibles nos codes et notre culture, ça va faire beaucoup.

Pourtant, cela a toujours été une évidence pour moi. Programmer est fun. Lorsque l’on en fait son métier, cela peut présenter certains côtés qui le sont moins, mais tout de même, c’est intrinsèquement fun.

Et maintenant, je pourrai le clamer ! Enfin, si la partie programmation de 0x10c se révèle être au centre du jeu et pas juste un accessoire. Nous verrons.

En attendant, allons voir chez les ancêtres si programmer n’a pas été depuis bien longtemps au coeur de certains jeux vidéo.

Odyssey

La nouvelle de 0x10c m’a immédiatement ramené à la première moitié des années 80, vers un jeu qui m’a marqué et qui me revient souvent en mémoire : Robot Odyssey.

Robot Odyssey

Dans Robot Odyssey, le joueur doit sortir d’un labyrinthe posant des énigmes. Gameplay vieux comme le monde du jeu vidéo, thème vieux comme l’humanité, et toujours d’actualité. L’originalité de celui-ci était que l’on ne pouvait traverser certaines pièces que grâce à un robot qu’il fallait préalablement programmer.

Une fois le robot dans la pièce, plus de moyen d’agir sur lui. Soit le programme est bon, soit il ne l’est pas.

Dans Robot Odyssey, les robots ne sont pas programmés au travers d’un langage de programmation, mais à travers des circuits digitaux. Portes logiques, senseurs et acteurs. Cependant, il s’agit bien là d’un jeu de programmation.

Est-ce que Robot Odyssey est fun ? Assurément. Cependant, à l’époque, jouer sur ordinateur n’était pas vraiment l’activité du tout venant et posséder un ordinateur signifiait souvent savoir le programmer et nécessitait parfois de savoir manier le fer à souder.

La descendance

Robot Odyssey a marqué son époque et les suivantes, générant des jeux plus récents reprenant des principes similaires.

MindRover, par exemple reprend le principe et les pousse, y ajoutant aussi une interface en 3D. Ce jeu est bien moins connu que son ancêtre et pourrait montrer qu’en 2000, programmer des robots n’étaient plus aussi amusant. Ou bien, le monde du jeu vidéo ayant changé, le studio à la base de jeu n’avait tout simplement pas la visibilité ou l’impact nécessaire.

La contrainte comme élément de Gameplay

Dans le game design, il existe un élément classique pour rendre le jeu intéressant et le diversifier : jouer sur les contraintes.

Dans les jeux de programmation, les contraintes peuvent être multiples : éléments de programmation disponibles, difficulté à maîtriser une machine exotique, ressources limitées en capacité du processeur ou de la mémoire.

On retrouve ces contraintes dans les jeux de combats de robots ou de tanks, dans lesquels des programmes contrôlant des robots entrent en compétition, souvent pour rester le seul survivant (RoboCode), parfois pour réussir des missions (COLOBOT) comme sortir d’un labyrinthe, récupérer certains objets,… ou simuler des processus d’évolution d’organismes digitaux (Core War).

Colobot

La limite est floue avec les concours de programmation, comme le GoogleAIChallenge où des programmeurs du monde entier se mesurent à travers des programmes d’intelligence artificiel participant à un jeu.

Au delà du jeu vidéo

Les jeux de combats de robots informatisés sont directement tirés des concours de robotique, réels, mais ces jeux ont aussi inspiré un système non digital : le jeu de plateau.

Programmer un système se trouve en effet dans certains jeux de plateau comme mécanisme de jeu. RoboRally est directement inspiré de ces jeux : les joueurs ont à disposition un nombre de cartes dépendant de l’état du robot et leur permettant de bouger en avant, en arrière et de tourner sur lui-même. Le but du jeu est de rejoindre certains points sur une carte découpée en cases en abîmant au passage les autres robots et en évitant de tomber dans des trous.

Si les robots ne vous tentent pas, Asteroyds reprend le principe sur une carte à hexagones pour un jeu un peu bac à sable où les joueurs dirigent leur vaisseau dans un temps très limité à partir d’un petit tableau de bord de programmation.

Si pour ces deux jeux, le mécanisme de programmation est très proche du thème, il est aussi trouvable dans des jeux différents. Dans Wings Of War, les joueurs manipulent des avions en pleine première ou seconde guerre mondiale. Les mouvements sont choisis par les joueurs à partir de cartes qui sont ensuite dévoilées et résolues.

De manière générale, la programmation dans les jeux de plateau est utilisée pour simuler la simultanéités des actions des joueurs et l’inertie de ce qui est contrôlé. On est donc loin d’une programmation de logiciel, avec ses conditions.

Programmer pour jouer

Programmer est donc un moyen de jouer et il existe un public pour cela. Et on n’est pas dans le Uno ici, ce genre de jeu nécessite de la réflexion, de l’analyse voire de l’inspiration.

Une belle mise en abîme pourrait être illustrée par ce site qui recense la liste des jeux dont la programmation est le but : à la vue du nombre de ces jeux, on pourrait se demander si programmer des jeux de programmation n’est en soi-même pas le plus amusant.

Programmer pour jouer, et jouer à programmer, c’est peut-être aussi une méthode d’aborder la programmation avec un but ludique, en abordant la nécessaire réflexion à mettre en place, les problèmes à résoudre, la logique à tenir.

Et ces jeux comme bon nombre d’autres jeux, amènent à des activités de recherche et partage, de discussion et de défis.

Peut-être qu’à la sortie de 0x10C, s’il tient ses promesses d’Elite-like, vous serez attiré par tel ou tel aspect du jeu. J’ai hâte, moi, de savoir ce que va donner la composante programmation.

Et en attendant, j’ai bien envie de jouer à Robot Odyssey.

Share Button

Laisser un commentaire