En el último festival IT de Tech Train, conocimos al legendario John Romero, quien participó en el diseño y desarrollo del icónico Wolfenstein 3D, Doom and Quake. Hablamos sobre si los desarrolladores de juegos necesitan habilidades blandas, qué herramientas de trabajo vale la pena prestar atención y a qué cofundador de Id Software tiene sus juguetes favoritos. Nikita Tsaplin, la fundadora de RUVDS, hizo preguntas.
→ Versión en inglés de texto y video
aquí
Nikita Tsaplin - fundadora de RUVDSEn una entrevista, usted dijo que en 2001 estaba mirando un código antiguo escrito en 1991 y no encontré ningún uso práctico para él. Pero después de un tiempo, volviendo al código escrito en el número dos mil, lo calificó como "no está mal". ¿Cómo se rastrea la calidad del código?
John Romero - Programador, diseñador y cofundador de ID SoftwareEn 1991, al menos la mitad del código estaba escrito en Assembler, y recién comenzaba a programar en C y era solo un principiante. Así que volver a él después de diez años de programación activa en C fue horrible.
Dime, ¿cómo cambiaron los criterios de selección con el tiempo? ¿Cuál permaneció sin cambios?
El entorno en el que se ejecutó el código ha cambiado por completo. Escrito en 1991 se lanzó en DOS, y el código de 2001 funcionó en Windows.
Entonces, ¿esto se debió a una actualización de la plataforma?
Un ambiente completamente nuevo. Si
¿Puede hablar sobre los criterios principales por los cuales evalúa su código?
Criterios clave: ¿es fácil leer el código? Esto es muy importante
¿Hay algún comentario escrito? Ir por la borda con esto no vale la pena, rápidamente se vuelve aburrido. Pero es importante comentar las partes y secciones complejas del código, y su estructura en su conjunto es comprensible y se complementa fácilmente.
¿Qué habilidades debe tener un desarrollador para unirse a la industria del juego?
Debes tener un fuerte deseo de crear juegos. Porque es difícil terminar el juego, es un trabajo minucioso. No importa en qué parte trabajes, te llevará mucho más tiempo del que imaginaste. Debe estar preparado para una larga concentración de atención en una tarea específica.
¿Escuché que los desarrolladores ahora más que nunca necesitan dominar las "habilidades suaves"? ¿Es eso cierto?
Si Debido a que ahora todos se unen, cuando trabajan juntos, deben ser empáticos entre sí.
Interactuar?
Si
¿Tienes mucha experiencia con esto?
Tienes que acostumbrarte, y a los programadores no les gusta hablar. Solo quieren codificar. Es importante entender cómo limitar el tiempo que toma de la programación de personas, solo para una conversación corta. Pero hoy en día, ¿por qué no usar Slack y comunicarse a través de él? Esto es más conveniente y más rápido que quitarse los auriculares, levantarse y hablar con alguien al otro lado de la oficina. Entonces preferimos Slack.
Sí, la gente quiere espacio y comunicarse a través de mensajeros.
Especialmente si usas auriculares, sí.
¿Qué habilidades blandas crees que son las más importantes?
Creo que la interacción es mucho más importante que otras habilidades. Siempre ha sido así. Si las personas que te rodean no saben lo que estás haciendo, o no sabes lo que está sucediendo, puedes perder mucho tiempo y dinero, porque estabas ocupado con lo incorrecto.
Entonces, la comunicación es una de las cosas más importantes que puede hacer. Todos deben saber cómo y qué debe hacer exactamente. Incluso si realizó un trabajo en un fragmento en particular, la parte más importante es cómo lo presenta. No solo: "Está bien, lo haré ..." Sería más correcto decir: “Haré esto y esto de esta manera. ¿Estás de acuerdo?
Entonces, ¿la parte más importante en cada etapa del desarrollo es la comunicación?
Si

