Stage De Jonge Wolf

1 maart 2021 – 4 juni 2021

Begin maart startten twee studenten van de Hogeschool PXL in Hasselt aan hun stageopdracht bij JArchitects, de ontwikkeling en deployment van onze spelapplicatie ” De Jonge Wolf”. De applicatie bestaat uit verschillende microservices die gehost worden op het Amazon Web Services platform en hun opdracht bestaat uit zowel het uitbreiden van reeds bestaande features als het toevoegen van nieuwe functionaliteiten. Onze JArchitects medewerkers staan natuurlijk altijd paraat om hen hierin te ondersteunen met hun eigen ervaring. Dit doen ze onder andere in een daily stand-up waarbij alle openstaande issues besproken kunnen worden alsook de vooruitgang van het project opgevolgd wordt. 

Het doel van het spel “De Jonge Wolf” is om de oude stad van Bokrijk te hercreëren in een spelwereld waarin teams kunnen navigeren met hun wolf karakter. De locatie van dit karakter in het spel zal gesynchroniseerd worden met de werkelijke locatie van de speler door middel van bluetooth triangulation. Locaties delen met andere spelers zal mogelijk gemaakt worden door het gebruik van WebRTC.

Bij het ontwikkelen van de front-end wordt zoveel mogelijk gebruik gemaakt van material design om de hele applicatie uniform te houden, zowel in kleur als structuur. Voor de mobiele versie werd echter geopteerd voor het gebruik van Flutter zodat de app zowel op iOS als Android toegankelijk is. 

Voor de desktopversie wordt gebruik gemaakt van het Angular framework. Zo werd er voor dit spel een parallax framework geschreven dat gebruik maakt van tegels en hierdoor krijgt het een ‘gameboy’ gevoel, vergelijkbaar met de oude Pokémon spelletjes. 

De back-end bestaat uit verschillende microservices die gebruik maken van het Spring-framework. Iedere microservice stelt een REST API open om onderling te kunnen communiceren. De optimalisatie van die communicatie gebeurt via een messaging service zoals Amazon SQS. 

Alle acties die een gebruiker wil ondernemen, zullen eerst door de gateway passeren. Deze gebruikt de authenticatie service voor het valideren en aanmaken van JSON Web Tokens die de gebruiker bij elke actie samen in de request stuurt. Daardoor zijn alle services afgesloten voor de buitenwereld en kunnen ze enkel via de gateway op een veilige manier aangesproken worden.

Om de applicatie te hosten wordt gebruik gemaakt van het AWS-platform. Zo wordt bijvoorbeeld Elastic Container Service (ECS) gebruikt voor container orchestration, in combinatie met Fargate voor het hosten van Consul- en microservicecontainers. Door het feit dat Fargate een serverlessoplossing is, zorgt dit ervoor dat de Docker-containers kunnen runnen zonder de onderliggende infrastructuur te moeten beheren. De communicatie tussen de verschillende microservices gebeurt door middel van een Consul Connect service mesh. Daarbij spreken de microservices met elkaar via een Consul Connect sidecar proxy waarbij Consul intentions bepalen welke services met elkaar mogen spreken en waarbij data in transit via mutual TLS (mTLS) geëncrypteerd wordt. Dit wordt georganiseerd door consul-agents en servers die in eenzelfde cluster zitten, met behulp van het Gossip-protocol. REST APIs worden ook ter beschikking gesteld om met de proxies te communiceren.

De komende maanden is er nog heel wat werk aan de winkel, maar met de sterke focus die onze stagiairs leggen op kwaliteit en onderlinge samenwerking zal het eindresultaat gegarandeerd een succes worden.