Project type: Game

Date: 20-05-2022

Status: Finished

Software used: Visual Studio

Language used: C#

Role: Developer

Team size: 2 developers

Over het project

In dit project heb ik samen met een andere developer een escape room game gemaakt. Het doel van het spel is om in alle kamers het einde te vinden.

Ik heb gewerkt aan de meeste code en aan de structuur van het project.

In dit project heb ik gewerkt aan onderstaande onderdelen.

Timer Behaviour

In dit project gebruik ik een nette code structuur met on enter, on exit en update events. Het timer behaviour script is verantwoordelijk voor het makkelijk aanmaken van een timer die om de aangegeven tijd een functie aanroept. Dit heb ik gedaan met een abstracte functie. De timer houd rekening met de frame time. Dus als de frame rate laag is worden de gemiste timer ticks ingehaald, zodat de gameplay op elk apparaat hetzelfde is.

Trap Generator

De trap generator is verantwoordelijk voor het plaatsen van alle traps. In elke kamer worden er 5 willekeurige traps geplaatst. Elke trap heeft zijn eigen logica met waar de beste plek in de kamer is om geplaatst te worden. Met de interface ITrap en de functie GetSuitableLocation kan ik voor elke trap een geschikte plek vinden in de kamer.

Turret

De turret maakt gebruik van een timer behaviour om te schieten. De turret berekend bij het plaatsen wat de beste plek in de kamer is om een lange afstand te schieten. Bij het plaatsen wordt ook gekeken of de deur wordt geblokkeerd. Elke timer tick wordt een kogel geschoten. Aan de bullet wordt de richting, snelheid en de overgebleven frame time meegegeven, zodat de bullet niet achterloopt als de frame rate laag is.

Saw

De saw gaat heen en weer in een horizontale of verticale richting. Bij collision met muren gaat de saw weer in de andere richting. Tijdens elke beweging wordt er gekeken of er naar de nieuwe positie bewogen kan worden.

Spike

De spike is een stilstaande val. De spike kan alleen op muren geplaatst worden. De spike houd geen rekening met deuren. Het kan dus het geval zijn dat de speler een leven kwijt raakt door het betreden van een kamer.