Hace unos meses, hablamos con Richard Gray en Moscú. Y sugirió que la mejor manera para que los desarrolladores se establezcan en la industria del juego es hacer algo con sus propias manos. Pero, por otro lado, dijiste que crear un nivel de juego como Doom in Sigil es una tarea extremadamente difícil. Las herramientas modernas son demasiado complejas y en capas para crear un boceto para una cartera. ¿Cómo encontrar un término medio?
Esto es verdad Los motores modernos tomarán mucho tiempo para crear un nivel.
Todo está lejos de ser tan simple como era antes. Ahora lleva mucho tiempo. Hoy, muchas personas están involucradas en el desarrollo. El personal individual es responsable de la iluminación en los niveles. Y hay diseñadores de juegos que establecen límites, artistas con arte conceptual. Están trabajando en un estilo visual de juego. Todavía necesito verificar el trabajo de los sombreadores.
Me parece que ahora es casi imposible establecer un nivel solo para una cartera, si es necesario.
En general, esto es posible, pero lleva mucho tiempo. Hay un gran ejemplo en YouTube. Si usa Anrial y desea comprender exactamente qué consiste en la secuencia de crear un nivel solo, hay instrucciones para esto. Un chico grabó un video de 30 minutos, donde muestra la creación de un corredor durante 10 horas. Dura solo treinta minutos, pero juega a alta velocidad, suficiente para ver todos los pasos para trabajar en el corredor. ¡Diez en punto! Los juegos de hoy consumen mucho tiempo.
¿Qué estrategia crees que los desarrolladores deberían seguir para comenzar una carrera?
La mejor opción es aprender la mayor cantidad de material posible en casa. Ya sabes, puedes ir a la escuela y aprender en ella, lo que te dará sus ventajas en forma de diploma y otras cosas. Pero aprendes mucho más haciendo en casa. Entonces el trabajo irá más rápido y aprenderá exactamente lo que quiere.
Algunos dicen que los programadores que usan marcos estándar no tienen idea de cómo funciona internamente. ¿Esto hace alguna diferencia? ¿Comprende cómo funciona el marco utilizado?
Si, y genial. Esto es de ayuda. Supongamos que un programador junior usa frameworks. Los programadores experimentados saben cómo funcionan. Esto significa que si es necesario, pueden construirlo, porque conocen los detalles del trabajo de principio a fin, ¿verdad? Y esto es muy útil, porque los marcos se pueden usar de manera muy ineficiente, sin conocer la estructura interna, lo que causa pérdidas de rendimiento significativas.
Una cuestión de flexibilidad. Después de todo, puede combinar marcos si sabe cómo.
Por supuesto, todo debe combinarse para que funcione, pero esto no significa que la optimización sea óptima. Esto no garantiza el conocimiento del software. Especialmente cuando se trata de bases de datos. Puede escribir la información o el código mismo para que la base de datos funcione, lo que funcionará terriblemente. Y sentirás que todo está en orden, porque el conjunto de comandos es correcto, pero si no sabes cómo InnoDB los usa en su trabajo y cómo los interpretan, entonces olvídalo. Deberá contratar a un consultor que vendrá y corregirá el trabajo.
Otro tema interesante es Agile. En libros y artículos, el desarrollador de juegos está lleno de romance e imprevisibilidad. Es en este contexto que Agile sería útil. Ágil y tal vez otros enfoques?
Solo ágil, pero no en una forma dura e inviolable. Utilizamos "marcadores" para ciertos períodos durante los cuales debe entregar el material. Este es un período de tiempo grande y cómodo. Aproximadamente tres veces más de lo esperado por Agile. Alrededor de seis semanas en lugar de dos. Esta es una brecha muy conveniente y cómoda en la que se pueden resolver muchos problemas. También hay préstamos del estilo Kanban ... Quizás porque no todas las tareas deben completarse en seis semanas, algunas de las tareas aún permanecen en el trabajo y no pueden completarse en la fecha límite. Como resultado, verificamos los resultados del trabajo y no posponemos los procesos inacabados al siguiente "marcador".
Aquí estamos hablando más sobre la compilación correcta de una lista de oportunidades y tareas que deben completarse que seguir ciegamente el principio de la fecha límite. Si lleva a cabo su tarea, excelente, si no, la pregunta se pospone al siguiente "marcador".
Posteriormente, esta estrategia se convierte en un ejercicio para reevaluar las prioridades. Si algo lleva mucho tiempo, hágalo de manera diferente. Simplifique y recorte lo necesario para resolver la tarea. O simplemente cambia si ha pasado mucho tiempo.
Para resumir, ¿necesita comprender cómo funcionan los procesos y combinar diferentes enfoques?
Si
¿Puedes comparar cómo se organizaron los procesos de desarrollo en los estudios de juegos ahora y, por ejemplo, en los años noventa o dos milésimas?
Depende más del número de personas en el equipo. Quiero decir, siempre dependía del tamaño del personal. Incluso ahora, si solo tuviera un equipo de cuatro, se habría desarrollado con el mismo estilo que nosotros en la década de 1990 con la misma composición. Porque el equipo es tan pequeño que las personas conocen su papel en el equipo y se comunican estrechamente entre sí. Porque lo más probable es que trabajen en la misma habitación.
Un pequeño equipo también trabaja en mi empresa RUVDS, y no necesitamos una comunicación formal constante.
Exactamente Esto no es necesario La misma situación fue en la década de 1990. Simplemente, todo lo que escribe cambia debido al desarrollo de plataformas, y los métodos de comunicación y desarrollo siguen siendo los mismos. El diseño que está desarrollando es diferente a medida que el lenguaje de diseño evolucionó a partir de los años 80. Lo que diseña es diferente, pero la forma en que desarrolla el producto sigue siendo la misma.
¿Hay cosas que se vuelven más fáciles o más difíciles de desarrollar con el tiempo? Y por que
Existen muchas herramientas útiles que facilitan la creación de juegos. Se hace más difícil escribir un buen diseño. Es difícil tener una buena idea para un juego. Puede tener el mejor programador del juego que escribirá un juego desagradable y nadie lo jugará. La habilidad del programador no afecta esto.
¿Entonces el diseño del juego es lo primero?
Esto es lo más importante. Si tienes un gran diseñador de juegos en el personal que está un poco versado en programación, te arriesgas a abrir un nuevo género para juegos. Tendrás un gran juego. Por lo tanto, el diseño del juego es más importante que cualquier otra cosa.
Volviendo a TechTrain. ¿A dónde lleva este tren la industria del juego?
Diría que los juegos de Realidad Aumentada (AR) son un segmento muy inspirador. Este es un nuevo espacio para el pensamiento y hay mucho dinero. No tanto como la realidad virtual cuando todos invirtieron en ella, pero ...
Pero la realidad virtual no duró mucho.
Sí, no aguantó. La realidad virtual es mejor en aplicaciones que no son de juegos. Ella tiene buenas ideas, pero el principal obstáculo para el éxito de la realidad virtual fue la fatiga. La gente se cansa demasiado rápido mientras juega. Ya sabes, la gente ya no salta sobre sus almohadillas Wee. Solo están cansados. Y ya no quieren hacer esto. Y la realidad virtual es difícil de usar.
¿Has tenido realidad aumentada o experiencia en desarrollo de realidad virtual?
No he hecho nada relacionado con AR, pero realmente me gustan sus características. Si miras de cerca los juegos de Lego o Minecraft-Earth, entonces AR tiene un gran potencial, todos comienzan a experimentar con él, y a los clientes les gusta. Pokemon Go ha demostrado a todos que hay un montón de dinero en potencial de RA. No reemplaza consolas, teléfonos inteligentes, es un nuevo segmento y tecnología.
Parece que todos saben lo nueva que es la tecnología, pero no entienden cómo usarla.
En realidad no, ya se ha creado una API para ella. Apple ha desarrollado un kit de AR, y eso está bien. No hicieron un paquete similar para la realidad virtual, conscientemente. Lo desarrollaron para AR porque saben que funcionará. Usar AR emparejado con Swift 5 puede hacer muchas cosas geniales.
¿Qué opinas de los juegos móviles?
Bueno, Sigil se lanza en teléfonos inteligentes.
Me parece que lanzamos Sigil en una gran cantidad de dispositivos. Cantidad loca. Ya sabes, en Instagram y Twitter, hay tantos dispositivos que ejecutan Sigil. La gente continúa subiendo capturas de pantalla.
Pero ... ¿terminaron de construirlo por su cuenta? ¿Sigil fue producido para teléfonos inteligentes?
Bueno ... Fue lanzado en la plataforma Android. Puedes descargar Doom soportando mods. Sigil también se puede jugar en Xbox. Puede usar Automechs: este es Doom con código abierto y soporte para modificaciones, luego puede instalar Sigil en Xbox y jugarlo con calma.
Derecho ¿Alguna vez has pensado en lanzar un juego Battle-Royale en el universo Doom? Algo como Fortnite?
Creo que eso sería gracioso. No lo haré Pero sería realmente divertido si alguien más lo hiciera. Battle Royale es solo un marco con su propio conjunto de reglas basadas en cualquier juego. Por ejemplo, el mismo Fortnite. Ella no era un juego de Battle Royale. Pero se convirtió en una cuando vio PUBG y agarró su pieza.

