Home > Minemotor | Projets > Minemotor, un mod pour Minecraft

Minemotor, un mod pour Minecraft

2 juillet 2011 2 Comments »

Minemotor Comme je vous le disais il y a quelque temps déjà, je mène actuellement un projet annexe à mon projet principal. Il s’agit de Minemotor, un mod pour le désormais bien connu Minecraft.

Minecart

Un véhicule, ÇA ?

De quoi s’agit-il ? Dans Minecraft, il n’existe pas de véhicules. Certes, il y a des chariots de mine, mais ils ne peuvent transporter qu’une personne et nécessitent des rails. Il y a aussi de petits baquets pouvant à peu près flotter, mais si fragiles qu’ils se brisent dès qu’ils touchent le moindre bloc. On peut donc, je crois, dire qu’il n’y a pas de véhicules dignes de ce nom en jeu.

Certains mods rajoutent pourtant des véhicules : il est possible d’explorer le ciel avec un biplan, ou de parcourir le monde à bicyclette. Mais là encore, j’ai une critique formuler. En effet, ces véhicules ne peuvent transporter que des personnes et pas des objets. Dans tous les cas, le joueur est donc limité par le véhicule proposé. Il ne peut pas créer sa propre invention dans un jeu qui est pourtant dédié à la liberté.

Me rendant compte de cette lacune, je me suis dit qu’il pourrait être intéressant de créer un mod qui permettrait au joueur de créer le véhicule qu’il désire à partir de blocs. Voilà ce que propose Minemotor : la possibilité de rendre n’importe quelle structure mobile en la dotant de moteurs.

Où en suis-je donc dans le développement ? J’ai d’ores et déjà publié une version du mod (la version Alpha 2). Comme son nom l’indique, elle comporte encore de nombreux bugs, et on est encore bien loin de la version finale du mod. Il manque de nombreuses fonctionnalités : le véhicule ne détecte pas les collisions, il est impossible de l’alimenter avec de la redstone, certains blocs ne peuvent pas être déplacés (les torches, les fours, les coffres, les tableaux…). Mais le principal est là : il est possible de créer un véhicule et de le déplacer. J’avance à un rythme qui me satisfait et je suis persuadé que je parviendrai à mener ce projet à bien.

Maintenant, si vous souhaitez en savoir davantage, voire installer le mod, je vous renvoie à la page consacrée au mod, sur la plateforme zProjets. Ce service gratuit dédié à la gestion de projets est bien plus pratique qu’une page de blog. C’est là-bas que vous pourrez vous tenir au courant du développement, consulter une foire aux questions, poser vos questions, etc.

Mais venons-en à ce qui m’intéresse réellement : ce que Minemotor m’a apporté au travers des obstacles rencontrés. Comme je vous l’ai dit, à l’origine, il s’agit d’un projet annexe. Comprendre par là peu important, et théoriquement, facile et court à réaliser. Je dis bien théoriquement. Au départ, je prévoyais de le réaliser en trois semaines. Quelle illusion ! En totalité, quand je l’aurai fini, j’y aurai passé quelques mois… Bien évidemment, c’était une erreur de ma part de croire que je pourrai le réaliser si vite. Il faut toujours multiplier au moins par trois le temps que l’on compte mettre pour créer un jeu. Du moins, quand on travaille avec mon rythme. :-°

Et dans le cas de Minemotor, les faits n’ont pas été arrangés par deux grandes difficultés :

Javacup

Je vous sers une tasse de Java ?

Tout d’abord, j’ai plongé dans une tasse de Java. Je n’avais jamais goûté à ce langage de programmation, que ce soit de près ou de loin. Et pourtant, c’est en Java que sont programmés les mods pour Minecraft. Au départ, ça me semblait si simple ! J’avais survolé les codes source de quelques mods, j’avais lu quelques tutoriels, et tout me semblait aller de soi. Je me suis donc lancé, pensant que ça coulerait de source. Après tout, peut-on s’attendre à autre chose quand on plonge dans une tasse remplie ? Ce fut plus difficile que prévu (on pouvait s’y attendre).

 

Pour commencer, j’ai dû me familiariser avec une programmation orientée objet véritable, assez différente de la version allégée qu’en offre Python. Ce fut en fait très bénéfique. Découvrir les interfaces, les classes abstraites, une encapsulation réelle, toutes ces subtilités absentes en Python se révèlent en fait très utiles. Je me suis aussi initié aux design patterns et j’ai appris à réfléchir davantage avant d’implémenter une fonctionnalité.

