Crystal Space
aus Wikipedia, der freien Enzyklopädie
Crystal Space ist ein freies (LGPL) und portables 3D Game Development Kit und Game Engine, geschrieben in der Programmiersprache C++. Das Framework ist nicht nur für die Spieleentwicklung geeignet, sondern lässt sich für generelle 3D-Visualierungen verwenden.
Crystal Space unterstützt zur Zeit GNU/Linux, Unix, Windows und Mac OS X. Optional kann es OpenGL (alle Plattformen), SDL (alle SDL Plattformen), X11 (Unix oder GNU/Linux) und SVGALIB (GNU/Linux) verwenden. Es kann auch als Assembler-Framework mit NASM und MMX verwendet werden.
Crystal Space ist ein Open Source-Projekt mit ungefähr 700 Beteiligten. Initiiert wurde das Projekt von Jorrit Tyberghein im Jahr 1997. Nach 10 Jahren Entwicklungszeit wurde am 15. Januar 2007 die Version 1.0 freigegeben.
Inhaltsverzeichnis |
[Bearbeiten] Features
[Bearbeiten] Allgemeine Architektur
- Engine mit sechs Freiheitsgraden mit beliebig geformten Polygonen (arbitrary sloped convex polygons).
- Flexibles Plugin-System, das es Modulen erlaubt, andere Skriptsprachen einzufügen. Python, Perl und Java werden bereits unterstützt. Ebenso existieren Plugins für Schriftarten, Musik, Physikberechnungen sowie das Aufzeichnen und Abspielen von Filmen.
- Crystal Space verwendet SCF (Shared Class Facility) für die Kommunikation zwischen verschiedenen Layern (zum Beispiel zwischen der 3D Engine und dem 3D Rasterizer). Dadurch lässt sich ein Plug-and-Play-Konzept umsetzen.
- Unterstützung von 15/16-bit und 24/32-bit TrueColor-Anzeige und verschiedenen Auflösungen (640×480, 800×600, ...).
- Crystal Space lässt sich gut über die Kommandozeile und durch Konfigurationsdateien konfigurieren.
- Der C++-Quellcode und Assemblercode ist verfügbar. Crystal Space steht unter der LGPL, der GNU-Copyleft-Lizenz für Bibliotheken.
[Bearbeiten] Texturen und Texture-Mapping
- Texturen können jede Größe besitzen, die 2x entsprechen. Sie müssen nicht quadratisch sein.
- Crystal Space unterstützt Texturen mit folgenden Formaten:
- Es ist möglich, eine Textur auf verschiedene Arten auf ein Polygon aufzuzeichnen (gedreht, skaliert, gespiegelt, ...).
- Transparente und semi-transparente Texturen erlauben durchsichtige Wasseroberflächen und Fenster.
- Unterstützt dynamische Texturen, die wie einfache Texturen behandelt werden können
- Der neue Renderer unterstützt fortschrittliche Shader, um Effekte zu erzeugen. Shader können CG benutzen, vertex-Programme, Fragment-Programme, und andere.
[Bearbeiten] Engine-Features
- Dynamisch schattierte, mehrschichtige Halbkugeln (SkyDome) für einen sehr realistischen Himmel. Die Bewegung der Sonne kann in Echtzeit erfolgen, um Farbänderung hervorzurufen.
- Landschaftsgenerator mit Unterstützung von:
- Luftperspektive, Nebel
- Texturerzeugung
- LOD (Level of Detail)
- Blanke, reflektierende Oberflächen
- Vorberechnete statische Beleuchtung (Light-Mapping) mit echtem Schatten
- Statischer LOD
- Dynamisch gefärbte Lichter mit weichem Schatten
- Geometrisch korrekter Schatten (Stencil-Shadow)
- Animation durch Keyframes
- Skelett-Animation (Bones) mit Cal3D.
- Partikelsystem
Dateikonverter für:
Importieren von
-
- 3DS von 3ds Max
- MDL
- MD2
- OBJ
- POV
- ASE
Die importierten 3D-Objekte können abhängig von der Entfernung in unterschiedlicher Auflösung dargestellt werden (LOD).
[Bearbeiten] Portabilität
Crystal Space wurde portiert für:
- Unix (X Window System, OpenGL)
- GNU/Linux (X Window System, OpenGL)
- Macintosh OS/X (auch mit OpenGL)
- Windows 32-bit (DirectDraw und OpenGL)
Optionale OpenGL-Hardware-Beschleunigung unter Windows, GNU/Linux und Macintosh OS/X sowie Linux (Mesa)
- Unterstützung von Prozessorerweiterungen (z. B.MMX).
[Bearbeiten] Unterstützte Dateiformate
Crystal Space kann folgende 3d Objekte direkt laden:
- 3DS
- MDL
- MD2
- ASE
- OBJ
- POV.
- Die zu erschaffende Welt lässt sich durch XML-Dateien beschreiben.
- Levels, bestehend aus Welten und Bereichen, können als gezipptes Paket vorliegen.
- Es ist möglich, Bibliotheken von Objekten, Texturen und andere Dingen, die ein Spiel braucht, in separaten ZIP-Dateien abzulegen.
- Ein Konvertierer um MAP-Dateien (von Quake/Half-Life) nach Crystal Space zu konvertieren, ist enthalten. Levels, die mit QuarK/Worldcraft gestaltet wurden, lassen sich ebenfalls konvertieren.
- Konventierer für:
- Maya (Modelle und Levels)
- Milkshape (Modelle und Levels)
- 3DS (Modelle und Levels)
[Bearbeiten] Verschiedene andere Features
- Das Font-System-Plugin unterstützt folgende Fonttypen:
- Crystal-Space fonts
- TrueType fonts.
- Bewegte Objekte
- Reihenfolgenmanager mit Auslösern erlaubt die Definition von Objektinteraktionen im Level selbst.
- Kollisionserkennung, hierarchische Sichtbarkeitsprüfung.
- Eine mächtige Physik-Bibliothek ist bereits integriert. Sie ist eine dynamische Modelierungs- und Simulations-Engine.
Für In-Game-Menüs ist bereits ein Fenstersystem enthalten. Eine Unterstützung für eine Eingaben- und Ausgabenkonsole, wie sie zum Beispiel in Quake benutzt wird, existiert auch.
[Bearbeiten] Zukunftspläne
Es ist ein allgemeiner LOD (Level Of Detail) Manager geplant.
[Bearbeiten] Autoren und Credits
Jorrit Tyberghein ist der Gründer und Hauptautor von Crystal Space.
[Bearbeiten] Literatur
- Spiele aufbauen mit Open-Source-Engines - iX 09/2006 Seite 52