Ett verkligt exempel
Avaryn
Ett strategirollspel i webbläsaren som jag bygger just nu, nu i sluten alfa. En förhandstitt på världen, de riktiga 3D-modellerna, nyckelbilderna och systemen bakom.
Avaryn är en fantasyvärld där spelaren väljer folk och klass, korsar en kontinent med rivaliserande makter och drakar, bygger ett hem, lär sig ett yrke och leder sin egen strategi. Den första kartlagda kontinenten heter Vaelora, och spelet börjar i våtmarkerna Mirefen.
Jag bygger Avaryn ensam. Det är mitt eget projekt och det tydligaste exemplet på vad jag menar med att bygga spel: regler, värld, grafik och server hänger ihop i en och samma kodbas.
Direkt från spelmotorn
Riktiga modeller, ritade live i din webbläsare
Varje varelse och byggnad nedan är samma fil som spelet laddar: komprimerad geometri, KTX2-texturer och inbakade animationer. Välj något att titta på och dra för att vrida.
Live i webbläsaren Dra för att vrida Mirebeak
Frontens smygande rovdjur. Krokig näbb, trasig fjäderdräkt och en vana att cirkla de upphöjda vägarna i skymningen.
Varelserna spelar sina egna vilo- och anfallsanimationer. Byggnaderna kommer ur samma miljökit som bosättningen Fenwatch är byggd av.
Tekniken bakom
Byggt som en riktig onlinetjänst, inte som en demo
Avaryn är en beständig värld i MMO-stil med servern som domare. Allt nedan finns i samma kodbas: simulering, nätverk, databas, infrastruktur som kod och full observerbarhet.
- 50+ samtidiga spelare per nod
- 18 regioner i en sammanhängande värld
- 4 spelare per sällskap i realtid
- 3 signaler: mätvärden, loggar och spår
- 01
Servern har sista ordet
Varje rörelse, slag och kort går till servern, som simulerar världen i fasta tick och skickar tillbaka vad som faktiskt hände. Tysta tick skapar ingen trafik, och databasen får aldrig en rad per rörelse.
- 02
Sällskap och dungeons i realtid
Upp till fyra spelare bildar sällskap, delar uppdrag och går in i taktiska strider efter ett enhälligt beslut. Dungeons är instansierade, med fast svårighetsgrad, och ett tappat nät bryter inte medlemskapet.
- 03
Kubernetes med infrastruktur som kod
Klustret körs på k3s hos Hetzner och beskrivs helt i Pulumi: brandvägg, volymer, cert-manager, PostgreSQL via CloudNativePG och ingress bakom Cloudflare. Driftsättningar använder oföränderliga image-digester.
- 04
Mätvärden, loggar och spår
Prometheus-mätvärden i Mimir, strukturerade OTLP-loggar i Loki och spår i Tempo, samlade av en OpenTelemetry Collector. Grafana visar spelarresor samt tjänste- och databasprestanda.
- 05
Säkerhet i varje anslutning
Signerade spelbiljetter, ursprungslistor för WebSocket och CSRF, HTTP-only-cookies och återkommande omprövning av öppna anslutningar så att en återkallad åtkomst faktiskt bryts.
- 06
Backup, återställning och leverans
Kontinuerlig WAL-arkivering och dagliga basbackuper till separat objektlagring, med en övad återställningsrutin. GitHub Actions verifierar, bygger och publicerar alla fyra image-typerna.
Systemen bakom världen
Så fungerar Avaryn
- 01
Världen fortsätter utan dig
Regionerna hänger ihop till en kontinent som går att vandra över. När du korsar en gräns fortsätter du gå, kameran följer med och nästa region laddas runt dig. Världen lever på servern, också när du är utloggad.
- 02
Servern har sista ordet
Varje rörelse och varje slag skickas till servern, som räknar ut vad som faktiskt hände. Ingen kan fuska genom att ändra i sin egen klient, och tappar du anslutningen tar du vid där du var.
- 03
Din befälhavare och ditt sällskap
Du spelar en befälhavare som når nivå 30 och samlar färdigheter på en snabbrad. Strider utspelar sig i taktiska möten med krigsdimma, byggen och order till ditt sällskap.
- 04
Yrken lärs av människor
En smed lär dig smide vid sin ässja. Du bryter malm i grottorna, förädlar den till stål och smider utrustning som räknas i strid. Varje spelare får sin egen malm ur samma ådra.
- 05
Folk, drakar och politik
Människor, felis, gobliner och groovianer har egna historier och intressen. Drakar har territorier och tyngd i politiken. Berättelsen förs av en gammal berättarröst och spelas upp som scener i den levande världen.
- 06
Byggt för webbläsaren
Inget att installera. Avaryn körs i webbläsaren på dator och mobil, med grafik som prioriterar läsbarhet och karaktär framför realism.
Från playavaryn.com
Skärmdumpar från den nya startsidan, där spelmotorn ritar bosättningen och bestiariet live i webbläsaren.
-
Fenwatch ritad live på playavaryn.com: väktarhall, palissad, lyktgårdar och kärret utanför porten -
Bestiariet: varje varelse öppnas med sina regler, sina siffror och en roterande modell -
Den nya startsidan för Avaryn, med nyckelbild, glöd och anmälan till den slutna alfan
Vill ni bygga något liknande?
Spel, simuleringar eller upplevelser i realtid. Berätta vad ni har i tankarna.