MA | Gamedeveloper Project-documentatie 2015 v1.1
Gebaseerd op het kwalificatiedossier Applicatieontwikkeling geldig vanaf 1 augustus 2015
Algemeen
Planning en logboek
B1-K1: Levert een bijdrage aan het ontwikkeltraject
B1-K1-W1 Stelt de opdracht vast
B1-K1-W2 Levert een bijdrage aan het projectplan
B1-K1-W3 Levert een bijdrage aan het ontwerp
B1-K1-W4 Bereidt de realisatie voor
B1-K2: Realiseert en test (onderdelen van) een product
B1-K2-W1 Realiseert (onderdelen van) een product
B1-K2-W2 Test het ontwikkelde product
B1-K3: Levert een product op
B1-K3-W1 Optimaliseert het product
B1-K3-W2 Levert het product op
B1-K3-W3 Evalueert het opgeleverde product
Beoordeling communicatie
Beoordeling documentatie
Standaarden coderen
Codeblokken
Operatoren
Commentaar
Inleiding
In dit document vind je informatie over de fases en voor het maken van documentatie bij het uitvoeren van projecten als Gamedeveloper.
Algemeen
De volgende opmerkingen gelden voor elk document dat je schrijft binnen de uitvoering van een project. Controleer dus elke document voor dat je inlevert of laat controleren op deze punten:
Begin elk document met een duidelijke inleiding. In de inleiding vertel je waar het document over gaat zodat de lezer weet wat hij gaat lezen. Probeer daarbij zo specifiek mogelijk te zijn; geef geen uitleg wat een definitiestudie, FO of TO is maar leg kort uit wat je gaat vertellen, hoe het document is op gebouwd of iets dat de lezer moet weten voordat hij het document gaat lezen.
Zorg dat de opmaak van de documenten consequent is. Gebruik niet onnodig veel verschillende soorten opmaak van de tekst zonder dat je daar een reden voor hebt, dit leidt alleen maar af van de inhoud. Gebruik zoveel mogelijk de functies van je teksteditor om het document netjes op te maken, bijvoorbeeld kop- en voetteksten, automatische inhoudsopgave, opmaakprofielen etc. De verschillende documenten binnen een project moeten een gelijke opmaak hebben zodat je duidelijk kunt zien dat ze bij elkaar horen.
Zorg dat belangrijke informatie duidelijk in of op het document vermeld staat. Als je een document op de grond vindt moet je kunnen zien van wie het is, waarvoor en wanneer het is geschreven en welke pagina.
Geef alle documenten een duidelijk versienummer zodat je weet wat je laatste versie is, en wat een eerdere versie is.. Elke keer als je een document (voorlopig) oplevert geef het een nieuw nummer. Aan het nummer moet ook te zien zijn dat het een definitieve versie is. Begin je nummering bijvoorbeeld met 0.1, 0.2, 0.3 … De definitieve versie krijgt dan het nummer 1.0. Als het definitieve document in de loop van het project toch nog moet aanpassen, door bijvoorbeeld nieuwe informatie of inzichten, ga je verder met B1-K1-W1, B1-K1-W2 etc. Zo is duidelijk te zien dat de laatste documenten een aanpassing is op de definitieve versie.
Planning en logboek
Om het proces van het maken van een project of opdracht goed te laten verlopen is het handig om een planning te maken. Hierdoor kan je zien wanneer welk onderdeel af moet zijn, of er verschillende fasen zijn die je moet plannen en hoeveel tijd het project of de opdracht in beslag gaat nemen.
Om tijdens een project of een opdracht, de werkzaamheden die je doet goed te volgen, zul je een logboek bij moeten houden. Het logboek verschaft de projectbegeleider inzicht in het verloop van je project (uitvoering), in de planning en in het realiseren van je product. Je werkzaamheden leg je vast om je voortgang te bewaken.
Lever bij elk product dat je oplevert je planning en je logboek als bijlage in. De planning en het logboek zijn documenten die de projectbegeleider van jou wil zien. Dit zijn dus geen documenten die de opdrachtgever wil zien.
Naam: | Groep: | Project: |
---|---|---|
Datum | Tijd | Activiteit |
Kerntaak 1: Levert een bijdrage aan het ontwikkeltraject
De volgordelijke plaats van de documenten binnen het proces:
Part Production Schedule ----> Part Functional specs --------> Part Technical specs ------------->
Game Design Doc --------------------------------------------------------------------------------->
Bovenstaande betekent dat werkproces B1-K1-W2 parallel loopt aan de andere werkprocessen en van invloed is op alle te schrijven onderdelen binnen alle kerntaken
Werkproces B1-K1-W1 Stelt de opdracht vast
Input: Projectbeschrijving / Briefing
Output: Game High Concept Document
Beoordeling: Projectbegeleider vervolgens opdrachtgever
Voor wie: Opdrachtgever
Game High Concept Document:
- Eisen en wensen opdrachtgever(MoSCoW)
- Haalbaarheid eisen en wensen
- Voor- en nadelen afwegen van keuzes en conclusie trekken
- Uren- en kostenopgave, kosten alleen indien mogelijk
- Grove planning op basis van pre-production, production, post-production fases
Werkproces B1-K1-W2 Levert een bijdrage aan het projectplan
Input: Game High Concept Document, !! Feedback van de opdrachtgever
Output: Opzet Game Design Document hoofdstukken
Output: Opzet en verwijzing naar iteratieve planning(Scrumboard) in hoofdstuk ‘Production Schedule’ opnemen
Beoordeling: Projectbegeleider vervolgens opdrachtgever
Voor wie: De opdrachtgever en teamleden
Game Design Document > Hoofdstukken
- Game description
- Design Goals
- Influences & Sources
- Target Market
- Functional specifications
- Game Mechanics
- Core Game Play
- Game Flow
- Characters / Units
- Game Play Elements
- Game Physics and Statistics
- Artificial Intelligence
- Multiplayer
- Game Mechanics
- Flowchart
- GUI Objects
- Overall Goals
- 2D Art & Animation
- GUI
- Marketing and Packaging Art
- Terrain
- Game Play Elements
- Special Effects
- 3D Art & Animation
- Cinematics
- Assets Pipeline
- Overall Goals
- Sound FX
- Player Characters
- Secondary Characters
- Enemy Characters
- Story theme
- Visual theme
- Story Outline
- Level Diagram
- Asset Revelation Schedule
- Level Design Seeds
- Game Mechanics
- Game engine
- Platform and OS
- Performance Budget
- Devices
- External Code
- Code Objects
- Control Loop
- Game Object Data
- Data Flow
- Artificial Intelligence
- Scope
- Scheduling
- Dependencies
- Cost Estimate
Werkproces B1-K1-W3 Levert een bijdrage aan het ontwerp
Input: Game High Concept Document, Game Design Document !! Feedback van de opdrachtgever
Output: Uitwerking hoofdstuk ‘Functional specifications’ en ‘Technical specifications’
Beoordeling: Projectbegeleider vervolgens opdrachtgever
Voor wie:De opdrachtgever en teamleden
- Functional specifications
- Game Mechanics
- Core Game Play
- Game Flow
- Characters / Units
- Game Play Elements
- Game Physics and Statistics
- Artificial Intelligence
- Multiplayer
- Game Mechanics
- Technical specifications
- Game Mechanics
- Game engine
- Platform and OS
- Devices
- Performance Budget
- External Code
- Code Objects
- Control Loop
- Game Object Data
- Data Flow
- Artificial Intelligence
- Game Mechanics
Werkproces B1-K1-W4 Bereidt de realisatie voor
Input: Functional- en Technical Specifications
Output: Uitwerking hoofdstuk ‘Technical specifications’
Beoordeling: Projectbegeleider
Voor wie: Teamleden en toekomstige teamleden
- Technical specifications
- Game mechanics
- Game engine
- Platform and OS
- Devices
- Performance Budget
- External Code
- Code Objects
- Game mechanics
Kerntaak 2: Realiseert en test (onderdelen van) een product
Werkproces B1-K2-W1 Realiseert (onderdelen van) een product
Input: Game Design Document
Output: Gerealiseerde game(onderdelen) die voldoen aan de eisen van de opdracht en complete en goed verzorgde documentatie.
Beoordeling: Projectbegeleider
Voor wie: OPdrachtgever en teamleden
Fysiek bewijs in digitaal formaat:
- Volledige speelbare export van de game, bestaande uit:
- Geeintegreerde animaties, grafische, audiovisuele, functionele en technische componenten
- Screenshots van de game
- Opgenomen in een versiebeheersysteem
- Toegepaste conventies en documentatie
Realisatieverslag:
- Persoonlijke logboek in verhaalvorm
- Wat ging goed of fout -> noem voorbeelden
Werkproces B1-K2-W2 Test het ontwikkelde product
Doel: Correct uitgevoerde testactiviteiten en (vervolg)acties
Input: User stories
Output: Alpha testrapport
Beoordeling: Projectbegeleider
Voor wie: De opdrachtgever
Alpha testrapport:
- Beschrijving van wat je gaat testen (testplan) op basis van userstories, sfeer en beleving
- Overzicht van testers en hun inzet
- Video en/of screenshots van het testen (eventuele foutmeldingen)
- Beschrijving van de uitgevoerde verbeteringen
Kerntaak 3: : Levert een product op
Werkproces B1-K3-W1 Optimaliseert het product
Input: Alpha testrapport
Output: Beta testrapport, Stijl samenhang beoordeling, Optimalisatieplan en een optimaal werkende game(onderdelen)
Beoordeling: Projectbegeleider vervolgens opdrachtgever
Voor wie: Opdrachtgever en teamleden
Beta testrapport:
- Beschrijving van wat is getest op basis van beleving
- Overzicht van testgroep en hun inzet
- Video en/of screenshots van het testen (eventuele foutmeldingen)
- Beschrijving van de uitgevoerde verbeteringen
Optimalisatieplan:
- Beoordelen van de samenhang stijl van algemene, audio- en visuele elementen
- Verzamelen gebruikerservaringen, testresultaten en verbeterpunten
- Optimalisatieplan, rekening houdend met nieuwe ideeƫn, verbeterpunten, de commerciƫle- en verkoopdoelen van de game
Werkproces B1-K3-W2 : Levert het product op
Doel: Een door de opdrachtgever/projectleider opgeleverd product
Input: optimaal werkende game(onderdelen)
Output: Final demo/Presentatie
Beoordeling: Projectbegeleider
Voor wie: Opdrachtgever
Final demo/presentatie:
- Overtuigende en begrijpelijke demo van de game die aansluit op de vooraf gestelde eisen
Werkproces B1-K3-W3 : : Evalueert het opgeleverde product
Input: De gerealiseerde game
Output: Game Post Mortem Document
Beoordeling: Projectbegeleider en opdrachtgever
Voor wie: Teamleden
Game Post Mortem Document:
- Verslag volgens het STARRT model, denk aan: briefing, onderzoek, brainstorming, doelstellingen, samenwerking binnen het team, realisatie, testing, launch, tijdbewaking en afspraken
- Situatie
- Taak
- Actie
- Resultaat
- Reflectie
- Transfer
Beoordeling communicatie
Tijdens het beoordelen van de communicatie wordt er op de volgende punten gelet:
- Zijn er vooraf afspraken over onderlinge normen en waarden gemaakt?
- Hoe is er met problemen om gegeaan?
- Welke communicatiemiddelen zijn er gebruikt?
- Hoe is de samenwerking verlopen?
- Voelen de teamleden zich serieus genomen?
- Is een ieders mening en idee welkom?
- Is er voldoende motivatie- of vaardigheid?
- Worden hoofd- en bijzaken herkend?
- Is er gebruikt gemaakt van LSD:)(Luisteren, Samenvatten en Doorvragen)
Beoordeling documentatie
Tijdens het beoordelen van de documentatie wordt er op de volgende punten gelet.
Onderdeel: | Uitleg: |
---|---|
Titelblad: |
een duidelijk voorblad met daarop vermeld:
|
Inhoudsopgave: |
de inhoudsopgave vermeldt de titels van de hoofdstukken, paragrafen met de daarmee corresponderende nummering en de pagina’s. Deze moet automatisch worden gegenereerd met Word. De inhoudsopgave moet een duidelijk overzicht geven van het document. |
Voorwoord: |
hierin behandel je zaken die niet rechtstreeks in verband staan met het onderwerp zoals:
|
Inleiding: |
een definitie en afbakening van het onderwerp:
Opmerking: het voorwoord en de inleiding mogen op 1 pagina worden gezet. |
Kern: |
de antwoorden op alle vraagstukken en opdrachten:
In de inleiding heeft je voor een probleemstelling gekozen waardoor het document zich kan beperken tot een thema. De probleemstelling is de centrale vraag die beantwoord moet worden. De belangrijkste aspecten die je bij het schrijven in de gaten moet houden zijn:
|
Slot: |
Dit is het laatste hoofdstuk waarin:
|
Bronvermelding: |
|
De verzorging: |
Verwijzingen en/of voetnoten dienen steeds op dezelfde wijze te zijn aangegeven. |
Algemeen |
Wanneer je informatie van Internet haalt let dan op het volgende:
Bewaar zelf altijd een digitale kopie van de instructie. Op deze manier heb je altijd een back-up van jouw document en kun je dit document later gebruiken als referentie materiaal. |
Standaarden coderen
Er zijn een aantal redenen waarom de layout van de code van groot belang is. Met name zorgt een goede layout voor een verhoging van de kwaliteit van de code. In de code sluipt heel gemakkelijk een foutje. Bij een goede layout is het vaak al moeilijk een fout te vinden en te herstellen, laat staan bij code die onoverzichtelijk is opgesteld. De code moet later bij onderhoud van het programma met zo min mogelijk moeite gelezen kunnen worden. Onoverzichtelijk geschreven code maakt dit juist moeilijk zo niet onmogelijk. De code moet door anderen gelezen kunnen worden. Als je samenwerkt met anderen, is het handig als die anderen ook de code kunnen lezen die jij geschreven hebt.
Codeblokken
Codeblokken zijn regels code die tussen accoladen staan. Binnen een codeblok kunnen weer andere codeblokken voorkomen. Zo staat in het voorbeeld hieronder de codeblok van een lus binnen de codeblok van een methode staan. Een codeblok wordt voorafgegaan door een openingsaccolade { en wordt afgesloten met een sluitaccolade }. Na een openingsaccolade springt je op de volgende regel één tab in. Na de sluitaccolade springt je op de volgende regel terug.. De openingsaccolade staat als laatste teken op een regel na een spatie meteen na bijvoorbeeld het sluithaakje na van een methode. De sluitaccolade staat als enig teken op de regel en in de kolom van de eerste letter die staat op de regel van de openingsaccolade.
Voorbeeld:
tekenTekst($ tekst) { int teller; coderegel; coderegel; for( teller = 0; teller < 10; teller ++) { coderegel ; coderegel ; } coderegel ; coderegel ; }
Operatoren
Vergelijkingsoperatoren (==, !=, <, <=, > en >=) worden altijd omgeven door spaties.
Voorbeelden:
for( teller = 0; teller < 10; teller ++)
Ook numerieke operatoren ( *, /, +, -, %, *=, /=, +=, -=, %=, ++, en --) worden omgeven door spaties, één ervoor en één erachter.
Voorbeeld:
som = a + b;
In dit voorbeeld komt ook de toekenningsoperator ( =) voor die ook door spaties omgeven wordt.
Commentaar
Toelichting op je code is heel belangrijk. Zo kan de ander met wie je samenwerkt, de code begrijpen en kun je zelf de code een jaar later ook nog begrijpen.
Om op één regel commentaar te leveren gebruik je // en om op meerdere regels achter elkaar commentaar te zetten, gebruik je /* … */. Zet in ieder geval boven elk blok C#-code commentaar, boven elke klasse en elke methode in de klasse:
In commentaar dat over de gehele klasse gaat, staat de naam van de klasse, een algemene beschrijving van de klasse, de naam van de auteur en het versienummer met de datum van de laatste wijziging.
Boven elke methode staat de naam van de methode, een algemene beschrijving van de methode, de parameters en wat de teruggave is. Als er geen parameters zijn, dan staat er achter Parameters: geen. Hetzelfde geldt voor return. Ook wordt er eventueel naar andere methodes binnen (zoals in het voorbeeld) of buiten de klasse verwezen.
Door deze manier van commentaar schrijven (zie de dubbele asteriksen aan het begin en het einde van het commentaar) kan er op eenvoudige manier een broncodedocumentatie gegenereerd worden.
Voorbeelden van doc generators, zie:
Zie verder voor de conventies van coderen:
http://framework.zend.com/manual/B1-K1-W12/en/coding-standard.coding-style.html