Czech Danish Dutch English French German Hungarian Italian Norwegian Polish Portuguese Brasilian Portuguese Romanian Serbian Spanish Swedish
Det følgende dokument beskriver hvordan det færdige spil vil se ud. Det garanterer altså INTET omkring den nuværende version af spillet.

Spillet

Formålet med dette projekt er at lave en UNIX/Linux genskabning af det berømte DOS-spil "Stunts".

"Det gamle spil"

Det originale DOS-spil (udviklet af Broderbund og Mindscape) kan hentes fra adskillige abandonware-sider, fx XTC -siden.

Stunts er et 3D racerbil-spil, med simpel CGA/EGA/VGA grafik og ingen textures eller smooth shading, men på grund af de spektakulære stunts (loops, broer der kan hoppes over osv.) var det virkelig sjovt at spille. En af de bedste ting ved spillet er, at det har en bane-designer. På grund af de felt-baserede baner, kunne enhver spiller uden videre designe sine egne baner.

Ligheder og forskelle

UltimateStunts vil blive et Spil, der på mange måder ligner Stunts: Nogle af de mindre forskelle er: Men der er også nogle store forskelle:

Detaljeret specifikation

Spillet

Spillet bliver et tredimensionelt racerbil-spil, hvor design af egne baner og udførsel af stunds, som den væsentligste del af spillet. Fysikken vil blive quasi-realistisk: Spilbarheden er mere vigtig end realismen. En spiller kan have som mål, at vinde over de andre modstandere, få en høj score eller bare designe baner, som er lange, hurtige, sjove eller (næsten) umulige at gennemføre.

Multi-player

Spillere får mulighed for at køre som de har lyst (bare for at komme ind på highscore-listen), mod andre computerstyrede modstandere, mod deres venner i split-screen eller gennem netværk over LAN eller internet. Det er også muligt at kombinere disse spilformer, for eksempel at spille mod computer-styrede modstandere over internettet.

Netværk

Når netværk-kommunikation er involveret i et spil, startes et seperat serverprogram på en af computerne. Det vil være muligt at starte serveren gennem et menupunkt i klient-programmet, men det vil også være muligt at starte den manuelt på en dedikeret server-computer. Alle klient-programmerne, som er involveret i spillet, skal forbinde til en server. Serveren sender ikke kun data til alle spillerne på netværket; den fungerer også som dommer. Spillets simulation vil blive afviklet på serveren, og alle lokale simulatorer skal synkroniseres med serveren. Serveren bestemmer også hvilken bane, der spilles på, ligesom den bestemmer hvilke biler, der er tilladt. Alle filer skal ligge på serveren, og hvis de ikke findes på én af de anvendte computere, kan klienten downloade de manglende filer automatisk.

Grafik

Ultimate Stunts kan byde på høj-kvalitets 3D grafik, men er meget fleksibel, når det kommer til dette punkt. For at bevare et så spilbart spil som muligt, kan også platforme uden hardware-accelreret grafik, få mulighed for at afvikle spillet i en grafisk neddroslet udgave. Omvendt kan high-end platforme, anvende avancerede teknologier.

Banerne

Banerne består af kvadratiske felter, ligesom i Stunts. Forskellene er: Størrelse på felterne vil blive låst til 40x40x12 meter, fordi disse størrelser er omtrent lig med felt-størrelserne i Stunts. Understøttelse af andre felt-størrelser er ikke planlagt. Store felter (som de bløde sving i Stunts) er bygget op af mindre felter.

Bane-designer

Banedesigneren vil være et bruger-venligt program til manipulering af baner. Det vil være muligt at starte banedesigneren fra et menupunkt i selve spillet. Fordi baner i Ultimate Stunts er mere 3D end baner fra Stunts, vil designeren blive mere kompleks. Den vil minde mere om rutsjebane-designeren i RollerCoaster Tycoon. Den grundlæggende ide er, at der skal være en "markør" i hver ende af vejen. Brugeren kan så vælge om vejen skal dreje til venstre eller til højre, om den skal gå op eller ned, om der skal være et stunt osv. Bane-designeren vil så tilføje de rigtige ændringer til banen. Banedesigneren vil naturligvis også validere banen, og sørge for at man ikke kan lave ugyldige ændringer. Bane-designeren kommer også til at have mulighed for import af originale Stunts-baner.

