nachdem mir bereits die X3 Serie zu kompliziert und langwierig war, kann mich nun X Rebirth wegen den ganzen Fehlern im Game Design auch nicht überzeugen.
Ich will endlich eine Weltraum-Sim zocken, die mir Spaß macht!
Ich glaube das wollen wir alle Bei mir ist der Geduldsfaden jetzt jedenfalls endgültig gerissen - Lasst uns doch einfach unsere eigene Weltraum-Sim machen! Für dieses Projekt suche ich noch kreative Köpfe, die Spaß an so etwas hätten und auch gewillt sind, die nötige Arbeit zu investieren.
Nun kurz etwas zu mir, damit das nicht so aus der Luft gegriffen klingt Ich bin studierter Informatiker und arbeite bereits seit mehreren Jahren als Software-Entwickler. Hobbymäßig habe ich mich schon viel mit Spiele-Entwicklung befasst. Ich habe bereits eine Demo am Laufen, in der man ein Raumschiff im dreidimensionalen Raum durch ein Asteroidenfeld fliegen kann:
-> http://imgur.com/YyRAKUG
Das ist alles selbst programmiert, also nicht einfach nur ein paar Grafiken gesucht und in eine Engine gefüttert. Warum ist das noch kein fertiges Spiel? Nun, ich bin da gerade an der Kollisionserkennung. Ein Prototyp funktioniert da auch schon, für die vollständige Umsetzung muss ich da aber viele andere Komponenten umbauen, damit Infos über die Kollisionen auch dort ankommen, wo sie gebraucht werden. Da ging mir als 1-Mann-Armee ein Bißchen die Luft aus. Es ist schon manchmal schwer sich dauerhaft zu motivieren, wenn man keine Mitstreiter hat!
Soweit erst mal zum ganzen technischen Kram und der Vorgeschichte.
1 Features des Spiels
Nun zu dem Spiel, was mir vorschwebt. Ich habe eigentlich gar nicht viele Anforderungen an eine Weltraum-Simulation, die ich selber jahrelang gerne spielen möchte. Auch aufgrund meiner sehr begrenzten Entwickler-Kapazität lautet das Motto: Mit möglichst wenig, möglichst viel erreichen.
1.1 3D-Action
Raumschiffe, die man besitzt, soll man auch selber fliegen können. Man soll selbst in 3D ans Steuer und Gegner abknallen. Klar - wir bauen alle gerne unser Handelsimperium auf, aber letztendlich wollen wir mit unseren großen Capships auch in den Krieg ziehen
1.2 Empire Building
Ich will ein Imperium aufbauen und effizient verwalten können. Das heißt, Fabriken / Farmen etc. aufbauen. Ich will Schiffswerften und in denen große Frachterschiffe bauen. Die will ich auf Handelsrouten schicken, entweder zu meinen eigenen Stationen oder zu NPC Stationen.
1.3 Design
Ich will Raumschiffe selber entwerfen können, und zwar nicht im Stile: "Chasis -> Schilde -> Waffen -> Sonstiges". Ich will aus einfachen Bauteilen komplexere Formen entwerfen und genau sagen können, wo welches Teil landet! Das gleiche gilt auch für die Stationen!
1.4 Research
Ich will neue Technologien erforschen und in den Weiten der Galaxie entdecken.
1.5 Explore
Ich will ein prozedural generiertes, RIESIGES Universum mit vielen einzigartigen Rassen und Orten und unendlich viel zu entdecken. Bei jedem Neustart würde einen ein komplett neues Universum zum Erforschen einladen.
1.6 AI
Ich will eine verlässliche AI. Das gilt sowohl für das Flugverhalten der Raumschiffe, als auch für das Empire-Management der NPC Imperien. Ich verstehe nicht warum kein - aber auch gar kein - Computerspiel (Schachsimulatoren ausgenommen) das ordentlich auf die Reihe bekommt. Das ist doch der größte Spaß beim Programmieren!
Details zu 1.3
Hier handelt es sich um eine tolle Anwendung unseres Mottos "Mit möglichst wenig, möglichst viel erreichen". Dadurch, dass sich der Spieler die Raumschiffe selbst aus einfachen Bauteilen zusammensetzt entfällt die Notwendigkeit, komplexe High-End 3D-Modelle zu entwerfen. Gleichzeitig ist es ein gewolltes Feature.
Das eigene Designen von Raumschiffen stelle ich mir so vor: Man hat im Spiel eine eigene Ansicht. Die zeigt einem ein 3D-Gitter, wo man sich mittels Pfeiltasten oder ähnlichem durchbewegen kann. Auf jeden Gitterplatz kann man eine Komponente setzen. Das kann ein Teil der Hülle sein, oder auch ein Raketenwerfer.
Hier mal wie das ganze für einen einfachen Fighter aussehen könnte - noch ohne tollen 3D-Editor, sodern mit Notepad Am Besten könnt ihr es euch vorstellen, wenn ihr bei der Mitte anfangt (Ebene z2).
Code: Select all
z0
r = equip/wheel.obj
- - - - - - -
- - - - - - -
- - - - - - -
- - r - r - -
- - - - - - -
- - - r - - -
- - - - - - -
z1
l = weapons/laser.obj
h = chasis/hull.obj
- - - - - - -
- - h - h - -
- l h h h l -
- - h h h - -
- - l h l - -
- - - h - - -
- - - - - - -
z2
x = engine/engine.obj
b = engine/booster.obj
h = chasis/hull.obj
- - - - - - -
- - x - x - -
- b h h h b -
- - h h h - -
- - h h h - -
- - - h - - -
- - - - - - -
z3
h = chasis/hull.obj
c = chasis/cockpit.obj
- - - - - - -
- - h - h - -
- h h h h h -
- - h h h - -
- - h c h - -
- - - h - - -
- - - - - - -
z4
r = weapons/rocket_launcher.obj
- - - - - - -
- - - - - - -
- - - - - - -
- - r - r - -
- - - - - - -
- - - - - - -
- - - - - - -
2. KEINE Features
2.1 Multiplayer
Wäre zwar Nice 2 Have, sprengt aber vollständig den Rahmen meiner Entwickler-Kapazitäten.
2.2 Zu Fuß rumlaufen
Juckt mich überhaupt nicht, sei es auf Planten oder Stationen.
2.3 High-End Grafik
X Rebirth hat wieder einmal eindrucksvoll bewiesen, dass es in erster Linie auf das Gameplay, und nicht auf schöne Grafiken ankommt.
2.4 Figuren
An keiner Stelle des Spiels werden 3D-Modelle von Figuren vorkommen. Der Aufwand hierfür ist einfach viel zu enorm.
3. Verstärkung gesucht
Prinzipiell kann jeder mitmachen, der Lust darauf hat und etwas beitragen kann! Stellt euch einfach vor, ihr würdet X spielen und habt eine Fabrik, die gewisse Teile für unser fertiges Spiel bereitstellt
Die Anforderung hier ist nicht, Dinge in der Qualität für ein AAA-Game bereitzustellen. Einfache Dinge tun es auch! Ihr müsst also keine Vollprofis dafür sein! Viel wichtiger ist Motivation, konsistentes Dabeibleiben!
Wichtig ist noch zu erwähnen, dass dieses Spiel auch fertiggestellt werden kann, wenn nicht alle diese Positionen besetzt werden können. Es gibt dann halt einfach viel weniger Variationen, kein so spannendes Universum usw. Zur Not hocke ich mich auch selber hin und bastele ein paar Komponenten für die Raumschiffe. Sieht dann halt nicht so dolle und immer gleich aus - Oder anders gesagt: Das Spiel ist so konzipiert, dass es nur minimale Assets braucht. In der minimalsten Form würde es halt nur eine Rasse geben mit ein paar schlichten Designs (nämlich wenn ich alles selbst mache). Umso mehr Leute aber mithelfen, umso vielseitiger und spannender wird unser neues Universum!
3.1 Galaxy Crafter
Für unser riesiges, prozedural generiertes Universum brauchen wir möglichst viele Hintergründe. Diese Arbeit kann eigentlich unendlich lang fortgeführt werden, es wird nie genug davon geben.
Im Gegensatz zu X müssen hierbei der Hintergrund von Planten und kosmischen Erscheinungen separat bereit gestellt werden (damit der Universum-Generator sie entsprechend zufällig zusammen würfeln kann).
3.2 Component Manufacturer
Zum Designen von Raumschiffen und Stationen brauchen wir die Bauteile, die man später im Spiel zur Verfügung haben soll.
Langfristig werden natürlich möglichst viele unterschiedliche "Sets" für verschiedene Rassen gebraucht. Zum Beispiel ein "Terraner-Set" oder ein "Organisches Set". Für den Anfang soll aber zunächst mal ein vollständiges Set fertig werden.
Die 3D-Modelle müssen im .obj Format (trianguliert) bereitgestellt werden. Jedes mir bekannte 3D-Programm kann Modelle in diesem Format exportieren. Komponenten, die weniger häufig verbaut werden (wie zum Beispiel Antriebe oder Waffen) können ruhig ein paar mehr Polygone haben. Häufig verbaute Teile müssen eine möglichst niedrige Polygonzahl haben, also insbesondere die Teile für die Hülle. Die Modelle müssen eine einheitliche Größe haben. Teile, die mehr als einen Platz im Gitter belegen sind natürlich auch möglich. Insgesamt muss das Teil aber genau in das Grid passen.
Die Teile müssen natürlich zusammenpassen und mehr oder weniger beliebig miteinander kombinierbar sein, ohne dass im fertigen Objekt Lücken entstehen (innerhalb eines Sets).
3.3 Ship & Station Designer
Mit den Component Manufacturern bereitgestellten Teilen müssen fertige Designs für Raumschiffe und Stationen entworfen werden. Als Spieler soll man auf fertige Designs zurückgreifen können. Die vom Computer gesteuerten Imperien können keine eigenen Designs entwerfen und sind auf diese Designs angewiesen.
3.4 Storyteller
Jemand muss unserem Universum Leben einhauchen.
Was sind das für Rassen, die unser Universum bevölkern sollen? Für jede Rasse brauchen wir einen Steckbrief (wie sehen die aus und so weiter). Jede Rasse sollte verschiedene Hintergrundgeschichten haben, so dass der Universum-Generator bei jedem Spiel eine andere Geschichte wählen kann. Wie wirken sich deren Geschichten auf das Universum aus? Sind vielleicht Unterfraktionen entstanden, die sich jetzt gegenseitig bekriegen?
Was gibt es für Artefakte im Universum zu entdecken?
Was gibt es für Technologien? Wie müssen diese erforscht werden? Braucht man für manche Technolgien ein Artefakt, welches man erst finden muss? Muss man für manche Technolgien einen Prototyp bauen, der nur an bestimmten Orten wie z.B. einer Supernova gebaut werden kann? Braucht man vielleicht die Hilfe einer fremden Rasse? Wie sieht der Tech-Tree aus?
Was gibt es für Fabriken? Wie hängen die Wirtschaftskreisläufe zusammen? Welche Rohstoffe gibt es?
3.5 Sound Designer
Wir brauchen natürlich auch Hintergrundmusik und Soundeffekte Sollte sich niemand finden greifen wir einfach auf frei verfügbare Musik / Effekte zurück.
3.6 Asteroid Designer
Wir brauchen möglichst viele unterschiedliche Asteroiden. Unterschiedliche Größen, unterschiedliche Formen, unterschiedliche Beschaffenheit. Je nach enthaltenem Material auch unterschiedliche Textur.
4. Plan
4.1 Milestone 1: Ship & Station Designer
Als ersten Meilenstein habe ich mir gesetzt, eine Version meiner bereits existierenden 3D-Demo bereit zu stellen, welche die Technik hinter dem Ship & Station Designer beinhaltet.
- Diese Version soll Textdateien wie in 1.3 beschrieben einlesen können und die daraus enstehenden Objekte im Spiel darstellen. Die auf diese Art selbst gestalteten Raumschiffe soll man auch direkt selber fliegen können.
- Der Galaxy-Backdrop wird austauschbar sein (einfach Bilddatei ersetzen).
- Eine Hintergrundmusik wird abgespielt und austauschbar sein (einfach Musikdatei ersetzen).
Diese Demo kann ich innerhalb der nächsten 2-3 Wochen bereitstellen. Dies kann dann als Grundlage für die Arbeit derjenigen dienen, die mithelfen wollen
4.2 Milestone 2: Engine Cleanup & Collision Detection
Ich muss zunächst das Rendering auf solide Füße setzen (Szenengraph) und Kollisionserkennung fertig bauen. Außerdem will ich die Programmiersprache wechseln, von Java zu Scala.
Dies wird ca. 3 Monate dauern.
4.3 Milestone 3: UI Prototype
Prototypischer Einbau von UI Elementen. Nachdem dieser Meilenstein erreicht ist kann ein zweiter Programmierer / Designer hinzugezogen werden, der sich um die endgültige Ausgestaltung des UIs kümmert.
4.4 v 0.01
Ich hätte gerne möglichst schnell eine tatsächlich spielbare Version. Das Ziel ist, möglichst schnell ein fertiges Spiel zu erstellen. Wo man vielleicht noch nicht viel machen kann, aber wo man auf jeden Fall mehr als nur rumfliegen kann.
Das heißt zunächst wird es nur einen einzelnen Mini-Sektor geben. Ziel ist, dass man in dieser Version bereits einen ersten Wirtschaftskreislauf aufbauen kann. Im Detail:
- Man startet mit einem S-Klasse Mining Ship
- Damit kann man in einen Asteroidengürtel fliegen (wie jetzt in meiner Demo auch schon möglich) und dort Erz von Asteroiden abminern
- In dem Sektor soll es 2 NPC-Fabriken geben: Forge (Eisen -> Stahl), Station Component Manufacturer (Stahl -> Komponenten)
- Über einen ersten Prototypen des Handels-UI soll mit den Stationen gehandelt werden können. Das heißt, man kann das abgeminte Erz zur Station bringen und dort verkaufen
- Mit dem erwirtschafteten Geld kann man sich schließlich genug Komponenten kaufen, um damit selbst eine Erz-Verarbeitungsanlage aufzubauen (für diese erste Version geht das einfach so ohne speziellen Bauplan oder spezielle Bauschiffe - die Station wird einfach vor die Nase gesetzt, wo man gerade steht)
- Nun kann man sowohl Erz, als auch Stahl an die NPC Stationen verkaufen
- Hat man genug Geld beisammen kann man eine SHIP Component Manufacturer Station aufbauen.
- Jetzt kann mittels einfachem Texteingabefeld neue Raumschiffe in die Welt setzen (vorausgesetzt man hat schon genug Ship Components produziert). Für mögliche Elemente muss man für diese Version noch in die readme schauen.
- In die so selbst produzierten Raumschiffe kann man mittels Tastendruck wechseln um sie zu fliegen
- Es soll mindestens 1 funktonierende Waffe geben, mit der man ein paar Dummy-Ziele kaputt schießen kann (noch ohne Explosion)
- Kollisionserkennung ist in dieser Version bereits aktiv. Man kann also nicht (wie z.B. in X Rebirth) durch Stationen oder sonstige Objekte durchfliegen. Fürs erste wird die Geschwindigkeit bei einer Kollision einfach auf 0 gesetzt.
- Es wird bereits eine Hintergrundmusik zu hören sein
Grobes Ziel für diese Version: Mai 2014
Ab diesem Punkt ist die härteste Arbeit getan. Ab jetzt wird jegliche Arbeit sofort sichtbar im Spiel und eine direkte Verbesserung des Spielerlebnisses Wenn die hier beschriebene Version erreicht wird, dann ist es auch nur noch eine Frage der Zeit bis alle der ursprünglich genannten Features implementiert sind.
Es können dann noch 1-2 weitere Programmierer hinzugezogen werden, um die ganze Sache zu beschleunigen. Da werden sich schon welche finden, nachdem es dann ja schon "was zu sehen gibt".
4.5 Auf lange Sicht
Noch langfristiger gesehen stünde dann erst einmal der Einbau von Handelsrouten und dem Ship Designer UI an. Das ganze Empire Building und Ship Designing für eine Rasse muss einmal solide funktonieren. Erst dann werden wir uns an den Universum-Generator machen.
Abschließende Worte
So das war jetzt doch eine recht lange Text-Wall Ich hoffe ich konnte irgendjemanden für mein ehrgeiziges (aber durchaus schaffbares wie ich meine) Projekt begeistern.
Ich kann verstehen, wenn ihr noch skeptisch seid oder z.B. erst auf den Ship Designer Prototyp warten wollt. Ich würde mich jedenfalls über Gesellschaft beim Entwickeln freuen, entweder im Forum oder über Skype (weal1mst). Wenn mehrere Leute an einem Projekt sind, dann motiviert das doch ungemein - und sei es nur über das Forum in Form von Ideen