Czech Danish Dutch English French German Hungarian Italian Norwegian Polish Portuguese Brasilian Portuguese Romanian Serbian Spanish Swedish
Dit document beschrijft hoe het voltooide spel er uit zal gaan zien. Dit garandeert NIETS voor de huidige versie van het spel.

Het spel

Het doel van dit project is om een UNIX/Linux remake te maken van het bekende DOS-spel "Stunts".

"Het oorspronkelijke spel"

Het oorspronkelijke DOS spel (ontwikkeld door Broderbund en Mindscape) kan gedownload worden op verschillende abandonware-sites, bijvoorbeeld de XTC site.

Stunts is een 3D racespel, met eenvoudige CGA/EGA/VGA graphics, zonder texture of "smooth shading", maar vanwege de spectaculaire stunts (loopings, bruggen om over heen te springen, etc.) was het een erg leuk spel. Een van de beste aspecten van dit spel is dat het een track-editor had. Doordat de banen opgebouwd zijn uit tiles kon iedereen zijn eigen banen maken.

Overeenkomsten / verschillen

UltimateStunts zal veel overeenkomsten hebben met Stunts: Enkele kleine verschillen zijn: Maar er zijn ook grotere verschillen:

Gedetaileerde specificatie

Het spel

Het spel zal een driedimensionaal racespel worden, waarin het maken van je eigen banen en het doen van stunts essentiële delen van de gameplay vormen. De physics zullen quasi-realistisch zijn: gameplay is belangrijker dan realisme. De doelstellingen die een speler kan hebben zijn het verslaan van tegenstanders en een race, het behalen van een high score, en het maken van banen die (bijna) onmogelijk zijn om te rijden.

Multiplayer

Spelers zullen in staat zijn om in hun eentje te rijden (om in de highscore lijst te komen), tegen computer tegenstanders, tegen vrienden in een split-screen sessie, of in een multiplayer sessie over een LAN of over het internet. Combinaties zullen ook mogelijk zijn, bijvoorbeeld om tegen computer tegenstanders te spelen over het internet.

Netwerk

Wanneer er netwerk communicatie is betrokken bij een spelsessie, dan wordt een apart serverprogramma gestart op één van de computers. Het zal mogelijk zijn om de server te starten met een menu item in het client programma, maar het zal ook mogelijk zijn om het handmatig te starten op een "dedicated server". De server geeft niet alleen alle data door, maar treedt ook als scheidsrechter op. De spelsimulatie zal op de server draaien, en alle lokale simulators moeten synchroniseren met de server. De server beslist ook op welke track er wordt gespeeld, en welke auto's toegestaan zijn. Alle bestanden moeten beschikbaar zijn op de server, en als ze niet beschikbaar zijn voor één van de clients, dan zal die client in staat zijn om de missende bestanden automatisch te downloaden van de server.

Graphics

Ultimate Stunts zal in staat zijn om hoge kwaliteit 3D graphics te leveren, maar het zal zeer flexibel zijn op dit punt. Om ook een speelbaar spel te leveren op platforms waar geen hardwareversnelling beschikbaar is, zal het mogelijk zijn om de complexiteit van de graphics terug te brengen tot een minimum. Aan de andere kant zal op high-end platforms geavanceerde technologie gebruikt worden.

De tracks

De tracks zullen zijn opgebouwd uit vierkante tiles, net als in Stunts. De verschillen zijn: De afmetingen van tiles zullen 40x40x12 meter zijn, omdat deze afmetingen gelijk zijn aan de tile-afmetingen in Stunts. Ondersteuning voor andere tile-afmetingen staat niet gepland. Grote tiles (zoals de wijde bochten in Stunts) worden opgebouwd uit kleinere tiles.

De track editor

De track editor zal een gebruikersvriendelijk programma worden voor het bewerken van tracks. Het zal mogelijk zijn om de track editor te starten vanuit een menu item in het hoofdprogramma. Doordat tracks in Ultimate Stunts meer 3D zijn dan Stunts tracks, zal de editor complexer zijn. Het zal geïnspireerd zijn door de rollercoaster editor in Rollercoaster Tycoon. Het basisidee is om een "cursor" te hebben aan het einde van de weg. De gebruiker kan delecteren of de weg naar links/rechts moet gaan, naar boven/beneden, of een stunt toegevoegd moet worden enzovoort. De track editor zou dan automatisch de juiste aanpassingen moeten maken aan de track. Uiteraard moet de track editor ook de geldigheid van de track controleren, en het onmogelijk maken om ongeldige veranderingen aan te brengen. De track editor moet de mogelijkheid hebben om originele Stunts tracks te importeren.

Replays

