Suchen

Panda3D, PlayCanvas und Cafu Engine im Überblick Open-Source-IDEs für 3D-Spiele

| Autor / Redakteur: Mirco Lang / Stephan Augsten

Beim Gaming ist 3D-Grafik längst Normalität. Titel wie Doom haben den Weg schon vor langer Zeit geebnet – und als freie Gaming Engine ist Doom weiterhin Wegbereiter. Diese und weitere vielversprechenden IDEs für 3D-Games stellen wir heute vor.

Firmen zum Thema

PlayCanvas liefert die beste User Experience.
PlayCanvas liefert die beste User Experience.
(Bild: Lang / PlayCanvas)

Ja, klar: „Chuck Norris würde Far Cry 6 mit Papier und Bleistift entwickeln“, um es im Internetslang zu sagen. Aber in der Realität würde auch Chuck Norris eine IDE für die Spieleentwicklung nutzen. Er hat in seinen jungen Jahren mit den Action Jeans eine Stretch-Hose für Stuntszenen erfunden und vertrieben.

Ein solches Maß an Vereinfachung versprechen auch spezialisierte Gaming-IDEs. Diese Toolsets können jede Menge Zeit und Arbeit einsparen, ja sogar einige nötige Programmier-Skills abnehmen: vom Scripting über die Entwicklung von Charakteren, bis hin zu KI oder Standardanimationen. Freie 2D-Gaming-IDEs haben wir bereits betrachtet, hier stellen wir drei weitere Hilfsmittel vor, die alle zwei Dinge gemeinsam haben: Sie sind Open Source Software und auf 3D-Titel spezialisiert.

Vorab: Die Doom-3-Engine, genauer gesagt „id Tech 4“, ist die aktuellste unter freier Lizenz stehende Version der Engine, allerdings schon etwas in die Jahre gekommen. Die auf Rendering und Effekte spezialisierte IDE ist ein guter Anlaufpunkt für alle, die zum Beispiel klassische Ego-Shooter entwickeln und mit einer umfangreichen Scripting-Sprache arbeiten möchten. Als All-in-One-Lösung mit grafischer Oberfläche kommt es jedoch nicht in Frage.

Panda3D

Die Panda3D-Engine stammt ursprünglich von Disney (2002) und wird mittlerweile unter anderem von der Carnegie Mellon University weiterentwickelt. Die aktuellste Version ist vom 8. Januar 2020. Zwei Aspekte dürften auf Anhieb gefallen: Programmiert wird in C++ oder mit einer der beliebtesten Sprachen überhaupt, nämlich Python.

Dies macht den Einstieg verhältnismäßig einfach. Zudem steht Panda3D unter der freizügigen BSD-Lizenz, was auch den Einsatz in proprietären Projekten ohne Probleme ermöglicht. Darüber hinaus ist die IDE plattformunabhängig. Panda3D verfügt aber leider über keine zentrale grafische Nutzeroberfläche, entwickelt wird hier hauptsächlich direkt über Python-Skripte. Hinzu gesellen sich allerlei Kommandozeilentools.

Eine Stärke von Panda3D ist eindeutig das Rapid Prototyping, insbesondere wenn es darum geht, einfache 3D-Objekte im Raum zu animieren. Kein Wunder, war das Programm doch ursprünglich für die Animation von VR-Objekten für Themenparkbahnen gedacht. Im einfachsten Fall genügt ein knappes Dutzend Zeilen, um Objekte zu laden und beispielsweise herumlaufen zu lassen.

Wie bereits erwähnt gibt es keine zentrale GUI, aber das durchaus interessante Konzept „DirectGUI“: Nach Aktivierung dieser Option in der zentralen Textkonfiguration lassen sich Objekte direkt in den Spielen bzw. deren Demos selbst manipulieren – einfach über die mittlere Maustaste. Auch wenn Panda3D seine Nutzer nicht wirklich an die Hand nimmt, bietet es viele Features, die das Leben vereinfachen:

  • Import vieler Objektformate (Maya, Blender etc.)
  • Unterstützung von TrueType Fonts
  • Bullet (Physics Engine)
  • Assimp (Model Loader)
  • OpenAL/FMOD (Audiobibliotheken)
  • pstats (Performance Monitoring)
  • Extensive Grafik-API
  • Partikelsystem
  • GUI-Entwicklung
  • Debugging-Werkzeuge

