Les trucs et astuces d'un développeur AppGameKit

A l'image du blog de développement que je consacre à ma pratique du Pascal et de Delphi, je me suis dit qu'il serait utile et intéressant que je fasse de même pour AppGameKit.

AppGameKit ou AGK, actuellement dans sa version 2 (financée en grande partie par un crowdfounding via Kickstarter), est un logiciel de développement de jeux. Il intègre un EDI, un langage basic et une librairie C++.

Grâce à AGK on peut créer un jeu sur Windows, Mac OS X ou Linux et le faire tourner sur les autres environnements, en plus de iOS ou Android. Il permet aussi de générer des exécutables pour BlackBerry 10.

Sur le principe le multiplateforme dans AGK fonctionne avec un player (l'interpréteur du langage précompilé), fourni ou à compiler, et un dossier dans lequel on retrouve les éléments du jeu (le source compilé, les images, les vidéos, les sons et les musiques). Une idée de génie qui permet en théorie de s'adapter à n'importe quel autre système d'exploitation ou environnement d'exécution, à condition de concevoir le player lié à cet environnement.

Pour ma part j'ai découvert AGK à ses débuts.

En 2011 je me suis remis en quête d'outils de développement me permettant de faire des applications et les déployer sur de nombreuses cibles différentes. L'avénement des smartphones y a bien entendu été pour beaucoup.

J'avais déjà lu la documentation d'Apple sur Objective-C et quelques bouquins sur le sujet, mais je n'accrochais pas. Idem pour le développement pour Android: Java n'a jamais été ma tasse de thé, même si j'avais appris les bases du langages lorsqu'il est sorti vers la fin des années 1990... et que je n'ai jamais eu à m'en servir.

A part pour Javascript, je n'ai jamais accroché avec le C et ses dérivés. J'ai toujours préféré des langages un peu moins gonflants au niveau de la gestion des variables et des pointeurs. Le Pascal, avec Turbo Pascal puis Delphi, a eu ma préférence après avoir fait du Basic sur les microordinateurs disponibles dans les années 1980 (Basic 1.0 puis Basic 128 sur Thomson, GFA Basic sur Atari et GW Basic sur PC des temps anciens) sans oublier un peu de langage machine (assembleur 6809, 68000 et 8086) "pour le fun".

Contrairement à Construct ou d'autres solutions qui travaillent en HTML5/JS, AGK compile vraiment. Donc pas de moyen simple d'en récupérer les sources pour les bidouiller. Bien entendu cela entraîne aussi quelques limites : il n'est pas possible (malgré une tentative abandonnée) d'exécuter un jeu AGK sur un navigateur web pour par exemple les intégrer à Facebook.

AGK avait les avantages d'être un Basic simple à (ré)apprendre, avoir une équipe de professionnels du développement de jeux à son origine, permettre la distribution multiplateforme et surtout le test sur de multiples périphériques sans s'embarquer dans un bordel de compilation / transfert / exécution sur chaque appareil pour voir si ça passe sur l'écran dans telle ou telle résolution.

Je l'ai donc logiquement choisi mais trop peu utilisé dans sa version 1.x. Je n'ai diffusé que Digikoo et avais créé Bidioo que je n'ai finalement diffusé qu'une fois converti à AGK2 fin 2015. Trop de bogues dans les interpréteurs et un gros manque de motivation m'ont empêché de continuer à l'époque, mais AGK2 a corrigé tout ça et il est temps pour moi de bosser sur les nombreux jeux trainant dans mes dossiers de projets en attente depuis parfois 20 ans !

Après tout il y a toujours un jeu que j'avais fait sur TO9 et qui ne se lançait pas par manque de RAM... Il est donc en travaux, en réflexion et en attente depuis 1989 !
Peut-être verra-t-il le jour sur smartphones durant le 21ème siècle ?