Cómo hicimos el motor y el juego durante un año y medio

Hola a todos, queridos amigos! Aquí me siento, miro la interminable hoja de código, realizo una revisión con un frasco de bu rojo. Ha pasado un año. Un año, maldita sea, solo un año, tantos y tan pocos al mismo tiempo. Teníamos planes napoleónicos para este año, y ahora parece que no teníamos mucho tiempo. Por otro lado, logramos hacer algo que valió la pena para ingresar a los anales de Ayty marcados como "Demencia y coraje". Yo llamaría a esta historia "Cómo cortar su motor con herramientas y renderizar desde cero en solo un año". La publicación se lanzará en varios volúmenes, pero a dónde ir, debe comenzar en alguna parte. ¡Entonces vamos!

Hace exactamente un año, comenzamos con un proyecto, sobre el cual ahora planeo escribir con todo detalle. Desde lo más alto de la experiencia, puedo decir con seguridad: esta es una de las cosas más arriesgadas y ambiciosas que hemos comenzado. Creo que la experiencia de nuestro equipo será útil para otros desarrolladores de juegos, pero al menos divertirá a los jugadores.

Aquí debería presentarme: mi nombre es Ivan, soy el director técnico de una empresa joven pero ambiciosa. Los últimos 5 años he estado desarrollando motores comerciales. En los últimos 7 años trabajó en una gran compañía de juegos, donde trabajó en un motor para un juego multijugador de sesión multiplataforma. Bueno, antes de eso, en todos los lugares de trabajo anteriores, creó motores o todo el juego. Y una aclaración importante: sucedió que casi toda mi experiencia en el desarrollo de motores está relacionada con plataformas móviles.

El primer proyecto en el que participé fue desarrollar un motor 3D compatible con OpenGL para dispositivos móviles para Motorola. Luego estaba el motor de los juegos casuales, donde nuestros clientes eran Electronic Arts, Chillingo, Big Fish Games y otras compañías eminentes y no muy eminentes. Posteriormente, este motor se utilizó en un gran proyecto de juego.

En general, el motor en el que trabajé ha evolucionado a lo largo de los años. Era una tecnología de código abierto, y comenzamos a desarrollarla cuando la compañía bajo cuyos auspicios hicimos juegos para nuestros clientes todavía era bastante pequeña. Continuamos terminándolo, como resultado lanzamos uno de los primeros juegos de disparos MMO en iOS / Android, después de haber hecho una especie de avance en el mercado aún emergente de los tiradores móviles.

Hace aproximadamente un año, tomé mi corazón y decidí dejar la compañía, dejar el proyecto tan querido y querido para ir a nadar gratis. No fue fácil, dudé durante mucho tiempo, pero la experiencia acumulada y el conocimiento adquirido a lo largo de los años de trabajo sugirieron que todo mi equipaje podría empacarse en algo no menos, o tal vez más fresco. Incluso tenía alguna idea de cómo se puede hacer esto, pero no estaba seguro de que pudiéramos hacerlo con la ayuda de un pequeño equipo, de que pudiéramos fabricar tecnología popular y de alta calidad en el mercado en poco tiempo. Pero, como saben, la fortuna favorece a los valientes, y lo logramos. Rápidamente, reunimos un equipo de profesionales, impulsados ​​por un deseo común: crear una tecnología nueva y completamente única que muestre al mercado cómo aprovechar al máximo el hierro de los dispositivos móviles modernos.

Y aquí comenzó la diversión. Dentro de un mes de la existencia de nuestro inicio de juego, se formó un plan. Algo completamente nuevo y completamente único, superando todas las soluciones existentes. Suena muy ambicioso y genial, ¿verdad? ¡Así es! Pero había riesgos. Nos propusimos un objetivo: hacer realidad nuestra idea más inmoderable en solo un año, y en un año y medio para lanzar nuestro primer juego.

