Entretien avec Romain Bignon

Romain Bignon, plus connu sur le net sous le pseudonyme « Progs », est un jeune développeur qui s’intéresse au mouvement open source, il est aussi l’auteur du jeu libre de stratégie en tour par tour du nom de Men are Ants. Il a accepté de répondre à nos questions.



Jeuvinux : Bonjour Progs, tu es interviewé aujourd’hui car tu es le créateur du jeu de stratégie Men Are Ants. Peux tu te présenter brièvement et présenter ton jeu ?

Progs : Bonjour. Je me nomme Romain Bignon, j’ai 18 ans et suis français. Je développe depuis de nombreuses années. Men Are Ants est né il y a bientôt un an et demi (début 2006), à partir d’une idée d’un copain et de moi-même qu’on avait eue en cours (à l’origine on y jouait sur papier). L’idée de le programmer m’est venue et a abouti à ce qu’il est aujourd’hui.

C’est un jeu de stratégie tour à tour simultané multijoueur. Une partie se joue sur une carte, différents types d’unités sont disponibles pour conquérir les territoires neutres, puis pour combattre et enfin vaincre les ennemis. Ce jeu se veut fun, avec un humour qui se veut plus ou moins présent, mais souffre d’une qualité graphique médiocre. Le jeu est axé réseau principalement, même si des missions (enfin une seule pour le moment) sont disponibles. Il existe actuellement je crois cinq serveurs de jeu.

Jeuvinux : Tu as choisi de coder toi-même le moteur de ton jeu, n’as-tu pas trouvé de moteur 2d qui répondent à tes attentes ?

Progs : À vrai dire je n’avais pas songé à cela. J’aime programmer mais également apprendre à faire de nouvelles choses. On peut considérer que c’est réinventer la roue, mais cela a été (et est toujours) une excellente expérience dans la programmation de jeu avec la bibliothèque graphique SDL. Cela m’a permis par exemple de coder mon propre système de widgets, ce qui fut très intéressant et très enrichissant.

Bien sûr je reconnais tout à fait l’utilité de moteurs réutilisables, et évidemment devoir faire le moteur graphique du jeu moi-même me fit passer plus de temps, mais ce fut encore une fois très enrichissant.

Jeuvinux : As-tu d’autres projets hormis Men Are Ants ?

Progs : Je m’occupais jusqu’à peu de projets pour le réseau IRC IRCube, SCoderz et IRCoderz, ainsi que Gunther, un robot IRC modulaire créé pour ce même réseau. Depuis je fais un peu de maintenance de code sur IRCoderz et Gunther, mais je ne suis plus vraiment actif, ayant quitté l’équipe d’IRCube.

Par ailleurs, j’ai accepté il y a quelques jours une proposition pour participer au développement du jeu Time Breach. Je ne suis pas encore actif dessus, mais je ne vais pas tarder à m’y atteler. C’est un jeu 3D, ce qui me changera un peu de Men Are Ants. Ceci ne veut bien évidemment pas dire que je m’occuperai moins de Men Are Ants, bien au contraire ! Le projet ne fait que débuter :)

Mais à part ça, aujourd’hui même, je n’ai que Men Are Ants comme projet où je suis actif.

Jeuvinux : Qu’elles sont les raisons qui t’ont incité à faire de Men Are Ants un logiciel libre ?

Progs : J’utilise depuis de nombreuses années un OS libre, des logiciels libres (le plus possible), et tous mes projets ont toujours été libres.

Pourquoi ? Parce que je considère que mon code n’est pas ma propriété, je souhaite le partager pour en faire bénéficier ceux qui, comme moi avant et même aujourd’hui, s’inspirent de codes existants pour implémenter leurs projets. D’ailleurs pour Men Are Ants je me suis documenté en regardant le code source de l’excellent jeu libre Wormux, pour apprendre à utiliser SDL par exemple.

La communauté du libre est un énorme potentiel ou tout est partage, et je suis fier de contribuer et je trouve naturel pour moi de faire du code libre. En plus de ça, ça permet à des développeurs d’écrire des patchs et de contribuer au jeu.

J’ai d’ailleurs reçu quelques patchs de plusieurs personnes, que ça soit pour porter le code pour Mac OS X ou pour l’ajout de fonctionnalités. En plus de ça, je suis assez fier que mon code soit lu et amélioré par d’autres personnes.

Enfin, cela permet à des personnes de s’intéresser au projet, de commencer à contribuer et à devenir développeur dessus. Pour le moment ça n’a pas été jusque-là avec Men Are Ants, mais je suis toujours ouvert pour de l’aide.

Jeuvinux : As-tu des idées d’amélioration pour une prochaine version de MenAreAnts ?

Progs : Depuis quelques mois j’ai misé principalement sur les restructurations de code, sur l’aspect réseau (notamment avec le passage en janvier d’un serveur unique à un réseau de serveurs par le biais d’un meta serveur), et bien sur sur les corrections de bugs. Le développement des unités a été ralenti par le fait que ça me faisait mal au coeur de devoir dessiner à l’arrache celles-ci.

Dans les prochains mois je pense que je vais surtout justement développer le nombre d’unités, accroître la jouabilité et la facilité de prise en main. Ceci va être aidé par le fait que, grâce à de récentes propositions de contributions graphiques, et grâce à Jeuvinux, je vais pouvoir être aidé au niveau des dessins.

J’ai également d’autres idées plus spécifiques, comme l’ajout d’un système de missions avancé (avec scripting), ce qui permettra au passage de faire une mission tutoriel permettant l’amélioration de la prise en main du joueur, qui est, après l’aspect graphique, l’un des principaux défauts du jeu.