Gentagelser

Ligesom i Stunts, bliver der i Ultimate Stunts mulighed for at lave og se gentagelser (det bliver dog ikke muligt at læse originale Stunts-gentagelser). Gentagelser fra Ultimate Stunts vil indeholde hver eneste position, og orientering for alle objekter i bevægelser og for hvert eneste billede. Med de rette konverterings-værktøjer, kan disse data indporteres til animations-programmer (som fx 3D Studio), for eksempelvis at lave en intro-video til Ultimate Stunts. I Ultimate Stunts bliver det også muligt at bruge en gentagelse som en "spøgelses-bil".

Stunts3dedit-designeren

Da dette projekt blev påbegyndt, var der ingen planer om en 3D-editor, men så snart der blev brug for komplekse felt-typer, blev den alligvel lavet, for at reducere bøvlet med at skrive definitionerne i tekst-filer. 3D-editoren bliver, hvad den er nu: Et simpelt værktøj for meget enkel poligon-manipulation, med nogle få avancerede modifikatorer. En funktion som bliver stadig mere vigtig er muligheden for at importere fremmede fil-formater. Sådan skal den bruges: Lav en model i et eksternt redigeringsprogram, importer den i Stunts3dedit, lav nogle ændringer og gem den til brug i Ultimate Stunts.

Systemkrav

UltimateStunts er meget fleksibel, når det kommer til systemkrav: Det kan afvikles på computere uden hardware-acelration, men det er kun muligt at drage fuld anvendelse af 3D-teknologi i moderne computere.
De følgende ting kræves, for at få programmet til at fungere i Windows: De følgende ting kræves på et typisk UNIX-system: For at kompilere i Windows kan CygWin bruges. Du skal også have openGl og W32api pakkerne, SDL, og naturligvis de sædvanlige kompilerings-værktøjer ved hånden.

For at få et pænt flydende spil, kræves det følgende:

Følgende valfrie komponenter understøttes af UltimateStunts:

Teknologien

De primære udviklingsplatforme er Linux og Cygwin (= i windows), men jeg forsøger at holde det porter-bart med andre Unix-lignende miljøer, som fx MacOS/X. For grafik og input, bruges openGL/SDL kombinationen. Netværk er lavet med standard UNIX (BSD) netværks-funktioner. Spillets kommunikation vil bruge UDP/IP. Lyd er implementeret både gennem FMOD og openAL.

Projektet byder på en række forskellige programmer. Disse inkluderer de følgende:

I øjeblikket bruges kdevelop programmet til udviklingen.

Netværk og simulation

Funktionaliteten af de forskellige programmer, som er involveret i en spil-afvikling er meget fleksibel, idet den mest optimale konfiguration vil afhænge af netværks-parametrene, såsom båndbredde. Den følgende tekst beskriver fremtidige versioner. Den gælder altså IKKE for den nuværende version.

I et lokalt spil, hvor kun en computer anvendes til afvikling af spillet, afvikles alle ting (inklusiv grafik, computerspillere og fysik) af et enkelt program. Når mere end én menneskelig spiller er involveret, i et netværksbaseret spil, vil data blive distribueret af server-programmerne. Simulationen af fysikken vil blive varetaget af serverprogrammet, men (afhængigt af den båndbredde, der er til rådighed), overtager nogle klientprogrammer beregningsprocessen, for at kompensere for en langsom forbindelse til serveren.

Computerstyrede spillere kan startes både fra serveren og fra UltimateStunts klienten. De kan også tilføjes ved brug af de særlige AI-klient program. Eksperter, som ønsker den optimale ydelse, kan bruge server-programmet til at fungere som en klient. På den måde, kan server-programmet logge ind på et internet-spil over en langsom forbindelse, og agere server for forskellige spillere i et LAN. Det muliggør deling af en enkelt klient-server forbindelse mellem flere spillere.

Grafik

Da grafikken er baseret på felter, kan rendering gøres hurtigere ved at frakoble openGL's standard z-buffering, og dermed lade den rendere felterne efterhånden. Derudover er det muligt at justere den grafiske detaljegrad. Hvis z-buffering er frakoblet, opløsningen sat til 320x200 osv., vil spillet komme til at ligne det oprindelige DOS-spil meget, men det kan køre på enhver computer.