Alle berichten

Eén wereld, vijf platformen – Devlog #2: de uitdagingen van cross-platform MMORPG-ontwikkeling

Eén MMORPG speelbaar maken met muis, touchscreen en controller: de keuzes van Ancient Online voor interface, besturing, 30 talen en lokale chatvertaling.

Een gamecontroller op een bureau in gedempt licht, met rode en turquoise weerkaatsingen

We ontwerpen Ancient Online: Remastered als één enkele wereld waarin spelers op Windows, Linux, macOS, Android en iOS elkaar ontmoeten. Op papier klinkt het eenvoudig: één spel, vijf platformen. In de praktijk betekent een klassieke MMORPG die voor muisklikken ontworpen is naar smartphones en controllers brengen een reeks moeilijke beslissingen. In dit deel van de devlog delen we die beslissingen en de redenen erachter.

Het spel is in ontwikkeling. De ontwikkelversie wordt momenteel getest op Windows- en Android-toestellen; macOS, Linux en iOS zijn de andere platformen waarop we mikken.

Regel 1: één wereld, één set regels

Er is geen aparte server en geen “vereenvoudigde” balans voor mobiele spelers. Omdat alle spelregels op de server draaien, speelt u in dezelfde wereld, volgens dezelfde regels, met welk toestel u ook verbindt. Uw account, personage, inventaris en gilde staan los van het toestel. De serverkant behandelden we in deel één van de devlog.

Voor de client betekent deze regel dat verschillende platformen een andere besturing mogen bieden, maar geen andere mogelijkheden.

Touchscreens: herdenken in plaats van verkleinen

De klassieke MMORPG-interface gewoon verkleinen en op een smartphone zetten werkt niet; de knoppen worden te klein voor een vinger en het scherm te druk. Daarom ontwierpen we een aparte interfacelaag voor mobiel:

  • Een zwevende joystick: Waar u uw vinger ook zet op de linkerhelft van het scherm, de joystick komt ernaartoe; de speler hoeft geen bepaalde plek op het scherm te raken.
  • Een aanvalsknop die u ingedrukt houdt, met een boog van vaardigheden errond.
  • Tikken om een doelwit te kiezen: Het touchequivalent van de pc-gewoonte “klik op het monster”.

Er is ook iets wat we bewust niet gedaan hebben: tikken om te bewegen. De joystick zorgt voor de beweging. Met twee bewegingssystemen zou elke gemiste tik op een doelwit in een ongewilde sprint veranderen, en midden in een gevecht is dat onaanvaardbaar.

Nog een kleine maar belangrijke beslissing: op een smartphone zijn er maar enkele slots tegelijk zichtbaar, dus wisselt u veel vaker tussen vaardigheidspagina's dan op desktop. We maakten de drankjesslots onafhankelijk van de pagina's; wisselt u van pagina, dan blijven uw drankjes waar ze zijn. Dat vroeg meer dan een cel verplaatsen in de interface: we moesten de code die de drankjesslots gebruikt volledig losmaken van de paginalogica.

Camera en multitouch

Op een smartphone draait de camera wanneer u met een vinger over een lege zone sleept. Dat doen door een schermvullende “camerazone” boven op de interface te leggen leek verleidelijk, maar zo'n laag zou de aanrakingen opslokken die bedoeld zijn voor elke knop eronder. Door het slepen van de camera in de player controller af te handelen in plaats van in de interfacelaag, vermeden we conflicten tussen de knoppen en de camera. We onderscheiden het kiezen van een doelwit ook van het slepen van de camera met een kleine bewegingsdrempel: tot de drempel overschreden is, verroert de camera niet, en zodra hij overschreden is, begint de camera te draaien zonder plotse sprong.

Controllers: ook de menu's doorlopen

We ontwierpen de controllerondersteuning voor de hele interface, niet alleen voor gevechten. Om met een controller door de inventaris en de menu's te navigeren, voegden we focusnavigatie met de D-pad toe. Ook hier zat een valkuil: de D-pad en de knoppen voor bevestigen/terug zijn nodig om door menu's te navigeren én om de snelslots te gebruiken. De oplossing: zolang er een venster openstaat, navigeren die knoppen door het menu, en wanneer het gesloten is, keren ze terug naar de snelslots. Ongemerkt in de “menumodus” belanden midden in een gevecht zou de ergste bug zijn die dit systeem kan hebben.

Het spel houdt bij welk invoertoestel u het laatst gebruikte: schakelt u over naar een controller, dan trekken de touchknoppen zich terug van het scherm.

Ook de instellingen volgen het platform

Het instellingenvenster krijgt zijn vorm van het toestel: de tabbladen voor muis en toetsenbord verschijnen alleen op pc, en het touchtabblad verschijnt alleen op smartphones. Grafische opties die alleen op desktop bestaan, zoals Lumen, DLSS en FSR, maken op mobiel plaats voor opties voor resolutie en anti-aliasing. Op elk toestel tonen we alleen de instellingen die daar echt iets doen.

30 talen en een interface die per taal gemeten wordt

Het spel en onze websites mikken op 30 talen. De verborgen moeilijkheid van een meertalige interface is de tekstlengte: hetzelfde knoplabel kan in de ene taal kort zijn en in de andere dubbel zo lang. De breedte van de tabbladen in het instellingenvenster berekenen we uit de werkelijke breedte van elk label in die taal, in plaats van ze elk evenveel plaats te geven; verandert de taal, dan wordt de indeling opnieuw berekend. In de taalkiezer staat elke taal onder haar eigen naam.

Chatvertaling op onze eigen servers

Zodat spelers uit verschillende landen elkaar in dezelfde wereld begrijpen, worden chatberichten vertaald naar de taal van de lezer. Bij het bouwen van dit systeem hadden we twee principes:

  1. Berichten verlaten onze servers niet. De vertaling gebeurt op onze eigen servers door een lokaal model dat alleen de CPU gebruikt; er wordt geen externe vertaal-API gebruikt.
  2. De taal van het spel bewaren. MMORPG-chat zit vol afkortingen, speltermen en emoji. We gebruiken een woordenlijst die specifiek is voor het spel, en we beschermen emoji apart zodat ze tijdens het vertalen niet verloren gaan.

Wat volgt

Het werk aan de prestaties op mobiel en aan de andere platformen waarop we mikken gaat door. Voor de volledige lijst van de besturing aan de kant van de speler kunt u de crossplatformgids voor pc en mobiel op de spelsite bekijken. Wilt u onze studio leren kennen, lees dan Wie is Astronaut Entertainment?.

Delen:
Ook beschikbaar in29