Für welches Medium entwickeln?

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Antworten
Paratron
Beiträge: 3
Registriert: 17.03.2012, 16:19

Für welches Medium entwickeln?

Beitrag von Paratron »

Hallo zusammen,
ich möchte mit einigen Studenten (Mediendesign & Informatik) mal wieder ein Spiel entwickeln. Es soll in Richtung Adventure/Interaktiver Film gehen (2D-Grafik). Idee und Team stehen, aber offen ist die Frage für welches Device/Medium wir entwickeln wollen. Bisher haben wir nur für den PC entwickelt. Das ist für die Distribution als Indie-Entwickler aber ungünstig. Wir wollen ja das möglichst viele Leute das Spiel mal ausprobieren. Diese Optionen sehen wir:

iPad:
+ AppStore zur Distribution
+ Schnell, gute Größe, weit verbreitet
- Hohe Fixkosten, ich habe keinen Mac. Also 600€ für einen MacMini + 400€ pro Ipad + 80€ Developer Lizenz
- Restriktionen/Mitverdienst von Apple

Android Tablet:
+ Android Market zur Distribution
+ günstige Entwicklung
- noch wenig verkaufte Geräte
- nicht ganz so schnell (meiner Einschätzung nach) mit Java
- viele verschiedene Anbieter -> verschiedene Hardware

Browser mit Flash:
+ hohe Verbreitung
+ günstige Entwicklung
- Finanzierung/Distribution
- Zukunft von Flash ungewiss?

Browser mit WebGL:
+ neue Technologie, schnell
- nur für 3D???
- läuft nur in bestimmten Browsern
- Finanzierung/Distribution

Was meint ihr? Habt ihr eine Meinung zu den Möglichkeiten? Was würdet ihr empfehlen? Gibt es noch andere Optionen?
Danke!
pUnkOuter
Establishment
Beiträge: 303
Registriert: 15.04.2002, 15:59

Re: Für welches Medium entwickeln?

Beitrag von pUnkOuter »

Wie wärs denn mit einer normalen Canvas-Engine? Muss ja nicht gleich WebGL sein für ein 2d-Adventure. Distribution ist einfach: Webserver. Hätte auch den Vorteil, dass es auf Tablets laufen würde, ohne Zusatzaufwand. Finanzierung würde ich so machen, dass das erste Kapitel gratis ist, und zum Weiterspielen dann ein kleiner Betrag fällig wird. Das Ganze einfach an einen Login koppeln, der bei einem zweiten Login von anderer IP die erste Sitzung killt.

Eine andere Art der Finanzierung wäre, das erste Kapitel gratis zu machen, und dann an dessen Ende auf Kickstarter oder so zu verweisen, wo ihr Kohle sammelt und das nächste Kapitel dann bei erreichen des von euch gesetzten Betrages für alle freigebt.
Ein Zeiger ins Blaue ist wie ein Wegweiser nach <SEGFAULT>. Wenn du denkst, mein Name hat was mit abgefuckter Kleidung und bunten Haaren zu tun, dann kehr besser um.
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Für welches Medium entwickeln?

Beitrag von kaiserludi »

Ihr könnt dank dem NDK für Android auch in C++ entwickeln. Mit C++ bietet es sich dann auch an, multiplattform zu entwickeln, denn für IOS kann man auch in objC++ entwickeln, sprich, man kann C++ und objC beliebig mischen. Für den Interaktion direkt mit der UI werdet ihr objC benötigen. Alles andere könnt ihr in C++ schreiben. Da die Interaktion mit den UI-Klassen von Apple dann für Android eh neu geschrieben werden muss, ist das aber auch nicht so tragisch. 95% des Codes könnt ihr auf beiden Plattformen absolut identisch halten und zusätzlich noch eine PC-Version ist dann auch kein großer Aufwand mehr.
Wenn du bei Java Geschwindigkeit als Minuspunkt aufführst, dann musst du sie aber bei Flash auch als Negativkriterium aufführen, eigentlich sogar gleich mehrfach, weil das noch malum einiges langsamer ist als Java.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4256
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Für welches Medium entwickeln?

Beitrag von Chromanoid »

Ich würde wahrscheinlich Flash nutzen. Das unterstützt alle genannten Plattformen. Ansonsten wäre Unity vielleicht auch was, da gibt es ja momentan die Indie Variante für iOS und Android kostenlos.

Das Argument Flash's Zukunft sei ungewiss halte ich übrigens zumindest mittelfristig für falsch. Solange IE kein vernünftiges Äquivalent zu WebGL und HTML5 keine bessere Audio-API anbietet, wird Flash für Browser und Smartphones noch lange interessant bleiben. Und ich kann mir gut vorstellen, dass später ein AS3 zu JavaScript Compiler dazu kommt, der Flash auch direkt für HTML5 "umwandeln" kann.
Paratron
Beiträge: 3
Registriert: 17.03.2012, 16:19

