Moteur de jeu multiplateforme 2D pour Android et iOS? [fermé]

262

J'ai travaillé pendant un certain temps avec Unity3d et j'ai trouvé sa partie 2D avec OnGUI () ou GUITextures trop maladroite. En outre, même un plus petit jeu fait sur Unity3d est au moins 10 Mo de téléchargement, ce qui est tout simplement trop pour un jeu 2D.

Je recherche donc actuellement un moteur pour 2D. J'ai essayé Cocos2D mais c'est uniquement iOS et je ne voudrais pas tout réécrire dans une autre langue pour Android (donc, par exemple, le port Java de Cocos2d pour Android n'est pas une option). Au lieu de cela, je veux écrire le code une fois et le déployer le moins de tracas sur iOS, Android et éventuellement Windows Phone 7. J'ai à la fois Mac et Windows.

Juste pour être plus détaillé, voici mes exigences pour le moteur:

  • doit être multiplateforme
  • doit être efficace
  • devrait être C ++, Java, C # ou Objective C car je suis à l'aise avec eux et NON Flash, Javascript, HTML5 car je ne suis pas développeur Web
  • doit avoir une grande communauté, des tutoriels, des bibliothèques supplémentaires qui couvrent la plupart des choses que vous auriez lors du développement directement sur iOS ou Android (facturation via l'application, facebook, etc.)
  • le colis final livré ne doit pas être trop volumineux
  • le moteur peut être gratuit, mais cela ne me dérangerait pas non plus de payer un prix raisonnable

J'ai trouvé les moteurs suivants:

  • Marmalade (et le moteur IwGame en plus) - C ++, a trouvé des critiques globalement très positives de Marmalade mais pas sûr d'IwGame. EDIT (mars 2013) : On dirait que Marmalade SDK comprend maintenant Cocos2Dx et un IDE intégré qui le rend beaucoup mieux (et coûte 150 $ par an pour un développeur indépendant, ce qui me convient).
  • SDK Corona - Lua (efficacité douteuse), a également besoin d'une connexion Internet pour compiler le code
  • Cocos2d-x - C ++, a reçu de nombreuses critiques de développeurs, pour la plupart positives et beaucoup pensent que c'est mieux pour la 2D
  • Code de particules - Java + Eclipse, n'a trouvé aucun avis ou commentaire
  • Moai - Lua, aucun avis / opinion sur celui-ci
  • Moteur de singe - semble avoir trop peu de fonctionnalités
  • Haxenme - c'est Flash, je ne l'ai jamais utilisé et je ne veux pas
  • utiliser Unity3d mais avec des packages 2D comme 2D Toolkit
  • ports de SDL vers Android (également ici ) et iOS - ne semble pas avoir beaucoup de support ou de développement actuel (?)
  • GLBasic - Langage basique, je ne l'aime pas
  • playN - semble être au début du développement (?)
  • Gamvas - HTML5, ne ressemble pas à un moteur mature pour moi
  • Ignifuga - Python, ne semble pas non plus mature
  • ORX - je ne sais pas s'il est encore développé (?)
  • Construct 2 - rappelle GameMaker, peut être acceptable pour les prototypes rapides mais certainement pas pour les jeux de niveau industriel
  • XNA puis portez le jeu en utilisant ExEn (aurait besoin de Mono Touch pour porter sur iOS et Mono pour Android pour porter sur Android) - C #, et est probablement plus pensé pour les personnes venant de produits Microsoft comme xBox (je viens d'Android). De plus, ces outils mono coûtent 800 $ au total pour les petits développeurs
  • Impact - JavaScript, utilise HTML5. Je ne suis pas beaucoup dans JavaScript (par exemple, C # préféré sur Unity3d), je ne suis pas sûr non plus de l'efficacité car il fonctionne dans le navigateur (?)
  • GameMaker - propre langage de script GML et je me souviens en fait de celui-ci comme d'un outil pour les non-programmeurs. Est-il réellement devenu un véritable moteur, je veux dire pour un développement sérieux?
  • AppGameKit - C ++, mais semble encore assez nouveau. Je n'ai trouvé aucun avis dessus
  • utilisez Cocos2D et Objective C pour développer pour iOS uniquement, puis créez un APK pour Android à l'aide de Stella SDK . Quelqu'un a-t-il fait cela? Je suis sûr qu'il y aura des limitations, et que diriez-vous de la facturation dans l'application, de l'intégration d'AdMob et de Facebook sur Android?
  • Moscrif - JavaScript, il semble que ce soit plus pour les anciens développeurs Web
  • Starling - Flash 11, je n'aime pas beaucoup Flash
  • ND2D - pas encore 1.0, a-t-il de nombreuses fonctionnalités?

Donc, je serais heureux si vous pouviez commenter vos expériences avec les moteurs et suggérer lequel dans la liste (ou tout autre élément que j'ai manqué) est le meilleur pour les exigences décrites. Je peux aussi me tromper avec mes premières impressions sur certains moteurs.

Je pense actuellement à Marmalade + IwGame comme la meilleure option, mais comme je n'ai pas beaucoup d'informations sur Cocos2d-x et le code des particules, je n'en suis pas vraiment sûr.

Je vous remercie!

EDIT (juin 2013): Jusqu'à présent, j'ai créé 2 jeux 2D multiplateformes et utilisé Unity3D avec le plugin 2D Toolkit pour les deux. Pour le jeu avec une interface graphique simple, j'ai utilisé un système GUI auto-conçu simple basé sur celui de Unity. Pour les plus complexes (par exemple où les éléments GUI peuvent se chevaucher), j'ai utilisé le plugin NGUI. Récemment, 2D Toolkit a ajouté quelques classes supplémentaires pour GUI, ce qui est très pratique car il fallait utiliser 2 systèmes différents pour les atlas de texture lors de la combinaison de NGUI avec 2D Toolkit. Je vais certainement essayer celui-ci dans le prochain jeu 2D. La principale raison pour laquelle j'ai choisi Unity3D pour les jeux 2D était que j'étais déjà profondément plongé dans Unity3D à la fois en termes d'expérience et de fragments de code accumulés à réutiliser. De plus, j'ai acheté Unity3D pro (avec Android Pro et iOS Pro) pour les jeux 3D et il était tout à fait logique de simplement payer 60 $ supplémentaires pour le 2D Toolkit pour que les jeux 2D soient également couverts. Jusqu'à présent, je ne le fais pas Je regrette ma décision, elle semble avoir été optimale pour mon cas. La seule chose qui m'a donné mal à la tête a été l'ajout de fonctionnalités sociales avec les plugins Prime31 (plugins sociaux Android et iOS) mais je suppose que leurs bugs ne sont pas la faute de Prime31 mais de Twitter / Facebook à la place, donc je verrais probablement les mêmes bugs sur tout autre moteur ou plugin.

EDIT (janvier 2014) : Je suppose qu'avec Unity 4.3, la réponse à ma question est maintenant assez évidente: le nouveau système de sprites de Unity et peut-être aussi 2DToolkit ont totalement battu tout le reste, en particulier pour les personnes qui (comme moi) ont été sur Unity pendant un certain temps et acheté la version Pro avec des modules complémentaires.

iseeall
la source
et lequel avez-vous choisi? Qu'en est-il de libgdx ou andEngine, vous ne les avez même pas mentionnés, que je pensais être les plus populaires
kosnkov
1
@kosnkov - Il a spécifié des exigences qui incluent un déploiement d'écriture deux fois (iOS et Android avec option de Windows Phone un plus). etEngine est uniquement Android et libgdx ne cible pas iOS (ni Windows Phone), donc ils ne sont pas admissibles.
sprite
1
J'ai fini par faire un jeu en 3D avec Unity3D et le plugin NGUI pour GUI. Si jamais je dois faire un jeu 2D, je suppose que je prendrai Cocos2d-x et Marmelade
iseeall
1
à en juger par le site Web, je suis presque sûr que libgdx prend en charge iOS maintenant. Toujours pas de téléphone Windows cependant.
Ehtesh Choudhury
1
comment se fait-il que des questions extrêmement utiles comme celle-ci soient toujours fermées comme «hors sujet»? peut-être que SO devrait créer une plate-forme séparée pour les "informations" et les opinions
Bogdan Alexandru

Réponses:

33

J'ai travaillé avec Marmaladeet je l'ai trouvé satisfaisant. Bien que ce ne soit pas gratuit et que la communauté des développeurs ne soit pas assez grande, vous pouvez toujours gérer la plupart des tâches à l'aide de ses didacticiels. (J'écrirai mes tutoriels une fois que j'en aurai aussi quelques fois).
IwGameest un bon moteur, développé par l'un des utilisateurs de Marmalade. C'est bon pour un jeu de base, mais si vous recherchez des trucs de jeu avancés sérieux, vous pouvez également les utiliser Cocos2D-xavec Marmalade. Je n'ai jamais utilisé Cocos2D-x, mais il y a une extension sur Marmalade Github.
Une autre bonne chose à propos de Marmalade est qu'elle EDK (Extension Development Kit)vous permet de créer une extension pour toutes les fonctionnalités dont vous avez besoin, disponible en code natif, mais pas dans Marmalade. JE'

Edit :
Marmalade a maintenant son propre outil RAD (Rapid Application Development) juste pour le développement 2D, nommé Marmalade Quick. Bien que le codage soit en Lua et non en C ++, mais comme il est construit au-dessus de C ++ Marmalade, vous pouvez facilement inclure une bibliothèque C ++ et toutes les autres extensions EDK. Les extensions Cocos-2Dxet Box2Dsont également incluses dans le Quick. Ils ont récemment lancé sa version Release (elle était en version bêta pendant 3-4 mois). Je pense que nous recherchons vraiment uniquement du développement 2D, vous devriez l'essayer.

Mise à jour:
Unity3D a récemment lancé la prise en charge des jeux 2D, ce qui semble meilleur que tout autre moteur de jeu 2D, en raison de son interface graphique et de l'éditeur. Le support physique, sprite, etc. est intégré. Vous pouvez y jeter un œil.

Mise à jour 2
Marmalade va bientôt abandonner son SDK au profit de sa production de jeux en interne. Ce ne sera donc pas une sage décision de s'appuyer sur cela.

Noob
la source
Vous pouvez également lire cette question SO aussi - stackoverflow.com/questions/12059539/cocos2d-or-iwgame
noob
Merci, on dirait que Marmalade avec Cocos2D-x dessus peut en effet être la meilleure option pour mon cas.
iseeall
2
Oublier [LibGDX] [1] quand ce genre de question se pose est impardonnable !!! ;) [1]: libgdx.badlogicgames.com
Ewoks
Vérifiez les mises à jour :-)
noob
Unreal Engine 4.3.0 peut également être un concurrent. C'est C ++ avec l'éditeur et tout.
ervinbosenbacher
43

LibGDX est l'un des meilleurs moteurs que j'ai jamais utilisés, fonctionne sur presque toutes les plateformes et fonctionne deux fois plus vite que cocos2d-x dans la plupart des tests que j'ai effectués. Vous pouvez utiliser n'importe quel langage JVM que vous aimez. Voici un tutoriel en 13 parties en Java, et voici un tas utilisant jruby. Il existe un bon outil d'animation squelettique qui fonctionne avec ici , et il a également pris en charge les cartes TMX en mosaïque. Le cadre d'interface utilisateur est génial, et il a un graphique de scène et une API de style acteur similaire aux scènes, sprites et actions cocos2d. La communauté est géniale, les mises à jour sont fréquentes et la documentation est bonne. Ne laissez pas la partie java vous effrayer, c'est rapide, et vous pouvez utiliser jruby ou scala ou tout ce que vous voulez. Je le recommande vivement pour les travaux 2D ou 3D, il prend en charge les deux.

Kamek
la source
5
Désormais, LibGDX fonctionne également avec iOS. Mais cela coûte ~ 400 $ pour la licence Monotouch :)
JavaRunner
5
À partir de la version 0.9.9, il utilise RoboVM pour iOS qui est gratuit
James McCracken
1
J'ai beaucoup travaillé avec LibGDX et cocos2dx. Et dirait que cocos2dx est bien meilleur (développement plus rapide + performances + outillage). Si vous utilisez uniquement Android, il est préférable d'utiliser LibGDX, sinon! La prise en charge multiplateforme de LibGDX est très très mauvaise, ce qui dépend de RoboVM ou de Xamarin. Xamarin et RoboVM rendent la compilation et l'exécution très lentes sur iOS. Il devient finalement très difficile à entretenir.
user18853
13

Vous mentionnez Haxe / NME mais vous semblez détester instinctivement. Cependant, mon expérience avec elle a été très positive. Bien sûr, l'API est une réimplémentation de l'API Flash, mais vous n'êtes pas limité au ciblage de Flash, vous pouvez également compiler vers HTML5 ou des applications natives Windows, Mac, iOS et Android. Haxe est un langage agréable et moderne similaire à Java ou C #.

Si vous êtes intéressé, j'ai écrit un peu sur mon expérience avec Haxe / NME: lien

zwets
la source
Merci, juste à partir de votre article: "si vous avez un jeu HTML5 / Javascript (ou Flash / ActionScript) et que vous souhaitez le porter sur Windows, iOS et au-delà". Je suppose que ce moteur est exactement pour les développeurs Web qui souhaitent passer aux plateformes mobiles.
iseeall
Haxe / NME n'est pas un moteur de jeu, c'est une plate-forme qui fait partie de votre pile technologique. Ce n'est pas pour les développeurs Web qui souhaitent passer aux plates-formes mobiles. Il s'adresse aux développeurs de jeux qui souhaitent proposer leurs jeux sur autant de plateformes que possible sans avoir à gérer des langages inférieurs comme JavaScript. HAXE / NME est très puissant mais d'après le son des choses, je ne pense pas que c'est ce que vous cherchiez.
anber
12

V-Play (v-play.net) est un moteur de jeu multiplateforme basé sur Qt / QML avec de nombreux composants de jeu V-Play QML utiles pour gérer plusieurs résolutions d'affichage et proportions, animations, particules, physique, multi-touch, gestes, recherche de chemin et plus encore. Référence de l'API Le cœur du moteur est écrit en C ++ natif, combiné avec le rendu personnalisé, les jeux atteignent une solide performance de 60 ips sur tous les appareils.

V-Play est également livré avec des modèles de jeu prêts à l'emploi pour les genres de jeux les plus réussis comme la défense de tour, les jeux de plate-forme ou les jeux de puzzle.

Si vous êtes curieux de découvrir les jeux créés avec V-Play, en voici une sélection rapide:

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

Alex Huber
la source
7

Voici juste une réponse de Richard Pickup sur LinkedIn à une question similaire:

J'ai utilisé la marmelade cocos 2dx et l'unité sur iOS et Android. Pour les jeux 2D, cocos2dx est la voie à suivre à chaque fois. L'unité est tout simplement trop exagérée pour les jeux 2D et comme déjà indiqué, la marmelade n'est qu'une fine couche d'abstraction, pas vraiment un moteur de jeu. Vous pouvez même exécuter cocos2d sur de la marmelade. Mon approche serait d'utiliser cocos2dx sur iOS et android, puis d'exécuter à l'avenir du code cocosd2dx au-dessus de marmelade comme un moyen facile de porter sur bb10 et de gagner le téléphone 7

iseeall
la source
7

Je trouve un moteur de jeu Wave agréable et bien rangé il y a quelques jours. Il utilise C # et possède également des convertisseurs Windows Phone et Windows Store, ce qui en fait un excellent remplacement de XNA pour moi

Deadcow
la source
6

et qu'en est-il de LibGDX de BadLogicGames?

Ewoks
la source
1
Je ne savais pas que libGDX fonctionne sur iOS. Il nécessite une licence MonoDroid, qui est maintenant (probablement, je ne vois pas l'application sous 32 Ko de MSIL) 999 $ au lieu de 399 $ par an.
ashes999
6

Découvrez Loom ( http://theengine.co ) est un nouveau moteur de jeu 2D multiplateforme proposant du code et des actifs d'échange à chaud sur les appareils. Cela signifie que vous pouvez travailler dans Photoshop sur vos actifs, vous pouvez mettre à jour votre code, modifier l'interface utilisateur de votre application / jeu, puis voir les modifications sur votre ou vos appareils pendant que l'application est en cours d'exécution.

En pensant aux autres moteurs de jeux multiplateformes dont j'ai entendu parler ou même avec lesquels j'ai joué, le moteur de jeu Loom est de loin le meilleur à mon avis avec beaucoup de fonctionnalités intéressantes. La plupart des autres moteurs de jeux similaires (Corona SDK, MOAI SDK, Gideros Mobile) sont basés sur Lua (avec une syntaxe étrange, du moins pour moi). Le moteur de jeu Loom utilise LoomScripts, un langage de script inspiré d'ActionScript 3, avec quelques fonctionnalités empruntées à C #. Si vous avez déjà développé en ActionScript 3, C # ou Java, LoomScript vous semblera familier (et je suis plus à l'aise avec cette syntaxe qu'avec la syntaxe de Lua).

La licence d'un an pour le moteur de jeu Loom coûte 500 $, et je pense que c'est un prix abordable pour tout développeur de jeux indépendants. Il y a quelques semaines, une licence gratuite d'un an a également été offerte. Après l'expiration de la licence, vous pouvez toujours utiliser Loom pour créer et déployer vos propres jeux, mais vous ne recevrez plus de mises à jour. Les créateurs de Loom sont très confiants et ils ont promis d'améliorer constamment leur bébé, ce qui vaut la peine d'acheter une autre licence.

Sans plus tarder, voici les grandes fonctionnalités de Loom:

  1. Multiplateforme (iOS, Android, OS X, Windows, Linux / Ubuntu)

  2. Le flux de travail inspiré de Rails vous permet de passer votre temps à travailler avec votre jeu (une commande pour créer un nouveau projet et une autre commande pour l'exécuter)

  3. Compilateur rapide

  4. Édition de code en direct et d'actifs

  5. Possibilité d'intégrer des bibliothèques tierces

  6. Utilise Cocos2DX pour le rendu

  7. Prise en charge XML, JSON

  8. LML (langage de balisage) et CSS pour styliser les éléments de l'interface utilisateur

  9. Bibliothèque d'interface utilisateur

  10. Injection de dépendance

  11. Cadre de test unitaire

  12. Physique des tamias

  13. Voir vos changements en direct facilite le développement de plusieurs appareils

  14. Petite taille de téléchargement

  15. Conçu pour les équipes

Vous pouvez trouver plus de vidéos sur Loom ici: http://www.youtube.com/user/LoomEngine?feature=watch

Consultez également ce didacticiel détaillé en 4 parties: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting -started.aspx

balazs.bohonyi
la source
5

J'ai essayé AppGameKit, c'est à la fois c ++ et Basic. Il est très facile de coder des jeux 2D dans la variante de base, avec plus de physique, de collision et de tas. Il est également en développement actif et vraiment pas cher (65 $). Le problème principal est qu'il est vraiment difficile de compiler pour Android (vous devez télécharger des tas de fichiers et suivre des guides difficiles et des choses comme ça) Mon avis est qu'il n'est pas encore assez bon pour un usage commercial, mais est bon pour les programmeurs indépendants Il a une communauté de taille moyenne

Steven Kaydn
la source
4

J'utilise actuellement Corona pour des applications commerciales avec beaucoup de succès. En ce qui concerne les jeux, j'ai l'impression qu'il ne fournit pas les performances de certains autres moteurs de développement multiplateforme. Il convient de noter que Carlos (fondateur d'Ansca Mobile / Corona SDK) a démarré une autre entreprise sur un moteur concurrent; Moteur Lanica Platino pour Appcelerator Titanium. Bien que je n'aie pas travaillé avec cela personnellement, cela semble prometteur. Gardez à l'esprit, cependant, qu'il est livré avec un prix de 999 $ / an.

Cela dit, je fais des recherches sur Moai depuis un petit moment (puisque je connais déjà la syntaxe Lua) et cela semble prometteur. Le fait qu'il puisse compiler pour plusieurs plates-formes, sans se limiter aux environnements mobiles, est attrayant.

Multimedia Fusion 2 est également un concurrent valable, compte tenu de la complexité des jeux produits et des performances qui en découlent. Vincere Totus Astrum ( http://gamesare.com ) me vient à l'esprit.

Sean Perryman
la source
3

Récemment, j'ai utilisé un moteur AS3: PushButton (maintenant mort, mais il est toujours fonctionnel et vous pourriez utiliser autre chose) pour faire ce travail. Pour le faire fonctionner avec Android et iOS, le projet a été compilé dans AIR pour les deux plates-formes et tout a fonctionné sans endommager les performances. Étant donné que Flash Builder est un peu cher (249 $), vous pouvez utiliser FlashDevelop (il existe des didacticiels à compiler dans AIR avec).

Le flash pourrait être une option car il est très facile à apprendre.

Kleber
la source