web-dev-qa-db-fra.com

Cocos2d pour iPhone contre Cocos2d-x

J'ai travaillé avec Cocos2d pour iPhone et le trouve ravissant. Je commence un autre projet et suis tombé sur Cocos2d-x, un port C++. Je suis tenté par l'idée de pouvoir (avec considération) construire pour plusieurs plates-formes à la fois. Je suis également à l'aise avec Obj-C et C++ et je ne cherche pas à comparer les deux langages, sauf si cela est spécifiquement lié au travail avec Cocos2d.

Quelqu'un a-t-il travaillé avec les deux versions du moteur et pouvez-vous commenter les avantages et les inconvénients des deux? Cocos2d-x est-il "fini"? Fiable?

34
WiseOldDuck

L'attrait des constructions multiplateformes est un cauchemar déguisé. Tout concepteur de site Web vous racontera des histoires horribles dans lesquelles vous essayez de combiner IE avec Firefox avec Chrome avec n'importe quoi simultanément. Vous ne gagnerez pas soudainement plus de ventes parce que vous avez pu lancer Android/iOS/etc dès le premier jour. Plus que probablement, vos tentatives pour multiplier les plates-formes limiteront votre application de manière à la tuer sur toutes les plates-formes. Votre meilleur pari est de commencer avec une plate-forme, de terminer celle-ci, puis de construire pour les autres. Votre produit final vous en sera reconnaissant.

Cocos2d-x ne présente aucun avantage/inconvénient, à moins que vous ne préfériez C++ à Obj-C.

35
Sold Out Activist

Je conviens que vous devriez vous concentrer sur le développement d’une plate-forme unique jusqu’à ce que vous disposiez d’un bon produit solide. Cependant, de nombreux développeurs qui réalisent cela après coup réalisent combien d'efforts et de coûts supplémentaires sont ensuite nécessaires pour réécrire complètement le jeu sur une nouvelle plate-forme. Est-ce qu'un peu au départ pensait pouvoir minimiser le besoin de retravailler et ainsi minimiser vos coûts une fois que vous êtes prêt à porter votre jeu? Android est une part de marché trop importante pour l'ignorer complètement. Dans mon esprit, Cocos2d-x est la voie à suivre si vous aimez Cocos2d.

18
bigtunacan

Je ne sais pas à propos de cocos2d-iphone mais je connais à propos de cocos2d-x.

Avantages:

  • cocos2d-x utilise C++ (enfin, pas vraiment un pro pour certains mais c’est un pro pour moi)
  • Vous pouvez facilement déployer sur différentes plates-formes, en supposant que vous l'avez configuré correctement (voir ci-dessous)
  • Il supporte Lua et JavaScript, pour un codage encore plus facile

Les inconvénients:

  • cocos2d-x a peu ou pas de documentation. Vous utiliseriez les projets de test et la référence API. Dieu merci, il y a des gens comme Nat Weiss qui ont rendu l’apprentissage facilement accessible aux utilisateurs. ( http://paralaxer.com/cocos2d-x-book/ )
  • Configurer votre projet pour qu'il fonctionne sur toutes les plateformes est une tâche ardue. Vous devez être doué pour plusieurs IDE ainsi que pour les commandes de ligne de commande/terminal
  • La plupart des scripts fournis avec la bibliothèque pour créer de nouveaux projets ne sont pas multi-plateformes, ce qui signifie que vous devez toujours les configurer individuellement pour toutes les plateformes.
  • L'intégration de kits de développement logiciel tiers tels que Facebook, des annonces et d'autres éléments prend beaucoup de temps, car vous devez les implémenter pour chaque plate-forme ciblée.
9
alxcyl

Je développe avec cocos2d-x pour iphone et cela fonctionne très bien pour moi. Le seul problème que vous pouvez constater est que l’API est toujours légèrement derrière Cocos2d pour la version iPhone. Cependant, api elle-même est fiable et constitue, dans la plupart des cas, un fac-similé de l’original.

Si vous envisagez sérieusement de transférer sur une autre plate-forme, même si vous essayez d’abord de réussir sur une seule plate-forme, cocos2d-x est la solution, car vous n’aurez pas besoin de réécrire l’essentiel de votre code dans une autre langue c'est-à-dire le port de c ++ à objc ou d'objc à c ++).

5
andrewz

Je travaille actuellement sur cocos2d-x et j'en suis très heureux. Mon conseil serait de démarrer le projet sur une plate-forme (je préfère l'IOS). Et lorsque vous avez lancé avec succès sur une plate-forme, commencez sur une autre.

Si votre jeu réussit, vous devez également le lancer sur une autre plate-forme. Il est donc préférable de planifier à l'avance.

2
user739711

Je resterais avec Cocos2D-iphone. Concentrez-vous sur le produit de la plus grande communauté avec beaucoup plus de ressources. Lorsque vous êtes prêt à porter, utilisez ensuite mesurable pour compiler votre application pour Android lorsque cela est fait.

0
Zac Bowling