web-dev-qa-db-fra.com

Moteurs de développement de jeux 2D multiplates-formes

J'ai travaillé pendant un certain temps avec Corona SDK et j'adore la rapidité et la facilité avec laquelle je peux créer des applications puissantes avec Lua. Mais il ne peut compiler que pour iOS et Android, ce qui semble trop peu maintenant.

Mon intérêt principal est de pouvoir compiler sur Desktop AND Mobile. Au moins pour ce qui suit:

  • Windows + Mac pour le bureau, en tant qu'applications autonomes.
  • iOS + Android pour mobile.

Je préférerais qu'il privilégie les scripts de type Lua plutôt que ActionScript, mais n'hésitez pas à publier tout ce que vous avez aimé et que vous avez déjà travaillé.

J'ai trouvé les moteurs suivants jusqu'à présent:

  • Marmalade Quick - Après un examen approfondi, Marmalade Quick ne peut construire que pour Mobile!
  • IwGame - Fonctionne sur marmalade et indique qu'il peut être déployé sur des ordinateurs de bureau et mobiles avec Lua. Toute information est grandement appréciée sur ce
  • sio2 - "SIO2 est un moteur de jeu 2D et 3D multi-plateforme basé sur OpenGLES pour iOS, Android, MacOS et Windows" et "Le moteur vous permet également de porter votre jeu sur le Mac Store et sur Windows. ", Mais leur titre de forum et de site Web est" Moteur de jeu pour appareils mobiles ". Vous ne trouvez aucune information sur s'il peut être déployé sur des plates-formes de bureau, toute information est grandement appréciée à nouveau.
  • Loom Engine - Loom est similaire à Haxe + OpenFL (tente d'attirer les développeurs Flash) en ce sens qu'il utilise AS3-like d'ECMAScript, mais il ne construit pas de code natif à partir de celui-ci. Cependant, il utilise Cocos2D pour le rendu, il devrait donc en théorie être aussi rapide que Cocos2D. - Merci à Bojan.
  • SDL - J'ai lu à plusieurs endroits que SDL peut être déployé sur presque n'importe quelle plate-forme ou périphérique et possède une liaison Lua. Mais je ne trouve pas comment ça marche car ce n'est pas un moteur. Quiconque peut expliquer comment cela fonctionne et si c'est possible est encore une fois très apprécié.
  • SFML - "Windows, Linux, Mac OS X et bientôt Android & iOS.") n'utilise pas Lua mais peut utilisez d'autres langages comme Java et Python etc.). Quelqu'un a-t-il des informations à ce sujet?
  • Torgue2D - "Torque 2D a été développé pour les appareils OS X, Windows et iOS et fonctionne également bien sur toutes les plateformes." utilise TorgueScript et no Android = (
  • Sencha - Semble compiler sur toutes les plateformes, utilise aussi Javascript que je connais. Mais même avec la V8 JS, cela fonctionnerait-il bien en termes de performances par rapport à d’autres options?
  • GameMaker - propre langage de script GML et je me souviens de celui-ci comme d'un outil pour les non-programmeurs. A-t-il réellement évolué pour devenir un véritable moteur, je veux dire pour un développement sérieux?
  • Construct2 - Même question que le fabricant de jeu
  • Corona - Lua mais mobile uniquement (Android et iOS uniquement)
  • Cocos2D - On dirait qu'il a beaucoup d'options mais pas sûr avec le même langage? On dirait que vous devriez réécrire tout votre code. Toute information si cocos2D peut être déployée sur le bureau + mobile avec presque le même code serait grandement appréciée.
  • Angel2D - Dit qu'il peut se déployer sur tout sauf sur Android et utilise Lua, est-ce que quelqu'un a déjà utilisé celui-ci auparavant?
  • libgdx --- J'ai seulement vu de bonnes choses à ce sujet. Voici un test de référence pour libgdx et c’est là que j’ai vu atteindre 40 000 sprites à 60fps. http://www.sparkrift.com/2012/1/love2d-vs-allegro-vs-clanlib-vs-libgdx-vs-cocos2d-x-vs-monogame-vs-xna-vs-sfml . Il semblerait que libgdx dépasse à peine 30k en fait. Mais semble toujours incroyable. C’est au même niveau que Qt pour moi, presque parfait, sauf que je ne suis pas vraiment inquiet pour la performance. libgdx peut construire pour tout à peu près.
  • XNA + MonoGame --- Les performances de MonoGame ne semblent que légèrement inférieures à celles de libgdx, pouvant être intégrées à la plupart des plates-formes. Cependant, je ne connais pas grand chose à propos de XNA et j'ai entendu dire qu'il ne recevrait pas de mises à jour ultérieures, mais qu'il est assez stable? Plus d'informations sont les bienvenues.
  • Citrus --- Ne pas avoir beaucoup d'informations sur les agrumes non plus. Moteur de jeu AS3 pouvant construire pour iOS, Android, Windows, Mac et plus.
  • Haxe + OpenFL --- OpenFL (Haxe) construit en mode natif sur de nombreuses plates-formes, pas seulement en Flash. Windows, Mac, Linux et Android bénéficient tous d’un déploiement natif facultatif ou d’un environnement d’exécution OpenFL appelé Neko, qui est en théorie plus rapide que Flash, et SDL 2.0 autorisera bientôt le déploiement par iOS (ish). - Merci à Bojan.
  • Qt-Project --- Il suffit de lier le projet Qt ici pour construire tout et créer une assez grande communauté avec de nombreuses bibliothèques tierces pour vous aider encore plus loin.
  • Moai --- Le seul moteur Lua que je connaisse qui puisse construire pour Desktop et Mobile. Le seul inconvénient, c'est que la communauté n'est pas si grande et que la documentation n'est pas la meilleure. Mais si vous réussissez, c’est une excellente solution et celle que j’utilise actuellement.
  • Adobe --- Vous ne pouvez pas oublier d'ajouter Adobe ici car il peut intégrer tout ce qui prend en charge le flash.
  • nity3D --- L’intégration 2D récemment annoncée est très prometteuse et devrait être publiée au troisième trimestre de 2013.
  • Cocos2d-x --- Un moteur open source. Prend en charge JS, Lua, C++ et plusieurs plates-formes.
  • Html5 --- Il semble y avoir beaucoup d'insistance sur les applications mobiles html5, voici quelques outils que j'ai trouvés qui peuvent aider à porter votre projet html5 sur une plate-forme:

    1. Chrome intégré

    2. Sencha

    3. Phonegap

    4. Appcelerator/Titanium

    5. Icenium

Donc, je serais heureux si vous pouviez commenter de vos expériences avec n'importe quel moteur et suggérer lequel vous recommanderiez. Merci de votre aide!

EDIT: Depuis que ce sujet devient populaire, je vais ajouter d'autres options que j'ai trouvées au fil du temps. Je vous suggère de choisir ce qui vous est le plus familier et le mieux adapté aux besoins de votre projet.

82
Hate Names

Je recommanderais V-Play (v-play.net) - c'est un moteur de jeu multi-plateforme basé sur Qt pour iOS, Android, Symbian, MeeGo, Blackberry10 et peut également exporter pour des applications de bureau natives pour Windows, Mac et Linux.

Il est basé sur C++ mais supporte les scripts avec précision pour QML & JavaScript . QML est une évidence à apprendre et peut augmenter votre productivité car moins de code est nécessaire - voyez la comparaison avec cocos2d-x (60% moins de Loc) ou Corona ( 15% moins de LdC) pour une comparaison des mêmes jeux.

(Avertissement: je suis l'un des gars derrière V-Play)

8

Si vous aimez utiliser Python, Kivy est une excellente solution de nos jours. Il compile toutes les plateformes que vous demandez:

Kivy fonctionne sous Linux, Windows, MacOSX, Android et IOS. Vous pouvez exécuter le même code sur toutes les plates-formes prises en charge. Il peut utiliser de manière native la plupart des protocoles d'entrées et des périphériques tels que WM_Touch, WM_Pen, Mac OS Trackpad X et Magic Mouse, Mtdev, HID du noyau Linux, TUIO Un simulateur de souris multi-touch est inclus.

Kivy utilise beaucoup de code optimisé pour le rendu graphique (via Cython), il est donc rapide aussi.

Voici un speakerdeck qui vous donne un aperçu et une vue d'ensemble (spécifique à Android).

6
dirkjot

Que diriez-vous de HaxeFlixel ? Nous avons un grand choix de démos , et soutenons bien sûr le développement multi-plateformes via Haxe + OpenFL. Ceci est un projet open source hébergé sur GitHub . Nous soutenons toutes les principales plates-formes (y compris iOS).

5
GameDevSam

Voici mon cadre de jeu Oxygine . Il s’agit d’un framework C++ 2D à accélération matérielle moderne et open source destiné aux plates-formes mobiles et PC. Caractéristiques: OpenGL (ES) 2, textures compressées, atlas, animations/tweens/sprites complexes, graphes de scènes, polices, gestion des événements, outils de construction, etc. Peut être construit sur SDL2 ou le SDK Marmalade.

À la base du moteur, il y a un graphique de scène, similaire à celui de Flash. Pour être bref, vous pouvez appeler cela comme Flash pour C++, mais plus confortable et beaucoup plus rapide. Initialement, il a été développé pour les plateformes mobiles (iOS, Android), mais peut également être utilisé pour les jeux sur PC.

enter image description here

5
Denis Muratshin

Aucune mention de App Game Kit (AGK) ici, alors laissez-moi combler le vide. Il s’agit d’un SDK multi-plateformes principalement 2D vous permettant de coder une fois en C++ ou dans son propre langage "Basic". La version 2 vient d’obtenir un financement de plus de 400% sur Kickstarter et comprendra un support 3D complet, Spine (pour les personnages animés en 2D), la physique des balles et de nombreuses autres fonctionnalités.

Il a déjà Facebook, Twitter, un tas de commandes de capteurs Ultrabook, Box2D et plus. Je l'utilise depuis le début et je l'adore (pouvez-vous le dire?). Non, je ne travaille pas pour The Game Creators (la société qui l'a créé) bien que j'avoue que je l'ai fait pendant un certain temps en créant des applications.

L'une des meilleures fonctionnalités de mon point de vue est que vous pouvez développer sur Windows et diffuser du IDE par Wi-Fi sur tout périphérique pris en charge. Ainsi, pendant le codage, je peux (en quelques secondes) tester mon code sur le Playbook iPad, Android, Windows, Mac ou Blackberry.

4
Steve H

Si vous avez un fond C #. Regardez la dualité.

Duality est un framework de jeu 2D flexible entièrement écrit en C #. Il est là pour vous faciliter la tâche. Il fournit à la fois un moteur de jeu extensible et un éditeur visuel adapté. Un éditeur de niveau, un environnement de test ou un gestionnaire de contenu ne sera pas nécessaire, car Duality est tout cela en soi. Et le meilleur de tous: c’est gratuit.

4
Andy

Gideros est un excellent moteur multi-plateformes 2D basé sur Lua , supportant actuellement les deux plateformes Android et IOS, mais davantage à venir. Et Il dispose également de fonctionnalités intéressantes telles que le test instantané des périphériques, la mise à l'échelle automatique et la résolution automatique de l'image permettant de cibler facilement différentes tailles d'écran, ainsi que la possibilité d'étendre chaque plate-forme via des plug-ins natifs.

2
Artūrs Sosins

Je réponds simplement pour vous donner quelques indications sur la façon dont le langage SDL est utilisé. Comme vous l'avez dit auparavant, ce n'est pas un moteur de jeu (c'est en fait une bibliothèque). De plus, il n’est pas du tout orienté objet et vous ne disposez pas de facilités d’animation faciles (vous devez les coder vous-même).

Comment ça marche (j'ai utilisé la version C mais je suppose que la reliure Lua devrait être similaire):

Incluez les en-têtes nécessaires pour construire le projet sur la plate-forme souhaitée.

Concevez votre propre boucle de jeu dans laquelle vous allez configurer (au moins) tout un système de traitement des événements, un gestionnaire de fréquence d'images et un "nettoyeur d'écran (ou programme de mise à jour)" (j'insiste sur le fait que vous devez actualiser manuellement votre écran en utilisant la routine SDL_flip_screen, qui ne fait pas partie de vos préoccupations avec Corona).

Ensuite, codez votre jeu en utilisant tous les "mécanismes" que vous avez créés auparavant.

Le SDL est une bibliothèque de bas niveau (ne vous attendez pas à avoir un framework d’interface graphique facile à utiliser ou le framework de storyboard de Corona, par exemple).

Enfin, cette bibliothèque a été utilisée pour porter Civilization III sous Linux, alors oui, cela fonctionne mais il vous demandera beaucoup d’énergie pour avoir quelque chose comme vous l’avez fait avec Corona;)

PS: je ne parle pas anglais, merci de me le faire savoir si je n’étais pas clair :)

2
Julien

Vous avez également ShiVa3D , un concurrent sérieux de Unity3D. Il utilise Lua et prend en charge de nombreuses plates-formes, du mobile aux consoles de jeux et aux navigateurs Web.

Très intuitif à utiliser et très agréable interface utilisateur pour travailler avec.

1
Exsigth