Spelen mogelijk maken: DeHub's aangepaste mobiele game-engine
Door DeHub Team — 2022-01-05
In het eerste kwartaal van 2022 hebben we een aangepaste game-engine gebouwd die is geoptimaliseerd voor mobiele apparaten.
"We schreven onze eigen engine" is meestal een waarschuwingssignaal. Unity en Unreal bestaan, ze zijn buitengewone softwarepakketten, en de meeste teams die ze afwijzen lossen een probleem op dat ze zelf hebben uitgevonden. Dus de last van uitleg ligt bij ons.
De daadwerkelijke beperking
Onze games werken niet als standalone installaties. Ze worden uitgevoerd in de DeHub-app, die React Native is, met al een videopijplijn, een feed en een wallet-stack — op telefoons die in een groot deel van ons publiek enkele jaren oud zijn.
Die combinatie is het probleem. Het insluiten van een engine voor algemeen gebruik in een dergelijke app betekent dat er een grote looptijd moet worden geleverd naast alles wat er al is, waarbij de opstartkosten worden betaald elke keer dat iemand op een game tikt, en het vechten voor de grafische context die onze videospeler ook wil.
Voor een titel die je zelf downloadt en lanceert, doet dat er allemaal niet toe. Voor vijf games die in minder dan een seconde vanuit een tik in een sociale app moeten worden geopend, doet alles dat.
Waar we voor hebben geoptimaliseerd
De motor is gebouwd rond een korte lijst met eigenschappen, die geen van alle op zichzelf indrukwekkend zijn:
- Bijna onmiddellijke start. Een spel in een speelhal concurreert met scrollen. Als het vijf seconden duurt om te laden, verliest het permanent aan de feed.
- Kleine voetafdruk per titel. Een game toevoegen moet een game toevoegen, geen nieuwe runtime.
- Voorspelbaar gedrag op oude hardware. Consistent frame pacing op een vier jaar oude midrange Android was voor ons veel belangrijker dan wat de engine op een vlaggenschip kon doen.
- Oorspronkelijke toegang tot de portemonnee en accountlaag zonder een brug tussen twee werelden waarvan elk denkt dat ze de hoofdlus bezitten.
Die laatste is het stuk dat niemand ziet. Arcade-titels moeten een identiteit lezen en een score schrijven die in de keten terechtkomt. Dat doen over een motorgrens is een permanente bron van wrijving.
Wat het kostte
Alles wat een algemene motor je gratis geeft, hadden we niet. Geen volwassen editor, geen assetpijplijn, geen plug-in-ecosysteem van derden, geen grote pool van ontwikkelaars die de tooling al kennen.
Dat is een echte en voortdurende belasting, en het is de reden dat dit geen algemeen advies is. We namen het omdat het alternatief slechter was voor ons specifieke geval, niet omdat het bouwen van een motor slim is.
Of het juist was
Meestal wel, met één uitzondering.
De arcade verscheepte vijf titels in een kwartier en games gingen snel genoeg open om met de feed te concurreren, wat het resultaat was waar de hele oefening voor was. Latere titels landden zonder re-architectuur. Op oude hardware — waar veel van ons publiek eigenlijk is — gedroeg het zich.
Het voorbehoud is talent. Elke ontwikkelaar die aan onze games werkt, leert een systeem dat nergens anders bestaat en dat de aanwerving heeft vertraagd op een manier die we in 2022 hebben onderschat. Als we opnieuw zouden kiezen met dezelfde beperkingen, zouden we waarschijnlijk dezelfde beslissing nemen en zouden we die kosten eerlijk begroten in plaats van ze te ontdekken.
De test die we zouden toepassen
De vraag is niet "kunnen we onze eigen bouwen?" — een competent team kan bijna alles bouwen en daarom is de vraag nutteloos.
Het is: kun je de specifieke eigenschap noemen die je nodig hebt en die de standaardoptie je niet in één zin kan geven zonder de woorden flexibiliteit of controle te gebruiken?
De onze was dat een game moest worden geopend vanuit een kraan in een React Native sociale app, in minder dan een seconde, op een vier jaar oude midrange Android, terwijl er al een videopijplijn stond. Dat is een echte beperking met een reëel getal erin.
Als het antwoord vager is dan dat, is de eerlijke conclusie dat je een motor wilt bouwen, wat iets anders is dan er een nodig te hebben — en aanzienlijk duurder dan het lijkt uit de eerste titel.
DeHub openen