Moteur de jeu 2D multi-plateformes pour Android et iOS?

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 petit jeu réalisé sur Unity3d nécessite au moins 10 Mo de téléchargement, ce qui est trop pour un jeu en 2D.

Je recherche donc actuellement un moteur pour la 2D. J’ai essayé Cocos2D mais c’est iOS uniquement et je ne voudrais pas tout réécrire dans une autre langue pour Android (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 avec le moins de tracas le déployer 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 multi-plateforme
  • doit être efficace
  • devrait être C ++, Java, C # ou Objective C car je suis à l’aise avec eux et PAS Flash, Javascript, HTML5 puisque 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 direct sur iOS ou Android (facturation via l’application, facebook, etc.)
  • le dernier colis livré ne doit pas être trop grand
  • 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 très positives sur Marmalade mais pas sur IwGame. EDIT (mars 2013) : On dirait que Marmalade SDK inclut maintenant Cocos2Dx et un IDE intégré, ce qui le rend bien meilleur (et coûte 150 dollars par an pour le développeur indépendant, ce qui me convient).
  • Corona SDK – Lua (efficacité douteuse), a également besoin d’une connexion Internet pour comstackr le code
  • Cocos2d-x – C ++, a reçu beaucoup de critiques de développeurs, la plupart positifs et beaucoup pensent que c’est mieux pour la 2D
  • Code de particules – Java + Eclipse, n’a trouvé aucune critique ou commentaire
  • Moai – Lua, n’a pas trouvé d’avis / avis à ce sujet
  • 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 tels que 2D Toolkit
  • ports de SDL vers Android (également ici ) et iOS – ne semble pas avoir beaucoup de support ou de développement en cours (?)
  • GLBasic – Langage de base, je ne l’aime pas
  • playN – semble être au début du développement (?)
  • Gamvas – HTML5, ne me ressemble pas à un moteur mature
  • Ignifuga – Python, aussi n’a pas l’air mature
  • ORX – Je ne sais pas si elle est encore développée (?)
  • Construct 2 – rappelle GameMaker, peut être correct pour les prototypes rapides mais certainement pas pour les jeux au niveau de l’indussortinge
  • XNA , puis port du jeu en utilisant ExEn (nécessite Mono Touch pour le portage vers iOS et Mono pour Android vers Android) – C #, et est probablement plus pensé pour les utilisateurs de produits Microsoft tels que xBox (je viens d’Android). En outre, ces outils Mono coûtent au total 800 dollars pour les petits développeurs.
  • Impact – JavaScript utilise HTML5. Je ne suis pas très intéressé par JavaScript (par exemple, préféré C # sur Unity3d), mais je ne suis pas sûr de son efficacité car il fonctionne dans le navigateur (?)
  • GameMaker – propre langage de script GML et je me souviens de celui-ci comme un outil pour les non-programmeurs. Est-ce que c’est devenu un vrai moteur, je veux dire pour le développement sérieux?
  • AppGameKit – C ++, semble pourtant être encore assez nouveau. Aucun avis n’a été trouvé à ce sujet
  • Utilisez Cocos2D et Objective C pour développer uniquement pour iOS, puis créez un APK pour Android à l’aide de Stella SDK . Quelqu’un l’a-t-il fait? Je suis sûr qu’il y aura des limitations, et que diriez-vous de la facturation in-app de Google, de l’intégration d’AdMob et de Facebook sur Android?
  • Moscrif – JavaScript, c’est plus pour les anciens développeurs web
  • Starling – Flash 11, je ne suis pas beaucoup dans 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 toute autre chose que j’ai manquée) est le meilleur pour les exigences décrites. Je peux également me tromper avec mes premières impressions sur certains moteurs.

Je pense actuellement à Marmalade + IwGame comme étant la meilleure option, mais comme je n’ai pas beaucoup d’informations sur Cocos2d-x et Particle Code, je n’en suis pas vraiment sûr.

Je vous remercie!

EDIT (juin 2013) : Jusqu’à présent, j’ai créé 2 jeux 2D multi-plateformes et utilisé Unity3D avec le plug-in 2D Toolkit pour les deux. Pour le jeu avec une interface graphique simple, j’ai utilisé un simple système graphique GUI basé sur Unity. Pour les plus complexes (par exemple, où les éléments d’interface graphique peuvent se chevaucher), j’ai utilisé le plug-in NGUI. Récemment, 2D Toolkit a ajouté d’autres classes pour l’interface graphique, ce qui est très pratique car il fallait utiliser 2 systèmes différents pour les atlas de texture en combinant NGUI avec 2D Toolkit. Je vais certainement essayer celui-là dans le prochain jeu en 2D. La principale raison de choisir Unity3D pour les jeux 2D était que j’étais déjà au cœur d’Unity3D, à la fois en termes d’expérience et d’extraits de code accumulés pour la réutilisation. De plus, j’ai acheté Unity3D pro (avec Android Pro et iOS Pro) pour les jeux 3D et il était tout à fait logique de ne payer que 60 $ supplémentaires pour le 2D Toolkit afin que les jeux 2D soient également couverts. Jusqu’à présent, je ne regrette pas ma décision, cela semble avoir été optimal pour mon cas. La seule chose qui me donnait mal à la tête était d’append des fonctionnalités sociales avec les plugins de Prime31 (plugins sociaux Android et iOS) mais je suppose que leurs bogues ne sont pas la faute de Prime31 mais de Twitter / Facebook. tout autre moteur ou plugin.

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

    J’ai travaillé avec Marmalade et j’ai trouvé cela satisfaisant. Bien que ce ne soit pas gratuit et que la communauté des développeurs ne soit pas assez importante, vous pouvez toujours gérer la plupart des tâches en utilisant ses tutoriels. (Je vais écrire mes tutoriels une fois que j’ai eu quelques fois).
    IwGame est un bon moteur, développé par l’un des utilisateurs de Marmalade. C’est bon pour un jeu de base, mais si vous cherchez des trucs de jeu sérieux, vous pouvez aussi utiliser Cocos2D-x avec Marmalade. Je n’ai jamais utilisé Cocos2D-x, mais il y a une extension sur Github de Marmalade.
    Une autre bonne chose à propos de Marmalade est son EDK (Extension Development Kit) , qui vous permet d’étendre les fonctionnalités dont vous avez besoin, disponibles en code natif, mais pas dans Marmalade. Je l’ai utilisé pour développer ma propre extension Admob personnalisée et une extension Facebook.

    Modifier :
    Marmalade a maintenant son propre outil RAD (Rapid Application Development) pour le développement 2D, nommé Marmalade Quick . Bien que le codage soit en Lua et non en C ++, mais puisqu’il est construit sur C ++ Marmalade, vous pouvez facilement inclure une bibliothèque C ++ et toutes les autres extensions EDK. Les extensions Cocos-2Dx et Box2D sont également incluses dans le Quick. Ils ont récemment lancé sa version Release (c’était en version bêta pendant 3-4 mois). Je pense que nous ne recherchons que le développement 2D, vous devriez essayer.

    Mettre à jour:
    Unity3D a récemment lancé un support pour les jeux 2D, ce qui semble mieux que tout autre moteur de jeu 2D, en raison de son interface graphique et de son éditeur. Le support physique, sprite, etc. est intégré. Vous pouvez y jeter un coup d’oeil.

    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 décision judicieuse de compter sur cela.

    LibGDX est l’un des meilleurs moteurs que j’ai jamais utilisé, fonctionne sur presque toutes les plates-formes 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 de jruby. Il y a un bon outil d’animation squelettique qui fonctionne avec lui, et il prend également en charge les cartes TMX en mosaïque. Le framework de l’interface utilisateur est génial, et il a une API de graphe de scène et de style d’acteur similaire aux scènes, sprites et actions de 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 ce que vous voulez. Je le recommande fortement pour le travail en 2D ou 3D, il supporte les deux.

    Vous mentionnez Haxe / NME mais vous semblez détester instinctivement. Cependant, mon expérience 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 comstackr en HTML5 ou des applications Windows, Mac, iOS et Android natives. Haxe est un langage agréable et moderne, similaire à Java ou C #.

    Si cela vous intéresse, j’ai un peu écrit sur mon expérience avec Haxe / NME: link

    V-Play (v-play.net) est un moteur de jeu multi-plateforme basé sur Qt / QML avec de nombreux composants de jeu V-Play QML utiles pour gérer plusieurs résolutions d’affichage et rapports d’aspects, animations, particules, physique, multi-touch, gestes, recherche de chemin et plus. Référence de l’API Le kernel du moteur est écrit en C ++ natif, combiné au moteur de rendu personnalisé, les jeux atteignent une performance solide de 60 images par seconde sur tous les périphériques.

    V-Play est également livré avec des modèles de jeu prêts à l’emploi pour les genres de jeux les plus réussis tels que la tour de défense, les jeux de plateforme ou les jeux de reflection.

    Si vous êtes curieux de connaître les jeux réalisés avec V-Play, voici une sélection rapide:

    • Squaby : un jeu de défense de tour
    • Chicken Outbreak : un jeu de plateforme comme Doodle Jump
    • Blockoban : jeu de puzzle
    • Crazy Elephant : un jeu similaire à Angry Birds
    • Snowball Mania : jeu d’action multijoueur
    • Blitzkopf : jeu de cerveau

    (Disclaimer: Je suis l’un des gars derrière V-Play)

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

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

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

    J’ai essayé AppGameKit, c’est à la fois c ++ et Basic. Il est très facile de coder des jeux 2d dans la variante Basic, avec de la physique, des collisions et des tas de plus. C’est aussi en développement actif, et vraiment pas cher (65 $). Le principal problème est qu’il est très difficile de comstackr pour Android (vous devez télécharger des tas de fichiers et suivre des guides difficiles, par exemple). Je pense qu’il n’est pas encore assez bon pour un usage commercial, mais bon pour les programmeurs indépendants. Il y a une communauté de taille moyenne

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

    Check out Loom ( http://theengine.co ) est un nouveau moteur de jeu 2D multi-plateformes avec code de transfert à chaud et ressources sur les appareils. Cela signifie que vous pouvez travailler dans Photoshop sur vos ressources, mettre à jour votre code, modifier l’interface utilisateur de votre application / jeu et afficher les modifications sur votre ou vos appareils pendant l’exécution de l’application.

    En pensant aux autres moteurs de jeu multi-plateformes dont j’ai entendu parler ou avec lesquels j’ai déjà joué, le moteur de jeu Loom est de loin le meilleur de mon opinion avec de nombreuses fonctionnalités géniales. La plupart des autres moteurs de jeu 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épendant. Il y a quelques semaines, la licence a été offerte gratuitement pendant un an. Une fois la licence expirée, 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 le rend intéressant d’acheter une autre licence.

    Sans plus tarder, voici les grandes caractéristiques de Loom:

    1. Plate-forme croisée (iOS, Android, OS X, Windows, Linux / Ubuntu)

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

    3. Compilateur rapide

    4. Code en direct et édition des actifs

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

    6. Utilise Cocos2DX pour le rendu

    7. XML, support 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 multi-services

    14. Petite taille de téléchargement

    15. Construit pour les équipes

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

    Découvrez également ce tutoriel approfondi en 4 parties: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting -started.aspx

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

    Flash peut être une option car il est très facile à apprendre.

    J’utilise actuellement Corona pour des applications professionnelles 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 multiplates-formes. Il est à noter que Carlos (fondateur de Ansca Mobile / Corona SDK) a lancé une autre entreprise sur un moteur concurrent; Moteur Lanica Platino pour Appcelerator Titanium. Bien que je n’ai 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’elle puisse être compilée pour plusieurs plates-formes, sans se limiter aux environnements mobiles, est attrayant.

    Multimédia Fusion 2 est également un concurrent valable, compte tenu de la complexité des jeux produits et des performances obtenues. On pense à Vincere Totus Astrum ( http://gamesare.com ).