GeoMechanic ist ein open-world Sandbox-Spiel, in dem der Spieler die Welt verändern und Maschinen konstruieren kann. Es war das Hauptprojekt des Startups Upvoid, das ich mitgegründet habe.

Development time 2013-2015
Development duration 2 Years
Technologies C++, C#, Qt, OpenGL
License Closed source
Team size 6 developers

Übersicht

GeoMechanic kann am besten als Mischung aus Garry’s Mod und Minecraft zusammengefasst werden. Der Spieler wird in einer unendlich großen Welt platziert, in der er das Gelände vollständig verändern kann. Es ist möglich, Tunnel in den Boden zu graben oder neue Strukturen wie Gebäude zu errichten. Außerdem können mechanische Gerätschaften wie Fahrzeuge, Transportbänder oder andere Vorrichtungen konstruiert werden. Dieses Video gibt einen kurzen Überblick über das Spiel:

GeoMechanic Alpha Trailer

Der Quellcode besteht aus über 2 Millionen Zeilen Code, die von sechs Entwicklern mit etwa 7.000 Commits geschrieben wurden. Meine Arbeit an dem Projekt umfasst unzählige Bereiche, die ich hier nicht alle aufzählen kann. Besonders aktiv war ich beim Grafik-Rendering, der Schnittstelle zwischen Engine (C++) und Spiellogik (.NET) und der prozeduralen Weltgenerierung. Darüber hinaus habe ich bei Upvoid einen großen Teil der administrativen Aufgaben übernommen, etwa beim Projektmanagement, der Finanzplanung, Verhandlungen mit Kunden, Kommunikation mit Behörden und der Pressearbeit.

UpvoidMiner

Auf der Projektwebseite kann die Tech-Demo UpvoidMiner heruntergeladen werden, die auf der gleichen Technologie wie GeoMechanic basiert. UpvoidMiner wurde von uns etwa ein Jahr vor der ersten Alpha-Version von GeoMechanic als kostenlose Demo veröffentlicht, um erstes Feedback von Spielern zu erhalten.

UpvoidMiner Trailer

Technische Details

Das Spiel und die dazugehörige Engine wurden vollständig selbst entwickelt. Das Projekt verfügt über unzählige interessante technische Features. Einige der besonders nennenswerten sind:

  • Eine solide Engine-Architektur, die dafür entwickelt wurde, die besonders Rechenaufwändigen Gelände-Modifikationen bei gleichzeitig flüssiger Bildrate durchzuführen. Dazu werden stets alle verfügbaren Prozessorkerne verwendet. Dank eines cleveren Scheduling-Systems werden die Aufgaben so auf die Kerne verteilt, dass in der Regel keine Locks nötig sind.
  • Eine Technologie für realistisches Voxel-Terrain ohne Blöcke, die technisch bis heute noch nicht von Konkurrenzprodukten übertroffen wird.
  • Eine moderne Rendering-Pipeline mit physikalisch basiertem Rendering und einer selbst-optimierenden Rendering-Pipeline für besonders effiziente Berechnung von Post-Prozessen.
  • Prozedural generierte Welten, bei denen tektonische Platten und der Einfluss des Wetters auf das Gelände durch Erosion simuliert werden. So entstehen realistische Landschaften mit überzeugenden Gebirgsketten, Tälern und zerklüfteten Küstenregionen.
Profiling-Übersicht aus den internen debugging-Tools der Engine
Eines der internen Profiling-Tools der Engine. Die Ansicht kann direkt im Spiel oder über einen eingebetteten Webserver aufgerufen werden.

Entwicklungsverlauf

Upvoid wurde mit dem Ziel gegründet, ein Spiel mit realistischem, veränderbarem Voxel-Terrain zu entwickeln. Nach der Gründung in 2013 begannen wir mit der Entwicklung einer Engine, die die nötigen Features für unser Spiel bereitstellen sollte. Zu diesem Zeitpunkt existierten noch keine Konkurrenzprodukte, die ähnliche Features boten. Unser Team hatte solides Fachwissen in den praktischen und theoretischen Aspekten von Geometrie­verarbeitung, Echtzeitgrafik und allgemeiner Softwareentwicklung. Die Entwicklung dieses ambitionierten Projekts forderte diese Fähigkeiten in vollem Umfang, denn die Verarbeitung von so großen Mengen an Voxel-Daten in Echtzeit war auf der damals verfügbaren Hardware nur mit stark optimiertem Code und eigener Forschungsarbeit möglich.

Nach einigen Monaten Entwicklungsarbeit veröffentlichten wir eine erste Alpha-Version unserer Tech-Demo UpvoidMiner. Dank der damals neuen Technologie erreichte die Tech-Demo auch die Deutsche Fachpresse (z. B. golem.de oder PC-Games). Das große Medien­interesses sorgte für über 10.000 Downloads am ersten Wochenende. Dieser große Erfolg machte uns Hoffnung auf die weitere Zukunft des gesamten Projekts.

Die Entwicklung der Engine und des Hauptprojekts GeoMechanic dauerte bis Anfang 2015. Im Februar 2015 veröffentlichten wir eine erste Alpha-Version von GeoMechanic, die wir zum Verkauf anboten. Leider gab es zu diesem Zeitpunkt bereits mehrere ähnliche Spiele (etwa Medieval Engineers oder Everquest Landmark). Unser langfristiges Geschäftsmodell war die Lizenzierung der Technologie an andere Entwickler, aber Konkurrenzprodukte hatten den Markt bereits betreten, bevor wir in der Lage waren, den ersten Kunden eine stabile Software vorzustellen.

Nach dem zweiten großen Update im Mai 2015, in das wir unsere Hoffnung gesetzt hatten, stagnierten die Verkaufszahlen von GeoMechanic. Das Interesse der Presse war spürbar gesunken. Wir hatten zuvor interne Abbruchbedingungen für das Projekt vereinbart. Diese Minimalziele wurden nicht erreicht, so dass wir uns für die Einstellung der Entwicklung entschieden.

Dieses Projekt war eine der größten Herausforderungen, an denen ich bisher arbeiten durfte. Ich habe mehrere tausend Arbeitsstunden in die Entwicklung und Vermarktung investiert. Der Abbruch des Projekts hinterließ natürlich einen bitteren Nachgeschmack, aber ich bin nach wie vor davon überzeugt, dass der Abbruch eine gute Entscheidung war. Ich bin froh darüber, wie viel ich bei diesem Projekt lernen konnte. Die Erfahrungen, die ich in dem Startup sammeln konnte, reichen von Projekt- und Teammanagement über die organisatorischen und finanziellen Aspekte der Unternehmensführung bis hin zu Verhandlungen mit Kunden, Auftragnehmern, Mitarbeitern und finanziellen Investoren.

Mehr Projekte