Fallstudie

Utveckla onlinespel med AWS Machine Learning

Introduktion

Marknaden för onlinespel är en konkurrensutsatt arena och användarna kräver engagerande och utmanande upplevelser. Molntjänster tillhandahåller inte bara byggplattformarna för att utveckla mobilappar. De erbjuder även en ny dimension i form av prisvärd maskininlärning och sättet detta kan ge nytt liv åt spelupplevelsen. Yatzy, en populär mobilspelapp, blev en utmärkt demonstration av dessa nya möjligheter i praktiken.

Om Fictional Factory Inc

Fictional Factory Inc är en Android -spelutvecklare som har varit aktiv sedan 2012. Den nuvarande appportföljen innehåller 2 spel som alla är listade i kategorin "Board". Två av de viktigaste apparna från Fictional Factory Inc är Yatzy Online och Farkle Online. Båda har installerats mer än 100 tusen gånger.

Utmaningen

Yatzy Online är en populär mobilapp med över 2 miljoner nedladdningar. Den här mobila Android- och iOS-appen tillåter användare i alla åldrar, från hela världen, att spela online, mot sig själva, datorn eller med andra spelare. Appen lanserades 2012. Sedan lanseringen har plattformen haft kontinuerlig tillväxt. Med över två miljoner nedladdningar tillåter Yatzy Online användare att enkelt ansluta för att spela med vänner eller slumpmässiga spelare från hela världen. Den här mobilappen byggdes för både Android och iOS. Den utvecklades med hjälp av Node.js och React.js. och distribueras med Amazon Web Services (AWS). Yatzy Online har nyligen genomgått en kraftfull omvandling för att använda Machine Learning som en del av sin teknikstack.

Yatzy Online var det vi kallar på Miracle Mill som en ”born in the cloud” -lösning, vilket innebär att appen sedan befruktningen har använt kraftfull molnteknik för att förbättra funktionalitet, skala och kontrollkostnader.

Vi har specifikt använt Amazon Web Services efter följande iterativa tidslinje:

  • Distribuera till Amazon EC2 2012
  • Migrera från MongoDB till Amazon DynamoDB
  • Aktivera mänsklig dator med Amazon SageMaker.
  • Konvertera beräkna till AWS Lambda.

Vi har använt detta tillvägagångssätt för att uppnå följande kärnresultat, för att iterativt förbättra spelfunktionaliteten, tillåta att en stor mängd data snabbt blir tillgänglig och skapa en trovärdig datorspelare.

Lösningen

År 2019 var en av de ständiga utmaningar som projektet stod inför begränsningar i den nuvarande datorspelaren. Således skapades en plan för att använda AWS Machine Learning-tjänster för att optimera AI och mänskligt beteende.

Den nuvarande datorspelaren gjorde kategorival med hjälp av förberäknade kombinationer och några beräkningar på språng. Eftersom beräkningar tar nästan alla tärningskombinationer har datorspelaren nästan alltid förutsättningar att vinna spelet, vilket skulle minska den totala användarupplevelsen.

På grund av det faktum att Yatzy Online redan använder massor av AWS-tjänster och är mycket beroende av detta ekosystem, var det logiska sättet att uppgradera applikationen att fortsätta lägga till AWS-tjänster. Vi arbetade för att bedöma vilka AWS-tjänster som kunde möjliggöra byggande och utbildning av maskininlärningsmodeller.

Flera AWS-tjänster användes för att samla in data, omvandla den, utbilda en ML-modell och distribuera den. Det första steget är att samla in data från användarna, dvs. spelare i spelet Yatzy Oline. För detta användes Amazon Kinesis Data Firehose, vilket ger ett enkelt sätt att tillförlitligt ladda strömningsdata till Amazon Simple Storage Service (S3). Därefter filtrerades data och transformerades till det format som behövs för nästa steg med hjälp av AWS Glue, en fullständigt hanterad ETL-tjänst (Extract, transform and load) och sparas i Amazon Simple Storage Service (S3) i CVS-format.

