Repository navigation
Functioneel Ontwerpen
Onze game wordt een digitale versie van het bordspel zeeslag. 2 spelers spelen tegen elkaar om zoveel van hun boten te laten zinken. Iedere speler krijgt een 10x10 raster in de wereld waar ze hun boten op kunnen plaatsen en een ander 10x10 UI raster waar ze hun aanval op kunnen plannen en kunnen zien welke cellen ze gemist of geraakt hebben. Iedere speler krijgt 5 boten 1 van 2 cellen, 2 van 3 cellen, 1 van 4 cellen en 1 van 5 cellen. Als een speler een boot geraakt heeft mag hij nog een keer aanvallen dit mag hij totdat hij mist dan wordt het de beurt van de andere speler .De speler die het eerst alle booten van zijn tegenstander heeft laten zinken wint.
Ook hebben we 2 nieuwe features verzonnen zeemijnen en torpedo's. Iedere speler krijgt 2 zeemijnen die ze voordat het spel begint op hun aanval scherm kunen plaatsen, als een van de spelers een boot op een mijn cel zet word die cel meteen beschadigd. Als een boot zinkt krijgt de eigenaar van de boot een torpedo, deze kan gebruikt worden om een hele rij van het raster te zoeken tot de eerste boot cel die dan beschadigt wordt.
Omdat we 2 spelers tegen elkaar willen laten spelen, hebben we multiplayer functionaliteit nodig in Unity. We hebben plugins gevonden die dit makkelijker maken voor ons en daarmee willen we een soort lobby systeem mee maken.
De speler zou moeten beginnen op het menuscherm van de game. Daar staan knoppen met de volgende opties:
- Start Sessie
- Snel Spelen
- Speel met Code
- Credits
- Afsluiten
Ook staat er een lijst met alle sessies zonder code. Daar kan de speler zelf kiezen in welke sessie ze willen spelen. Die lijst zou om de 10 seconden moeten verversen.
Wanneer er op Start Sessie geklikt wordt, ga je naar de Sessie Instellingenpagina. Daar kunnen alle instellingen voor de sessie en gameplay aangepast worden. Waaronder ook of er een code nodig is om mee te doen.
Met de Snel Spelen knop kan een speler direct meedoen met de eerstvolgende vrije sessie.
Hier kan de speler een code invoeren om met specifieke mensen te gaan spelen die de code delen. De code wordt automatisch gegenereerd op het apparaat van de speler die de sessie startte. Het bestaat uit hoofdletters en cijfers.
De credits en afsluitknop hebben niks met multiplayer te maken, dus gaan we hier niet in deze documentatie op in.
Nadat er op Start Sessie geklikt is, kan je op deze pagina de instellingen van de sessie en gameplay aanpassen. Daarna kan je op de knop Start klikken om de sessie te starten.
De volgende instellingen kunnen aangepast worden:
- Code nodig om te spelen (ja/nee)
- Aantal zeemijnen (standaard 2)
- Start hoeveelheid torpedo’s (standaard 0)
- Hoeveelheid torpedo’s bij gezonken schip (standaard 1)
Wanneer je een sessie gestart hebt, moet er gewacht worden op een andere speler. In die tijd kan je de sessie nog verlaten om terug naar het menu te gaan.
Ook tijdens het spelen kan je het spel pauzeren, waarna je de opties krijgt om het spel te hervatten of de sessie alsnog te verlaten.
Wanneer het spel is afgelopen, krijg je in beeld of je hebt gewonnen of niet met een knop om terug naar het menu te gaan. Wanneer de uitslag bekend is, wordt de sessie automatisch afgesloten zodat er niet onnodig een netwerk blijft bestaan.
Om de speler de mogelijkheid te geven zijn boten te plaatsen op een raster hebben we een raster systeem nodig.
Voordat het spel begint staan er nog geen boten op het raster. De speler kan kiezen welke boot hij wilt plaatsen via UI icoontjes naast het raster. Als de speler een boot heeft gekozen verschijnt die boots "geest" waar de muis staat vanaf het middelpunt van de boot. De speler kan de boot draaien door Q en E of R in te drukken de boot zal dan 90° draaien. Als de speler een plek op het veld heeft gekozen en de boot compleet op het raster staat kan hij de rechtermuisknop indrukken om de boot daar te plaatsen. De speler kan altijd voordat het spel begint op één van de al geplaatste boten drukken met rechtermuisknop om de boot van positie of rotatie te veranderen.
Om door te geven dat de speler wordt aangevallen willen we een raketaanval visualiseren die van buiten het scherm in een boog naar de cel die aangevallen wordt.
Wanneer de tegenspeler zijn aanval heeft afgemaakt wordt de aanval naar de speler gestuurd. Die vervolgens een raket ziet vliegen naar de door de tegenspeler gekozen cel. Als de raket een schip raakt ontploft hij waardoor het schip begint te roken, zo niet ontploft hij in het water met een plons effect.
Eén van onze nieuwe mechanics is de zeemijn. Aan het begin van het spel krijg je standaard 2 mijnen, deze moet je plaatsen als je ook je schepen plaatst alleen dan als een aanval op het dashboard. Wanneer het spel start detecteren de mijnen of ze een schip aan kunnen vallen.
Tijdens het begin van het spel kan je de 2 mijnen via het dashboard plaatsen als je op de Mijn knop drukt deze kan je dan net als een aanval op een van de cellen op het dashboard. Om het plaatsen te bevestigen druk je op de Vuur knop.
Nadat elke speler zijn/haar schepen en mijnen heeft geplaatst en op Klaar heeft gedrukt begint het spel. Alle mijnen verschijnen op het veld van hun tegenstander. hierna controleren ze of er een schip in een 3x3 vak is, zo ja dan ontploft de mijn op 1 vakje van het 3x3 vak. Als de Schiedam (het 2 punt schip) in het 3x3 vak bevindt wordt de mijn ontmanteld.
De torpedo is één van de unieke mechanics in de game. Wanneer één van jouw schepen zinkt, krijg je 1 torpedo. Die torpedo mag je gebruiken in plaats van een normale aanval wanneer het jouw beurt is.
Je kan op het dashboard in een "Torpedo Modus" gaan door op de torpedo knop te drukken. Wanneer die actief is, kan je op de radar een richting voor de torpedo's aangeven. Door op R te drukken kan je wisselen tussen rijen en kolommen. De richting van de torpedo (links-rechts, rechts-links, boven-beneden, beneden-boven) kan bepaald worden door de muis aan de linker of rechterkant (voor rijen) of boven of onderkant (voor kolommen) te plaatsen. Je kan ook weer uit de "Torpedo Modus" gaan door nog een keer op de torpedo knop te drukken.
Wanneer een rij of kolom in een bepaalde richting is geselecteerd, kan je op de aanval knop drukken. Dit vuurt de torpedo af en de beurten wisselen.