Les Leçons du jeu vidéo (2ème partie)


Voici enfin le second chapitre des Leçons du jeu vidéo.
La première partie est disponible ici:
https://psychologieagile.wordpress.com/2013/06/23/les-lecons-du-jeu-video-1ere-partie/

Il m’a fallu pas mal de temps pour commencer cet article, parce que j’ai beaucoup de mal à trouver de l’intérêt dans mon passé, mais j’espère que cet article vous sera quand même utile.

Mon obsession technique

En fait, programmer des jeux n’était pas ma motivation principale.
Personnellement, je me foutais des jeux que je faisais, du moment que je me faisais plaisir techniquement.
Et ce qui me faisait vraiment plaisir, c’était de résoudre les problèmes dus aux contraintes des machines de l’époque.
Imaginez un ordinateur tournant à 1 mégahertz, avec 64 kilooctets de mémoire (n’importe quel ordinateur actuel est 3000 fois plus performant !).
Comment faire tenir un jeu tournant à 50 images par seconde avec aussi peu de mémoire ?

Curieusement, j’étais probablement le seul programmeur obsédé par cela.
Tous les autres programmeurs que je croisais faisaient des jeux vidéo parce qu’ils rêvaient d’en faire.
En général, leur niveau en programmation n’était pas terrible (il fallait juste que ça tourne), mais j’ai croisé quelques exceptions.
J’ai quand même transmis le virus de l’obsession technique à pas mal de mes collègues.

J’ai rencontré des gens admirables

Chez Titus, dans des conditions aussi dures de travail, ceux qui arrivaient à faire un bon jeu étaient vraiment des héros.
Deux individus m’ont particulièrement marqué chez Titus: Philippe Pamart et Jean-Michel Masson.
Il y en avait d’autres (par exemple Eric Zmiro), mais je ne suis pas resté assez longtemps pour les voir devenir bons.

Le monde du jeu vidéo est extrêmement petit, tout particulièrement en France.
Je vous recommande tout particulièrement de soigner vos relations, parce qu’on retombe fréquemment sur les mêmes personnes quand on change de compagnie.

Je quitte Titus

Je suis resté presque 3 ans chez Titus, dont une année à faire mon service militaire.

Il y a plusieurs raisons à mon départ de chez Titus.
La plus évidente était que j’en avais marre de cet environnement destructif (j’étais considéré comme une machine à pisser du code), et je commençais à aller très mal intérieurement.

Ensuite, les projets étaient particulièrement inintéressants, parce qu’il n’y avait pas grand chose à apprendre, surtout par manque de temps: il fallait finir à tout prix, quelle que soit la qualité.

Enfin, ma principale raison est ma rencontre avec Philippe Pamart, l’auteur de Titan.
Il avait indépendamment atteint un excellent niveau en optimisation en Z80, et a été très surpris par mon niveau.

Ce fut la première grande amitié de ma vie.
Nous avons quitté Titus ensemble, afin de faire des jeux.
Je l’ai hébergé chez ma mère, et nous avons travaillé en freelance pour Silmarils.
Je dois avouer que je l’ai aidé graphiquement à cette époque, à ma grande honte, je suis le graphiste de Windsurf Willy sur Amstrad.
Nous avions commencé à développer nos propres outils sur Z80, y compris notre propre OS: Theos.
Malheureusement, le PC s’est démocratisé et les consoles sont apparues, ce qui a tué l’intérêt de nos efforts.
Ma mère faisait pression pour que je trouve du travail, et j’ai dû lâchement abandonner Philippe.
Je regrette de ne pas avoir créé notre propre boîte de jeux.

S’en est suivi une période de doutes profonds: que devais-je faire ?
Devais-je continuer le jeu, alors que j’avais eu une expérience traumatisante ?
Devais-je faire autre chose, en sachant que je ne savais faire que du jeu et que je n’avais pas de diplôme ?

Je me remotive en me faisant plaisir

Suite à toutes ces expériences, j’étais complètement dégoûté de programmer.
Je ne voyais plus l’intérêt de faire des jeux, parce que techniquement, je n’avais plus rien d’intéressant à apprendre.

En fait, quand je programme, je n’ai pas le temps d’apprendre.
Quand je dois finir un jeu, je n’ai pas le temps de progresser en programmation, parce que je me focalise sur le résultat.

Pour progresser en informatique, je connais 2 façons de faire:

  • lire des livres techniques
  • programmer des choses nouvelles

Personnellement, je suis plutôt pratique que théorique, donc je préfère programmer plutôt que lire.
Mais je m’étais acheté « The Art of Computer Programming » de Donald Knuth, afin d’acquérir de solides bases.

Ensuite, j’ai cherché de nouveaux domaines de programmation, afin de sortir un peu du cadre du jeu vidéo.

A l’époque, il y avait un domaine qui semblait passionnant: les démos.
Une démo, c’est un spectacle sous forme de programme.
Si vous ne connaissez pas, je vous conseille ce site: http://pouet.net/
Un exemple de démo en 64K: http://pouet.net/prod.php?which=5

