Die folgenden Ideen wecken in mir den Reiz, mich auf mein nächstes Projekt zu stürzen. Dieses Projekt wird kein Bewerbungsprojekt in diesem Sinne sein. Es geht mir dabei viel mehr um die Erweiterung meines Horizonts und das Erproben neuer Ideen für Verbesserungen des Programmierprozesses.
An erster Stelle steht das Konzept eines Game-Frameworks, in welchem die
Entities lediglich aus Komponenten zusammengesetzt werden. Ziel ist es,
möglichst flache Klassen-Hierarchien zu verwenden und jegliche
Gamelogik-bezogene Spezialisierung nicht durch Vererbung, sondern durch die
Entwicklung wiederverwendbarer, frei kombinierbarer Komponenten zu
implementieren.
Die Idee ist natürlich keinesfalls neu, aber in der Branche bisher nicht
weit verbreitet, obwohl Pioniere große Produktivitäts- und Stabilitätgewinne
damit verzeichnen.
Letztlich werde ich mir selbst ein Bild davon machen und mein nächstes
Projekt auf Komponenten aufbauen.
Desweiteren wird es Zeit, eine große Lücke endlich zu schließen: in allen
meinen bisherigen Projekten hatte ich bisher nicht die Gelegenheit,
Erfahrung mit Scripting zu sammeln. Weder im eigentlichen Schreiben von
Scripts, noch im Implementieren einer Scripting-Schnittstelle in die
Host-Anwendung. UOSharp zählt nicht, da das Scripting dort durch die
Verwendung des CSharpCodeProviders eher einer Art Late-Binding von
Programmcode entspricht.
Diese Lücke muss geschlossen werden, also wird mein nächstes Projekt
Lua, TCL und/oder Python supporten.
Tools sind wichtig. Bei der Entwicklung von CCM (meinem ersten
Team-Projekt) wurde mir das mehr denn je bewusst, denn zum ersten Mal
arbeiteten auch andere Leute an dem Spiel. Also mussten Wege geschaffen
werden, Models in das Spiel zu integrieren, Game-Balancing-Werte anzupassen
etc. Die Implementierung solcher Tools in CCM war immer ein ziemlicher
Aufwand. Sie integrierten sich nicht sauber in das Projekt und waren schlecht
am Leben zu erhalten, wenn sich wichtige Aspekte des Spiels änderten.
Also werde ich mir für das nächste Projekt schon in der Planungsphase
Gedanken machen, welche Anforderungen ein guter Tool-Support an ein
Spiele-Framework stellt, und wie ich diese Anforderungen möglichst produktiv
erfüllen kann.
Diese Ideen und manch andere in einem Projekt zu vereinen wird eine interessante Herausforderung. Ziemlich schnell kommt mir da die Idee eines WYSIWYG-Editors, in dem man das Spiel entwickelt während man es spielt. So gesehn in den Editoren von UNITY und CryEngine. DAS wäre ein interessantes Projekt.