AltDevConf : Mono une solution fiable pour créer des jeux vidéo

C’est durant le week-end du 11 et 12 février qu’a eu lieu la #AltDevConf 2012 une conférence en ligne regroupant des professionnels, des bloggeurs, des passionnés autour d’un même sujet : La création de jeux vidéo.

Cette année un des sujet fort a été l’utilisation du langage C# et du runtime Mono pour créer des jeux vidéo muti-plateformes, à gros budget (AAA) ou de plus petite taille (mobile, indépendants, etc…). Cette session a été animée par Matthieu Laban et Philippe Rollin qui sont les deux fondateurs du studio Flying Development Studio ainsi que par Miguel de Icaza auteur du projet Mono (entre autre). Matthieu et Philippe sont les auteurs de Infinite Flight, un simulateur de vol (avion) sur Windows Phone 7 et prochainement sur iPhone grâce à MonoGame !

 

 

Durant la conférence 5 grands points ont été abordés :

  1. Mono dans les jeux actuels ;
  2. Utilisation de Mono dans les jeux ;
  3. Les performances de Mono par rapport aux autres solutions (langage de script) ;
  4. Les 2 garbages collector disponibles ;
  5. Programmation asynchrone et co-routine (pont vers C++).

Ce qui nous interpelle en premier lieu c’est que Mono est utilisé dans beaucoup de jeux que l’on connait comme les Sims 3, Second Life et Bastion pour ne citer qu’eux.. L’idée est donc d’utiliser le langage C# avec Mono pour soit remplacer les langages de script tels que Lua qui sont généralement lent, soit utiliser totalement Mono avec des Framework multimédia comme MonoGame et/ou OpenTK. Mono permettrait d’obtenir des performances allant de 50 % à 90 % par rapport à du code natif, ce que les autres solutions de script ne permettent pas.

Utilisation de Mono sur un jeu AAA
Utilisation de Mono sur un jeu AAA

Enfin les principaux Framework de développement de jeux vidéo utilisant Mono ont été présentés, on retrouve ainsi :

  1. Unity 3D qui utilise Mono pour la partie scripting, le moteur étant quant à lui programmé en C++ ;
  2. MonoGame que je ne présente plus car largement traité sur ce blog, on apprend cependant que le support de la 3D est en cours de développement : ) ;
  3. Delta Engine un moteur de jeu écrit totalement en C# et fonctionnant sur PC, Mac, Windows Phone 7, iOS et Android (rien que ça oui !)
  4. Axiom 3D Engine un moteur basé sur Ogre 3D (C++) écrit lui aussi en C# et fonctionnant avec DirectX, Xna ou OpenGL (donc multi-plateforme sur Desktop).

Toutes ces informations sont disponibles dans le slide de présentation que vous pouvez retrouver à cette adresse.

A l’heure où on ne sait pas ce que va devenir XNA avec l’arrivée de Windows 8, on ne peux que saluer la communauté Open Source, car c’est grâce aux efforts de tout ses développeurs que l’on a à notre portée des outils et Framework tels que MonoGame qui permettent de remplacer XNA, et comme l’avait écrit Miguel de Icaza dans son billet de fin d’année, C# et Mono ont de beaux jours devant eux !