Lo sé, lo sé, en este momento comienza a sonar absurdo. Pero, inesperadamente, esta idea loca en nuestro equipo encontró muchos seguidores (y esto una vez más demostró lo importante que es cuando se trata de convertir montañas para obtener el apoyo de las mismas personas aventureras de ideas afines). Es un pecado esconderse, la idea de apagar su propio motor realmente motiva a los programadores a explotar. Muchos recordaron la larga historia de 4A Games, donde los desarrolladores, después de haber dejado el GSC, crearon desde cero un motor para el aclamado juego de Metro. Me parece que el éxito de los muchachos de 4A motiva a más de un equipo de progreso tal como él nos inspiró.

En general, decidimos. Esta será mi historia En nuestro blog, junto con mis colegas, les diré en qué tormentos nació nuestra tecnología, a través de qué espinas llegamos a las estrellas y por qué tomamos exactamente esas decisiones que finalmente tomamos. Te contaré en orden cronológico la historia del motor Blitz desde el primer día de desarrollo hasta el lanzamiento final. Sin ningún adorno de la cocina interior, solo pura verdad.



La primera pregunta que es probable que se haga es: "¿Por qué no Unity o Unreal?" Bueno, la pregunta es bastante lógica y correcta.

En general, al elegir el motor de ensueño, en el que se hará el juego que ganará millones, todos los desarrolladores independientes finalmente tendrán que elegir: Unity o Unreal. En realidad, ambos tienen sus pros y sus contras, pero ¿por qué no nos convenían?

Comencemos con la Unidad. Hay algunas preguntas, con la excepción de una: es C #, y estamos aserrando en C ++. En consecuencia, la Unidad desaparece. Si desea asesorarnos sobre Unity, porque es una tecnología excelente que le permite escribir en C ++ con un gran deseo, seamos honestos: no es C ++ completo. Y no somos desarrolladores de C # y aún no planeamos convertirnos en ellos. El segundo problema es que, a pesar de los esfuerzos de los desarrolladores de Unity, no es la tecnología más rápida en términos de rendimiento. Las decisiones tomadas imponen restricciones, incluso en el desempeño.

Irreal - parece, tanto en ++, y los chicos escribieron sensata. Pero el motor comenzó a escribirse hace unos 10 años. Las soluciones arquitectónicas que se utilizan allí son soluciones de vanguardia de ese período. Pero el mundo ha cambiado, y en 10 años han aparecido muchas ideas nuevas y progresivas. Tal vez no sea tan original para escribir UE5, pero lo suficiente como para hacer un avance decente. Decidimos apostar por estas nuevas soluciones y enfoques arquitectónicos.

"Sí, Unreal Engine es genial, está escrito en C ++ por profesionales", dirá el lector atento. Por supuesto que lo es. Pero permítame recordarle: nuestro objetivo es aprovechar al máximo los dispositivos móviles y hacer avanzar la industria. Unreal Engine es un motor de propósito general, y esto no está mal, le da un plus a la universalidad. Dichas tecnologías están diseñadas para juegos de diferentes géneros, y esta ventaja conlleva restricciones arquitectónicas para los desarrolladores del motor. Y al principio, planeamos romper las fronteras y los estereotipos, y no encajar en ellos.

Al final: elija Unidad - elija un entorno que sea ajeno a nosotros, elija Unreal - haga un proyecto promedio.

Todo el mundo sabe que los mejores juegos de disparos modernos para PC están hechos con sus propios motores de estudio. EA tiene DICE y un motor Frostbyte, Activision y Ubisoft tienen sus propias soluciones tecnológicas, 4A Games también construyó su propio motor, id Software tiene id Tech. Los desarrolladores de los mejores tiradores en consolas hacen lo mismo. Sí, por supuesto, el trabajo, el tiempo, el dinero y todo lo demás en esta situación requiere más. Pero, por otro lado, usted tiene control total sobre la tecnología: puede elegir soluciones que serán más rápidas y efectivas que las soluciones preparadas "para todos". Todo el asunto, de hecho, está en la personalización: usted decide lo que es importante para usted y le pone énfasis. Las exclusivas para consolas están diseñadas para exprimir al máximo el hierro voladizo súper potente. ¡Y esto es lo que necesitamos, no solo de las consolas, sino también de los teléfonos celulares!