Concernant les unités, on avait déjà réfléchi à un grand nombre d’unités relativement drôles (je le rappelle, ce jeu tente en plus d’être stratégique d’être fun à jouer), et les implémenter (et surtout les utiliser au final) sera très intéressant.

La difficulté principale réside dans l’équilibrage. Bien qu’il n’y ait pas de factions totalement différentes, il faut faire en sorte que toute unité ait un rôle. Actuellement malheureusement, l’utilisation des armées et des chars est bien plus favorisée par rapport aux unités exotiques comme l’avion, le train ou même le lance-missile.

Par ailleurs, j’aimerais redévelopper l’IA pour la rendre plus intelligente et plus facilement extensible.

Jeuvinux : Depuis les débuts de MenAreAnts, quelles ont été les principales difficultés que tu as rencontrées ?

Progs : La difficulté principale a bien évidemment été de développer sans avoir de véritable graphiste à mes côtés pour suivre. Les graphismes sont réalisés par un copain de lycée qui a commencé avec MS Paint et qui s’est amélioré depuis en utilisant The Gimp, mais qui bien sûr n’atteint pas un niveau extraordinaire. D’autant plus que depuis novembre il n’a plus vraiment le temps de dessiner, ce qui explique qu’à part mes propres dessins (qui sont incroyablement laids), il n’y a pas eu de nouveaux graphismes (mis à part pour le menu, grâce à la contribution de yeKcim, graphiste de wormux, que je remercie beaucoup au passage).

Concernant le code, par rapport à SDL je n’ai pas vraiment eu de soucis. J’ai regardé au début un peu de docs, puis rapidement le code source de Wormux, qui m’a beaucoup appris. On n’est jamais entièrement callé sur un sujet et je suis bien sur en continuel apprentissage, et je regarde surtout les en-têtes de la SDL et la doc officielle lorsque je souhaite utiliser un aspect auquel je n’ai jamais eu affaire.

Le réseau n’a pas été un problème, car je développe des applications autour du réseau depuis plus de cinq ans.

Je dirais que la principale source de prise de tête fut l’IA, que je compte réécrire ainsi que je l’ai dit tout à l’heure. Mais de manière générale, je n’ai jamais vraiment eu à me plaindre des développements. C’est pour moi un plaisir continu, qui ne m’a jamais quitté.

Au final le plus chiant c’est bien sûr de débuguer :). Ceci étant plus complexe encore de part l’utilisation de threads dans le client. Le manque de contribution ne m’a jusqu’à peu pas gêné pour le développement, outre le fait que le développement collaboratif est encore plus intéressant (et permets d’avoir un code plus propre par la lecture de celui-ci par un tiers).

Maintenant je dois avouer que j’aimerais tout de même trouver quelqu’un pour m’aider, mais malheureusement je comprends que ça ne soit pas forcément accessible, mais suis prêt à passer du temps pour expliquer si jamais quelqu’un se sent motivé pour développer avec moi.

Concernant tout ce qui est multimédia, mis à part les graphismes, j’ai eu également à me heurter au fait qu’il n’est pas aisé de trouver des bruitages libres. En effet, je souhaitais également que le jeu possède une bande sonore, et jusqu’alors je n’ai trouvé que quelques sons. La musique libre est plus facile à trouver, à travers des sites mettant à disposition des oeuvres musicales libres, cependant je n’ai pas le temps de chercher, et je n’ai pas trop de goûts.

Par rapport à la voix, j’ai tout simplement demandé à ma copine de faire l’hôtesse, ce qui donne un côté un peu sexy au jeu :)

Jeuvinux : MenAreAnts est développé en C++ , pourquoi avoir choisi ce langage plutôt que d’autres, par exemple python ?

Progs : Le choix du C++ pour le serveur et le client est dû tout simplement au fait que j’apprenais le C++ depuis peu, et que je souhaitais mettre en application à travers un réel projet. Ceci a bien sûr causé de nombreuses erreurs initiales de conception, qui m’ont obligé à réécrire de nombreuses parties du code plus tard. Il doit malheureusement rester encore plusieurs erreurs de conception (notamment d’encapsulation), que je n’ai pas encore le courage de corriger, car cela nécessite une réécriture partielle du code, surtout lorsqu’il s’agit d’un objet ou d’un ensemble d’objets utilisé partout dans le code.

À l’époque je ne maîtrisais, autre que récemment le C++, uniquement le C et le pascal (comme langages candidats à la réalisation du jeu). Mon choix s’est tourné tout naturellement vers le langage que je venais d’apprendre, le C++.

Je me suis mis depuis plusieurs mois au python, et de par sa puissance, je me dis que ce langage aurait très bien pu être celui utilisé par Men Are Ants.

Je ne regrette cependant aucunement le choix du C++ pour le jeu, car au final je peux considérer que ma maîtrise de ce langage a considérablement augmenté entre le début de l’écriture du jeu et maintenant.

Cependant j’ai tout de même réussi à trouver un moyen d’appliquer mon apprentissage au Python par la réalisation d’un robot IRC en ce langage permettant d’afficher les créations et lancement de parties, ainsi que sur commande la liste des serveurs et des scores. :)

Jeuvinux : un petit mot de la fin ?
Progs : Je remercie Jeuvinux pour cette interview et pour l’aide qu’il souhaite apporter au projet. Men Are Ants est à l’origine un jeu « pour le fun », j’espère maintenir cet esprit, je pense qu’il a un potentiel, et j’espère qu’on arrivera à en faire quelque chose de bien.

Et merci lululaglue et sebastienb pour m’avoir posé les questions :)

Jeuvinux : Merci Progs d’avoir répondu à nos questions et bonne continuation pour ton jeu.

Brèves




Article sous GNU Free Documentation licence - Jeuxlinux.fr