Hallo liebe Forenmitglieder! Ich muss hier mal meine Sorgen ausleeren... vielleicht bringen mich eure Antworten auf frische Gedanken
Nach vielen Jahren, indem ich dieses und jenes in der Spieleentwicklung ausprobiert habe, beschleicht mich irgendwie das Gefühl, dass ich nie ein Spiel auf die Beine bekommen werde.
Warum? Ich vermute einfach die Verunsicherung, welche Plattform mit längerfristig erhalten und erfolgreich bleibt, das Fehlen von wirklich guten Tutorials zu bestimmten Technologien und auch mein im Endeffekt benachteiligender Einstieg in die Spieleentwicklung mit Blitz3D.
1. Die Verunsicherung
Welche Plattform ist in 5 Jahren noch erfolgreich? Ich will nicht heute anfangen zu entwickeln, in 2 Jahren fertig werden, und dann kann es niemand mehr spielen. 2003 hat man lange Zeit auf DX9 und Windows setzen können. Da war der Markt aber im Gegensatz zu heute unglaublich langweilig.
Windows und DirectX missfallen mir schon aus dem Grund, dass sie absolut unportabel sind (Spielereien wie WINE mal ausgeschlossen). Die Entwicklung von Microsoft macht mir auch Angst. Herumgeschwampel bei Windows, merkwürdige Deals mit Nokia. Fühlt sich so an als ob ich auf einem Jenga-Turm baue. Aktuell wird XP irrelevant und damit wohl auch DX9 immer mehr (zumal technisch auch schon veraltet).
Von allen Plattformen scheint mir Android noch am zukunftssichersten zu sein. Java ist "high-levellig" genug, sodass ich nicht mehr mit Pointern rumhantieren muss. OpenGL ES 2 wird unterstützt. Damit bin ich näher an der Portabilität als mit DirectX-COM. Die Stores sind eine super Veröffentlichungsplattform. Sicherlich binde ich mich da an Google. Aber das ist mir noch lieber als good old Microsoft mit seinen unabsehbaren Kurswechseln in Sachen Entwicklungstechnik.
2. Gute Tutorials fehlen - oder ich bin zu blöd
Ich habe jetzt schon einige Tutorials durchgelesen. Viele sind schnell hingeschmiert, schreiben sich schnell eine nicht weiter erläuterte Hilfsklasse ("die macht das dann automatisch" ist meist das einzige was man dazu liest) und benutzen die durchgehend. Ich möchte aber lernen, wie ich es selber hinbekomme, from Scratch. Und diese Hilfsklassen will ich garnicht benutzen, sondern im Laufe der Entwicklung selber sehen, wo ich was wie auslagere. Ich habe sicherlich meine eigenen Vorstellungen von einer Engine.
Bei anderen habe ich ständig den Eindruck, dass die Vorgehensweise ineffizient ist. Es werden zumindest Code-Abschnitte überhaupt nicht vernünftig erklärt, sondern nur drumherum gesagt, was zu machen ist, was ich eh schon weiß. Aber der Code selber wirft immer wieder Fragen auf, warum dies und das und jenes so gemacht wird und nicht anders. Muss ich z.B. alle Devices durchlaufen und deren Auflösungen wie es Tutorials ja gerne in Lektion 1 machen oder reicht es heute nicht einfach die Auto-Parameter zu nutzen und den Rechner diese Arbeit zu überlassen?
3. Dummer Start in die Spieleentwicklung
Ich hab vor 10 Jahren mal mit Blitz3D angefangen, schnell Spiele zu schreiben. Das ist eine simple Basic-Sprache, nicht objekt-orientiert, die mit eigenem Compiler ruckzuck ein DirectX 7 basiertes Spiel zusammenbastelt. Die meisten meiner Spiele sind nie ganz fertig geworden, aber im Gegensatz zu meinen anderen Versuchen selber eine Engine zu basteln, sah ich (deutlich!) mehr als nur ein Dreieck mit unterschiedlich farbigen Vektoren.
Natürlich ist B3D technisch völlig überrundet und ich wollte auch meine vielen Kenntnisse und Erfahrungen in einer "echten" Programmiersprache wie C# nutzen um Spiele besser zu strukturieren (OOP!!!) und zu verwirklichen. Nur wie gesagt haben mich die Techniken die mit C# möglich sind, nie überzeugt. Deswegen blieb nur Java als Ausweg.
Ganz schrecklich finde ich, mich an andere Entwickler und Engines zu heften, vor allem Unity. Das ist zwar alles schön, gut und beeindruckend was die Engine kann. Aber ich will selber programmieren und allerhöchstens von der darunterliegenden Technik abhängig sein, aber nicht von Software-Engines.
Fazit für mich?
Blitz3D - maßlos veraltet. War ein netter Einstieg für'n Kind, aber mehr auch nicht
Windows - vertraue ich nicht mehr, zu unkomfortabel, unportabel, altmodisch, nicht zukunftssicher (höchstens im Desktop-Bereich).
mobile Entwicklung - sicher das Target für die nächsten 5 Jahre. Gute Veröffentlichungsmethoden über Stores. Android hat Java als hübsche Programmiersprache. Mir fehlt nur ein vernünftiges Tutorial. Hat da jemand was?