Dark Harvest:De technologie achter het spel

Door stealthgun op donderdag 15 november 2018 12:00 - Reacties (8)
Categorie: Algemeen, Views: 1.249

Een tijdje geleden heb ik al een post geplaatst dat ik met een nieuw spel bezig was, het spel is inmiddels al wat verder en de basis staat er, ik heb op itch.io deze dev blog ook staan als je hem daar graag leest, daar is de dev blog in het Engels terwijl ik hem hier in het Nederlands zet.

het verhaal en de technologie achter het spel

Ik maak Dark Harvest alleen, maar ik heb wel een doel voor ogen. Ik geloof dat Indie games niet klein hoeven te blijven. Een ontwikkelaar kan groot denken en het spel een episch gevoel geven, bijna zoals een AAA game. Maar dit alles met maar 1 ontwikkelaar die alles samenbrengt.

Hoe het allemaal begon
Het is allemaal begonnen toe Epic Games bekent maakte dat ze 12 miljoen dollar aan assets beschikbaar zouden stellen van hun spel Paragon. Op het moment dat ik de assets zag had ik gelijk een visie, een Action RPG op een schaal die ik nog nooit eerder had gemaakt.

Dus ik dacht, waarom maak ik het spel niet met achievements, social features en data opgeslagen in de coud. Op die manier kan je op een andere pc het spel hebben staan, inloggen en verder gaan met het verhaal. Met een 'in-game store' zodat ik het spel gratis kan maken, maar als iemand het spel leuk genoeg vindt alsnog geld kan betalen.

De start
Ik was me er zeer van bewust dat het geen makkelijke taak zou worden, dus ik ging op een missie: Op zoek naar producten die het spel mogelijk zouden maken.

De game engine keuze was makkelijk, ik heb al ruim ervaring met de Unreal Engine 4 en de licentie van de assets maakte het ook niet mogelijk om een andere game engine te gebruiken. Dit was de eerste stap.

Het volgende wat moest gebeuren is het uit vinden of het Łberhaupt mogelijk was om het spel te maken wat ik had uitgedacht. Hierom begin ik heel klein, met een karakter (Murduck) en een vijand, om uit te vinden of ik de basis van het spel kon maken.

het eerste deel van het spel is er nog steeds, het is het kleine open stukje en de verhoging erna waar je de eerste vijanden tegen komt.

https://img.itch.zone/aW1nLzE2MTcyNzAuanBn/original/P4Qfd5.jpg

Ondanks dat het er nu nog bijna hetzelfde uitziet, zie je wel kleine details.

https://img.itch.zone/aW1nLzE2MTcyNjkucG5n/original/9dS3Wk.png

Je ziet deze veranderingen ook in andere delen van de wereld, deze zien er nu een stuk mooier uit.

https://img.itch.zone/aW1nLzE2MzUyNTUucG5n/original/eweexZ.png

Het spel naar de cloud brengen
Het was technische mogelijk om te spel te maken. Nu was de tijd gekomen om alles samenwerkend te maken.

Ik heb twee platformen gevonden die indie developers een kans boden om hun project werkend in de cloud te krijgen zonder dat da tgeld zou kosten anaf het begin, Gamesparks en Playfab.

Ik heb naar beide gekeken maar Game Sparks had een paar features die ik leuk vond, maar Playfab miste "out of the box" achievements en een chat systeem. Dit waren belangrijke punten voor mij om Game Sparks te kiezen boven Playfab.

Dus, ik ben begonnen met het bouwen van de cloud plaform en deze te implementeren in het spel. Nu had ik nog een horde om te nemen: De in-game store.

Voor de in-game store heb ik gekozen voor Xsolla, ik kon nergens een ander platform vinden die een standard website had zonder kosten vooraf. Het enige probleem is dat Gamepsarks en Xsolla geen API-connectie hebben met elkaar, dus deze heb ik zelf moeten maken. Ik heb hiervoor gebruik gemaakt van mijn eigen webserver en daarop meerdere REST API's gebouwd om het spel te ondersteunen.

https://img.itch.zone/aW1nLzE2MTcyODAucG5n/original/%2B99lCJ.png

Dit is alle datacommunicatie die plaats vindt om het spel mogelijk te maken. Dit zie je vaker met AAA-games, maar niet met zoveel indie games.

