La publicación del código VVVVVV mostró cuán groseros son los juegos dentro

imagen

La semana pasada, el creador de Dicey Dungeons , Terry Cavana, celebró el décimo aniversario de su antiguo juego VVVVVV , al publicar su código fuente [ traducción en Habré]. Simplemente explicado, significa que ahora cualquiera puede ver cómo se creó el juego, porque cada línea de código puede estudiarse cuidadosamente.

Esto rara vez ocurre y, por lo tanto, el valor de publicar esta información es muy alto. Las personas pueden aprender de él o mejorar el código. Algunas revisiones del código fuente de VVVVVV fueron terribles: los investigadores vieron cosas que podrían escribirse mejor. Quizás Cavana previó esto: en su publicación donde anunció la publicación del código, Terry admite que “técnicamente, ¡el juego VVVVVV no está muy bien pensado! Incluso para los estándares de los desarrolladores autodidactas independientes, el código es bastante caótico ".

Existe la idea errónea de que escribir código es elegante y reflexivo en sí mismo, porque al final, esto es una especie de lógica de escritura, ¿no es así? No es de extrañar que se llame informática. Pero en realidad, todo es mucho más complicado. Muy a menudo, las historias de desarrollo de videojuegos muestran que, dado que hay tantos elementos en los juegos, desde el diseño del juego hasta el sonido, a menudo se agrupan en un solo conjunto en el último momento , si es que alguna vez lo hacen .


“Hay un nombre para los juegos en los que el código apenas está conectado, tiene una arquitectura estúpida, en la que los errores son casi imposibles de corregir, y las muletas se apilan en las bicicletas. Se llaman "juegos lanzados".

"Casi todos los juegos en los que trabajé se lanzaron en el mismo momento en que el estiércol y los palos que evitaban que todo el edificio fuera destruido estaban al borde del desastre", escribió el desarrollador James Patton en una discusión sobre el código del juego en Twitter .

Casi todos los desarrolladores con los que hablé dicen lo mismo.

"Los juegos no son un software ordinario, sino un mecanismo complejo, cuya publicación exitosa requiere el conocimiento de muchas disciplinas y, a menudo, para cumplir con la fecha límite, debes hacer sacrificios", escribió el desarrollador del juego James Simpson en una carta. “Conozco a muchos desarrolladores que intentan perfeccionar su código. Este ejemplo de código fuente abierto muestra que puedes lanzar un juego con éxito sin alcanzar ese nivel de excelencia ".

En el caso de VVVVVV, un fragmento separado del código fuente provocó una discusión extensa, que tiene una estructura muy caótica. De hecho, ayuda a determinar el estado del juego: por ejemplo, en una escena o parte de un diálogo. En una situación normal, muchos de estos estados se agrupan por separado: el código de los minijuegos se escribe por separado de, por ejemplo, la mecánica del salto, pero no en el caso de este juego. Por ejemplo, en el código Cavan, los estados de juego asociados con las escenas de corte se encuentran dispersos en diferentes partes del programa y se mezclan con elementos como los modos de juego y el menú principal.


Hoy, el videojuego VVVVVV se mudó a #OpenSource y alguien descubrió una construcción de varios cientos de interruptores en el código. #programación Esto es hermoso y asqueroso.

Zack Gage, quien trabajó en juegos móviles como Pocket-Run Pool y Really Bad Chess , desmanteló este diseño de interruptor infame para nosotros, diciendo que "este es un gran ejemplo de lo que Terry probablemente no sabía cuando comenzó a escribir el juego". "cuántas escenas se incluirán, cómo funcionará el menú principal y cuántos posibles estados finales extraños de modos extraños pueden surgir".

Si Cavana quería que el código fuera perfecto, podría dejar de hacer tales cambios y organizar mejor el código. Pero en cambio, decidió seguir adelante y hacer lo que sucedió, obligando a una pieza gigantesca de código a administrar cientos de opciones diferentes.

"En lugar de dar un paso atrás y organizar todo, Terry probablemente pensó en algo como" Sí, solo agregaré estados a la gran declaración de cambio cada vez que necesite algo nuevo ". Esto es 100% normal y esencialmente necesario para el lanzamiento del juego ".

Gage está muy cerca de esa forma de pensar: nos dijo que, mirando al desarrollo del juego Ridiculous Fishing , "literalmente no entiende cómo funciona el código, porque está muy mal escrito". Incluso otros miembros del equipo no entienden completamente cómo funciona su juego.

¿Pero sabes que? Ridiculous Fishing todavía recibió varios premios y ganó casi un millón de dólares durante varios meses . Obviamente, los desarrolladores deben eliminar los errores que rompen el juego y todo lo que pueda interferir para que el jugador disfrute del juego, pero, como dicen, lo mejor es enemigo de lo bueno.

"Las partes no planificadas siempre aparecerán, y si vuelves a organizar el código, significa que perderás el tiempo que puedes pasar escribiendo nuevo código, agregando nuevas características o dibujando arte", dice Gage.

Pero a pesar de todo el esnobismo causado en las redes sociales por el juego VVVVVV , Cavana no parece perder su sentido del humor y bromas al respecto.


Cada captura de pantalla que vi de defectos terribles en el código fuente VVVVVV solo me hace más fuerte.

"No sé qué decir sobre esto", escribió en una publicación sobre la publicación del código fuente. “Era joven, y fue más interesante para mí crear algo en la pantalla que implementarlo correctamente. Probablemente lo mejor del código fuente VVVVVV es que ha demostrado que puedes crear algo tú mismo, incluso si no eres un buen programador ".



En la serie de traducciones "Trucos sucios en el código del videojuego" se puede encontrar cómo los desarrolladores de juegos resuelven problemas utilizando trucos rápidos:

Trucos sucios en el código del juego

Desarrolladores sobre los trucos de software más sucios en los juegos

Trucos sucios y RAM

Trucos sucios para desarrolladores de videojuegos

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


All Articles