Så moderniserade Softhouse GAIMs spelutveckling med CI/CD och testautomatisering

Case-bild: Så moderniserade Softhouse GAIMs spelutveckling med CI/CD och testautomatisering

Så tog GAIM modern mjukvaruutveckling in i spelvärlden

Att ta mjukvaruutveckling till nästa nivå handlar inte alltid om att bygga nytt. Ibland handlar det om att förbättra hur man bygger. Det var exakt vad GAIM ville göra. Som ledande utvecklare av premium VR-simulatorer för jakt och skytte ville de kunna släppa innehåll snabbare utan att kompromissa med kvalitet och spelkänsla.

Utmaningen? Ett kreativt spelteam som kämpade med föråldrade verktyg och manuella processer. Tillsammans tog vi GAIM från “det funkar på min dator” till ett modernt mjukvaruflöde – med CI/CD, testautomatisering och bättre förutsättningar för kodhantverk.

Om GAIM 

GAIM utvecklar VR-simulatorer för jakt, sportskytte och professionella användare (t.ex. polis). Produkten kombinerar VR-headset, replika-vapen och realistiska scenarier – en nischad, tekniskt avancerad produkt med höga krav på känsla och tillförlitlighet. Men bakom kulisserna fanns utmaningar:

  • Innehållet byggde på binära assets – svåra att versionshantera
  • Fil-låsning hindrade parallell utveckling
  • Byggningar skedde manuellt i Unreal Engine
  • Buggar upptäcktes ofta sent, i headsetet
  • Nästan all testning var manuell

Kort sagt: utvecklarna lade mer tid på att felsöka än att förbättra spelet.

Uppdraget: Lägga en modern grund

Vi började med en teknisk genomlysning och landade snabbt i ett tydligt behov: automation, reproducerbarhet och testbarhet. Målet var ett hållbart flöde från kod till testad upplevelse i headsetet.

 

Lösningen: Moderniserade GAIMs utvecklingsprocess

För att GAIM skulle kunna släppa nytt innehåll snabbare och mer pålitligt – utan att tumma på upplevelsen – byggde vi en modern utvecklingsprocess i flera steg:

  • Automation från start till mål: Varje gång någon gör en ändring i spelet, startas automatiska flöden som bygger, testar och kvalitetssäkrar, helt utan handpåläggning.
  • Tidiga tester, bättre kvalitet: Vi flyttade testningen närmare själva spelutvecklingen. Istället för att upptäcka fel i slutet, kan teamet fånga problem tidigt, dvs innan de når spelaren.
  • Testning i riktiga VR-headset: Vi skapade en lösning där spelet testas automatiskt i ett VR-headset. Det betyder att GAIM kan vara säkra på både stabilitet och spelkänsla innan en uppdatering släpps.
  • Stöd för spelhantverket: Smarta verktyg hjälper teamet att upptäcka missar, som saknade ljud eller grafikproblem, så att mer tid kan läggas på kreativt arbete.

Resultatet? Ett mer förutsägbart och hållbart sätt att utveckla som låter GAIM fokusera på det som verkligen gör deras simulatorer unika. 

 

Tekniken bakom lösningen

1. CI/CD med Jenkins och Docker

Vi satte upp en CI/CD-pipeline i Jenkins där projektet byggs i en standardiserad Docker-miljö. Oavsett om det är Unreal build tools eller Android SDK, är alla versioner kontrollerade och isolerade.

Effekten:

  • Reproducerbara byggen
  • Mindre beroende av lokala utvecklingsmiljöer
  • Grund för automatiserade tester och kvalitetskontroller

2. Automatiserade tester direkt i Unreal

För att testa spelets logik skapade vi testfall direkt i Unreal Engine – både i Blueprints och C++. Det gör det lättare för spelutvecklare att förstå, underhålla och få snabb feedback.

Testerna kan köras:

  • I editorn av utvecklare
  • Automatiskt via Jenkins
  • Rapporter presenteras i JUnit-format – tydligt och spårbart

3. Game VCR – automatiserade VR-testruns

En stor innovation blev Game VCR – vår lösning för automatisk testning i faktiska headset. Jenkins bygger en APK, skickar den till en testmaskin, och därefter körs en uppsättning inspelade användarinteraktioner.

Vi samlar in:

  • Video från spelet
  • Android-loggar
  • Prestandadata (FPS, minne, etc.)

Resultat:

  • Stabilitetstester körs automatiskt
  • Visuella buggar fångas tidigt
  • Feedback direkt i pipelines

4. Kodhantverk på riktigt

Vi lade även fokus på det kreativa hantverket. Med designregler, asset-validering och filtrering av byggloggar hjälper pipelinen till att fånga fel som:

  • Saknade ljud
  • Felaktiga texturer
  • Naming-fel på assets

Det ger:

  • Bättre code reviews
  • Jämnare kvalitet
  • Mindre felsökning, mer kreativitet

Resultatet: Modern spelutveckling utan att tumma på känslan

Efter den här fasen har GAIM:

  • En pipeline från kod till testad upplevelse i VR
  • Automatiserade tester – i både editor och headset
  • Betydligt tidigare upptäckt av buggar
  • Mer hållbar och kreativ utvecklingsmiljö

Genom att automatisera bygg-, test- och kvalitetssäkringsprocessen kunde GAIM minska manuellt arbete, upptäcka fel tidigare och skapa bättre förutsättningar för snabbare releaser utan att kompromissa med spelupplevelsen. Och viktigast av allt – ett modernt mjukvaruhantverk som stärker spelet, inte begränsar det.

 

Not: Caset beskriver den lösning och utvecklingsprocess som togs fram tillsammans med GAIM inom ramen för projektet. Sedan dess har både organisationen, arbetssätten och den tekniska miljön fortsatt att utvecklas.

  • App för ”Läsa med Lakers”

  • Från Excel till spårbar kvalitetskontroll i realtid

Projektdetaljer

GAIM och Softhouse moderniserade spelutvecklingsprocessen genom att införa automatiserade CI/CD-flöden, testautomatisering och kvalitetssäkring direkt i VR-miljöer. Resultatet blev en snabbare, mer hållbar och mer förutsägbar utvecklingsprocess för premium VR-simulatorer.

GAIM

Vad? Modernisering av utvecklingsprocessen för VR-simulatorer genom CI/CD, automatiserad testning, pipelineutveckling och kvalitetssäkring i Unreal Engine.

Organisation: GAIM

Industri: Gaming / VR / DefenceTech / Simulation

Antal anställda: Ca 20–50

Omsättning: Ej offentlig

Teknologier och metoder: Unreal Engine, C++, Blueprints, Jenkins, Docker, CI/CD, Testautomatisering, Android, VR-testning, DevOps, Software Craftsmanship.

Softhouse

Vi är ett gäng skickliga utvecklare och programmerare

We code the future

Vi formar framtiden genom innovativa kodlösningar och vackra upplevelser.