Das Team von Casual Arena entwickelt seit 2008 Flash Spiele für Internetnavigatoren. Seit einem Jahr haben sich darauf spezialisiert Multiplattform Spiele für Mobile Geräte und Tablets zu entwickeln. Sie haben verschiedene Technologien studiert und sich auf Unity 3D und Cocos2D spezialisiert. Wir haben sie darum gebeten uns einen kleinen Vergleich für diese zwei Entwicklungsumgebungen zu schreiben und uns die Unterschiede zu erklären, auf denen man Apps entwickeln lassen kann.
DAS ERGEBNIS: SPIELE APPS ENTWICKELN AUF 2-D MULTIPLATTFORMEN
Die meisten Entwickler für Spiele auf Mobilgeräten und Tablets möchten Ihre Spiele auf Multiplattformen entwickeln oder zu mindestens für iOS oder Android. Es ist natürlich möglich immer zwei Entwicklungen parallel laufen zu lassen, mit dem nativen Code (Objective-C für iOS, Java für Android), und es existieren viele Spiele mit diesem Stil, aber diese Option ist nicht ratsam. Effizienter ist es mit einer Entwicklungsumgebung zu arbeiten, die erlaubt für viele Plattformen aus einer Entwicklung heraus zu kompilieren. Und hier kommt die erste große Frage: Welche Technologie sollten Sie benutzen? Es existieren verschiedene Frameworks oder Technologien, die für Benutzer erhältlich sind: Unity 3D, Cocos2D, Marmalade oder selbst Adobe Flash, unter anderen.
Adobe Flash kann praktisch nur genutzt werden, wenn die Anwendung in Flash für Internetnavigatoren entwickelt wurde und sie eine rasche Migration für Mobile Geräte machen wollen. Wenn ihre Anwendung sehr leicht ist (ein Tischspiele, Vino….) Ist es möglich diese Technik zu benutzen. Aber wenn Ihre Anwendung eine höhere Anzahl von Anweisungen verarbeiten muss (Billardspiel, physische Spiele oder mit großen Animationen, usw.), ist Flash keine gute Option mehr.
Cocos2D ist ein sehr komplettes Arbeitsumfeld, mit offenen Codes und absolut gratis. Aus diesem Grund ist sie die meist benutzte Technologie, die im Moment genutzt wird, vielmehr als Unity oder Marmalade, die nicht komplett gratis sind. Unity 3D war und ist die meist benutzte Oberfläche zum Spiele Apps entwickeln in 3-D. Mit der neuen Version von Unity, die spezielle Funktionen für die Entwicklung von Spielen in 2-D integriert, hat sie sich auch als eine sehr solide Option für diese Arten von Spielen positioniert. Dadurch sind Cocos und Unity die Optionen die aktuell am meisten für die Entwicklung von 2-D-Spielen gewählt werden. Aus unserer Erfahrung, raten wir Ihnen eine dieser beiden Techniken für die Entwicklung von 2-D-Spielen auszuwählen. Aber es stellt sich immer noch eine große Frage:
Was ist die bessere Technologie zum 2D-Spiele Apps entwickeln: Unity 3-D oder Cocos2D?
Im Internet können viele Vergleiche von diesen zwei Technologien gefunden werden. Als wir anfingen mit der Entwicklung von unseren Spielen, haben wir alle gelesen und haben uns aufgrund dieser Daten entschieden. Das Problem dieser Vergleiche ist, das sie fast alle sehr subjektiv sind. Die Entwickler die sich auf Cocos2D spezialisiert haben, verteidigen Cocos2D. Die Entwickler die in Unity programmiert haben, verteidigen Unity. Es gibt wirklich wenig Vergleiche von Entwicklungs-Experten von beiden Plattformen. Wir haben beide studiert und mit beiden Programmieroberflächen entwickelt und glauben, wir haben eine objektive Meinung: die bessere Plattform ist ganz klar Unity. Die seriöse Antwort würde lauten:“wenn Sie es bezahlen können, Unity, wenn nicht dann Cocos2D“. Unity 3-D ist eine viel potentere Technologie als Cocos2D, während Cocos2D kostenlos ist und der Code offen zur Verfügung steht. Schauen wir uns die Unterschiede von beiden an. Immer wenn wir von Cocos2D sprechen (oder einfach Cocos), meinen wir Cocos2D-x, die die Plattformextension für Cocos2D ist (anfänglich auf das iPhone orientiert).
VORTEILE VON COCOS2D GEGEN UNITY 3-D
Cocos2D ist kostenlos, der Code steht frei zur Verfügung und wird bis heute am meisten benutzt. Unity, auf der anderen Seite ist teuer. Es steht eine kostenlose Lizenz zur Verfügung, aber sie reicht nicht aus für professionelle Entwickler. Die Lizenzen kosten zwischen 1500$ und mehr als 4500$ pro Person (ohne Mehrwertsteuer), eine wichtige Barriere für neue Entwickler. Cocos2D nutzt C++ als Programmiersprache und leichte Bibliotheken, es macht es etwas leichter für den Prozessor als Unity. Sie können den kompletten Code von Cocos2D ansehen, verbessern oder auf Ihren Bedarf adaptieren. Wenn Sie Experte in C++ sind und nicht die teuren Lizenzen von Unity bezahlen wollen, ist Cocos2D die beste Option. Es hat andere sehr positive Charakteristiken, aber dies sind keine Vorteile, weil sie sie mit Unity teilt. Es verfügt über sehr gute physische Motoren, eine enorme Anzahl von Beispielen von jeder der Funktionen von Cocos2D, eine sehr große Entwickler Gemeinde, welche sie unterstützen und jeden Tag verbessern, usw. Aber all dies hat auch Unity.
VORTEILE VON UNITY 3-D GEGEN COCOS2D
Alles andere. Wir sprechen natürlich immer über 2-D, weil Cocos2D einfach kein 3-D unterstützt.
DESIGNUMGEBUNG
Cocos2D hat keine integrierte Designumgebung. Das Design Ihrer Bildschirme oder Interface, müssen Sie mit Programmierung erstellen, die Bilder laden und sie mit C++ positionieren. Sie können natürlich grafische externe Editoren benutzen wie Cocos Studio (auch kostenlos), die in helfen die Elemente auf den Bildschirm zu positionieren und bestimmte Objekte zu konfigurieren. Aber dieser Editor ist viel schwächer als der von Unity. Der Editor von Unity ist komplett integriert. Cocos Studio auf der anderen Seite ist es nicht und funktioniert auf der Basis XML Dateien zu generieren und eine Serie von Bildern, die Cocos in Ihre Bibliotheken importiert. Es hat einige Fehler und funktioniert nicht immer in allen Rechnern. Der grafische Editor von Unity erlaubt das Design und das Layout von Szenen mit einer großen Einfachheit, mit der Möglichkeit Objekte, Scripts, Lichteffekte, physische Effekte, usw. nur durch einschieben der Komponenten hinzuzufügen und ihre Einstellungen zu verändern. Es reduziert die Zeit zum Apps entwickeln enorm, verglichen mit der Entwicklung in Cocos2D oder Cocos Studio.
DIE PROGRAMMIERSPRACHE
Cocos2D benutzt C++, während Unity 3-D C# oder Java Skript benützt. C# sowie Java Skript sind viel potentere Programmiersprachen als C++, die es erlauben Aktionen und Algorithmen mit viel weniger Kraftaufwand zu programmieren als C++. Außerdem, für die die noch keine Experten in C++ sind, ist der Lernvorgang sehr langweilig und schwer, man muss sich immer um die richtige Punktsetzung und um Speicherprobleme kümmern. All diese Probleme verschwinden mit Unity, wo man sich nur auf die Funktionalität des Spiels konzentrieren muss, dass um es nochmal zu betonen, sehr viel weniger Zeit kostet. Außerdem sind die Codeeditoren von Unity, ob MonoDevelop oder Visual Studio viel stabiler, einfacher und kompletter als die von Cocos (normalerweise Xcode). Als Resume kann gesagt werden, das C# / Java Skript (Unity) eine viel einfacher Programmiersprache ist, als C++ (Cocos), die Ihnen erlaubt viel Zeit zu sparen, durch eine viel effizientere Arbeit.
MULTIPLATTFORM
Beide Technologien sind auf Multiplattform ausgelegt, aber Unity ist mehr. Cocos2D erlaubt die Entwicklung für verschiedene mobile Technologien, auch für iOS und Android. Unity gibt noch mehr dazu: Konsolen, Schreibtischrechner und Internetnavigatoren. Wenn sie wollen, das Sie ihre Entwicklung kompatibel mit Navigatoren/Facebook ist, ist Cocos2D nicht ausreichend. Wenn sie Cocos2D benutzen müssen, ist es notwendig eine zweite Entwicklung für Navigatoren zu machen, zum Beispiel mit Adobe Flash, sowie es der Fall für den größten Teil der auf dem Markt erhältlichen Spiele für mobile Geräte und Navigatoren ist. Mit Unity ist das nicht nötig, es erlaubt den Export für Navigatoren auf eine einfache Art. Unity erlaubt den Export zu fast jeder Spieltechnologie auf dem Markt: Mobile Geräte und Tabletts (iOS, Android, Windows Phone und Black Berry), Navigatoren (mit Unity Web Player und in kurzer Zeit auch mit HTML 5), Konsolen (Xbox, PlayStation und Wii) und Schreibtischrechner (PC, Mac und Linux). Außerdem erlaubt Unity die spezifische Adaption für Geräte auf eine einfachere Weise als Cocos2D (zum Beispiel, um ein Spiel auf Android und iOS zu adaptieren).
DOKUMENTATION UND EINARBEITUNGSZEIT
Die Dokumentation von Unity ist reichhaltig. Seine Videotutorien oder Texte sind klar und einige sind übersetzt ins Spanische. Der Support ist relativ schnell und bündig. Die Dokumentation für Cocos2D, ist bedürftig und von schlechter Qualität. Sie existiert nur in Englisch und manchmal in Chinesisch. Es gibt keinen Support, die Foren sind voll von Fragen ohne Antworten und eine Antwort zu bekommen ist sehr schwer. Die Einarbeitungszeit mit Unity ist sehr viel schneller als mit Cocos: sein grafischer Editor, C#/Javascript und die große Anzahl der Dokumentation und der Support machen es zu einer sehr angenehmen Technologie um sich einzuarbeiten. Genau das Gegenteil von Cocos2D, wenn sie kein C++ und Xcode Experte sind und die Bibliotheken von Cocos2D komplett lernen müssen.
GEMEINDE UND EXTRAS
Unity 3-D ist eine sehr potente Entwicklungsumgebung. Aber die Potenz wird noch um ein Vielfaches verstärkt mit der Hilfe von Dritten durch den Asset Store. Hunderte von Entwickler verkaufen ihre Plug-Ins, ihre Mittel und Verbesserungen durch diesen Shop. Einige dieser Plug-Ins sind sehr potent und fast obligatorisch. 3-D Modelle, 2-D Texturen, Animationen, Anwendungen, Extension für den Editor, Skripte, Materialien, sind einige der Extras die man kaufen oder kostenlos runterladen kann, in dem offiziellen Shop von Unity. Unter all diesen sticht die NGUI heraus, eine Extension für den grafischen Editor, die eine enorme Hilfe für die 2-D Entwicklung anbietet und die Entwicklungszeit noch mehr reduziert. NGUI ist für Unity (fast) wie jQuery für Java Skript sein kann. Bei Cocos2D fallen all diese Extras weg.
SCHLUSSFOLGERUNG
Unity ist teuer, aber es ist es wert. Apps entwickeln zu lassen mit Unity verkürzt die Entwicklungszeit in einer viel höheren Proportion, als die Kosten für die Lizenzen. Viele ihrer Möglichkeiten teilt sie nicht mit Cocos2D und erlaubt für viel mehr Geräte zu kompilieren als Cocos2D. Unity 3-D ist besser als Cocos2D.