Site principal. RSS. Table des matières.

Geeky Goblin Productions

Psychanalyse d'un codeur : Réfléchissons…

Miroir, miroir magique au mur, dis-moi qui est le plus…

Comme vous l'avez surement vu, la version 0.2 de Ned et les maki, est sortie et donc après le rush de la livraison, eh bien il est temps de prendre son mug rouge et de s'installer en robe de chambre à côté du poêle à charbon, de prendre un bon bouquin et d'attendre les retours des utilisateurs.
En fait non, on ne s'arrête jamais. Quand on a fini de debugging on vérifie la structure du code et on cherche les incohérences et les choses étranges qu'on a écrites par ce qu'il fallait résoudre ces p****n de bugs

Ça, c'est du stakhanovisme.

Sauf que c'est pas au fond d'une mine de charbon.

Refonte de la classe GameSysteme 1

Eh oui, c'est ce qui arrive souvent. On code, on code, puis on crée du code spaghetti avec des fonctions qui ont cinquante paramétres, utilisés uniquement dans des cas précis. Si l'on touche à un truc, ça fait planter le reste.

Un peu comme les freins de Toyota ?

En effet, l'application est moins critique, mais on n'en est pas loin.

Pour que tout le monde comprenne, je vais essayer d'expliquer le paradigme Système – Entité de manière courte et rapide.

On manipule des entités (entity). Une entité représente un objet dans le jeu, c'est-à-dire n'importe quel élément d'un jeu. Un composant (component) représente un aspect d'un objet (d'une entité) ou d'un ensemble d'objet, par exemple, la couleur est un composant, la position est un composant, la valeur en pièce d'or est un composant, etc. Un système (system) contient tout le code pour mettre à jour les composants, il est exécuté en permanence sur des entités qui possédent un certain ensemble de capacités, par exemple un système qui gère les entités qui peuvent-être détruites et déplacées.

Après cette interlude pour ceux qui sont arrivés sur cette page par hasard, comment fonctionne le système de contrôle des mouvements dans Ned et les maki 0.2 ? Eh bien c'est tout simple :

Schéma de la gestion des événements, version 0.2

C'est pas beau hein…? Non Lili, je ne parle pas de la qualité du dessin mais de l'Index Manager qui contient la pile d’événement, l'index des position et l'accès aux entités. Quand même un pin's se rend compte que le codeur a fait du caca, eh bien moi je vous le dit : on va rigoler.

Tout a fait Léni, c'est horrible et je m'en suis bien rendu compte en faisant ce schéma. Au début l'objectif c'était de déplacer le proxy en dehors d'Index Manager, puis devnewton m'a fait remarquer que si j’utilise concrètement le paradigme Système – Entité, et bien la nécessité de ce proxy disparaîtrait. Mais avec ce schéma je constate aussi qu'il faut que je supprime Proxy Entity mais aussi que je déplace la pile d'animation en dehors du bousin.

Qui dit restructuration dit régression.

Oui et non. Pour l'instant, tant que ça ne marche pas aussi bien qu'actuellement, je travaille dans une branche séparée. Comme ça même si mon boulot n'est pas fini, on peut sortir la nersion 0.3 — qui heureusement ne me demande pas d'ajouter de fonctionnalité…

À la fin, le tout devrait ressembler à ça :

Schéma de la gestion des événements, version 0.${x > 2}

Corriger des bugs alors que le code source va disparaitre

Comme vous l'avez vu dans la partie précédente, il va y avoir une grosse refonte du code. Je commence tout doucement à faire des schémas dans tous les sens sur mon tableau noir, pour voir comment on pourrait faire mieux que le code actuel.

Il a simplifié les schémas à l'extrême, là. Ces jours-ci, il produit plus de boulette de papier et de poussière de craie que ce qui est génére en un an par toutes les facultés du monde.

C'est après l'explosion de mon dernier tableau noir sous le poids de la craie que Ned J. a accouru, poursuivi par des retours utilisateurs et des bugs en tout genre. Et là s'est posé l'ultime question : « Est-ce utile de maintenir du code qui va disparaitre ? ». N'écoutant ni mon courage — qui me disait de fuir —, ni ma fierté — qui disait que si ces bugs étaient encore là pour la prochaine version, je passerai pour un branque —, Je grimpai sur mon fidèle destrié d'un blanc pur comme l'azur (très blanc en effet), chargai les mécrants bugs et les boutai hors du code. Après avoir sauvé la vie de Ned J, je passai un contrat avec lui :

Natir : Jamais je ne me battrai plus d'une heure pour toi !
Ned J. : Très bien mais la nouvelle version du système de jeu sera là pour la version 0.4 du jeu !

Tu romances un peu trop, là !

Oui, je suis récemment tombé sur une édition non censurée de Quatrevingt-treize, de Victor Hugo, un très bon livre qui a directement un impact sur mon écriture. En gros, maintenant, quand il y a un bug sur du code source qui va disparaître, je passe une heure dessus maximum. S'il n'est pas résolu en une heure je le laisse en place.

Choses à lire, à faire, à coder


  1. Ici, le terme systeme n'est pas à prendre au sens du système du paradigme Système – Entité. 

Par Natir, le 05.04.2014. Haut de page.

Table des matières

Haut de page.

©GGP, certains droits réservés