34 votes

Cocos2d pour iPhone vs. Cocos2d-x

J'ai travaillé un peu avec Cocos2d pour iPhone et je le trouve délicieux. Je commence un autre projet, et je suis tombé sur Cocos2d-x, un portage C++. Je suis tenté par l'idée de pouvoir (avec de la considération) construire pour plusieurs plateformes à la fois. Je suis aussi à l'aise avec Obj-C qu'avec C++, et je ne cherche pas à comparer les deux langages, sauf si c'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 inconvénients spécifiques des deux ? Cocos2d-x est-il "terminé" ? Fiable ?

35voto

Sold Out Activist Points 1349

L'attrait des constructions multiplateformes est un cauchemar déguisé. N'importe quel concepteur de sites Web vous racontera des histoires d'horreur sur la façon dont il a essayé de jongler avec IE, Firefox, Chrome et n'importe quoi d'autre en même temps. Vous ne réaliserez pas soudainement plus de ventes parce que vous avez pu lancer votre site sur Android/iOS/etc dès le premier jour. Il est plus que probable que vos tentatives de multiplateforme restreignent votre application d'une manière qui la tuera sur toutes les plateformes. Votre meilleure chance est de commencer avec une seule plateforme, de la terminer, puis de construire pour les autres. Votre produit final vous en remerciera.

Il n'y a pas d'avantages ou d'inconvénients à Cocos2d-x, sauf si vous préférez le C++ à Obj-C.

18voto

bigtunacan Points 171

Je suis d'accord pour dire que vous devriez vous concentrer sur le développement d'une seule plateforme jusqu'à ce que vous ayez un bon produit solide sur le marché. Cependant, de nombreux développeurs qui le font après coup se rendent compte des efforts et des coûts supplémentaires nécessaires pour réécrire complètement le jeu sur une nouvelle plate-forme. En réfléchissant un peu en amont, vous pouvez minimiser le besoin de retravailler et donc minimiser votre coût une fois que vous êtes prêt à porter votre jeu. Android représente une part de marché trop importante pour l'ignorer complètement ; à mon avis, Cocos2d-x est la voie à suivre si vous aimez Cocos2d.

9voto

Lance Gray Points 807

Je ne sais pas cocos2d-iphone mais je sais que cocos2d-x .

Pour :

  • cocos2d-x utilise C++ (ce n'est pas vraiment un avantage pour certains, mais c'est un avantage pour moi).
  • Vous pouvez facilement déployer sur différentes plateformes, en supposant que vous l'ayez configuré correctement (voir ci-dessous).
  • Il prend en charge Lua et JavaScript, pour un codage encore plus facile.

Cons :

  • cocos2d-x a peu ou pas de documentation. Vous devez vous fier aux projets de test et à la référence API. Dieu merci, il y a des gens comme Nat Weiss qui a mis l'apprentissage à la portée des utilisateurs. ( http://paralaxer.com/cocos2d-x-book/ )
  • Configurer votre projet pour qu'il fonctionne sur toutes les plateformes est un véritable casse-tête. Vous devez maîtriser plusieurs IDE ainsi que les commandes de la ligne de commande/du terminal.
  • La plupart des scripts qui sont fournis avec la bibliothèque pour créer de nouveaux projets ne sont pas multiplateformes, ce qui signifie que vous devez toujours les configurer individuellement pour toutes les plateformes.
  • L'intégration de SDK tiers tels que ceux de Facebook, des publicités et d'autres éléments prend beaucoup de temps, car vous devez les mettre en œuvre pour chaque plate-forme que vous ciblez.

5voto

andrewz Points 717

Je développe avec cocos2d-x pour iphone et cela fonctionne très bien pour moi. Le seul problème que vous pouvez trouver est que l'api est toujours légèrement en retard sur la version de cocos2d pour iphone. Cependant l'api elle-même est fiable et est un fac-similé de l'original dans la plupart des cas.

Si vous êtes sérieux au sujet du portage sur d'autres plateformes, même si vous essayez de réussir sur une seule plateforme d'abord, cocos2d-x est la voie à suivre, parce que vous n'aurez pas besoin de réécrire l'essentiel de votre code dans un autre langage plus tard (c'est-à-dire le portage de c++ à objc ou d'objc à c++).

3voto

FuzzyBunnySlippers Points 2297

J'ai travaillé avec Cocos2d et Cocos2d-X pour le développement de l'iPhone uniquement (jusqu'à présent). J'ai travaillé avec Cocos2d pendant environ 1 an et demi et je suis passé à Cocos2d-x au cours des six derniers mois environ. Au début, je ne voulais pas passer à Cocos2d-x car, à mon avis, il était encore en phase de maturation. Coco2d 2.0 était sorti avec de nombreux changements et je savais qu'il était bien déployé et testé. Coco2d-x semblait être encore en évolution. Cela a changé et j'ai décidé d'utiliser Coco2d-x pour la durée, tant qu'il continue à être supporté.

Les deux cadres semblent fonctionner comme prévu, en général, et offrent de bonnes performances pour ce sur quoi je travaille (vous pouvez voir quelques exemples). aquí ).

Je suis à l'aise pour travailler à la fois dans le monde Object-C et C++. Je ne sais pas si je porterai un jour mes "trucs" sur Android, mais c'est bien d'avoir cette possibilité.

Cependant, le BIG Le facteur décisif pour moi a été possibilité de réutilisation . Je construis beaucoup de composants et de widgets que je réutilise dans d'autres projets. Si je développais uniquement pour iOS, Objective-C serait la solution. Mais je travaille surtout en C++ et je ne veux pas avoir à recoder toutes les idées d'un langage à l'autre chaque fois que je veux sortir un outil testé de la boîte à outils.

Je pense que cela va sonner vrai pour tout que vous choisissez d'utiliser pour votre développement. Si vous avez le choix, optez pour l'option qui vous permettra d'en avoir le plus pour votre argent, aujourd'hui et à l'avenir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X