Open reinier303 opened 4 years ago
Goed idee om een eerste UI schets te maken, en de voorbeeld editors uit andere games zijn een goudmijn aan wat voor data je eventueel per enemy zou kunnen opslaan. Je zou afhankelijk van de game / het genre daar al een boel van kunnen verzinnen, ook al zijn ze niet geïmplementeerd. Is het ook de bedoeling dat je nieuwe enemy (arche)types kunt toevoegen via de editor?
Github link
https://github.com/reinier303/SpaceShooter
concept
Mijn eerste concept is een Enemy editor. In deze editor kan je alle enemy prefabs die de het BaseEnemy script bevatten aanpassen. Momenteel kan je de float variabelen en de sprite aanpassen. Dit wordt gedaan door deze in de resources folder te zetten waar de tool de data uitleest en ook weer in op zal slaan.
Tijdens mijn onderzoek kwam ik erachter dat een save editor tool ook enorm handig kon zijn dus ik ben ook deze gaan maken. Ik begon met een knop die je save file verwijdert zodat je niet naar je application/persistendatapath hoeft om de save file te verwijderen als je een nieuwe save wil. Uit dit idee ontstond uiteindelijk ook het plan om een editor te maken voor nieuwe saves. Dit zodat je snel wat stats aan kan passen wanneer je een specifiek gedeelte van het spel wil testen met het bijbehorende player power level.
class/activity diagrams (user flow)
Activity diagram:
UML:
toelichting ontwerp
Voor de enemy editor en de save editor heb ik gekozen om een save en reset knop te gebruiken. De save knop omdat ik een bevestiging wil bij het aanpassen van cruciale dingen in de game balancing. De reset knop zodat het nog mogelijk is om de nog niet opgeslagen variabelen terug te kunnen krijgen. Verder heb ik een scroll balk voor de enemy keuze gemaakt. Dit omdat het er een groot aantal zijn en omdat het met nog meer enemies niet meer in het venster zou passen. Ik heb gekozen om alles compact op elkaar te zetten zodat het makkelijk is om alles aan te passen, wat precies het doel is van deze tool. Voor bevestiging dat het draggen van een sprite is gelukt, laat ik deze sprite naast de huidige sprite drawen. Dit zorgt niet alleen voor duidelijkheid, maar is ook goed om ze nog even te vergelijken voor het opslaan. Ook heb ik gebruik gemaakt van infoboxes gezien het niet duidelijk was dat er een sprite in het scherm gesleept kon worden. Hiernaast maak ik ook gebruik van de infobox voor het aangeven van niet opgeslagen variables.
test-resultaten & reflectie/verwerking
Gezien ik deze tools voor een eigen project heb gemaakt ben ik uiteindelijk de enige geweest die het heeft getest. Een van de eerste dingen waar ik achter kwam tijdens het maken, was dat een reset knop nodig was. Dit omdat de variabelen zonder ze op te slaan en na het venster te hebben gesloten nog bleven staan op de waarde die je had neergezet. Tijdens het maken van de drag and drop sprite functie merkte ik dat het zonder het te weten niet echt duidelijk was dat het mogelijk was om dit te doen. Hierom heb ik een infobox toegevoegd. Ook heb ik een display van niet alleen de huidige, maar ook de vervangende sprite laten weergeven. Eerder was dit zonder, maar dit was niet handig gezien je na het slepen geen bevestiging had dat er iets was gebeurd. Als laatste heb ik nog wat extra duidelijkheid toegevoegd door een infobox weer te geven wanneer er nog niet opgeslagen variabelen of sprites in het venster zijn. Dit gezien dit eerst niet duidelijk was.
Enemy Editor Tool: Ik ga een tool maken om in een van mijn bestaande projecten enemies overzichtelijk bij elkaar te hebben, en deze te kunnen editen. Hier een concept schets gemaakt in Adobe xd:![Concept](https://user-images.githubusercontent.com/30725987/68758365-fb60fb80-060d-11ea-9107-2a1cf9207ba1.PNG)
Verder heb ik qua inspiratie een paar soortgelijke schermen op kunnen vinden.
![image](https://user-images.githubusercontent.com/30725987/68759054-492a3380-060f-11ea-81ac-3817fabf9433.png)