- Façonner un fichier PNG à la main
- Billet-Signet : Nouveau design pour Framadate, État français et logiciel libre
Ce mercredi 27 octobre 2021, le studio [2.21] (c’est leur nom) a libéré le code source de Little Big Adventure 1 et 2 sous licence GPLv2.
Ça en fait des documents intéressants sur la façon de programmer un jeu entre 1994 et 1997, avec des pratiques qui paraissent totalement absurdes en 2021, malgré un code plutôt clair (dans le sens où c’est facile de s’y retrouver). Par exemple, le fichier PERSO.C de LBA semble gérer à la fois la boucle principale de jeu et l’inventaire. Dans le code source de LBA2, on trouve des fichiers en version C et C++. Ah, et bien entendu, il y a des routines en assembleur. D’une façon générale, il y a beaucoup de choses très « manuelles » dans la façon de gérer le code.
Comme le studio à l’origine de ces jeux était français, le code est commenté en… franglais.
On y voit aussi que les fix horribles, ça n’est pas récent :
void DoDirWagon( T_OBJET *ptrobj )
{
S32 brick ;
// ATTENTION : Grosse Magouille :
// Le champ Sprite des objets de type Wagon (forcement des
// objets 3D) est utilis‚ dans les aiguillages pour savoir
// dans quel sens on le prend. Cela repare un bug lorqu'on
// tournait dans un aiguillage et qu'on modifiait en meme
// temps le sens de l'aiguillage !
// Autres champs utilises :
// Info: Type de d‚placement: 0 --> droit
// 1 --> Virage Gauche
// 2 --> Virage Droite
// Info2 et Info3: Coordonnees du point de rotation
// Info1: Flag d'init
// SizeShit: Num de la brick sur laquelle est le wagon
// depend du block sur lequel on se trouve
brick = GetBlockBrick( ptrobj->Obj.X,ptrobj->Obj.Y-1,ptrobj->Obj.Z ) ;
// depend du style actuel (planete TWINSUN ou ESMER)
brick = GetNumBrickWagon( brick ) ;
switch( brick )
{
(Le switch est immense, parce qu’il gère tous les cas possibles de type de brick
sur lesquels peut rouler le wagon !)
Bref, c’est instructif à lire si vous lisez un peu le code (même sans connaitre spécifiquement le C ou le C++).
Icône d’après cette capture d’écran, CC BY-SA Adeline Software International (developer) et Didier Chanfray S.a.r.l. (copyright holder).