Hela processen med ML-modellval, utbildning, validering, hyperparametertuning och distribution gjordes med Amazon SageMaker. Jupyter-bärbara datorer användes, tillhandahållna av Amazon SageMaker-bärbara datorer med helt elastiska underliggande beräkningsresurser. Flera inbyggda algoritmer testades och två, Linear Learner och XGBoost, valdes ut som bra och visade sig vara väl lämpade för det givna klassificeringsproblemet i flera klasser. Inställningen av hyperparametern gjordes också med Amazon SageMaker, dvs. genom att köra ett hyperparameteravstämningsjobb med slumpmässig strategi.

För distribution av algoritmen skapades en Amazon SageMaker-slutpunkt, en AWS Lambda-funktion och en API-gateway. AWS Lambda-funktionen tar data som skickas från användaren, via API-gatewayen, förvandlar den till rätt format och åberopar Amazon SageMaker-slutpunkten. Efter detta skickas förutsägelsen, dvs. den kategori som ska väljas tillbaka till användaren.

Fördelar och resultat

Resultaten av valideringen av modellen visade hög klassificeringsnoggrannhet. Dessutom bygger maskininlärningsmodellen sin produktion helt och hållet på hur den mänskliga spelaren spelar spelet, så det känns mycket mer mänskligt. Med tanke på att projektarbetet kommer att fortsätta kommer framtida mål att optimera befintliga tjänster, med en fortsättning på att lägga till mer ML AWS-tjänster.

Om Miracle Mill

På Miracle Mill är vi passionerade entreprenörer och ingenjörer som arbetar med att använda modern banbrytande molnteknik. Vi är ett molnföretag som fokuserar på att bygga skalbara applikationer med AWS-molntjänster.

Vi tillhandahåller molnkonsulttjänster med en Agil iterativ process för mjukvaruutveckling och DevOps- metoder.

Använda tjänster

Läs mer

Fallstudie
Använd CI/CD och AWS Lambda för att utveckla bättre bokningssystem

Teevolution är ett innovativt svenskt teknikföretag, känt för sina golfrelaterade produkter och tjänster som SmartGolfa. Läs vår fallstudie som visar vilken roll AWS Lambda spelade för att skapa en effektiv lösning åt dem.

Läs mer
Fallstudie
Amazon CloudFront,AWS S3,AWS Lambda
Lägg grunden för bättre DCX i detaljhandeln med AWS Lambda

Re-board Technology tillverkar Re-board®, den innovativa, hållbara, robusta kartongen. De är baserade i Sverige och samarbetar med globala tryckpartners och distributörer för att erbjuda effektfulla designlösningar för displayreklam, marknadsföring på försäljningsställen samt för utställningar och mässor.

Läs mer
Fallstudie
Modernisering av beställningssystem med molnet och serverlös utveckling

Fogia är ett skandinaviskt möbelföretag med fokus på enkelhet, funktionalitet och kvalitet. De designar och tillverkar möbler för hem, kontor och offentliga utrymmen.

Läs mer
Artikel
Automatisk testning av webbgränssnitt i AWS

Alla bra utvecklingsprocesser innehåller en testfas - oavsett om man låter vänner och familj utvärdera produkten eller om det är en kvalitetssäkring som utförs av en certifierad leverantör. Testningen görs oftast manuellt eller halvautomatiskt med hjälp av verktyg som Selenium. Många är bekanta med automatiserade testningsverktyg, men då det kan kännas krångligt att implementera automatiserade UI-tester är det ibland något man hellre undviker. Medan andra automatiserade integrations- och enhetstester kan vara enklare och mer okomplicerade att implementera kräver automatisk UI-testning mer eftertanke och planering - men de potentiella fördelarna är desto större. Automatisk testning av webbgränssnitt sparar mängder av tid, säkerställer högre kvalitet och precision och möjliggör kontinuerlig distribution. En välkommen bonus är potentialen att omvandla din verksamhet!

Läs mer