Das folgende Dokument beschreibt wie das fertige Spiel aussehen wird. Dabei trifft es keinerlei Aussagen über die aktuelle Version des Spieles.
Das Spiel
Die Idee dieses Projektes ist es, ein UNIX/Linux Remake des beliebten DOS-Spiels "stunts" zu machen.
"Das alte Spiel"
Das original DOS Spiel (entwickelt von Broderbund und Mindscape) kann auf verschiedenen Abandonware Seiten heruntergeladen werden, beispielsweise von der XTC Seite.
Stunts ist ein 3D Rennspiel mit simpler CGA/EGA/VGA Graphik ohne Texturen oder Shading, aber wegen der spektakulären Stunts (Loopings, Brücken zum Springen, etc.) hat das Spielen sehr viel Spaß gemacht. Das Beste an dem Spiel war der Track-Editor. Er benutzt ein kachelartiges System, so dass jeder Spieler mit wenig Aufwand eigene Strecken machen konnte.
Ähnlichkeiten und Unterschiede
UltimateStunts orientiert sich sehr stark an Stunts:
- Es ist auch ein 3D Rennspiel
- Es ist auch möglich (und relativ einfach) Rennstrecken zu bauen
- Die Strecken werden aus Blöcken zusammengebaut, sogenannten 'Kacheln'
- Man kann es auf relativ alten Computern spielen
- Das Spiel bietet die Möglichkeit SEHR spektakuläre Stunts zu machen
- Du kannst hinfahren wo du will (wirst aber Strafzeit dafür bekommen)
- Plattformunabhängig: UltimateStunts ist Open-Source und benutzt soweit möglich plattformunabhängige Bibliotheken.
- 3D Sound
- Bessere Strecken: Die Streckengrößen (l*w*h) sind verfügbar.
- Bessere Graphik (basierend auf OpenGL) mit Texturen, Shading, Reflektionen, etc.
- Mehrspieler: Das Orginal erlaubte einen Spieler und maximal einen Computergegner. UltimateStunts wird ein IP-basiertes Netzwerkspiel mit Server und sowohl mit menschlichen als auch computergesteuerten Gegnern.
- Ein größere Menge an Kacheln und Strecken. Du kannst auch deine eigene Sammlung von Kacheln und Strecken benutzen.
Voraussetzungen
UltimateStunts ist sehr flexibel was die Systemvoraussetzungen anbelangt: es kann auf Computern ohne Hardwarebeschleunigung gepspielt werden, aber es ist auch in der Lage die 3D-Technologie moderner Computer voll auszunutzen.
Folgende Voraussetzungen müssen für die Windows Version erfüllt sein:
- Windows 95, NT oder besser (auch wine, der Windows-Emulator für Linux, wird vermutlich auch funktionieren)
- OpenGL (oder Mesa) (Standard auf den meisten Systemen)
- Das X-Window System
- OpenGL (oder Mesa) (kommt meist mit dem X-Window System)
- SDL (ältere Versionen nutzten glut)
- BSD Netzwerk Bibliothek ((immer(?) verfpgbar auf BSD und Linux Systemen)
Damit das Spiel bei akzeptabler Framerate auch noch gut aussieht, benötigst du folgenden Rechner
- Pentium 200 MHz oder besser (oder etwas vergleichbares auf Nicht-PC-Basis)
- Eine Grafikkarte mit Hardwarebeschleunigung und OpenGL-Support
- Sound (mit Hilfe von FMOD (in zukünftigen Versionen OpenAL))
- Joysticks
Die Technologie
Die Hauptentwicklungsplattform ist Linux und Cygwin (in Windows), aber ich versuche asd Spiel möglichst portierbar für andere UNIX-ähnliche Umgebungen wie MacOS/X zu halten. Für Graphik und Eingabe wird eine OpenGL/SDL Kombination benutzt. Das Netzwerk wird mit typischen UNIX (BSD) Netzwerkfunktionen realisiert und die Kommunikation wird UDP/IP benutzen. Sound wird mittels der FMOD Bibliothek ausgegeben, aber sobald ich es lerne wird es eine OpenAL-Implementierung geben.
Das Projekt wird eine Ahnzahl verschiedener Programme hervorbringen, was die folgenden einschließt:
- Das UltimateStunts Program das Graphic, Sound, etc zur Verfügung stellt. Dieses Programm untersützt auch eine schöne GUI.
- Einen Server
- Einen KI-Client
- Ein simpler 3D-Editor um Kacheln und Autos zu verändern und um sie aus älterne Dateiformaten zu importieren.
- Ein Streckeneditor
Derzeit wird KDevelop für die Entwicklung benutzt.
Netzwerk und Simulation
Die Functionalität der verschiedenen am Spiel beteiligten Programm wird sehr anpassungsfähig sein, da die optimale Konfiguration von Netzwerkparametern wie Bandbreite anhängig ist. Der folgende Text beschreibt zukünfgige Versionen und trifft NICHT auf die aktuelle Version zu.
Im lokalen Spiel, wenn nur ein Computer am Spiel beteiligt ist, werden alle Aufgabe (also Graphik, KI-Spieler und Physiksimulation) von einem einzigen Programm übernommen. Wenn sich mehr als ein Spieler an einem Spiel beteiligen, sprich ein Netzwerkspiel, werden die Daten vom Server verteilt. Die Hauptarbeit der Physiksimulation wird vom Server übernommen, aber (abhängig von der Bandbreite) könnten einige Clients auch Teile davon berechnen, um den Server zu entlasten.
KI Gegner können sowohl auf dem Server als auch auf dem Client gestartet werden. Sie können aber auch als seperates KI-Programm laufen. Experten die nach der besten Leistung suchen, können den Server so bedienen, dass er sich wie ein Client verhält. Auf diesem Weg logt sich der Server in ein Internetspiel über eine langsame Verbingung und agiert gleichzeitig als Server für mehere Spieler in einem LAN. Dies ermöglicht es, dass eine einzelne Client-Server Verbindung von mehreren Spielern genutzt wird.
Graphik
Weil die Graphik kachelbasiert ist, kann das Rendering durch Abschalten des OpenGL Z-Buffers beschleungigt werden. In diesem Fall müssen die Kacheln in der richtigen Reihenfolge gerendert werden. Außerdem lässt sich die Grafik mittels vieler Optionen optimal konfigurieren und anpassen. Wenn Z-Buffering, Texturen, Shading und Hintergründe deaktiviert und die Auflösung auf 320x200 gesetzt werden, sollte das Spiel dem orginal sehr ähnlich sehen und außerdem auf fast jedem Computer laufen.