Je travaille depuis quelque temps avec Unity3d et j'ai trouvé sa partie 2D avec OnGUI () ou GUITextures trop maladroite. En outre, même un plus 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.
Donc, je suis actuellement à la recherche d'un moteur pour la 2D. J'ai déjà essayé Cocos2D, mais uniquement pour 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 souhaite écrire le code une fois et le déployer avec 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:
J'ai trouvé les moteurs suivants:
Donc, je serais heureux si vous pouviez commenter de vos expériences avec les moteurs et suggérer lequel de la liste (ou autre chose que j'ai manquée) 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 de particule, 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é le plug-in Unity3D avec 2D Toolkit pour les deux. Pour le jeu avec une interface graphique simple, j’ai utilisé un système graphique simple et personnalisé, basé sur celui de Unity. Pour plus complexe (par exemple, où les éléments de l'interface graphique peuvent se chevaucher), j'ai utilisé le plugin NGUI. Récemment, 2D Toolkit a ajouté quelques classes supplémentaires pour l’interface graphique, 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 en 2D. La raison principale qui a poussé à choisir Unity3D pour les jeux en 2D est que j’étais déjà profondément attaché à Unity3D, à la fois en termes d’expérience et de fragments de code accumulés à des fins de réutilisation. De plus, j'ai acheté Unity3D pro (avec Android Pro et iOS Pro) pour les jeux 3D et il était logique de simplement payer 60 $ supplémentaires pour la boîte à outils 2D afin que les jeux 2D soient également couverts. Jusqu'à présent, je ne regrette pas ma décision, elle semble avoir été optimale pour mon cas. La seule chose qui me donnait mal à la tête était d’ajouter 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, alors je verrais probablement les mêmes bugs sur tout autre moteur ou plugin.
EDIT (Jan 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 totalement dépassé toute autre chose, en particulier pour les personnes qui (comme moi) utilisent Unity depuis un certain temps et ont acheté la version Pro avec des add-ons.
J'ai travaillé avec Marmalade
et je l'ai trouvé satisfaisant. Bien que ce ne soit pas gratuit et que la communauté de développeurs ne soit pas assez nombreuse, vous pouvez néanmoins gérer la plupart des tâches à l'aide de ses tutoriels. (J'écrirai mes tutoriels une fois que j'en aurai eu quelques fois aussi).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 choses sérieuses pour les jeux avancés, vous pouvez aussi utiliser _Cocos2D-x
_ avec Marmalade. Je n'ai jamais utilisé Cocos2D-x, mais il existe une extension sur Github
de Marmalade.
Une autre bonne chose à propos de Marmalade, c’est EDK (Extension Development Kit)
, qui vous permet de créer une extension pour toute fonctionnalité dont vous avez besoin, disponible 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) juste pour le développement 2D, nommé Marmalade Quick
. Bien que le codage ne soit pas en C++ en Lua, mais puisqu'il repose sur C++ Marmalade, vous pouvez facilement inclure une bibliothèque C++ et toutes les autres extensions EDK. De même, les extensions _Cocos-2Dx
_ et _Box2D
_ sont 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 uniquement du développement 2D, vous devriez l'essayer.
Mise à jour:
Unity3D a récemment lancé la prise en charge des jeux 2D, qui semble meilleure que tout autre moteur de jeu 2D, en raison de son interface graphique et de son éditeur. Physics, Sprite etc., le support est intégré. Vous pouvez y jeter un coup d'oeil.
Mise à jour 2
Marmalade va cesser d’utiliser son SDK au profit de la production de ses jeux en interne. Donc, ce ne sera pas une sage décision de compter sur cela.
LibGDX est l'un des meilleurs moteurs que j'ai jamais utilisés. Il 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 quelle langue JVM. voici un tutoriel en 13 parties en Java, et voici un groupe utilisant jruby. Il existe un bon outil d'animation squelettique qui fonctionne avec ici , et il prend également en charge les cartes TMX en mosaïque. Le framework d'interface utilisateur est génial, et il a un graphique de scène et une API de style d'acteur similaires aux scènes, aux sprites et aux 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, elle est rapide et vous pouvez utiliser jruby ou scala ou ce que vous préférez. Je le recommande fortement pour le travail 2D ou 3D, il prend en charge les deux.
Vous mentionnez Haxe/NME mais vous semblez le détester instinctivement. Cependant, mon expérience en la matière a été très positive. Bien sûr, l'API est une réimplémentation de l'API Flash, mais vous ne pouvez pas uniquement cibler Flash. Vous pouvez également compiler au format HTML5 ou natif d'applications Windows, Mac, iOS et Android. 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-plateformes basé sur Qt/QML avec de nombreux composants de jeu V-Play QML utiles pour la gestion de résolutions et de formats d'affichage multiples, d'animations et de particules. , physique, multi-touch, gestes, recherche de chemin, etc. Référence de l'API Le cœur du moteur est écrit en C++ natif, associé au moteur de rendu personnalisé, les jeux atteignent une performance solide de 60 images par seconde 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 tels que la défense en tour, les jeux de plateforme ou les jeux de réflexion.
Si vous êtes intéressé par les jeux réalisés avec V-Play, en voici une sélection rapide:
(Avertissement: 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 et l'unité de cocos 2dx sur iOS et Android. Pour les jeux en 2D, cocos2dx est la voie à suivre à chaque fois. L'unité est juste un peu exagéré pour les jeux en 2D et, comme nous l'avons déjà indiqué, marmalade n'est qu'une mince couche d'abstraction, pas vraiment un moteur de jeu. Vous pouvez même exécuter cocos2d sur la marmelade. Mon approche consisterait à utiliser cocos2dx sur iOS et Android, puis à exécuter à l'avenir le code cocosd2dx au-dessus de marmelade comme moyen facile de porter en port bb10 et de gagner le téléphone 7.
Je trouve un Nice and Tidy moteur de jeu Wave il y a quelques jours. Il utilise le C # et dispose également de convertisseurs Windows Phone et Windows Store, ce qui en fait un excellent remplacement de XNA pour moi.
et que dire de LibGDX de BadLogicGames?
Check out Loom ( http://theengine.co ) est un nouveau moteur de jeu 2D multiplate-forme proposant des codes et des ressources échangeables à chaud sur les appareils. Cela signifie que vous pouvez utiliser vos ressources dans Photoshop, vous pouvez mettre à jour votre code, modifier l'interface utilisateur de votre application/jeu, puis voir les modifications apportées sur votre/vos appareil (s) 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 même joué, le moteur de jeu Loom est de loin le meilleur à mon avis avec de nombreuses fonctionnalités exceptionnelles. 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). Loom Game Engine utilise LoomScripts, un langage de script inspiré d'ActionScript 3, doté de quelques fonctionnalités empruntées au C #. Si vous avez déjà développé 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 Loom Game Engine coûte 500 USD, et je pense que c’est un prix abordable pour tout développeur de jeux vidéo indépendant. Il y a quelques semaines, une licence d'un an a été offerte gratuitement. Une fois la licence expirée, vous pouvez toujours utiliser Loom pour créer et déployer vos propres jeux, mais vous ne recevrez aucune autre mise à jour. Les créateurs de Loom sont très confiants et ils ont promis d’améliorer constamment leur bébé, ce qui en valait la peine.
Sans plus tarder, voici les grandes fonctionnalités de Loom:
Plateforme croisée (iOS, Android, OS X, Windows, Linux/Ubuntu)
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 pour l'exécuter)
Compilateur rapide
Modification en direct du code et des ressources
Possibilité d'intégrer des bibliothèques tierces
Utilise Cocos2DX pour le rendu
XML, support JSON
LML (langage de balisage) et CSS pour le style des éléments d'interface utilisateur
Bibliothèque d'interface utilisateur
Injection de dépendance
Cadre de test unitaire
Physique du chipmunk
Voir vos changements en direct facilite le développement multi-services
Petite taille de téléchargement
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 didacticiel en 4 parties: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part -one-getting-started.aspx
J'ai essayé AppGameKit, c'est à la fois c ++ et basique. Il est très facile de coder des jeux 2d dans la variante Basic, avec de la physique, des collisions et plus encore. C'est aussi en développement actif et vraiment pas cher (65 $). Le principal problème est qu’il est très difficile de compiler pour Android (vous devez télécharger des tas de fichiers et suivre des guides difficiles, etc.) Mon opinion est que ce n’est pas encore assez bon pour un usage commercial, mais c'est bon pour les programmeurs indépendants Il a une communauté de taille moyenne
J'utilise actuellement Corona pour les applications d'entreprise avec un grand succès. En ce qui concerne les jeux, j’ai l’impression que cela ne fournit pas les performances comparables à celles des autres moteurs de développement multiplate-forme. Il convient de noter que Carlos (fondateur de Ansca Mobile/Corona SDK) a démarré une autre société avec un moteur concurrent; Lanica Platino Engine pour Appcelerator Titanium. Bien que je n’aie pas travaillé avec cela personnellement, cela semble prometteur. Rappelez-vous toutefois que le prix est de 999 $/an.
Cela dit, je fais des recherches sur Moai depuis un moment (car je connais déjà bien 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 sérieux compte tenu de la complexité des jeux produits et de leurs performances. Vincere Totus Astrum ( http://gamesare.com ) vient à l’esprit.
Récemment, j'ai utilisé un moteur AS3: PushButton (maintenant mort, mais il reste fonctionnel et vous pourriez 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 a fonctionné sans dommage pour les performances. Comme Flash Builder est assez cher (249 USD), vous pouvez utiliser FlashDevelop (il existe quelques tutoriels à compiler dans AIR avec ce logiciel).
Flash pourrait être une option car il est très facile à apprendre.