Alimenter le Jeu : Moteur de Jeu Mobile Personnalisé de DeHub
Par DeHub Team — 2022-01-05
Au premier trimestre 2022, nous avons construit un moteur de jeu personnalisé optimisé pour les appareils mobiles.
« Nous avons écrit notre propre moteur » est généralement un signe d'avertissement. Unity et Unreal existent, ce sont des logiciels extraordinaires, et la plupart des équipes qui les rejettent résolvent un problème qu'elles ont inventé. Donc, le fardeau de l'explication nous incombe.
La contrainte réelle
Nos jeux ne fonctionnent pas en tant qu'installations autonomes. Ils fonctionnent à l'intérieur de l'application DeHub, qui est React Native, qui transporte déjà un pipeline vidéo, un flux et une pile de portefeuilles — sur des téléphones qui, dans une grande partie de notre public, ont plusieurs années.
Cette combinaison est le problème. Intégrer un moteur polyvalent dans une application comme celle-ci signifie expédier un grand runtime à côté de tout ce qui existe déjà, payer son coût de démarrage chaque fois que quelqu'un tape sur un jeu et le combattre pour le contexte graphique que notre lecteur vidéo veut également.
Pour un titre que vous téléchargez et lancez seul, rien de tout cela n'a d'importance. Pour cinq jeux qui doivent s'ouvrir d'un simple toucher dans une application sociale en moins d'une seconde, tout est possible.
Ce pour quoi nous avons optimisé
Le moteur a été construit autour d’une courte liste de propriétés, aucune de laquelle n’est impressionnante en soi :
- Démarrage quasi-instantané. Un jeu dans une salle d'arcade rivalise avec le défilement. Si le chargement prend cinq secondes, le flux perd définitivement.
- Faible encombrement par titre. L'ajout d'un jeu devrait ajouter un jeu, pas un autre runtime.
- Comportement prévisible sur l'ancien matériel. Le rythme de trame constant sur un Android de milieu de gamme de quatre ans comptait beaucoup plus pour nous que ce que le moteur pouvait faire sur un produit phare.
- Accès natif au portefeuille et à la couche de compte sans pont entre deux mondes qui pensent chacun posséder la boucle principale.
Ce dernier est la pièce que personne ne voit. Les titres d'arcade doivent lire une identité et écrire une partition qui atterrit sur la chaîne. Faire cela à travers une limite de moteur est une source permanente de friction.
Ce que ça coûte
Tout ce qu'un moteur général vous donne gratuitement, nous ne l'avions pas. Pas d'éditeur mature, pas de pipeline d'actifs, pas d'écosystème de plugins tiers, pas de grand bassin de développeurs qui connaissent déjà l'outillage.
C'est un impôt réel et continu, et c'est la raison pour laquelle il ne s'agit pas d'un conseil général. Nous l'avons pris parce que l'alternative était pire pour notre cas spécifique, pas parce que la construction d'un moteur est intelligente.
Si c'était juste
Principalement oui, avec une seule réserve.
L'arcade a livré cinq titres en un trimestre et les jeux se sont ouverts assez rapidement pour rivaliser avec le flux, ce qui est le résultat de tout l'exercice. Les titres ultérieurs ont atterri sans réarchitecture. Sur du vieux matériel — où se trouve en fait une grande partie de notre public — il s'est comporté.
La mise en garde est le talent. Chaque développeur qui travaille sur nos jeux apprend un système qui n'existe nulle part ailleurs, et qui a ralenti l'embauche d'une manière que nous avons sous-estimée en 2022. Si nous choisissions à nouveau avec les mêmes contraintes, nous ferions probablement le même appel, et nous budgétiserions ce coût honnêtement plutôt que de le découvrir.
Le test que nous appliquerions
La question n'est pas « pourrions-nous construire le nôtre ? » — une équipe compétente peut construire presque tout et c'est pourquoi la question est inutile.
C'est : pouvez-vous nommer la propriété spécifique dont vous avez besoin que l'option standard ne peut pas vous donner, en une phrase, sans utiliser les mots flexibilité ou contrôle ?
Le nôtre était qu'un jeu devait s'ouvrir à partir d'un robinet dans une application sociale React Native, en moins d'une seconde, sur un Android de milieu de gamme de quatre ans, alors qu'un pipeline vidéo résidait déjà. C'est une contrainte réelle avec un nombre réel dedans.
Si la réponse est plus vague que cela, la conclusion honnête est que vous voulez construire un moteur, ce qui est une chose différente de l'en avoir besoin — et considérablement plus cher que ce qu'il semble au premier titre.
Ouvrir DeHub