Se puede poner en marcha con cualquier universo. Pero los videojuegos diseñados específicamente para este modo funcionan mejor de todos modos. Todavía hay muchos juegos similares que experimentan con la mecánica del juego. Por ejemplo, mientras juegas y haces todo, extraes recursos, por ejemplo ... Excavando y el círculo se estrecha, ¿entiendes?
Si
¡Y la gente te dispara mientras cavas! ¡Y necesitas minar para recolectar artículos!
Si! Buena comparación! ¿Qué géneros de juegos crees que serán obsoletos en el futuro?
Actualmente ninguno de ellos. Quiero decir, el único género que queda son las búsquedas de texto, pero todavía hay juegos de aventuras. Por ejemplo, las misiones ordinarias se convirtieron en juegos de aventuras místicas y, al mismo tiempo, en una gran cantidad de juegos casuales. Dondequiera que se vendan juegos, especialmente en teléfonos móviles, puedes notar una gran variedad de géneros. Y las personas que creen que las misiones, o cualquier otra cosa, se han ido para siempre, en los años 90 o 2000, solo tienen que ir al "rack de discos" para ver todos los juegos de aventuras. Tales juegos se venden maravillosamente a mujeres mayores, y les gustan. El mercado del juego ahora es ilimitado entre los 18 y los 25 años, o 35. El esta en todas partes.
Sin embargo, ahora es muy probable que las estrategias estén lejos de ser tan populares como antes. Me parece que algunos géneros desaparecerán de todos modos.
Oh, definitivamente no se perderán. Ahora lanzan muchas estrategias. Quiero decir, desarrollamos estrategias porque son interesantes. Por ejemplo, hay compañías como Paradox Interactive, que tienen su propio nicho entre los fanáticos que consisten en jugadores especialmente hardcore que aman sus juegos por cómo están hechos. Por llenar los juegos, por lo complicados que son. Y definitivamente sobrevivirán. A la gente le gusta jugar Age of Empires Definitive Edition, que se lanzó recientemente. Y este es un juego de novecientos noventa ... ¿Octavo? Parece que? Si Y esta es una estrategia.
Una de mis estrategias favoritas. Si
Si No irán a ninguna parte. RTSki, en el sentido. La misma civilización. Todos estos juegos están disponibles, mientras continúan siendo desarrollados.
¿Cuál es el secreto para crear un juego exitoso? ¿Importa utilizar la última tecnología?
Bueno, eso ayuda. La tecnología avanzada ayuda. Pero el buen diseño del juego es la razón por la que la gente juega. No lo juegan por el motor. ¿Quieres jugar el juego porque está hecho en Unreal? No, apenas Lo juegas por el diseño y las ideas del juego, cómo se ve y qué te dice sobre lo que puedes hacer en él. Todos estos son aspectos del diseño.
¿Cuáles son tus herramientas o soluciones de desarrollo favoritas para juegos? ¿Por el momento y para toda tu carrera?
Para el flujo de trabajo y la productividad general: Slack es excelente. Para el sistema de tickets usamos Assembla, pero Jira también es excelente. Utilizamos Perforce para controlar las licencias debido a la alta velocidad. Estos son nuestros principales programas que todos usan en nuestro estudio. Para el departamento creativo, es Photoshop, Maya, y si conoces SyncScetch, es otra gran herramienta ... Shotgun es ideal para el flujo de trabajo. Del lado de los desarrolladores, utilizamos Unity y VSCode, tanto para Mac como para PC, para realizar ediciones. Y eso es todo, en general.
Para las tablas de diseño y cálculo, a menudo utilizamos Google Tables. Algunas herramientas leen información de las tablas de Google en la red y vuelven al juego.
En su mayor parte, este es un software de Google. Utilizamos presentaciones para documentos de diseño y tablas de Google para la mayoría de la información. Para juegos ... En el sistema de lanzamiento de botín, por ejemplo, pero no importa.
Creo que a todos les gustaría saber ... ¿Qué tipo de juego recomendaría el propio John Romero?
Hitman 2.

