Een artikel over

Hoe test je een Unity Multiplayer Game

Door Finn van der Heide.

Hoe test je een Unity Multiplayer Game

Wat is het probleem?

Het testen van multiplayer games in Unity kan lastig zijn. Een bekend probleem is dat Unity het niet toestaat om het zelfde project in twee editors open te hebben.

Natuurlijk is het mogelijk om een build maken en daarmee de game te testen, maar om dat nou een goede developer experience te noemen gaat ook wel weer ver. Elke aanpassing die je maakt heeft weer een nieuwe build nodig om het te kunnen testen.


Oplossing 1: Code Versioning

Code versioning systemen zoals GIT of SVN kunnen een effectieve oplossing bieden voor het testen van multiplayer games in Unity. Met deze systemen kan je hetzelfde project meerdere keren klonen op verschillende locaties.

Het enige wat je ervoor hoeft te doen is een nieuwe kloon van het project maken op een andere locatie op je systeem.

Voordelen

Nadelen

- Het is gemakkelijk om verschillende versies van de game tegen elkaar te testen. - Het synchroniseren tussen de projecten kan de code versioning geschiedenis rommelig maken.

Door middel van code versioning kan je zonder aanvullende kennis, programma's of dependencies direct bezig met het testen van multiplayer games in Unity.


Oplossing 2: Symbolische Koppelingen (Symlink)

Een alternatieve manier voor het testen van multiplayer games in Unity is het gebruik van symbolische koppelingen, ook wel bekend als symlinks. Deze koppelingen werken als transparante snelkoppelingen voor Unity, waardoor het mogelijk is om meerdere instanties van hetzelfde project te draaien zonder dat er conflicten ontstaan.

Bij deze methode worden symlinks gemaakt voor de mappen Assets, ProjectSettings en Packages. De overige bestanden en mappen kunnen door Unity zelf worden gegenereerd.

Windows:

Open de Command Prompt of PowerShell en voer de volgende commando’s uit. Vergeet niet de paden aan te passen voordat je ze uitvoert.

mkdir "C:\doel locatie"
mklink /j "C:\doel locatie\Assets" "C:\bron locatie\Assets"
mklink /j "C:\doel locatie\ProjectSettings" "C:\bron locatie\ProjectSettings"
mklink /j "C:\doel locatie\Packages" "C:\bron locatie\Packages"

Als alternatief voor het handmatig maken van symlinks, kan je Link Shell Extension gebruiken. Met deze tool kan je gemakkelijk via het contextmenu (rechtermuisknop) de bronmap selecteren en vervolgens de symlink op de doellocatie plaatsen als “Hardlink”.

Mac / Linux:

Open de Terminal.app en voer de volgende commando’s uit. Vergeet niet de paden aan te passen voordat je ze uitvoert.

mkdir "/doel locatie"
ln -s "/bron locatie/Assets" "/doel locatie/Assets"
ln -s "/bron locatie/ProjectSettings" "/doel locatie/ProjectSettings"
ln -s "/bron locatie/Packages" "/doel locatie/Packages"

Voordelen

Nadelen

- Volledige controle over het project. - Risico op gelijktijdige wijzigingen in verschillende editors die niet beide kunnen worden opgeslagen.

Met behulp van symlinks kan je efficiënt meerdere versies van je Unity-project beheren en testen, waardoor je ontwikkelingsworkflow aanzienlijk wordt verbeterd. Het vereist enige technische kennis, maar de voordelen op het gebied van flexibiliteit en controle zijn aanzienlijk.


Oplossing 3: ParrelSync

Als de bovenstaande methoden te complex of risicovol lijken, is er een alternatieve oplossing beschikbaar. ParrelSync is een open-source tool die speciaal is ontworpen om dit probleem aan te pakken. Het automatiseert het proces van het maken van symlinks, waardoor het eenvoudiger en minder foutgevoelig wordt.

ParrelSync integreert naadloos in de Unity Editor en biedt een gebruiksvriendelijk dropdown menu voor het beheren van je “clones”. Hiermee kun je gemakkelijk meerdere versies van je project opzetten en beheren zonder dat je handmatig symlinks hoeft te maken.

Voordelen

Nadelen

- Bevat ingebouwde beveiligingsmaatregelen om te voorkomen dat je per ongeluk wijzigingen aanbrengt in een clone. - Voegt extra afhankelijkheden toe aan je game.

Met ParrelSync kun je je concentreren op het ontwikkelen en testen van je game, zonder dat je je zorgen hoeft te maken over de complexiteit van het beheren van meerdere projectversies.

Conclusie

Het testen van multiplayer games in Unity kan een uitdaging zijn, maar er zijn verschillende methoden beschikbaar om dit proces te vergemakkelijken. Code versioning, Symlinks en ParrelSync bieden elk hun eigen voordelen en nadelen. Bij Wikkl gebruiken we over het algemeen Symlinks. Deze methode biedt ons de mogelijkheid om snel te itereren en aanpassingen te testen zonder dat we extra afhankelijkheden aan ons project hoeven toe te voegen. Het stelt ons in staat om ons te concentreren op wat echt belangrijk is: het ontwikkelen van geweldige multiplayer games. Ongeacht de methode die je kiest, het belangrijkste is om een oplossing te vinden die het beste past bij jouw specifieke behoeften en workflow.

Over de auteur.

Finn van der Heide

Finn van der Heide

Developer en Producer

Een creatieve ontwikkelaar met een passie voor softwareontwikkeling en gameplay. Met een scherp oog voor wat een succesvol product maakt en een constante drang naar leren en verbeteren, zet Finn zijn technische expertise in om complexe uitdagingen aan te gaan en dynamische ervaringen te creëren.