Het spel verspreiden zonder kosten
De grote vraag die ik nog had openstaan is het spel uitbrengen zonder dat spelers het hele spel iedere keer opnieuw zouden moeten downloaden. Ik heb een opensource launcher gevonden genaamd "Lauchpad", de launcher is klein en compact maar had voor dit project een paar kleine issues voor dit project.

De launcher maakt het mogelijk om alleen de bestanden te updaten die daarwerkelijk zijn belangrijk, wat op hun beurt de gebruikers alleen maar de bestanden te laden downloaden die voor hun achterlopen op de huidige versie.

Ik heb de launcher aangepast naar mijn eigen behoeftes om de issues op te lossen die ik had en ik ben zeer blij met het resultaat.

https://img.itch.zone/aW1nLzE2MTcyODYucG5n/original/RGhGXf.png

Ik heb een gratis plaats voor het plaatsen en verspreiden van het spel via TransIP via hun speciale Stack promotie die ze een tijd geleden hebben gedaan. Hierdoor ben ik niet meer bezorgt door de data die verbruikt gaat worden. Dus nu kon ik het spel verspreiden tegen zeer lage kosten, maar met genoeg potentie om te groeien.

Groeien, 1 ticket per keer
Het hele idee van de backbone van het spel is altijd groeien zonder uit te vinden dat er problemen zijn met de groei geweest. Dit zie je terug in de manier waarop support tickets worden afgehandeld.

Mijn keuze voor een ticket systeem is gegaan naar Azure Dev Ops, deze keuze was redelijk makkelijk omdat dit ook al de plek is waar de source code van het spel is opgeslagen. De reden dat ik voor Azure Dev Ops heb gekozen hiervoor is omdat hier geen limiet is aan de data die je kan opslaan in de git repository.

Het hele project is op dit moment ongeveer 200GB groot, met alle assets die opgeslagen moeten worden en de veranderingen op alle assets die gemaakt zijn maken dat die getal zo groot is en naar alle waarschijnlijkheid nog gaat groeien.

Wat mij heeft geholpen om een eigen ticket systeem te maken is dat Azure Dev OPS-ondersteuning heeft voor REST Services. Dus ik had nu de middelen om een eigen ticket systeem te hebben op mijn website en de servers te laten communiceren met elkaar. Dit allemaal om te zorgen dat een speler een ticket kan maken, deze in Azure Dev Ops wordt gezet en als de ticket wordt geŁpdate of een comment krijgt in Azure Dev Ops deze ticket weer teruggezet wordt en vice versa. Dit maakt het mogelijk om als een ticket is geŁpdate de gebruiker te informeren hierover zodat hij de status nog een keer kan bekijken.

Dit is allemaal onderdeel van de visie om het spel te kunnen laten groeien zonder dat er straks 10.000 spelers zijn en er dan een oplossing gevonden moet worden voor een probleem waar ik al aan had kunnen denken. Ik ben er bijna zeker van dat er nog wel een probleem zal zijn, maar ik denk dat ik aan de meeste al heb gedacht.


En nu vooruit
The game is nu officieel uitgebracht en heeft inmiddels al twee updates gehad. De game zal ook updates blijven krijgen met meer Content en meer Features. Alle heroes krijgen nog een "special ability" en een "defensive ability".
Er zullen meer (eind-)bazen in het spel komen en nog zes werelden die je kan verkennen. Maar eerst ga ik de eerste wereld af maken en het eerste deel van het verhaal.
De focus van de komende updates gaan dus ook vooral content zijn om te zorgen dat er steeds meer gameplay in het spel zit. Hopelijk gaat dit er tot toe leiden dat het spel een succes gaat worden.
Ik zie er heel erg naar uit om dit spel een succes te maken en ik hoop dat jullie met mij het spel een succes willen maken, want zonder spelers is het spel niks uiteindelijk.

Tot slot
Als je het spel leuk vind en graag wilt steunen kan je Dark Harvest aan je itch.io collectie toevoegen, hierdoor krijgt de game meer exposure en hopelijk een grotere playerbase.

Je kan het spel ook direct downloaden vanaf de website: https://www.darkharvestgame.com/download/
En een account aanmaken via: https://www.darkharvestgame.com/register/

Heb je het spel al eens geÔnstalleerd, dan krijg je de updates automatisch via de launcher.