Panda3D bringt mit PandaAI sogar eine eigene simple KI mit, die zum Beispiel selbständig Wege finden, Objekte vermeiden oder errechnen kann. Der Einstieg in das Panda-Umfeld ist nicht ganz einfach, da die Dokumentation ein wenig zerfahren ist und der zentrale Einstiegspunkt fehlt – letztlich gibt es aber reichlich gute Hilfen und vor allem recht verständliches Scripting.

PlayCanvas

PlayCanvas liefert die beste User Experience.
PlayCanvas liefert die beste User Experience.
(Bild: Lang / PlayCanvas)

PlayCanvas ist etwas Besonderes: Der Code des Programms [https://github.com/playcanvas/engine] steht unter der liberalen MIT-Lizenz, allerdings läuft PlayCanvas primär direkt im Browser auf der Hosting-Plattform playcanvas.com, die neben kostenpflichtigen Angeboten auch einen freien Zugang mit ein paar Beschränkungen gewährt (etwa Lade-Screen und ein Limit von 200 MB Speicherplatz).

Der wohl größte Vorteil daran: Es ermöglicht kollaboratives Arbeiten. Zudem entfällt die bei derartigen Programmen bisweilen durchaus aufwändige Einrichtung. PlayCanvas läuft nicht nur im Browser, sondern produziert auch für Browser und ist insofern doppelt plattformübergreifend. Da ist es nur logisch, mittels JavaScript schlanke HTML5-Anwendungen zu entwickeln.

Die User Experience von PlayCanvas ist angenehm: Beim Erststart wird direkt ein Demoprojekt gestartet, das beim Verständnis ungemein hilft. Die ganze Oberfläche hält sich an gängige Standards und verhält sich wie man es von Desktop-Anwendungen gewohnt ist – selbst übliche Kürzel wie STRG+Z zum Rückgängigmachen stehen zur Verfügung.

Über die Haupt-Benutzeroberfläche werden Szenen angelegt, Objekte eingefügt und mit Dutzenden Eigenschaften versehen, Kameras und Lichter gesteuert und so weiter. In diesem grafischen Teil erinnert die Arbeit an Tools wie Blender, Gimp oder die alten Flash-Animatoren.

Das Scripting läuft in einem separaten Texteditor, der mit Syntax-Highlighting und Auto-Vervollständigung unter die Arme greift. Selbst eine Versionskontrolle ist mit inbegriffen – es arbeitet sich tatsächlich fast so, wie man es gegebenenfalls von „herkömmlichen“ Offline-IDEs kennt. Aber es gibt natürlich noch mehr Features, auch unter der Oberfläche:

  • Kollaboration (Chat, paralleles Arbeiten)
  • WebGL 2
  • GPU-beschleunigte Animationen
  • Partikelsystem
  • Umfangreiche Licht- und Schatten-Funktionen
  • HDR
  • Audio-API mit Raumklang
  • Support für alle Arten von Eingabegeräten
  • Import diverser Animations-/3D-Formate (FBX, OBJ, DAE, 3DS)
  • Asset-Management

PlayCanvas ist eine sehr komplette Lösung für HTML5-Games und hinterlässt einen wirklich guten ersten Eindruck. Im Gegensatz zu vielen anderen IDEs werden sich insbesondere Einsteiger über das stimmige Gesamtpaket freuen: Alles ist aus einem Guss, der Workflow verhältnismäßig intuitiv und die Dokumentation wirklich gelungen, da es neben der reinen API-Doku auch reichlich Tutorials gibt. Alles in allem ist PlayCanvas definitiv einen Versuch wert, zumal die Anmeldung lediglich eine (Pseudo-)Mail-Adresse und ein Passwort benötigt, ganz ohne lästige Verifikation oder dergleichen.

Cafu Engine

Modern sieht anders aus, aber Cafu leistet unter der Oberfläche einiges.
Modern sieht anders aus, aber Cafu leistet unter der Oberfläche einiges.
(Bild: Lang / Carsten Fuchs Software)

Die Cafu Engine liefert mit einer freizügigen MIT-Lizenz ebenfalls die Grundlage für einfache kommerzielle bzw. proprietäre Entwicklungen – ein guter Anfang. Das Projekt existiert seit 2009, letzter Release der Windows-Binaries ist aus dem Dezember 2019 und es gibt auch tagesaktuelle Änderungen am Code.

Cafu selbst wird in C++ entwickelt, das Scripting läuft über das durchaus beliebte LUA. Mit dem Cafu World Editor gibt es zudem eine zentrale GUI für die Level-Erstellung, über die insbesondere Einsteiger schneller ins Cafu-Universum finden. Schaut man sich die Cafu-Demos an, sieh man schnell, wo der Hase hinläuft: Alte Doom-Maps lassen grüßen. Insofern bietet sich Cafu vor allem für derartige Spiele und Visualisierungen von Räumen, Gebäuden und sonstiger Architektur an.

Besonderes Augenmerk legt Cafu auf die Rendering-Möglichkeiten, die plattformunabhängig eingesetzt werden können. Cafus „Material System“ besteht aus Komponenten für Shader, Materialien und Renderer, kommt mit den üblichen Bildformaten (bmp, tga, png, jpeg) zurecht und verwendet Pre-Caching für flüssige Animationen.

Dabei greift Cafu auf die Effektfähigkeiten moderner Hardware zurück, läuft aber auch auf älteren Systemen und kann so ziemlich überall eingesetzt werden: von Windows, über Linux und MacOS, bis hin zu Plam, DOS und Pocket PC. Mit Cafu sind auch Multiplayer-Titel über das Netzwerk möglich, einer eingebauten Client-Server-Architektur sei Dank; Client und Server laufen unter Windows und Linux.

Weitere Features:

  • 3D-Sound-Effekte (fmod)
  • Support für MP3 und Ogg-Vorbis
  • 2D-Support für Menügestaltung
  • Reine LUA-GUIs möglich
  • Umfangreicher Model-Editor (3DS, DXF, FBX, OBJ und weitere Formate)
  • Animation Channels (zum Beispiel Arme, Beine, Torso jeweils separat animiert)
  • Welt-Editor (kann Terragen-Dateien importieren)
  • SOAR-Algorithmus [https://de.wikipedia.org/wiki/Soar_(Kognition)]
  • Vegetation größerer Welten
  • Physics Engine (Bullet)
  • Partikelsystem

Cafu macht es Nutzern nicht unbedingt einfach: Alles wirkt ein wenig altbacken, die korrekten Downloads sind nicht wirklich sofort ersichtlich, es gibt ausführlichere Dokumentationen und der grafische World Editor ist alles andere als intuitiv. Hat man sich aber einmal eingearbeitet, bekommt man ein durchaus interessantes All-in-one-System, das durchaus seine Stärken hat.

Für große, kommerzielle Projekt ist es sicherlich nicht erste Wahl, für Hobby-Spiele-Bastler, simple Walk-Arounds und dergleichen hat es aber durchaus seine Daseinsberechtigung. Die Stärken von Cafu liegen aber eher bei den Features als bei der der Bedienung.

Die drei vorgestellten Game Engines lassen sich nicht wirklich direkt vergleichen. PlayCanvas ist das einzige der drei Tools, das wirklich modern, professionell und rund wirkt. Panda3D punktet eher beim Scripting und der API(-Dokumentation). Cafu ist (anfangs) ein altbackenes Überraschungsei – der eine wird es lieben, der nächste keinen Verwendungszweck finden. Am Ende kommt es vor allem auf das gewünschte Ergebnis und die eigenen Skills an. Sofern das passt, sind alle Tools einen Blick wert.

(ID:46392979)

Über den Autor

 Mirco Lang

Mirco Lang

Freier Journalist & BSIler