Alla inlägg

En värld, fem plattformar – Devlog #2: utmaningarna med att utveckla ett plattformsoberoende MMORPG

Ett MMORPG som går att spela med mus, pekskärm och handkontroll: Ancient Onlines val kring gränssnitt, kontroller, 30 språk och lokal chattöversättning.

En handkontroll på ett skrivbord i dämpat ljus, med röda och turkosa reflexer

Vi utformar Ancient Online: Remastered som en enda värld där spelare på Windows, Linux, macOS, Android och iOS ska mötas. På papperet låter det enkelt: ett spel, fem plattformar. I praktiken innebär det en rad svåra beslut att ta ett klassiskt MMORPG, utformat för att spelas med musklick, till telefoner och handkontroller. I den här delen av devloggen berättar vi om de besluten och skälen bakom dem.

Spelet är under utveckling. Utvecklingsbygget testas just nu på Windows- och Android-enheter; macOS, Linux och iOS är de övriga plattformar vi siktar på.

Regel 1: En värld, en uppsättning regler

Det finns ingen separat server och ingen ”förenklad” balans för mobilspelare. Eftersom alla spelets regler körs på servern spelar du i samma värld, efter samma regler, oavsett vilken enhet du ansluter från. Ditt konto, din karaktär, ditt inventarium och ditt gille är oberoende av enheten. Serversidan gick vi igenom i del ett av devloggen.

För klienten betyder den här regeln att olika plattformar kan erbjuda olika kontroller, men de kan inte erbjuda olika förmågor.

Pekskärmar: tänka om i stället för att krympa

Att krympa det klassiska MMORPG-gränssnittet som det är och lägga det på en telefon fungerar inte; knapparna blir för små för ett finger och skärmen för full. Därför utformade vi ett separat gränssnittslager för mobil:

  • En flytande styrspak: Var du än sätter fingret på skärmens vänstra halva kommer styrspaken dit; spelaren behöver inte träffa en bestämd punkt på skärmen.
  • En attackknapp som du håller in, med en båge av färdigheter runt omkring.
  • Tryck för att välja mål: Pekskärmens motsvarighet till vanan från PC att ”klicka på monstret”.

Det finns också något som vi medvetet inte gjorde: tryck för att förflytta sig. Styrspaken sköter rörelsen. Med två rörelsesystem skulle varje tryck som missar målet bli till en ofrivillig löptur, och mitt i en strid är det oacceptabelt.

Ytterligare ett litet men viktigt beslut: på en telefon syns bara några få platser åt gången, så bytet mellan färdighetssidor sker mycket oftare än på dator. Vi gjorde dryckesplatserna oberoende av sidorna; när du byter sida ligger dina drycker kvar där de är. Det krävde mer än att flytta en cell i gränssnittet: vi var tvungna att helt skilja koden som använder dryckesplatserna från sidlogiken.

Kamera och multitouch

På en telefon vrids kameran när du drar ett finger över en tom yta. Att lösa det genom att lägga en ”kamerazon” över hela skärmen ovanpå gränssnittet såg lockande ut, men ett sådant lager skulle svälja de tryck som är avsedda för varje knapp under det. Genom att hantera kameradragningen i spelarkontrollern i stället för i gränssnittslagret undvek vi konflikter mellan knapparna och kameran. Vi skiljer också målval från kameradragning med ett litet rörelsetröskelvärde: tills tröskeln har passerats rör sig kameran inte alls, och när den väl har passerats börjar kameran vridas utan något plötsligt hopp.

Handkontroller: att ta sig runt i menyerna också

Vi utformade stödet för handkontroll för hela gränssnittet, inte bara för strid. För att du ska kunna navigera i inventariet och menyerna med en handkontroll lade vi till fokusnavigering med styrkorset. Även här fanns en fälla: styrkorset och knapparna för bekräfta/tillbaka behövs både för att navigera i menyer och för att använda snabbplatserna. Lösningen: medan ett fönster är öppet navigerar de här knapparna i menyn, och när det är stängt går de tillbaka till snabbplatserna. Att i tysthet glida in i ”menyläge” mitt i en strid vore den värsta buggen det här systemet kunde ha.

Spelet håller reda på vilken inmatningsenhet du använde senast: när du byter till handkontroll försvinner pekknapparna från skärmen.

Inställningarna följer också plattformen

Inställningsfönstret får sin form av enheten: flikarna för mus och tangentbord visas bara på PC, och pekfliken visas bara på telefoner. Grafikalternativ som bara finns på dator, som Lumen, DLSS och FSR, ersätts på mobil av alternativ för upplösning och anti-aliasing. På varje enhet visar vi bara de inställningar som faktiskt gör något där.

30 språk och ett gränssnitt som mäts för varje språk

Spelet och våra webbplatser siktar på 30 språk. Den dolda svårigheten med ett flerspråkigt gränssnitt är textlängden: samma knapptext kan vara kort på ett språk och dubbelt så lång på ett annat. Vi beräknar bredden på flikarna i inställningsfönstret utifrån den faktiska bredden på varje text i det språket i stället för att ge dem lika stora delar; när språket byts räknas layouten om. I språkväljaren skrivs varje språk med sitt eget namn.

Chattöversättning på våra egna servrar

För att spelare från olika länder ska förstå varandra i samma värld översätts chattmeddelanden till läsarens språk. Vi hade två principer när vi byggde det här systemet:

  1. Meddelandena lämnar inte våra servrar. Översättningen görs på våra egna servrar av en lokal modell som bara använder processorn; inget externt översättnings-API används.
  2. Att bevara spelets språk. MMORPG-chatt är full av förkortningar, speltermer och emojier. Vi använder en spelspecifik ordlista, och vi skyddar emojier separat så att de inte går förlorade under översättningen.

Vad kommer härnäst?

Arbetet fortsätter med mobilprestandan och med de övriga plattformar vi siktar på. Vill du se hela listan över kontroller ur spelarens perspektiv kan du ta en titt på guiden för PC och mobil på alla plattformar på spelsajten. Vill du lära känna vår studio kan du läsa Vilka är Astronaut Entertainment?.

Dela:
Finns även på29