En effet, ces derniers temps, les developpeurs de Mono, avec l'aide d'entre autres Unity3D, se sont assez portés sur l'utilation d'un langage managé (donc Mono ou Java) dans la réalisation d'un jeu video.
La plupart des jeux actuels utilisent un language interpretté (Lua souvent) pour gérer des petits script comme ceux de l'IA, cependant c'est relativement lent. Il y a quelques mois, Second Life a commencé à remplacer son language de script par une solution basée sur Mono, ce qui a permit d'améliorer pas mal les performances. C'est une avancée au niveau des performances tout en gardant la meme facilité de conception.
Depuis 2 mois, Mono intégre, apparement pour la première fois dans une plateforme managée, le support des SIMD (SSE, 3DNow, ...), extremement utilisés dans les jeux. Et grace à ceux-ci, on peut améliorer les performances du language managé dans la gestion d'un moteur de jeu video (jeu, physique, ...): l'utilisation d'un language managé est possible, sans trop grosse pertes de performances dans la réalisation d'un moteur de jeu, mais avec une productivité des programmeurs largement améliorée
Cependant, le moteur graphique, devrait, dans l'idéal, toujours etre programmé dans un language compilé.
Contrairement à Java, qui est disponible sur GPL, Mono est distribueé sous LGPL, ce qui permet de l'utiliser dans des projets sans avoir besoin de distribuer leurs sources.
Un autre avantage de Mono, c'est d'avoir des outils pour créer une version allegée personnalisé (un Compact Framework perso ): vous avez besoin de System.IO, mais vous n'en avez rien à faire de System.Net ?
Ensuite, depuis quelques semaine on sait faire de la compilation statique avec Mono, ce qui le rends compatible avec la charte de Apple pour les applications de l'iPhone (qui ne permet pas de distribuer sur son appareil des applications ayant une interpretteur ou une machine virtuelle) puisqu'il n'y aurais plus de machine virtuelle.
Mono est porté officiellement (et autorisé) sur Wii, iPhone et bientot sur Xbox360, certains jeux sur ces plateformes sont déjà conçu avec.
A la question "Le langage Java est-il adapté pour les jeux vidéo ?":
Oui, mais de là à construire un gros jeu complet axé performances avec ... De plus, j'aurais une préférence pour Mono avec sa licence, les SIMD et ses ports sur console .
Plus d'infos:
http://www.google.com/cse?cx=0177409...game&sa=Search
http://tirania.org/blog/archive/2008/Nov-03.html
Partager