# 3D GameStudio

3D GameStudio (3DGS) ist ein Softwarepaket von Conitec, das neben der für Computerspiele und andere Multimediaanwendungen ausgelegten 3D-Engine Acknex auch eine komplette Entwicklungsumgebung mit eigener Skriptsprache beinhaltet. Das mitgelieferte Werkzeugset beinhaltet einen einfachen Modeleditor (MED), einen BSP-basierten Leveleditor (WED), einen Skripteditor mit integriertem Debugger (SED) sowie einen WYSIWYG-Editor, mit dem sich 3D-Umgebungen innerhalb der laufenden Anwendung modifizieren lassen (GED).
Zusätzlich zu den mitgelieferten Tools sind außerdem Textur- und Artworkkollektionen, ein umfangreiches und anpassbares Vorlagensystem, zahlreiche Beispielprogramme, diverse SDKs für die Tools und die Engine und eine mehrsprachige Referenz mitgeliefert.
Das Vorlagensystem erlaubt es, einfache Ego-Shooter, RPGs, Rennspiele usw. ohne Programmierkenntnisse zu erstellen. Für komplexere Spiele und andere Genres ist es empfehlenswert, mit den mitgelieferten Programmiersprachen und -werkzeugen seine eigenen Programme zu schreiben.
Bis zur Einführung der A7 Game Engine im Jahre 2007 verfügte das 3D Gamestudio mit der A6 Engine nur über die Skriptsprache C-Script, eine vereinfachte Version von C. C-Script-Programme können nicht vorkompiliert werden, sondern werden beim Start der Engine kompiliert und in Maschinencode übersetzt. Des Weiteren ist es dem erfahrenen Programmierer möglich, über diverse Software Development Kits die Tools oder die Engine durch eigene Funktionen und Features zu erweitern. Es existieren SDK-Versionen unter anderem für C/C++ und Delphi.
Seit 2007 wird der C-Script-Compiler nicht mehr weiterentwickelt, aber weiterhin von der A7 unterstützt. Stattdessen wird die in Zusammenarbeit mit Atari entwickelte Sprache Lite-C verwendet, mit der sich Funktionen der Windows API oder von DirectX direkt ansprechen lassen. Dadurch können deutlich komplexere Programme entwickelt werden.

## Tools

Der mitgelieferte Modelleditor MED ist eher für Anfänger gedacht. Er verfügt über die grundlegenden Werkzeuge zum Modellieren, Texturieren und Animieren.
Im Leveleditor WED werden alle Einzelteile der Spielewelt zusammengesetzt. Jedem Objekt (engl. Entity) können im Leveleditor Funktionen zugewiesen werden. Im Programm definierte Objekteigenschaften lassen sich in Eingabefenstern editieren, so dass ein Leveldesigner die Levelumgebungen individuell zusammenstellen und konfigurieren kann. Das Vorlagensystem kann selbst erweitert werden, bzw. man kann selbst Vorlagen erstellen und benutzen, so dass das Leveldesign komplett vom Code getrennt werden kann.
Der Map-Compiler kompiliert die Levels, die man im WED zusammengestellt hat und erzeugt eine binäre Datei, die alle Modellreferenzen, neu erzeugten Meshes, Lightmap-Daten, Objektdefinitionen usw. speichert. Seit der Einführung der A7 Game Engine gibt es zwei Renderingverfahren, ABT und BSP–Tree rendering, die auch eine unterschiedliche Kompilierung des Levels erfordern. Das BSP Tree rendering ist ab der A7 Game Engine der Pro-Version vorbehalten und führt zu einer längeren Kompilierung, da der Compiler alle Sichtbarkeitsdaten berechnen muss. Kompiliert man im ABT-Modus, so kann man auch konkave Geometrie oder auch Modelle als statische Geometrie importieren (und auch mit Lightmapping-Daten versehen). Man kann ganze Levels direkt aus anderen Programmen wie z. B. Maya (Software) oder 3D Studio Max importieren. In Zukunft soll man auch vorkompilierte Lightmap-Daten aus diesen Programmen laden können.
Der Vorteil von Autorensystemen wie 3D GameStudio ist das effektive Zusammenspiel der einzelnen Teile und die daraus resultierende ökonomische Nutzbarkeit (kürzere Entwicklungszeit). Das liegt daran, dass der Entwickler nicht mehr selbst für die aufwendige Entwicklung dieser Dinge Zeit, Arbeit und Geld investieren muss, sondern sich nur noch auf das Design und die Umsetzung eines Spiels konzentrieren kann. Nachteile sind der Verzicht darauf, technisch auf dem allerletzten Stand zu sein und die – im Vergleich zu individuell auf ein Projekt zugeschnittenen Werkzeugen – geringe Flexibilität (wobei das SDK diesen Nachteil eigentlich revidiert).

