5 juni 2015 • maart 26, 2024 at 4:07 pm Qdraw

Spokenjagers, een node.js realtime game

In dit artikel ga ik het hebben over het eerste begin van de technische realisatie van mijn project Spokenjagers: jaag in de echte wereld op virtuele spoken.

Om mijn werk beter te kunnen kaderen ga ik het eerst hebben over mijn voorkennis. Voorheen ben ik bezig geweest met projecten waarin Clientside Javascript, jQuery, een beetje PHP en WordPress gebruikt werden.

Ik ben begonnen met de belangrijkste functionaliteit: Het realtime weergeven van de huidige gebruiker op de kaart. Op Github is een demo te vinden waarbij de geolocatie realtime wordt weergegeven.

Voordat je dit script kunt uitvoeren moet je node.js wel geïnstalleerd hebben. Op de website van node.js kun je installers vinden voor verschillende platformen.

Het is belangrijk dat npm geïnstalleerd is. Npm staat voor Node Package Manager en komt mee met node.js. In de package.json staan de dependencies (benodigdheden). Deze benodigdheden kunnen worden geïnstalleerd door het commando: “npm install” uit te voeren in de map met het script.

Ik heb deze realtime geolocatie demo onderzocht en deze omgebouwd zodat er meerdere gebruikers worden weergegeven. Kort samengevat heb ik het zo gemaakt dat alle gebruikers worden verzameld en worden gedeeld met alle andere actieve gebruikers. Iedere gebruiker krijgt een uniek identificatie getal en deze wordt zichtbaar gemaakt op de kaart.

Er wordt over websockets gezegd dat het problemen gaat opleveren bij extreem veel gebruikers. Wanneer je meer dan 70.000 actieve gebruikers hebt dan is dit zeer nadelig voor de performance.

Wanneer je aan het ontwikkelen bent met node.js is het handig om nodemon te gebruiken. Nodemon is een gratis scriptje dat kijkt of je bestand veranderd is. Wanneer het bestand gewijzigd is wordt het draaiende node.js script opnieuw opgestart. Nodemon kun je globaal installeren door het volgende commando uit te voeren: “npm install nodemon -g”

Het is daarnaast belangrijk om de input te valideren. Dus om te controleren wat je voor geolocaties binnen krijgt. Tijdens de beginperiode zorgden lege geolocaties er voor dat het script vast liep. Een manier om dit te voorkomen is door te controleren of een de input een getal en geen nul is.

Omdat GPS een product is van het Amerikaanse leger worden de locaties met opzet minder nauwkeurig aangeleverd. Dit heeft tot gevolg dat de gebruiker kan gaan stuiteren op de kaart. Dit stuiter-effect heb ik opgelost met een filter.

Ik ben deze app verder gaan uitwerken door elke keer kleine functionaliteiten toe te voegen en tussentijds vaak de werking te testen.

Een werkende versie van de Spokenjagers-game is te vinden op https://qdraw.herokuapp.com/ (link werkt mogelijk niet meer). Dit spel werkt zowel op je mobiel, tablet als laptop.


Hoe ik met node.js ben begonnen om een realtime game te maken ; node.js, ontwerp, prototyping | foto 1

Dit bericht is geschreven door: Dion

Tags: , ,

Gecategoriseerd in: