Design Documents

 

Mijn eerste tutorial zal gaan over “Design Documents”. Ik gebruik met opzet hoofdletters voor beide D’s, want Design Document is momenteel een begrip geworden in de wereld van Sofware en Game development. Er wordt al snel over een Design Document gesproken. Maar wat is het nou precies, en wat hoort er in een DD te staan? De meningen lopen ver uiteen, dus ik probeer een standaard te creeeren, zodat we binnen Vampire Studios hetzelfde verstaan onder een design document.

 

Een Design Document (afk. DD) is een uitgebreide beschrijving van een project. En niet zomaar snel, eff een beschrijving, maar een beschrijving tot in het detail. Deze kan functioneren om andere programmeurs, vormgevers, modellors etc. te vertellen wat je in gedachte hebt, en hoe je je alles voorstelt. Maar bovenal dient het, om zelf alles goed op rij te krijgen. En het dwingt je om over bepaalde vragen na te denken. Als je met een team aan een project werkt is het van belang dat iedereen het over het design document eens word, en dat het design document niet meer gewijzigd zal worden, zodat er een soort van “bouwtekening” en vaststaand plan ontstaat.

 

Het is het beste om je design document in twee delen op te splitsen:

Een basis, welke onwankelbare dingen bevat. Tot de basis hoort bijvoorbeeld de bedoeling van je game. Het is haast onmogelijk dat je tijdens het programmeren beslist de bedoeling van je game te wijzigen. (alhoewel ook dit wel eens voorkomt).

Het tweede gedeelte bestaat uit een samenvatting van alle componenten die in de game voor komen, welke zeer diep uitgewerkt behoren te zijn. Denk eraan dat een Design Document een brainstorm-sessie is en dat je alles moet opschrijven dat in je op komt.

Ik zal nu proberen (live) een Design Document samen te stellen van een “Pong” spelletje:

 

Design document

 

Titel: Pong

Projectleider: naam projectleider

Medewerkers: naam1, naam2, naam3, naam4

 

Beschrijving:         Pong zal een 2D game worden, welke zal moeten functioneren op alle win32 platformen. Het spel zal fullscreen moeten gaan draaien. De bedoeling van het spel is om met behulp van een “balkje” het pongballetje bij je tegenstander in het doel te schieten. De doelen zullen het hele verticale gebied achter het “balkje” zijn. De tegenstander zal een “AI-computerplayer” zijn. Als de speler na 5 minuten de hoogste score heeft gaat hij door naar het volgende moeilijkheidsnivaeau.

 

Fase 1:

 

-         2 balkjes (speler en computer)

-         Balletje

-         Scorebord (Met tijd en score)

-         Grafische achtergrond

-         Configuratiemenu

-         Welkomsscherm

-         Demo-modus

 

Fase 2:

 

-         2 balkjes (speler en computer)

o       color

o       size

o       xPosition

o       yPosition

o       Yspeed (Geen xSpeed want er vind geen horizontale beweging plaats)

o       Maxspeed

o       Type: Speler of computer

 

-         Balletje

o       Color

o       Size

o       XPosition

o       YPosition

o       Xspeed

o       Yspeed

o       Maxspeed

 

-         Scorebord

o       Playerscore

o       Computerscore

o       Timeremaining

 

-         Grafische achtergrond

o       Iedere moeilijkheidsgraad andere achtergrond

 

-         Configuratiemenu

o       Playerside: Rechts of Links

o       Playercolor: Rood, Blauw, Groen enz.

o       Toetsen instellen

 

-         Welkomsscherm

o       Uitleg

o       Spel starten

o       Demo

o       Afsluiten

 

In een eventuele Fase 3 kun je de dingen van Fase 2 verder gaan uitwerken. Dan zet je dus bijvoorbeeld:

 

Fase 3:

-         2 balkjes (speler en computer)

o       color: Grijs

o       size:

§       x = 2

§       y = 2

 

enzovoorts, enzovoorts. Een Design Document kan zoals je wel begrijpt intens groot worden. Voor dit simpele pong spelletje heb ik al flink wat tijd nodig gehad. Dat is dan ook de rede waarom voor de grotere projecten meerdere dagen, weken of zelfs maanden worden uitgetrokken voor het maken van het design document. Ik hoop dat ik voldoende erover verteld heb. Ten Slotte wil ik nog eff zeggen, dat een DD op veel verschillende manieren ingedeeld opgebouwd en ingevuld kan zijn. Er bestaat dus ook geen standaard voor, en dit is de manier hoe ik het doe. Mochten er nog vragen zijn dan hoor ik het wel,

 

--Renato--