Comme je programmais sur Atari ST, j’étais fasciné par les démos Amiga.
Alors, j’ai commencé à regarder comment elles étaient programmées.
Leur code était plutôt pourri, mais l’Amiga avait un excellent hardware, ce qui compensait largement le niveau software.
Je me suis dit: si un type moyen peut faire ça sur Amiga, alors moi qui suis excellent, je peux faire la même chose sur ST.
J’avais un énorme complexe d’infériorité à l’époque !

Donc, sous le pseudo MCoder (Machine Coder), j’ai sorti plusieurs démos: le premier fullscreen en France, le package des Transbeauce Demos, la première démo en 3D pleine en 50 images par seconde, une compilation avec toutes les musiques de Madmax, entre autres.
J’ai connu une petite minute de gloire à l’époque.

Pour la démo en 3D, j’avais réuni les meilleurs programmeurs sur ST que je connaissais à l’époque: Ziggy Stardust (Vincent Penné), Algernon (Claude Levastre) et Zarathoustra (Pascal de France).
Nous avons travaillé sur la démo pendant plus d’un an (probablement presque 2 ans).
Le but ultime était d’écrire un moteur pour faire des jeux en 3D sur ST, mais il ne s’est pas réalisé.

Le monde de la démo m’a apporté pas mal de choses:

  • rencontrer des individus: étant très solitaire, j’avais besoin de contacts humains, j’ai croisé des individus dont je me sentais très proche
  • montrer ce dont j’étais capable: j’avais une obsession de ma valeur extérieure, de vouloir montrer mon niveau technique
  • progresser en informatique: apprendre et expérimenter de nouveaux domaines, sans chercher à produire à tout prix
  • satisfaire mon obsession du « beau » code: je pouvais passer un temps infini sur quelques lignes de programme, juste pour gagner une ou 2 instructions, je n’hésitais jamais à remettre en cause tout ce que je faisais

Conclusion

Quand je relis ce que j’ai écrit, je constate à quel point j’étais obsédé par la technique.
Je mesurais ma valeur personnelle en fonction de ma maîtrise technique, ce qui fait que j’ai toujours cherché à aller plus loin, à devenir meilleur.

Avec le recul, je vois bien que c’était très immature, mais en même temps, je n’avais rien d’autre dans ma vie.

Dans le prochain article, j’aborderai la période Ocean Software.

Publicités

10 réflexions sur “Les Leçons du jeu vidéo (2ème partie)

  1. Merci pour cet article ! Je trouve toujours très intéressant de tels rétrospections, particulièrement d’un point de vue personnel… Quand on pense à l’incroyable puissance des machines actuelles contrairement à cette époque, je ne m’étonne pas que la beauté du code est souvent mis au dernier plan…
    Cependant, léger goût amer, les petites maximes parsemant l’article me manquent

    • Bonsoir Epholys,

      Quel genre de maximes ?

      Malheureusement, la fin de Titus a été très pénible pour moi, et je n’ai pas de leçons vraiment positives à en tirer (surtout que la spirale de la dépression a commencé à se mettre en place à ce moment-là), mais la prochaine partie devrait être plus intéressante.

      • Et bien, les courtes phrases telles que celles-ci :
        –> programmer, c’est d’abord chercher la meilleure solution à un problème.
        D’accord, j’ai hâte de voir celle-ci dans ce cas =)

      • Merci bien !
        Bien que je ne partage pas cet avis (mais les choses ont bien changé), un minimum de technique est tout de même indispensable de mon point de vue.

    • Ha, je viens de réaliser que je n’ai pas exprimé correctement ma pensée.
      En fait, les programmeurs débutants passent toute leur énergie à montrer qu’ils peuvent faire un jeu, alors que les pros passent leur énergie à faire le meilleur jeu possible techniquement.

      Sinon, les conseils que je voulais donner étaient les suivants:
      – leçon numéro 8: le monde du jeu est très petit, alors je soigne mes relations
      – leçon numéro 9: quand je fais des jeux, je n’ai pas le temps d’apprendre
      – leçon numéro 10: parfois, la seule solution est de partir

      • Ah, effectivement, on retrouve une nouvelle nuance ici.
        Hm… Je pense que faire le meilleur jeu possible techniquement est louable pour un développeur, mais il ne faut pas perdre de vue le résultat final, une erreur qui se voit est toujours bien plus forte qu’une optimisation pointu se remarquant peu.
        Et merci d’avoir pris le temps de mettre ces conseils !

  2. Pingback: Les Leçons du jeu vidéo (3ème partie) | Psychologie Agile

  3. Salut,
    Merci pour ce blog, il est très très intéressant, et je comprend beaucoup mieux celui que tu étais à l’époque du ST, ce qui te poussait dans ton code, qui était la seule image que je pouvais avoir de toi à cette époque.
    Chapeau bas l’artiste, je continue de te lire avec attention.
    Chuck/Dune

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s