Moteurs de développement de jeux multiplateformes 2D [fermé]

84

Je travaille depuis un certain temps avec le SDK Corona et j'aime la rapidité et la facilité avec lesquelles je peux créer des applications puissantes à l'aide de 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 ET Mobile. Au moins pour ce qui suit:

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

Je préférerais qu'il se penche davantage sur les scripts de type Lua plutôt que sur ActionScript, mais n'hésitez pas à publier tout ce avec quoi vous avez travaillé et que vous aimez.

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

  • Marmalade Quick - Après un examen plus approfondi, Marmalade Quick ne peut construire que pour Mobile!
  • IwGame - Fonctionne sur la marmelade et dit qu'il peut se déployer sur ordinateur et mobile avec Lua. Toute information est grandement appréciée à ce sujet
  • sio2 - Dit "SIO2 est un moteur de jeu multiplateforme 2D et 3D 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 forum et le titre Web est "Game Engine for Mobile Devices". Vous ne trouvez aucune information sur la possibilité de se déployer sur des plates-formes de bureau, toute information est à nouveau grandement appréciée.
  • Loom Engine - Loom est similaire à Haxe + OpenFL (tente d'attirer les développeurs Flash) en ce sens qu'il utilise le type AS3 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 déployer sur presque n'importe quelle plate-forme ou appareil et dispose d'une liaison Lua. Mais je ne trouve pas comment cela fonctionne 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 et iOS." N'utilise pas Lua mais peut utiliser d'autres langages comme Java et Python, etc. Quelqu'un a des informations à ce sujet?
  • Torgue2D - "Torque 2D a été développé avec les appareils OS X, Windows et iOS à l'esprit et fonctionne également bien sur toutes les plates-formes." utilise TorgueScript et pas Android = (
  • Sencha - Semble compiler sur toutes les plates-formes, utilise aussi Javascript que je connais. Mais même avec V8 JS, cela fonctionnerait-il bien en termes de performances par rapport aux autres options?
  • GameMaker - propre langage de script GML et je me souviens en fait de celui-ci comme d'un outil pour les non-programmeurs. Est-ce qu'il est devenu un véritable moteur, je veux dire pour un développement sérieux?
  • Construct2 - Même question que Gamemaker
  • Corona - Lua mais mobile uniquement (Android et iOS uniquement)
  • Cocos2D - On dirait qu'il a beaucoup d'options mais pas sûr avec la même langue? Il semble que vous deviez réécrire tout votre code. Toute information si cocos2D peut se déployer sur ordinateur + mobile avec presque le même code serait grandement appréciée.
  • Angel2D - Dit qu'il peut se déployer sur tout sauf Android et utilise Lua, quelqu'un a déjà utilisé celui-ci avant?
  • libgdx --- Je n'ai vu que de bonnes choses à ce sujet. Voici un test de référence pour libgdx et c'est là que je l'ai vu atteindre 40k 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 semble que libgdx dépasse à peine 30k en fait. Mais cela semble toujours incroyable. C'est au même niveau que Qt pour moi, presque parfait, sauf que je ne suis pas vraiment inquiet des performances dessus. libgdx peut à peu près tout construire.
  • XNA + MonoGame --- Les performances de MonoGame ne semblent que légèrement inférieures à celles de libgdx, peuvent être intégrées à la plupart des plates-formes. Cependant, je ne sais pas grand-chose sur XNA et j'ai entendu dire qu'il ne recevrait pas de mises à jour futures, mais est-il assez stable? Plus d'informations sont les bienvenues.
  • Citrus --- Je n'ai pas non plus beaucoup d'informations sur les agrumes. Moteur de jeu AS3 pouvant être construit pour iOS, Android, Windows, Mac et plus encore.
  • Haxe + OpenFL --- OpenFL (Haxe) se construit en 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 runtime OpenFL appelé Neko, qui est en théorie plus rapide que Flash, et SDL 2.0 permettra bientôt le déploiement iOS (ish). - Merci à Bojan.
  • Qt-Project --- Il suffit de lier le projet Qt ici, peut construire pour tout et a une assez grande communauté avec beaucoup de bibliothèques tierces pour vous aider encore plus loin.
  • Moai --- Le seul moteur Lua que je connaisse qui puisse construire pour les ordinateurs de bureau et mobiles. Le seul inconvénient est que la communauté n'est pas si grande et la documentation n'est pas la meilleure. Mais si vous pouvez les réussir, c'est une excellente solution et celle que j'utilise actuellement.
  • Adobe --- Je ne peux pas oublier d'ajouter Adobe ici car il peut intégrer tout ce qui prend en charge Flash.
  • Unity3D --- L'intégration 2D récemment annoncée semble très prometteuse, devrait être publiée T3-T4 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'accent sur les applications mobiles html5, voici quelques outils que j'ai trouvés qui peuvent vous aider à porter votre projet html5 sur une plate-forme:

    1. Chrome intégré

    2. Sencha

    3. Phonegap

    4. Appcelerator / Titane

    5. Icénium

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

EDIT: Puisque ce sujet devient populaire, j'ajouterai 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 qui correspond le mieux aux besoins de votre projet.

Noms de haine
la source
1
OpenFL (Haxe) se construit en natif sur de nombreuses plates-formes, pas seulement Flash. Windows, Mac, Linux et Android bénéficient tous d'un déploiement natif facultatif ou d'un runtime OpenFL appelé Neko, qui est en théorie plus rapide que Flash, et SDL 2.0 permettra bientôt le déploiement iOS (ish). Loom est similaire (tente d'attirer les développeurs Flash) en ce sens qu'il utilise le type AS3 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
Bojan Markovic
2
Vous devriez vraiment ajouter Cocos2d-X à la liste: cocos2d-x.org
Clay
Vous devriez définitivement vérifier UDK par Epic Games. Il s'agit en fait d'un moteur AAA complet destiné aux moders et aux développeurs indépendants. Malheureusement, il ne prend pas en charge Android actuellement, bien qu'ils aient rendu les licences UE4 complètes beaucoup plus disponibles, ce qui prend en charge Android. Sachez que UE4 vient de sortir et que UDK est une plateforme assez développée.
Igor Čordaš
Aussi, si vous voulez quelque chose d'Open Source et portable (basé sur Java), consultez jMonkeyEngine.
Igor Čordaš

Réponses:

9

Je recommanderais V-Play (v-play.net) - c'est un moteur de jeu multiplateforme 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 a un support de script soigné pour QML et JavaScript . QML est une évidence à apprendre et peut augmenter votre productivité car moins de code est nécessaire - il suffit de voir la comparaison avec cocos2d-x (60% moins de Loc) ou Corona (15% moins de LoC) pour une comparaison des mêmes jeux.

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

Christian Feldbacher
la source
1
Bien que je sois sûr que V-Play est un produit génial, vous devriez mettre une clause de non-responsabilité indiquant que vous êtes le co-fondateur. Voir: meta.stackexchange.com/a/59302
Nepoxx
1
Bien sûr - je viens de l'ajouter
Christian Feldbacher
7

Si vous utilisez Python, Kivy est une excellente solution de nos jours. Il se compile sur toutes les plates-formes 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 nativement la plupart des protocoles d'entrée et des périphériques tels que WM_Touch, WM_Pen, Mac OS X Trackpad et Magic Mouse, Mtdev, Linux Kernel HID, TUIO. Un simulateur de souris multi-touch est inclus.

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

Voici un haut - parleur qui vous donne un aperçu et un aperçu (spécifique à Android).

dirkjot
la source
Bien que kivy puisse être utilisé pour le développement de jeux, ce n'est pas exactement un moteur de jeu, mais kivyent (kivent.org) est un moteur de jeu basé sur kivy, qui est peut-être plus adapté, sauf si votre jeu est très simple et ne le fait pas. nécessitent la complexité supplémentaire.
Tshirtman
5

Voici mon cadre de jeu Oxygine . Il s'agit d'un framework C ++ 2D accéléré par matériel moderne open source pour les plates-formes mobiles et PC. Fonctionnalités: OpenGL (ES) 2, textures compressées, atlas, animations / interpolations / sprites complexes, graphique de scène, polices, gestion des événements, outils de construction, etc. Peut être construit sur SDL2 ou Marmalade SDK.

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

entrez la description de l'image ici

Denis Muratshin
la source
Je l'ai essayé (et en fait sorti un produit de jeu fini), ça marche très bien!
Juster
4

Aucune mention d' App Game Kit (AGK) ici, alors laissez-moi combler le vide. C'est un SDK multiplateforme principalement 2D qui vous permet de coder une fois en C ++ ou dans son propre langage "Basic". La version 2 vient d'obtenir plus de 400% de financement sur Kickstarter et aura un support 3D complet, un support Spine (pour les personnages animés 2D), la physique des balles et tout un tas d'autres nouvelles fonctionnalités.

Il a déjà Facebook, Twitter, un tas de commandes de capteur Ultrabook, Box2D et plus encore. 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 avoir créé des applications pendant un certain temps.

L'une des meilleures fonctionnalités de mon point de vue est que vous pouvez développer sur Windows et diffuser depuis l'IDE via Wi-Fi vers n'importe quel appareil pris en charge, donc pendant que je codifie, je peux (en quelques secondes) tester mon code sur iPad, Android, Playbook Windows, Mac ou Blackberry.

Steve H
la source
4

Si vous avez un fond C #. Jetez un œil à la dualité.

Duality est un cadre de jeu 2D flexible entièrement écrit en C # - et il est là pour vous faciliter un peu la tâche. Il fournit à la fois un moteur de jeu extensible et un éditeur visuel correspondant. Il n'y aura pas besoin d'éditeur de niveau, d'environnement de test ou de gestionnaire de contenu car la dualité est tout cela en soi. Et le meilleur de tous: c'est gratuit.

Andy
la source
1
Bel ajout. Je l'ajouterai bientôt à la liste, ainsi que quelques autres que j'ai découverts, en plus de mieux l'organiser. Merci pour votre contribution
Hate Names
Est-il compatible multiplateforme?
JCPhlux
2
@JCPhlux, oui c'est ça. Je ne suis pas sûr du mobile, mais il fonctionne en mono.
Andy
Qu'est-ce que fetzenet.de/blog/?page_id=697 ? Pourquoi pas cette dualité.adamslair.net
RS
Fixé. Je pense qu'ils ont déménagé peu de temps après avoir publié
Andy
2

Je réponds juste pour vous donner un aperçu de la façon dont le SDL est utilisé. Comme vous l'avez dit auparavant, ce n'est pas un moteur de jeu (c'est juste une bibliothèque en fait). De plus, il n'est pas du tout orienté objet et vous ne disposez pas de fonctionnalité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 liaison Lua devrait être similaire):

Incluez les en-têtes nécessaires pour créer 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 d'événements, un gestionnaire de fréquence d'images et un "nettoyeur d'écran (ou mise à jour)" (j'insiste sur le fait que vous devez actualiser manuellement votre écran en utilisant la routine SDL_flip_screen qui n'est pas du tout une de vos préoccupations avec Corona).

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

La SDL est une bibliothèque de bas niveau (ne vous attendez pas à avoir un framework GUI facile à utiliser ou le framework de storyboard de Corona par exemple).

Enfin, cette bibliothèque a été utilisée pour porter Civilization III sur Linux, donc oui cela fonctionne mais cela vous demandera beaucoup d'énergie pour avoir quelque chose comme vous aviez avec Corona;)

PS: Je ne suis pas anglophone, alors faites-le moi savoir si je n'étais pas clair :)

Julien
la source
2

Gideros est un excellent moteur de plates-formes 2d basé sur Lua , prenant actuellement en charge les plates-formes Android et IOS, mais d'autres à venir. Et il dispose également de fonctionnalités intéressantes telles que les tests instantanés sur les appareils, la mise à l'échelle automatique et la résolution automatique des images pour cibler facilement différentes tailles d'écran, ainsi que la possibilité d'étendre chaque plate-forme via des plugins natifs.

Artūrs Sosins
la source
1

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

Utilisation très intuitive et interface utilisateur très agréable.

Exsigth
la source