En outre, j’ai dû me familiariser avec la bibliothèque standard du langage, avec une rigidité dans l’organisation des fichiers, et avec encore bien d’autres réjouissances.

Mais l’autre principal problème que j’ai rencontré avec Java est le typage fort de ce langage, qui m’a astreint à une certaine rigueur. C’est tout à la fois fastidieux et formateur : je me prends parfois à regretter la façon intuitive dont Python gère les types, mais en même temps, j’admire la rassurante solidité offerte par Java. C’est même l’impression générale que me donne cette expérience, dont je ressors il me semble grandi. En définitive, je ne compte pas ranger Java au placard. Malgré des performances bien souvent critiquées, je ne peux que saluer ce langage, qui m’effraie bien moins que le C++, et qui a l’avantage d’être entièrement portable. Pouvoir créer des jeux jouables directement dans un navigateur, c’est un atout non négligeable.

Ensuite, j’ai dû apprendre à utiliser le Minecraft Coder Pack. Il s’agit d’un outil utilisé par les créateurs de mods pour Minecraft. Le problème, c’est qu’il n’existe aucune documentation détaillée, que les tutoriels se font rares, et que les mods open source le sont encore davantage. Parfois, il faut donc analyser des fichiers du jeu pour comprendre le fonctionnement d’une classe. On se retrouve même à taper le nom d’une fonction sur Google dans l’espoir de trouver un bout de code expliquant son usage. C’est un véritable problème, et c’est regrettable. Les créateurs de mods semblent être assez égocentriques, il n’y a pas de communauté à proprement parler, et trouver des informations est parfois réellement lassant. Les programmeurs ne devraient pas avoir à se soucier de la recherche de l’information, c’est tellement contre-productif !

Pour apporter ma modeste contribution aux autres créateurs, j’ai rendu le code source de mon mod ouvert. Vous pouvez télécharger les sources de la dernière version ou consulter le mod dans ses états actuel et passés sur son dépôt SVN. En espérant que ça sera utile à quelqu’un. ;)

Pour conclure, je dirais que malgré les difficultés, ce projet annexe porte ses fruits. Je me sens réellement plus fort, et prêt à reprendre le développement de mon RPG sous peu. À l’avenir, ça devrait aller beaucoup plus vite.

Comments:2

  1. avatar
    Gaetz Répondre
    5 juillet 2011 at 14 h 24 min

    Salut monsieur !

    Content de voir que tu continues de t’intéresser au jeu vidéo. Visiblement, tes recherches t’amènent à t’intéresser à plein de domaines, c’est impressionnant.

    Bonne chance pour la suite, pour ton mod, et pour ton long projet ! Essaye de travailler en équipe si tu voies que tu n’y arriveras pas seul.

    Ps : Je sais pas si « devenir aussi célèbre que Miyamoto » est une motivation – je crois que Miyamoto s’en balance d’être célèbre ^^

    • avatar
      Rastagong Répondre
      6 juillet 2011 at 16 h 16 min

      Salut !

      Oui, je continue à m’intéresser au jeu vidéo, plus que jamais même. :)
      Ça m’a fait plaisir de voir que tu fréquentais Les Forges. En même temps, ce n’est pas étonnant, un maître de game design doit bien fréquenter ce haut-lieu, ce temple, la meilleure école francophone dédiée à cette discipline . ^^

      Je ne m’intéresse pas à tant de domaines en fait ; j’ai seulement compris l’importance des projets annexes pour progresser sur un plan strictement technique.

      Merci pour tes encouragements. ;)
      Je sais bien que mes projets peuvent paraître irréalisables. J’ai déjà mes idées sur les difficultés que je vais rencontrer, on verra comment tout ça va évoluer. Si obstacle insurmontable il y a, je ne m’entêterai pas à travailler seul.

      En ce qui concerne ta remarque à propos de Miyamoto, j’ai mis du temps à comprendre que tu faisais référence à cet article. =D
      Bref, cette motivation est celle de mes débuts, il y a 5 ans. Ça date de la lointaine époque pendant laquelle je pensais que tout ce qui faisait un bon RPG c’était son scénario, de cette époque où je me disais que créer un jeu en 3D ne devait pas être si compliqué. La liste des mes pensées passées et absurdes est longue. :-°

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*


*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>