Le monde du développement de jeux est amusant: d'une part, ils acceptent souvent rapidement de nouvelles idées, d'autre part, ils sont encore à l'âge de pierre.
La vérité est qu'il y a rarement autant d'incitation à passer à .NET / Java / autre chose que C / C ++.
La plupart des sociétés de jeux licencient des parties du moteur de jeu d'autres sociétés. Ces parties sont écrites en C ++, et bien que vous puissiez avoir accès à la source pour pouvoir la porter, cela demande beaucoup d'efforts (et bien sûr, la licence doit le permettre).
De plus, beaucoup de code hérité existe déjà en C ++. Si le code des projets précédents peut être réutilisé (par exemple, si vous écrivez une suite), cela compte encore plus en faveur du maintien du même langage, au lieu de le réécrire dans un nouveau langage (d'autant plus que vous allez probablement le réintroduire une tonne de bugs dont vous aurez besoin pour passer du temps à aplanir.
Enfin, il est rare que les jeux soient écrits en 100% C ++ de toute façon - beaucoup est fait en utilisant des langages de script, qu'ils soient personnalisés ou simplement en intégrant un langage existant (Lua étant l'un des plus populaires de nos jours).
En ce qui concerne le ramassage des ordures, cela peut être un peu un problème. Le problème n'est pas tant qu'il existe, c'est plutôt comment cela fonctionne - le ramasse-miettes DOIT être non bloquant (ou du moins être garanti de ne bloquer que très brièvement), car il est tout simplement inacceptable que le jeu se fige pendant 10 secondes. il scanne toute la mémoire allouée pour voir ce qui peut être libéré. Je sais que Java a tendance à s'étouffer un peu en GC quand il est proche de manquer de mémoire (et pour certains jeux, ce sera le cas).
Vous êtes également un peu plus limité dans ce que vous pouvez faire: vous ne pouvez pas exploiter pleinement le matériel en raison de la surcharge de l'exécution. Imaginez que Crysis soit écrit en Java ... même si c'est la seule différence visible, ce ne serait tout simplement pas la même chose (je suis également sûr que vous auriez besoin d'un Core i7 pour l'exécuter.).
Cela ne veut pas dire que ces langages n'ont pas leur place dans le développement de jeux - et non, je ne fais pas simplement référence à la programmation d'outils. Pour la plupart des jeux, vous n'avez pas besoin de ces performances supplémentaires que vous obtenez de C ++, y compris les jeux 3D, et si vous écrivez tout à partir de zéro, il peut être parfaitement logique d'utiliser quelque chose comme XNA - en fait, il y a un bonne chance.
En ce qui concerne les jeux commerciaux, RuneScape compte-t-il? Cela pourrait bien être le jeu Java le plus réussi.