Hitman? Derecho?
Hitman 2.
¡Uno de mis juegos favoritos!
Impresionante
Y cuando hablaste de jugadores hardcore que quieren desafiar el juego, ¡pensé en Hitman!
Si!
Como tiene su propio nicho de maníacos, eso ...
Si Estos desafíos
... Elimina los puntos máximos en niveles difíciles.
Artesanía y desafíos locos.
Los adoro
Genial
Si si. Revisé todas las partes.
Clase!
Sí, revisé todas las partes pasadas, pero volvieron a lanzar el juego en 2016 y crearon absolutamente ... Simplemente el mejor diseño del mundo.
Si
Espero con ansias el lanzamiento de Ghost Recon: Breakpoint. Fuertemente Y claro ... no puedo esperar. Será genial Me encanta Ghost Recon. Me encanta el juego original, no soy fanático de GRAW, pero sé que ... logré jugar una nueva parte, y ahora no puedo esperar al lanzamiento.
Ya sabes, están saliendo grandes juegos, pero algunos de ellos tardan demasiado en profundizar después del trabajo.
Si
Estás demasiado cansado para entender.
Si quiero jugar ...
Toda esta mecánica ...
Si si. Como "¿Necesito recordar todo de nuevo?" Pero ... el mismo World of Warcraft era el mismo. Hay muchos equipos, muchas misiones, juegos de motivación personal, por ejemplo, qué es exactamente lo que quieres hacer en el juego, y si algo sucede, el juego requiere una gran concentración. Y si no necesita esa participación, juega otros juegos que no requieren atención. Los juegos independientes son geniales para tales ocasiones, ya que ahora pasan en unas pocas horas. Por ejemplo, Firewatch y otros proyectos emocionales.
Si si ...
Ya sabes, estos son juegos para un poco de distracción. Y ...
Y Hitman también se les puede atribuir.
Oh si! Hitman tiene razón ...
Especialmente si está familiarizado con la serie y se dice: "Solo quiero probar este desafío". ¿No es así?
Si ...
No tienes que completar toda la misión.
Usualmente te acostumbras en un par de horas. Entonces su lista principal es Hitman, Ghost Recon y ... ¿Quizás el tercero?
Juegos indie. Hay muchos de ellos.
Y ahora recurrimos a un grupo de desarrolladores profesionales en la persona de nuestra audiencia.
Bueno
Echa un vistazo a la cámara y cuéntanos qué te inspira.
Oh Dios ... ¿Qué me inspiró? .. Pacman fue la razón por la que comencé a desarrollar videojuegos. Su diseño, les recuerdo que fue lanzado en 1980, era muy diferente del resto de los juegos de la época.
1980 es "Kill the alien", colores blanco y negro, sonido deficiente.

