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.