Donkey Kong y yo
En el otoño de 1981, ingresé a la universidad y me volví adicto a los juegos Centipede y Tempest en las máquinas recreativas Atari. Conocía un poco el hardware de las computadoras personales Atari 400/800 y decidí hacer una compra devastadora para el presupuesto estudiantil: Atari 400 y un televisor en blanco y negro (no podía pagar el color). Después de haber jugado lo suficiente con Basic, compré un cartucho con Assembler / Editor y comencé a estudiar el clon de Centipede. No tuve la oportunidad de confiar en la experiencia de proyectos de juegos anteriores y tuve que entender todo por mi cuenta. Al igual que con las tareas escolares: necesita encontrar una solución utilizando solo pequeños consejos de libros de texto y conferencias.
¡Todos los que trabajaron con Asm / Editor probablemente tengan las mismas profundas cicatrices emocionales en sí mismo como yo! El editor era increíblemente lento, el depurador se estaba secando y tuve que eliminar comentarios y usar superposiciones en un par de kilobytes ( no había muchas RAM y todas las variables no encajaban, por lo que se utilizó la técnica de superposición: se colocaron diferentes grupos de variables en las mismas direcciones. Está claro que al mismo tiempo, no se podían usar variables de diferentes secciones, y no solo variables con la misma dirección, sino generalmente variables de diferentes secciones superpuestas.) para ajustar todo el código. La creación del juego, que llamé Myriapede, tardó tres meses. Todavía tengo bocetos y bocetos: papel cuadriculado, rayado con plumas de colores y con valores de color hexadecimales, cuidadosamente escritos en los campos. Elegí colores al azar: solo tenía una pantalla barata en blanco y negro, y fui a visitar a mi amigo durante un par de horas para verificar y ajustar los valores de color en su televisor.Atari Program Exchange (editor de bolsillo) ha anunciado una competencia con un gran premio de $ 25,000. A lo largo del semestre, me salté las clases universitarias y estudié solo Myriapede. Terminé el juego con un margen de una semana o dos y lo envié a la competencia.Unas semanas más tarde, llegó una carta de Atari en la que informaban: en primer lugar, estaban muy impresionados con mi trabajo, pero en segundo lugar, era muy similar a Centipede (bueno, sí, eso fue) y, por lo tanto, se ven obligados a rechazarlo. El subtexto era que probablemente me demandarían si intentaba vender el juego. Estaba aplastado Cerrando este tema para sí mismo, llevó un par de copias al grupo de pasatiempos local. Creo que el juego se extendió desde allí, y escuché que a la gente le gustó ("el mejor programa de 1982" o algo así).
Algún tiempo después, recibí una llamada de Atari: me invitaron a una entrevista. Estaba conmocionado por la emoción. Volé hacia ellos y les mostré a cada entrevistador Myriapede. Y siempre en este lugar la conversación se congelaba. Antes del comienzo del juego, simplemente me mostraron atención: "está bien, tú escribiste el juego", pero después del comienzo se involucraron en el proceso y les recordé que en realidad estábamos en la entrevista. Uno de los entrevistados fue el autor del ciempiés original e inmediatamente dijo en el acto que mi versión es mejor.Una oferta de trabajo llegó en un par de semanas. Atari se comprometió a transportar toda mi basura que ocupaba toda la habitación a California. Y volé de inmediato y pasé dos semanas en el hotel, mientras esperaba la llegada de mis cosas. ¡La compañía realmente quería atraparme!En ese momento, había dos juegos de máquinas recreativas populares que simplemente no podía soportar: Zaxxon, un tirador de desplazamiento tonto y aburrido, y Donkey Kong: ruidoso, sin sentido y molesto. Y, por supuesto, ¡la razón por la que me necesitaban en California era portar a Donkey Kong! Después de pasar por episodios de desesperanza (y fingir entusiasmo por los jefes), apreté los dientes hasta chirriar, tomé un tubo de monedas y pasé mucho tiempo frente a una pequeña máquina arcade en el hotel, jugando DK para aprender este juego muy, muy bien.
Aquí es necesario explicar cómo funcionaba el departamento para portar juegos desde máquinas arcade en Atari. En esencia, los chicos del departamento de marketing acordaron una licencia para distribuir Imenyrek de Igrodel en cartuchos para computadoras Atari. Eso es todo. Ese fue todo el asunto. No tuvimos la ayuda de los desarrolladores del original. Sin listados, sin conversaciones con ingenieros o documentación del proyecto, nada. De hecho, nos vimos obligados a comprar nuestra propia máquina arcade y aprender a jugar este juego (por cierto, por eso jugué en el hotel, ¡ni siquiera hemos traído nuestra copia del juego!).Así que jugué a Donkey Kong tanto como pude y comencé a superar las ideas. Escribí un documento de diseño de 25-30 páginas en el que el juego se dividió en módulos y el período de desarrollo se estimó en 5 meses (esto fue en noviembre de 1982) y, preocupado, se lo entregué a mi jefe, Ken. ¿Fue el documento lo suficientemente bueno? ¿O me enviarán a empacar sus cosas como diseñador laico y programador aficionado?"Estamos totalmente encantados con sus conocimientos tradicionales", dijo Ken. ¡Y acabo de enumerar los objetos en el juego, escribí un pequeño pseudocódigo para algunos módulos clave del juego y asumí que esto era solo un retraso para este TK! Pero todos alrededor percibieron este documento como completamente terminado. Y parece que solo necesito escribir el código de acuerdo con él. Daba miedo."El departamento de marketing está esperando el juego para Navidad", dijo Ken. Y después de hacer cálculos precisos, fui a la marca de 150 días hábiles. No hubo una sola oportunidad de portar el juego en un par de semanas, pero claramente sentí la presión. Por inactividad (de todas las preocupaciones, solo tenía que buscar un departamento y colocar mis pertenencias a la llegada), pasé casi todo mi tiempo en el trabajo. La primera vez que pasé toda la noche sin dormir, elevando el listón cada vez más alto, para mantener el ritmo del chico de la oficina frente a mí, que también trabajó toda la noche. El comedor proporcionaba tres comidas al día.
Lo mejor es que si te involucras tanto en el proyecto, en algún momento comienza a escribir por sí mismo y simplemente nadas junto a él. Su vida se divide en trabajo y todas las tonterías aburridas: dormir y comer. Sí, sé que suena como el infierno, pero es realmente divertido. Tenía unos 21 años, e incluso si no me hubieran pagado, seguiría haciendo algo similar de forma gratuita.Para el desarrollo cruzado, utilizamos minicomputadoras MV / 8000 de Data General. Sobre la misma máquina, Tracy Kidder escribió el libro Alma de una máquina nueva. A pesar de que no era VAX con Unix a bordo (lo que sería preferible para mí), el entorno seguía siendo bastante conveniente y contenía varias buenas utilidades (¡aunque no había Emacs!). Utilizamos la versión de Atari Macro Assembler portada para MV / 8000, y fue mucho mejor que el ensamblador / editor indescriptiblemente lento en el que escribí Myriapede. Pero tuvimos que cargar todo el código a los sistemas de desarrollo a una velocidad de 9600 baudios, por lo tanto, más cerca de la finalización del proyecto, el tiempo de procesamiento de mis solicitudes al sistema se convirtió en un problema grave, especialmente teniendo en cuenta 40 o 50 de mis colegas con quienes compartí MV / 8000 durante el día .Recordé la computadora central cargada en mi universidad. A menudo me quedaba despierto hasta tarde, y alrededor de las seis de la tarde los autos comenzaron a funcionar bastante rápido (5 minutos para esperar en lugar de aproximadamente una hora).
El primer día de mi llegada a la oficina, después de ponerme al día, encontré el Atari 800 lleno. Rápidamente lo monté, verifiqué que funcionaba y fui a tomar un café.Cuando regresé, la chica del departamento de suministros estaba parada en la puerta. "Wow", jadeó, "ya sabes cómo armar una computadora". Y solo tenía que hacerlo ".Sí, gracias, pero ¿no deberían todos tener esa habilidad aquí? Conectar y configurar Atari no es la tarea más fácil y obvia, pero tampoco es nada difícil.Una campana de alarma ... El primer vecino de la oficina no sabía cómo configurar su computadora. De hecho, no sabía nada, como resultó más tarde. Fue contratado para trabajar en Dig Dug y estaba completamente perdido. Tuve que enseñarle todo, incluida la programación en lenguaje ensamblador, el trabajo del hardware de Atari, cómo descargar información diversa y cómo depurarla. Fue tristeEsta situación pasó por el hilo rojo a través de mi trabajo en Atari. Los principiantes no tenían que saber cómo hacer su trabajo, pero perdí el tiempo ayudando a descubrir cosas que ya deberían saber antes de comenzar a trabajar. Las tácticas de contratación fueron imperfectas.Llevo varios años escribiendo en C y, por lo tanto, desarrollé algo así como un dialecto en C para describir el funcionamiento de los módulos. Al principio, dibujé varias páginas de este pseudo-C de alto nivel, luego pasé medio día "compilándolo" en el ensamblador 6502. ¡A veces resultó que una sección bastante grande de código funcionó la primera vez! Pero en general, fue una experiencia bastante aterradora.Otra experiencia adquirida fue la comprensión de que los comentarios son de alguna manera importantes. Vi fragmentos de código para los sistemas operativos Atari (incluido el código fuente para el sistema operativo 400/800) y fueron bastante claros y hermosos. Pero la mayoría de las fuentes de juegos provenientes del departamento de software de consumo eran terribles, un montón de basura: casi sin comentarios, sin ninguna comprensión de lo que estaba sucediendo. Solo listados que consisten en LDA / STA / ADD, un conjunto de letras y posiblemente una etiqueta aleatoria que tenía un nombre significativo. En otras palabras, ¡código completamente incompatible! En la mayoría de las situaciones para la industria del juego, esto es bastante normal: casi ningún código se ha reutilizado o llevado a las bibliotecas (con la excepción de los procedimientos bien depurados de la unidad Atari Coin-Op que realizan operaciones matemáticas y funcionan con mecanismos de monedas en máquinas recreativas).Creo que DK es el mejor comentado entre todos los productos de consumo lanzados por Atari (Super Pacman es aún más genial, pero no salió a la venta). Los usuarios no ven comentarios, a diferencia de otros ingenieros a quienes les resulta útil estudiar lo que escribiste. Por ejemplo, los saltos de Mario se calculan de acuerdo con las leyes físicas simples del movimiento, y las ecuaciones están escritas en el código fuente, bien formateadas, y siempre puedes rastrear de dónde provienen estas expresiones mágicas en el código. Después del lanzamiento de DK, mi colega recibió una copia del código, pasó una semana leyendo y dijo que estaba sorprendido ("No sé cómo podría imprimirlo todo. ¡No exactamente en cinco meses! Cuando vi el código relacionado con el movimiento, se me cayó la mandíbula) al piso "). Me llevó a la pintura! El código fuente debe servir tanto para entretenimiento como para educación.Donkey Kong salió a la venta a mediados de marzo de 1983. Recuerdo vagamente una pequeña fiesta en el trabajo sobre este tema, pero en ese momento estaba muy contento de que todo hubiera terminado.Detalles tecnicos Kong utiliza el modo gráfico $ E (imagen de 192 líneas por 160 columnas). Cuando se cargó el nivel, el fondo se dibujó una vez. Los barriles y otras criaturas se mostraban a través de xor (tenía un código responsable de construir máscaras y volver a dibujar, pero resultó ser demasiado lento). Mario consistía en varios objetos del juego (creo que había tres de ellos). Los artículos de premio (paraguas, ...) también pertenecían a los objetos del juego. La salida de los gráficos usando xor me molestó, pero la mayoría no se bañó, ¡y algunos pensaron que era genial hacerlo! (al renderizar, el color de píxel de fondo xor está con el color de píxel del objeto, cuando fue necesario eliminar el objeto de esta posición, solo xor o hacia atrás, y se restauró el color de fondo ).Brad Fuller creó todos los sonidos. Mona Lundstrom trabajó en una pieza significativa de diseño gráfico (pero yo rediseñé la mayoría). Otro ingeniero fue responsable de las "escenas cortadas", cuyo código tuve que reescribir completamente (inicialmente quería usar Fort y no entendía que el juego no podía permitir darle la mitad del espacio en el cartucho al intérprete de Fort solo para facilitarle la vida).En su apogeo, DK ocupaba 20 kilobytes, pero era necesario ponerlo a dieta, porque el cartucho contenía 16Kb. Muchas imágenes se han comprimido (tenga en cuenta, por ejemplo, que Kong es simétrico). Al final, consumí solo unos pocos bytes por día, y el juego salió con un margen de quizás una docena de bytes gratis.Dejé a Pascalha, pero ella no merece el esfuerzo de encontrarla. Además, no recuerdo cómo llegar exactamente (algo así como morir en el nivel de "pila de arena" con tres vidas y puntos ganados más de 7000).Ajustando la complejidad, reduje la velocidad del juego y me aseguré de que fuera aceptable. Algunas trayectorias de los objetos son aleatorias, pero limitadas hasta el punto de que aún puedes atravesarlas si eres lo suficientemente rápido.Fui a la primera reunión en el departamento con confianza en el futuro de Atari. Aunque no entendí mucho, la idea principal de la administración era que las ventas se desaceleran, las ganancias se reducen drásticamente y la empresa debe pasar por una reestructuración para seguir siendo rentable.El edificio de enfrente fue la primera señal: Atari lo usó para producir consolas de juegos 2600. Trasladaron la producción al extranjero y despidieron a la mayoría de las personas de la fábrica local.Pequeñas reducciones en el departamento de marketing. Un pequeño grupo portador de 8 programadores conmigo, entre ellos, fue transferido a un pequeño edificio, rezagado bastante lejos de todos los edificios principales de Atari, y en realidad estábamos aislados de lo que estaba sucediendo. Pero incluso desde esa distancia, vimos que las cosas no iban muy bien. La industria del juego era asombrosa y Atari estaba cargando millones de cartuchos sin vender en los vertederos. Todos esos errores, que por el momento estaban cubiertos por un gran éxito, de repente estallaron y golpearon fuertemente a la compañía.Mi colega finalmente se graduó de Robotron. A pedido, hizo tres versiones de la imagen ROM, que diferían en el direccionamiento en la ROM. Desafortunadamente, el departamento de preguntas y respuestas solo pudo verificar 2 de ellos. ¿Adivina qué versión envió Atari a producción y qué versión tenía un error crítico? Vi cómo sufrieron los ingenieros de hierro cuando se dieron cuenta de que una puerta lógica barata podía arreglar el juego. En este caso, solo unos pocos bytes eran incorrectos. Como resultado, Atari arrojó $ 200,000 en cartuchos a la basura.Tenía la sensación de que errores similares ocurrían constantemente. Además, todo esto se complementó con el hecho de que los juegos simplemente no se vendieron. Centrándose en las métricas de tiempo de comercialización, el marketing de Atari obligó a los ingenieros a escribir juegos aburridos sin pulir. ¡Y esta práctica se volvió contra ellos! La gente está cansada de jugar los mismos juegos por viejos motivos.Los despidos y reorganizaciones masivas tuvieron lugar una vez cada pocos meses. Nuestro grupo fue trasladado a la esquina del edificio para Coin-Op: consolidación por el ahorro de costos. Estaba trabajando en Super Pacman en ese momento, pero a nadie le importaba, así que fui de frente al proceso e hice un buen trabajo en el juego.Finalmente, Jack Tramiel compró las piezas de Atari que necesitaba, y me metieron en el Atari ST, pero esa es otra historia. Source: https://habr.com/ru/post/es397971/
All Articles