Con el lanzamiento de Pacman, todo ha cambiado. Era un caminante inofensivo, un diseño absolutamente completo y perfecto, que era difícil de creer, y me mostró que el diseño del juego no tiene límites. Hay tantas cosas que me inspiró a crear juegos.
Los buenos consejos tampoco serán superfluos para aquellos que deseen unirse a la industria del juego.
Comience con juegos simples, sin dispersión. No intentes hacer algo grande al principio. Escriba un concepto simple, intente implementarlo y termínelo hasta el final. Descubrirá lo difícil que es completar el proyecto y seguirá las ambiciones.
En la Wikipedia rusa, estás registrado como John Romero. Pero leí que tu verdadero nombre es Alfonso.
Si Alfonso.
Entonces, ¿por qué te llamas John?
Porque el nombre de mi padre también es Alfonso, y si dijeras "¡Al!" - Ambos responderíamos. Mi madre decidió llamarme John, porque mi padre ya era Al. Ahora todos me conocen, como John.
Bien, entonces esto es de la infancia.
Sí, esto es de la infancia. Mi madre me llamó Johnny.
Gracias por la entrevista! Estaré encantado de verte de nuevo en Rusia.
Clase! Definitivamente nos encontraremos en TechTrain.
¡En TechTrain y también en la oficina de nuestro equipo RUVDS!
Genial
Muchas gracias
Si gracias!

PD Y el último consejo de John Romero:
La manera de mantener el nivel de errores en un nivel bajo es escribir algunas líneas de código de trabajo y luego probarlas.
Échales un vistazo hasta el más mínimo detalle. Asegúrate de que todo funcione. Luego escriba algunas líneas más haciendo algo. Repita la prueba cada vez, construyendo el código en pasos. No debe trabajar durante media hora y luego probar el código. Estará lleno de errores. Simplemente escriba algunas líneas y vea si funcionan. Entonces harás un código muy estable.