Potenciando el juego: el motor de juego móvil personalizado de DeHub
Por DeHub Team — 2022-01-05
En el Q1 2022 construimos un motor de juego personalizado optimizado para dispositivos móviles.
"Escribimos nuestro propio motor" suele ser una señal de advertencia. Unity e Unreal existen, son piezas extraordinarias de software, y la mayoría de los equipos que las rechazan están resolviendo un problema que ellos inventaron. Así que la carga de la explicación nos corresponde a nosotros.
La restricción real
Nuestros juegos no se ejecutan como instalaciones independientes. Se ejecutan dentro de la aplicación DeHub, que es React Native, que ya tiene un canal de video, un feed y una pila de billeteras, en teléfonos que en gran parte de nuestra audiencia tienen varios años.
Esa combinación es el problema. Incrustar un motor de propósito general en una aplicación así significa enviar un gran runtime junto con todo lo que ya está allí, pagar su costo de inicio cada vez que alguien toca un juego, y luchar por el contexto gráfico que nuestro reproductor de video también quiere.
Para un título que descargas y lanzas por tu cuenta, nada de eso importa. Para cinco juegos que deben abrirse con un toque dentro de una aplicación social en menos de un segundo, todo eso sí.
Para qué optimizamos
El motor se construyó alrededor de una lista corta de propiedades, ninguna de las cuales es impresionante por sí sola:
- Inicio casi instantáneo. Un juego en una sala de juegos compite con el desplazamiento. Si tarda cinco segundos en cargarse, pierde el feed de forma permanente.
- Huella pequeña por título. Añadir un juego debe añadir un juego, no otro tiempo de ejecución.
- Comportamiento predecible en hardware antiguo. El ritmo de fotogramas constante en un Android de rango medio de cuatro años nos importaba mucho más que lo que el motor podía hacer en un buque insignia.
- Acceso nativo a la billetera y la capa de la cuenta sin un puente entre dos mundos que cada uno piensa que son dueños del bucle principal.
Ese último es el trozo que nadie ve. Los títulos de arcade necesitan leer una identidad y escribir una puntuación que llega on-chain. Hacer eso a través de un límite de motor es una fuente permanente de fricción.
Cuánto cuesta
Todo lo que un motor general te da gratis, no lo teníamos. No había editor maduro, ni canalización de recursos, ni ecosistema de complementos de terceros, ni una gran cantidad de desarrolladores que ya conocieran las herramientas.
Eso es un impuesto real y continuo, y es la razón por la que esto no es un consejo general. Lo tomamos porque la alternativa era peor para nuestro caso específico, no porque construir un motor sea ingenioso.
Si fue correcto
Mayormente sí, con una salvedad.
La sala de juegos envió cinco títulos en un trimestre y los juegos se abrieron lo suficientemente rápido como para competir con el feed, que es el resultado para el que estaba destinado todo el ejercicio. Los títulos posteriores aterrizaron sin re-arquitectura. En el hardware antiguo, donde en realidad está gran parte de nuestra audiencia, se comportó.
La advertencia es el talento. Cada desarrollador que trabaja en nuestros juegos aprende un sistema que no existe en ningún otro lugar, y eso ha ralentizado la contratación de una manera que subestimamos en 2022. Si volviéramos a elegir con las mismas restricciones probablemente tomaríamos la misma decisión, y presupuestaríamos ese costo honestamente en lugar de descubrirlo.
La prueba que aplicaríamos
La pregunta no es "¿podríamos construir la nuestra?" — un equipo competente puede construir casi cualquier cosa y por eso la pregunta es inútil.
Es: ¿puedes nombrar la propiedad específica que necesitas que la opción lista no pueda darte, en una oración, sin usar las palabras flexibilidad o control?
Nuestro caso era que un juego tenía que abrirse desde un toque dentro de una aplicación social React Native, en menos de un segundo, en un Android de gama media de cuatro años, mientras una tubería de video ya estaba residente. Esa es una restricción real con un número real en ella.
Si la respuesta es más vaga que eso, la conclusión honesta es que quieres construir un motor, lo cual es algo diferente a necesitar uno — y considerablemente más caro de lo que parece en el primer título.
Abrir DeHub