Pero decidimos pasar de lo opuesto: no intente crear una solución para el hierro de gama alta, sino que primero mire los dispositivos más débiles que definitivamente debemos admitir. Tomamos en cuenta sus características y comenzamos a buscar tecnologías que nos permitieran ejecutar estos dispositivos en alta calidad. Es decir, exprimir un máximo de visual genial de un mínimo de características. Y sí, por supuesto, las soluciones tenían que ser tales que más adelante pudiéramos mejorar fácilmente sin restricciones para dispositivos móviles de alta gama, hasta el nivel de calidad de consola y PC.

Casi todos los shooters móviles modernos se basan en Unity o Unreal. Ya entendió todo acerca de nuestros ambiciosos planes para cambiar la industria, por lo que el hecho de que hayamos decidido introducir innovaciones ya en esta etapa no le sorprenderá. Ignoramos el dilema tradicional de Unity vs Unreal, y comenzamos a cortar nuestro motor.

Para empezar, te mostraré el video. Esto es lo que sucedió en un año. Hicimos todo lo posible para exprimir al máximo los dispositivos móviles y crear un producto que pueda, si no competir con los juegos de escritorio, al menos acercarse a ellos en calidad. En realidad, como ya he dicho, nuestro objetivo principal, no importa cuán patético pueda sonar, es mejorar los juegos móviles y hacer avanzar la industria.


Existe tal regla "conoce tu hardware". Su importancia es difícil de sobreestimar. A menudo hemos visto cómo los mejores equipos hacen algo imposible para las consolas, porque saben de qué construir y deciden de antemano que intentarán superarlo. Siempre quisimos hacer tiradores, pero evaluamos seriamente nuestras fortalezas: hoy el mercado de tiradores en consolas y PC es enorme y está lleno de productos de alta calidad. Al mismo tiempo, el mercado móvil está privado de atención inmerecidamente, aunque se puede hacer mucho allí. En general, todo salió bien: decidimos rectificar la situación.

Resumiendo, hemos formado esta dirección general:

  • Tecnología propia
  • Nivel de calidad de la consola en plataformas móviles.
  • El foco principal está en los tiradores
  • Motor de red de juegos de sesión
  • Infraestructura para operar el juego
  • Y, de hecho, un juego genial.

Planeamos implementar todo esto en 1,5 años.

Naturalmente, de nuestros colegas en el taller, escuchamos constantemente que hacer su propio motor con Unity e Unreal es demencia (y sin mucho coraje). Nos ofrecieron una gran cantidad de soluciones preparadas en las que alguien ya estaba haciendo algo. Pero teníamos una opinión completamente diferente. Decidimos intentarlo, y ahora puedo decir con orgullo que nos está yendo bien. El motor ya está allí, y es muy prometedor. Exactamente como queríamos. Estamos trabajando activamente en nuestro nuevo juego, planeamos lanzarlo ya este año.

No me esconderé, la gente todavía es escéptica de nuestra idea cuando, cuando nos encontramos, compartimos nuestros planes. Pero todo cambia cuando sacamos el iPad y mostramos las mejores prácticas y avances. La gente entiende de qué se trataba. Mostramos el horario de nuestro juego en las entrevistas de los nuevos empleados, y ellos no creen que este sea un producto para teléfonos móviles. A veces especifican tres veces si estamos bromeando. Un producto revolucionario requiere soluciones innovadoras. Sí, este año fue difícil, tuvimos que trabajar mucho. Pero ahora tenemos un motor revolucionario, un excelente juego BattlePrime y una historia divertida que será interesante para muchos desarrolladores.


Por lo general, después de ver este video, nos dicen que no creen. Lo cual es probable en la versión final, todo será diferente. En general, no es habitual en nuestra industria confiar en los trailers ... Pero realmente lo crees. ¡Y cuéntanos en los comentarios cómo estás!

Queremos contar cómo desarrollamos el motor Blitz, y para esto publicaré una serie de artículos sobre el año de nuestro desarrollo.

La segunda parte: habr.com/en/post/465343

Source: https://habr.com/ru/post/461623/


All Articles