Net als Stunts, zal Ultimate Stunts de mogelijkheid hebben om replays te maken en te bekijken (maar het zal niet mogelijk zijn om originele Stunts replays in te lezen). Ultimate Stunts replays zullen elke positie en oriëntatie bevatten van elk bewegend voorwerp in de scene, voor elk frame. Met de juiste conversietools kan deze data ook gebruikt worden in animatieprogramma's (zoals 3D Studio), bijvoorbeeld voor het maken van een intro video voor Ultimate Stunts. In Ultimate Stunts zal het ook mogelijk zijn om een replay als ghost player te gebruiken.

De stunts3dedit editor

Toen dit project begon waren er geen plannen voor een 3D editor, maar zodra complexe tiles nodig waren, werd er één gemaakt om de moeilijkheid te verminderen van het schrijven van tile definities in text bestanden. De 3D editor zal zijn wat het nu is: een eenvoudige tool voor low-level polygoon manipulatie, met enkele high-level bewerkers. Een mogelijkheid die steeds belangrijker wordt is de mogelijkheid om externe bestandsformaten te importeren. Het gebruik zal als volgt zijn: maak een model in een externe 3D editor, importeer het in stunts3dedit, repareer enkele dingen, en sla het op voor gebruik in Ultimate Stunts.

Systeemeisen

UltimateStunts is erg flexibel in zijn systeemeisen: het kan gespeeld worden op computers zonder hardwareversnelling, maar het is ook mogelijk om volledig gebruik te maken van de 3D technologie in moderne PC's.
De volgende dingen zijn vereist om de windows binaries aan de praat te krijgen: De volgende dingen zijn vereist op een gemiddeld UNIX-systeem: Voor compilatie in windows kan Cygwin gebruikt worden. U heeft de opengl en de w32api packages nodig, SDL, en natuurlijk de gebruikelijke compiler-spullen.

Om het spel er goed uit te laten zien met een normale frame-rate, worden de volgende dingen aanbevolen:

De volgende optionele dingen worden ondersteund door UltimateStunts:

De technologie

De belangrijkste ontwikkelplatforms zijn Linux en Cygwin (= in windows), maar ik probeer het portable te houden met andere unix-achtige omgevingen, zoals MacOS/X. Voor graphics en invoer wordt een openGL/SDL combinatie gebruikt. Netwerk-communicatie wordt gedaan met standaard UNIX (BSD) netwerk functies. Het communicatieprotocol zal UDP/IP gaan gebruiken. Geluid is geimplementeerd met de FMOD bibliotheek, maar zodra ik leer hoe ik openAL kan gebruiken, zal er een implementatie voor die bibliotheek toegevoegd worden.

Het project zal een aantal verschillende programma's leveren. Dit zijn de volgende:

Op dit moment wordt het kdevelop programma gebruikt voor het ontwikkelen.

Netwerk en simulatie

De functionaliteit van de verschillende programma's die betrokken zijn in een spelsessie zal zeer flexibel worden, omdat de optimale configuratie afhangt van de netwerk parameters, zoals de bandbreedte. De volgende tekst beschrijft toekomstige versies, en is niet van toepassing op de huidige versie.

In een lokaal spel, als er maar 1 computer meedoet aan de spelsessie, worden alle dingen (inclusief graphics, AI spelers en physics) gedaan door 1 programma. Als er meer dan 1 menselijke speler meedoet, in een netwerk-spel, worden de gegevens gedistribueerd door het serverprogramma. De physics simulatie wordt door het serverprogramma gedaan, maar (afhankelijk van de bandbreedte van de verbinding) doen sommige client programma's ook physics, om de trage synchronisatie met de server te corrigeren.

AI tegenstanders kunnen zowel binnen de server als in de UltimateStunts client gestart worden. Ze kunnen ook toegevoegd worden met het aparte AI-client programma. Experts die optimale prestaties willen kunnen het server programma zich ook laten gedragen als een client. Op deze manier kan het serverprogramma inloggen op een internetspel over een trage verbinding, en zich als een server gedragen tegenover verschillende spelers op een LAN. Dit geeft de mogelijkheid om een enkele client-server verbinding te gebruiken voor meerdere spelers.

Graphics

Doordat de graphics tile-gebaseerd zijn, kan rendering sneller gedaan worden door de standaard openGL z-buffering uit te schakelen en gewoon de tiles in de juiste volgorde te tekenen. Daarnaast zullen de gebruikte grafische features zeer configureerbaar zijn. Als z-buffering is uitgeschakeld, "smooth shading" is uitgeschakeld, achtergrond is uitgeschakeld, de resolutie is ingesteld op 320x200 etc. etc., dan zal het spel er vergelijkbaar uitzien als het oorspronkelijke DOS-spel, maar het zal op elke computer draaien.