Haxe


Et Gurido ?

Oui, pour ceux qui connaissent, Haxe est un moteur (entre autres, j’y reviens) permettant de créer des jeux vidéo comme Unity. Parler de Haxe veut dire que je n’avance pas sur Gurido et sa suite déjà annoncée. C’est vrai, mais pas tout à fait.

Si je reprends la définition wikipedia sur Haxe, celui-ci est “un langage de programmation et un compilateur open source multiplateforme qui permet de produire des applications et du code source pour de nombreuses plateformes différentes à partir d’un seul code source“. Pour simplifier ceci, on utilise le language de programmation Haxe (il existe une multitude de languages) pour créer un logiciel puis on désigne la plateforme où l’on souhaites utiliser celui-ci et le programme va compiler (transformer à l’aide d’un compilateur le code source d’un programme en logiciel exécutable – source wikitionnaire) le tout dans un language tournant nativement sur la plateforme cible. Par exemple, les applications sur Android tournent en Java, celle sur iOS tournent en Objective-C et sur le web, le javascript est beaucoup utilisé. Haxe transforme donc le code écrit dans son language pour l’exécuter sur la plateforme cible dans le language cible.

… ok, je ne sais pas du tout qui me lis donc j’ai essayé de faire simple, j’ai utilisé beaucoup de raccourcis, et au final, c’est fort possible que j’embrouille tout le monde. En gros, Haxe n’est pas un moteur de jeux vidéo mais comme il peut faire tourner nativement ce que l’on produit sur de nombreuses plate-forme en utilisant qu’un seul language, comme il puise son origine dans Adobe flash, comme il a servi à l’origine à créer des jeux, … il se trouve être idéal pour la programmation de jeux.

haxetarget

Un seul language pour les amener tous et dans les ténèbres les lier.

Showcase

La naissance de Haxe remonte à 2005. Son créateur est Nicolas Cannasse qui travaillait à MotionTwin (je ne sais pas s’il y travaille encore) et dont j’ai beaucoup joué à La brute et Hordes qui devait probablement être écris dans ce language.

Je ne vais pas réécrire le showcase figurant sur cette page présentant les sites internet, applications de bureau, applications mobile, et autres, développés avec pour m’attarder plutôt sur les jeux.

Il faut savoir que Haxe se suffit à lui même pour créer des jeux mais en tant que développeur, d’un jeu à l’autre on utilise les mêmes outils. Il nous faut du code pour afficher une image facilement, pour jouer un son, pour positionner un bouton, …, et pour cela on utilise un moteur de jeu qui va se greffer à Haxe. Vous suivez ?
Il en existe de très nombreux et j’ai hésité entre HaxePunk, Luxe et HaxeFlixel. Mon choix c’est finalement porté sur ce dernier.

Et donc ?

Unity est le moteur de jeu que j’utilise au travail. Il est très bien, il est même plus que très bien et j’ai pu grâce à cet outil aisément développer Gurido ces derniers mois. Maintenant, j’aimerai évoluer. La première remise en question de l’utilisation systématique de cet outil est venue quand j’ai porté le jeu sur iOS. En terme de “poids”, il n’y a quasiment rien dans le jeu. Je ne dépasse pas les 5mo de fichiers graphiques/sons/codes et pourtant le jeu prend plus de 70Mo de place sur un iPhone. Tout cela est dû au fait que le logiciel embarque avec lui des capacités comme un moteur 3d, un moteur de physique performant …, des capacités dont je n’ai absolument pas le besoin dans le cadre d’un puzzle-game en 2d. La même chose s’est reproduite quand j’ai voulu faire une version html5 du jeu.

Effectivement avec Haxe, je vais aller beaucoup moins vite à développer, je ne vais pas être aussi aisé, je ne vais pas pouvoir reproduire des effets aussi facilement, … mais ceci n’est que dans un premier temps. Tout s’apprend …

… et donc j’annonce que va arriver sur ce site une section “prototype” où je déposerai mes essais avec ce logiciel !

 

Papers, please A Good Snowman is Hard to Build Twofold inc.
paperspleaselogo agoodsnowmanishardtobuildlogo twofoldinclogo
3 très très très très bons jeux développés avec Haxe