## Aktueller Stand

Im Jahr 2007 erschien die Version 7 von 3D Gamestudio mit der A7 Game Engine. Begleitend dazu erschien die Lite-C-Programmiersprache, die auch kostenlos erhältlich ist. Der Fortschritt der Engine wird zudem durch einen moderneren Renderkernel basierend auf einem Adaptive Binary Tree gesichert sowie einer geplanten Ausrichtung auf ein komplett shader-basiertes Rendering.
2010 kam die aktuelle Version 8 auf den Markt. Die Engine wurde auf den neusten Stand gebracht, um mit Konkurrenzprodukten mithalten zu können. Das komplett shader-basierte Rendering wurde nun weiter ausgebaut, unter anderem durch die Funktion des Realtime-Shadowmapping. Für schnelle Erfolge bei der Levelgestaltung blieben aber weiterhin die leicht zu gestaltenden „WED-Blocks“ erhalten. Diese Levelgestaltung basiert auf Constructive Solid Geometry (konstruktiver Festkörpergeometrie), welche häufig in älteren 3D-Spielen zur Verwendung kam, aber heute zunehmend der polygonalen Geometrie gewichen ist. Diese Methode liefert meist qualitativ deutlich höherwertige Resultate, ist jedoch deutlich komplexer und aufwändiger zu handhaben. Hier wird häufig in der Community das mitgelieferte Tool MED kritisiert, welches weder das Erstellen komplexer Modelle, noch die shader-basierte Implementierung in die Engine erlaubt. Weitere Features der neuen A8-Engine sind nun das in Lite-C implementierte Nvidia PhysX, welches die alte ODE-Physik-Engine ersetzt, sowie zahlreiche (laufende) Verbesserung der Skriptsprache Lite-C. Zudem wurden einige Optimierungen vorgenommen, zum Beispiel die Verringerung der Renderzeit von Modellen.

## Features von A7

| Edition | Lite-C free | Lite-C full | Extra | Commercial | Pro |
| Level Editor | Nein | Nein | Ja | Ja | Verteilbar |
| Physik-Engine | Starr | Starr | Starr | Starr | Starr+Flüssigkeit |
| Multiplayer | Nein | Nein | Nein | 8 Spieler | Unbegrenzt |
| Zone/Multiserver | Nein | Nein | Nein | Nein | Ja |
| Szenenmanager | ABT | ABT | ABT | ABT | ABT+BSP |
| Statische Schatten | Nein | Nein | Ja | Ja | Ja |
| Bewegte Schatten | Ja | Ja | Ja | Ja | Ja |
| Partikel-Generator | Ja | Ja | Ja | Ja | Ja |
| Strahlen-Generator | Nein | Nein | Nein | Ja | Ja |
| Shader | Nein | Nein | Nein | Ja | Ja |
| Spiegel/Rendern auf Texturen | Nein | Nein | Nein | Ja | Ja |
| Spiel erstellen | Nein | Ja | Ja | Ja | Ja |
| Geometrischer LOD | Manuell | Manuell | Manuell | Manuell | Automatisch |
| Bones Animation | Ja | Ja | Ja | Ja | Gewichtet |
| Spielvorlagen | Nein | Nein | Ja | Ja | Ja |
| Logo anzeigen | Im Spiel | Beim Start | Beim Start | Beim Start | Wählbar |
| Datei-Packer | Nein | Nein | Nein | Nein | Ja |
| Demomodusfunktion | Nein | Nein | Nein | Nein | Ja |
| C-Script Kompatibilität | Nein | Nein | Ja | Ja | Ja |
| Plugin/Engine SDK | --- | Open Source | Open Source | Open Source | Volle Lizenz |