Re: Für welches Medium entwickeln?

Beitrag von Paratron »

Hey
danke für eure Antworten :)

@pUnkOuter
Also eine normale Canvas-Engine ist einfach nicht schnell genug. Für einfache Spiele mag das gehen, aber wir werden viele Animationen drin haben. Habe neulich schon was in die Richtung gemacht und die Grenzen wurden ziemlich schnell klar.

@kaiserludi
Das ist interessant. Hast du vllt schon Erfahrungen damit gesammelt? Ich stelle mir das allerdings schon ziemlich Schwierig vor, weil ich beim App programmieren bisher eher wenig platform-unabhängigen code hatte. Meinst du wirklich 95% sind wiederverwertbar?

@Chromanoid
Hab ich was verpasst? :D Seit wann läuft Flash auf dem iPad?
Bezüglich Unity... Eignet sich das auch für die 2D-Programmierung?
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4256
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Für welches Medium entwickeln?

Beitrag von Chromanoid »

Naja also Adobe AIR, aber das ist ja praktisch Flash. Schau mal hier http://www.gamedev.net/page/resources/_ ... lash-r2797
Ist natürlich an gewisse Einschränkungen gebunden, da das Flashzeug in eine native Anwendung umgewandelt wird und Code nicht mehr dynamisch nachgeladen werden kann, aber für normale Spiele sollte das eigentlich kein Problem darstellen. Seit AIR 3.2 RC (http://labs.adobe.com/technologies/flas ... es/air3-2/) wird auch GPU Rendering auf mobilen Endgeräten unterstützt. Das wäre dann also evt. ziemlich sinnvoll mit diesem RC zu arbeiten. Soweit ich das verstehe ist eine einheitliche Plattform für mobile Endgeräte zu bieten übrigens Adobes erklärtes Ziel von AIR.

@Unity: Für Pixelkram sieht das hier ganz nett aus: http://forum.unity3d.com/threads/117837 ... -(preview) ansonsten gibts da sicher viele andere Tools, Frameworks und Tutorials.
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Für welches Medium entwickeln?

Beitrag von kaiserludi »

Paratron hat geschrieben: @kaiserludi
Das ist interessant. Hast du vllt schon Erfahrungen damit gesammelt? Ich stelle mir das allerdings schon ziemlich Schwierig vor, weil ich beim App programmieren bisher eher wenig platform-unabhängigen code hatte. Meinst du wirklich 95% sind wiederverwertbar?
Ich bin beruflich seit ca. 5 Jahren verantwortlich für die C, C++ und objC Clients einer Mutliplattform Client-Server Networkengine für Spiele. In C und C++ unterstützen wir derzeit Android, iOS, Marmalade, OS X und Windows und haben in der Vergangenheit auch Brew und WinMobile unterstützt. 3 weitere Plattformen sind derzeit in Planung. Der Code dafür ist zu 99% identisch, das 1% plattformahängiger low-level Code ist sauber in Platfromlayer gekapselt. Bei den Demos dafür ist die UI in Platformlayer ausgelagert, ansonsten sind sie auch identisch, bei grafischen Demos verweden wie auch für alle Plattformen die gleiche Grafikengine. Für ein Tochterunternehmen habe ich die Leitung der programmierung eines iOS Realtime-Multiplayerspiels übernommen. Dieses wurde ursprünglich in objC entwickelt, da keine anderen Plattformen geplant waren. Später haben wir es auf C++ portiert und seitdem ist der Code bis auf die UI für iOS und Unix quasi identisch, nur die Grafiken mussten wir anpassen. Eine Android-Version wurde (bisher) nicht angegangen, das liegt aber nicht am Portierungsaufwand, der bei nahezu Null wäre. Da die genutze Grafikengine (Cocos2d-x, ein C++ Port von Cocos2d-iphone) für iOS, Android und noch einige andere OS 1 zu 1 verwendet werden kann, genauso wie die Physikengine (Box2d) und die Netwerkengine (Photon), ist der einzig platformabhängige Code derzeit die Soundengine (aber auch da ließe sich sicherlich was plattformunabhängiges finden) und das bischen Code, was direkt mit APIs des OS kommunizieren muss, wie z.B. für den Zugriff auf den Appstore.
Meine Empfehlung ist auf jeden Fall, wenn ihr euch anfangs entscheidet, nur für iOS oder nur für zu Android entwickeln, dann in C++, nicht in objC oder Java, denn mit C++ haltet ihr euch die Option offen, mit minimalem Aufwand später eine Version für das jeweils andere System zu veröffentlichen, während ihr objC oder Java Code dafür erst auf die jeweils andere Sprache (oder eben auf C++) portieren müsstet.
Alternativen wären natürlich die bereits genannten Unity und Air oder aber auch Marmalade (eine Multiplattformengine für C++), wobei letzteres natürlich für einen Indie schon gewisse finanzielle Ksoten bedeutet.
Mit Air habe ich persönlich noch fast gar nicht gearbeitet, erinnere mich aber noch mit Grauen an die Entwicklung eiens Prototyps in Flash vor ca. 6 Jahren: Für die Spieleentwicklung war Flash meienr Meinung nach damals echt grauenhaft. Da soll sich mittlerweile einiges getan haben, das habe ich mir aber bisher nicht näher angesehen.
Mit Unity habe ich auch schon ca. 1 Jahr beruflich entwickelt, aber mir sagt persönlich das Konzept nicht zu, den Gamecode in einer Scripstrapche statt nativ zu schreiben, ist zwar für die meisten Sachen sicher sinnvoll, aber wenn man im Zweifel doch mal was performance-kritisches selsbt entwickeln, weil die Engine irgendwas dann doch nicht von Haus aus kann, dann braucht man die Non-Indie-Variante der Lizens, um nativen Code einbinden zu können. Das an sich wäre noch kein großes Problem, aber dass man die Scriptklassen dann an die Gameobjekte dran packt und sich dann merken muss, welcher Code wo steckt, weil man sonst nichts mehr wieder findet, ist einfach nur grauenhaft. Immerhin unterstützen sie mittlweile VS als IDE. Man muss Unity aber zu gute halten, dass es eine komplette Gameengine ist, nicht nur eien Grafikengine, man also quasi nur noch den Gamecode selsbt schreiben muss (auch wenn für manche Punkte wie Netzwerk lieber auf Libs von 3-Party-Anbietern zurückgegriffen werden sollte, da die Unity-eigenen Lösungen da nicht ideal sind).
Marmalade wäre in punkto 3rd-Party Engines wohl mein persönlicher Favourit, da ich da den Gamecode native entwickeln kann (es hindert einen natürlich niemand daran, einen Scriptspracheninterpreter in den Gamecode zu integrieren, wenn man denn möchte), es ist allerdings nicht wie Untiy eine komplette Gameengine, sondern kümmert sich hauptsöchlich um die Platformunabhängigkeit. Daher stellt sich hier gerade als Indie natürlich die Frage, ob das alleine die Kosten rechtfertigt.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Paratron
Beiträge: 3
Registriert: 17.03.2012, 16:19

Re: Für welches Medium entwickeln?

Beitrag von Paratron »

Wow, das ist mal eine kompetente Antwort!

Also bei Adobe AIR habe ich auch so meine Bedenken. Ich habe ja bereits Browserspiele mit Flash entwickelt und die Performance schon für einfache 2D-Inhalte war schwierig um man musste auf manches verzichten. Wie die Version mit GPU-Unterstützung für Mobile so performancemäßig aussieht wäre jetzt schon mal interessant zu wissen.

Der Ratschlag das Spiel in C++ zu entwickeln ist gut! Der Hinweis zu Marmalade erst recht. Wenn ich das richtig sehe kann ich vom PC aus für alle Platformen entwickeln?
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Für welches Medium entwickeln?

Beitrag von kaiserludi »

Paratron hat geschrieben: Der Ratschlag das Spiel in C++ zu entwickeln ist gut! Der Hinweis zu Marmalade erst recht. Wenn ich das richtig sehe kann ich vom PC aus für alle Platformen entwickeln?
Ja, das ist korrekt. Du kannst sogar vom PC aus das Spiel aufs iOS Device bringen.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
dronus
Establishment
Beiträge: 114
Registriert: 11.01.2010, 01:53

Re: Für welches Medium entwickeln?

Beitrag von dronus »

Wenn das Spiel in etwa ein, zwei Jahren fertig wird, könnte sich schon WebGL lohnen. Noch gibts das nicht überall, aber es nimmt schnell zu. Z.z. gehts auf den meisten PCs unter Windows / Linux mit aktuellem Chrome oder Firefox out of the Box. IE wird dafür sicher noch eine Weile auf sich warten lassen... Auf weiteren Platformen wird es wohl bald kommen, z.B. geht es im MacOSX Safari, man muss es derzeit aber von Hand anschalten im Developer Menü, und auf dem Android in Opera out-of-the-Box, aber nicht im Android-Webkit, den die meisten haben. Auf iOS geht es in den Werbebannern, jedoch nicht im normalen Browser... hahaha. Das heisst, es existiert auf fast jeder Platform eine Implementierung, es fehlt noch etwas Feinschliff und gutem Willen bis alle User was davon haben.
Antworten