Fragen & Antworten zur Spark Engine

Spark

Wegen der vielen Fragen die Unknown Worlds rund um die Technologien gestellt werden, an denen sie für die Realisierung von Natural Selection 2 arbeiten, hat Max sich entschlossen einige Fragen zur Spark Engine zu beantworten. Los geht es mit zwei generellen Fragen; es sollen noch weitere folgen.

Andreas: Was ist ist die Spark Engine? Ist es die komplette Spiel Engine oder nur der Grafikteil?

Spark ist die komplette Game Engine, inklusive aller Tools, die für die Fertigung von Natural Selection 2 genutzt werden. Spark umfasst Grafik, Sound, Netzwerk, Physik, Scripting, Wegfindung und Effekte (so wie alles weitere, was man sich überlegen kann). Auch die Tools wie der Editor, der Builder, der Viewer und der Cinematic Editor sind Teil von Spark.

Quellcode

Quellcode

Als Charlie und Max angefangen haben an NS2 zu arbeiten, hatten sie nicht vor gehabt eine eigene Engine zu entwickeln. Eigene Technologie zu entwickeln ist viel Arbeit. Und natürlich ist es unheimlich schwierig das Gameplay und die Grafik für ein Spiel zu bauen, wenn die Engine noch nicht fertig ist. Als die endgültige Endscheidung für eine eigene Engine getroffen wurde, haben Charlie und Max großen Wert auf Flexibilität gelegt um nicht beim nächsten Spiel wieder von Null anfangen zu müssen. Außerdem sollte es mit der Engine für Spieler möglich sein eigene Spiele und Mods zu bauen. Daher ist die Spark Technologie größtenteils unabhängig vom Spiel. Die Engine ist in C++ gecoded und bietet die Kernfunktionalität zum Management einer virtuellen Welt. Dazu kommt das Spiel Natural Selection 2, welches komplett in Lua geschrieben ist, und die typischen Elemente eines First-Person-Shooters  (u.a. Spieler, Waffen, Score), sowie Natural Selection spezifische Funktionen (u.a. Commander Mode, Techtree, Wall-Walking) mitbringt.

Die Aufteilung bei dieser Arbeit war immer klar: Charlie arbeitet an Natural Selection 2 und Max an der Engine und den Tools. Seit einigen Monaten ist auch Kurt Miller, ein guter Freund von Max, bei Unknown Worlds und arbeitet an der Engine und den Tools mit.

In den letzten zwei Monaten wurden wöchentlich Patches für den Editor herausgebracht. Dies sollte nicht so interpretiert werden, dass in dieser Zeit nicht am Spiel gearbeitet wird. Egal wie hart am Editor gearbeitet wird und wie knapp die Deadlines sind: Charlie arbeitet Vollzeit am Spielcode. Aktuell verwenden Max und Kurt ihre meiste Zeit auf die Optimierung der Engine und Kurt kümmert sich auch noch um neue Features und Bugfixes für den Editor.

Beat Wolf: Welche Plattformen werden unterstützt? Auf der Website stehen immer noch Linux und OS X, was seit der Einbindung von Steamworks angezweifelt wird.

Aktuell läuft die Engine nur unter Windows und dies wird die einzige unterstütze Plattform beim Release von Natural Selection 2 sein. Allerdings ist ein Großteil der Engine nicht plattformabhängig. Der größte Windows-spezifische Teil ist der Low Level Rendering Code auf Basis von Direct3D. Um auch Linux und OS X zu unterstützen wurde das Low Level Rendering separat vom restlichen Code gehalten und kann vollständig gegen eine Open GL Implementierung getauscht werden, die auf Linux und OS X funktioniert. Die Tools selbst laufen auf dem wxWidget Framework, welches die Übertragung auf eine andere Plattform sehr einfach macht.

Warum nicht direkt für alle drei Plattformen?

Die Verpackung von Mac OS X.

Die Verpackung von Mac OS X.

Einigen mögen sich jetzt vielleicht fragen, warum Engine und Spiel nicht direkt für alle drei Plattformen parallel entwickelt werden. Die Antwort darauf ist recht simpel: Die Zeit reicht nicht. Unknown Worlds müssen NS2 fertig kriegen und an den Mann bringen. Daher bleibt bis zum Release auf der mit Abstand wichtigsten Plattform – Windows – keine Zeit für Mac und Linux. Als Alternativ hat man überlegt einige Schnittstellen (APIs) vorzugeben und die Community auf Open Source Basis an einer Portierung des Windows-spezifischen Codes arbeiten zu lassen. Diese Idee ist aber nie umgesetzt werden.

Steamworks

Steamworks

Und was ist mit Steamworks?

Zu den Bedenken wegen Steamworks. Steamworks ist die Kerntechnologie von Steam und umfasst die Freundesliste, den Server-Browser und Voice-Chat. Steamworks wurde in NS2 integriert um diese drei rudimentären Bestandteile nicht selbst entwickeln zu müssen und somit Zeit und Geld zu sparen. Leider funktioniert Steamworks (bzw. der Steam Client) nur unter Windows. Daher wurde Natural Selection 2 so eingestellt, dass es auch ohne Steamworks läuft, der Spieler dann jedoch bestimmte Funktionen nicht mehr nutzen kann. So kann man Server nicht mehr über den komfortablen Serverbrowser auswählen sondern muss die IP manuell in die Konsole eingeben. Für Linux und OS X müssten diese Funktionen erst entwickelt werden. Das ist für eine spätere Portierung auf diese Plattformen nicht undenkbar aber würde aktuell das Windows-Release verzögern.

Der Linux Tux.

Der Linux Tux.

Dies alles bezieht sich natürlich nur auf den Client. Dedizierte Server können selbstverständlich unter Linux betrieben werden, da sie weder Grafik noch Eingaben benötigen. Linux-Server werden vom ersten Release an unterstützt. Einer der schönen Effekte eines komplett in Lua geschrieben Spiels ist, dass man außerhalb der Engine nichts von den Plattformproblemen mitbekommt.

Eigene Fragen einreichen

Wenn du selbst eine Frage hast schick sie einfach (auf Englisch!) an max@unknownworlds.com. Je spezifischer die Fragen sind, desto besser.

Quelle

Ein Gedanke zu “Fragen & Antworten zur Spark Engine

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>