## Features von A8

| Edition | Lite-C free | Lite-C full | Extra | Commercial | Pro |
| Level Editor | Ja | Ja | Ja | Ja | Verteilbar |
| Physik-Engine | Starr | Starr | Starr | Starr | Starr+Flüssigkeit |
| Multiplayer | Nein | Nein | Nein | 8 Spieler | Unbegrenzt |
| Zone/Multiserver | Nein | Nein | Nein | Nein | Ja |
| Szenenmanager | ABT | ABT | ABT | ABT | ABT+BSP+Portals |
| Statische Schatten | Nein | Nein | Ja | Ja | Ja |
| Bewegte Schatten | Ja | Ja | Ja | Ja+Weiche Schatten | Ja+Weiche Schatten |
| Partikel-Generator | Ja | Ja | Ja | Ja | Ja |
| Strahlen-Generator | Nein | Nein | Nein | Ja | Ja |
| Shader | Nein | Nein | Nein | Ja | Ja+Compiler |
| Spiegel/Rendern auf Texturen | Nein | Nein | Nein | Ja | Ja |
| Spiel erstellen | Nein | Ja | Ja | Ja | Ja |
| Geometrischer LOD | Manuell | Manuell | Manuell | Manuell | Automatisch |
| Bones Animation | Ja | Ja | Ja | Gewichtet | Gewichtet |
| Spielvorlagen | Nein | Nein | Ja | Ja | Ja |
| Logo anzeigen | Im Spiel | Beim Start | Beim Start | Beim Start | Wählbar |
| Datei-Packer | Nein | Nein | Nein | Nein | Ja |
| Demomodusfunktion | Nein | Nein | Nein | Nein | Ja |
| C-Script Kompatibilität | Nein | Nein | Ja | Ja | Ja |
| Plugin/Engine SDK | --- | Open Source | Open Source | Open Source | Volle Lizenz |

## Einschränkungen

Eine spezielle Lizenzbedingung verbietet die Benutzung von Gamestudio für Spiele, die „offene Gewalt gegen eine Gruppe, Rasse, Nation oder Religion der heutigen realen Welt propagieren“ (Zitat aus der Lizenzvereinbarung).

## Entwicklungsgeschichte

* 1993 ACK-3D (Animation Construction Kit) wurde von Larry Myers veröffentlicht.
* 1994 ACK NEXT GENERATION wurde von Johann Christian Lotter veröffentlicht (verbesserte Version von ACK 3D, nun Open Source).
* 1995 ACKNEX-2 wurde von oP group Germany veröffentlicht, im selben Jahr wurde ACKNEX-2 zu Conitecs Eigentum und wurde als 3D GameStudio vertrieben.
* 1997 ACKNEX-3 Release
* 1999 A4 Release (Windowsbasierende, Quake-ähnliche Engine)
* 2000 A5 Release (Terrain-Engine)
* 2003 A6 Release (Physikengine und Shader)
* 2007 A7 Release (ABT Renderkernel und Lite-C)
* 2010 A8 Release (Unterstützung von PhysX um GPU Prozessoren bei Nvidia Grafikkarten parallel zur normalen Grafikberechnung zu nutzen.)