Hablamos con Troy Miles, el programador de "Neuromancer"

[Troy Miles es orador, autor y desarrollador de software con muchos años de experiencia. Comenzó su carrera escribiendo juegos para Commodore 64, Apple II e IBM PC en el 6502nd x86th Assembler. Dos veces ganador del premio Juego del año. Es autor de jQuery Essentials, así como de una gran cantidad de artículos de revistas y publicaciones en su propio blog. Creador de videos de entrenamiento. Actualmente programando aplicaciones web y móviles en Kelley Blue Book.]


Hola Es posible que me conozca de la serie Reversim Neuromant , donde hablo sobre cómo hacemos ingeniería inversa y portamos un videojuego basado en la novela del mismo nombre de William Gibson . Debido a su contenido, es más bien un spin-off que la siguiente parte numérica: un material independiente que no requiere preparación adicional por parte del lector.


Y comenzó con cómo viiri , con las palabras: “Este es el programador que escribió el Neuromancer. Creo que no le importará responder preguntas ”, me envió un enlace a una cuenta de Twitter de un hombre llamado Troy Miles (en la foto). Luego trabajé en la cuarta parte del ciclo y no le di mucha importancia. Después de pensarlo unas semanas más tarde, la idea de una entrevista con el desarrollador me pareció tan exitosa que inmediatamente le escribí a Troy sobre quiénes somos, qué hacemos y qué queremos de él. La respuesta no tardó en llegar; Troy reaccionó muy favorablemente a nuestro compromiso y aceptó responder mis preguntas.




- Hola, Troy, creo que es hora de comenzar nuestra breve entrevista. Para empezar, quiero que te presentes a mis lectores. Por favor, Troy, cuéntanos sobre los aspectos más destacados de tu carrera profesional.


- Hola a todos, mi nombre es Troy Miles . He estado trabajando como programador desde 1979, luego todavía estaba en la escuela secundaria. Me convertí en el cuarto empleado contratado por Interplay [después de su fundación] en 1983. Eran buenos tiempos y muchachos geniales. Escribí Neuromancer , El señor de los anillos , y ayudé con el desarrollo de muchos otros juegos.


Dejé Interplay en 1992. Todavía amaba a esta compañía, pero necesitaba un horario de trabajo estable. Pasé un tiempo en Phoenix Technologies Ltd , trabajando en software de sistema para módulos PCMCIA . De alguna manera, incluso escribí un artículo al respecto en el Dr. La revista de Dobb .


Después de Phoenix, me convertí en desarrollador independiente por un tiempo. Hice algunos juegos de CDI bajo contrato. Eran terribles, no en términos de programación: la jugabilidad era regular, y el CDI en sí mismo, en principio, no era una buena idea.


En 2007, me uní al Kelley Blue Book , donde permanezco hoy. Nuestro sitio web es www.kbb.com. Este es un recurso sobre temas automotrices. Sin brillo excesivo, pero mis colegas son lo suficientemente buenos.


Durante el tiempo que pasé en KBB, comencé a escribir de nuevo y, si es posible, realizar pequeñas conferencias. Hasta ahora, los informes han sido principalmente sobre jQuery y jQuery Mobile . Al final, en jQuery, incluso escribí un libro e hice un video tutorial sobre Ionic . También grabé un videoclip de jQuery Mobile para Learn Now Online .


El año pasado, comencé a hacer videos para LinkedIn Learning / Lynda.com . Hoy hay 5 de ellos: dos en C ++ , dos en Kotlin y uno sobre Bash . Planeo hacer algunos videos más de C ++ en el futuro cercano.


En mi tiempo libre desarrollo un juego móvil. Nada sobrenatural, un casual ordinario, que espero terminar en la primera mitad de 2019. Este será mi primer juego desde mediados de los noventa CDI .


Q1
- Hola Troy, creo que es hora de comenzar nuestra pequeña entrevista. En primer lugar, quiero que te presentes a mis lectores. Por favor, Troy, llévanos a través de los hitos de tu carrera profesional.

- Hola a todos, soy Troy Miles . He sido programador remunerado desde 1979, cuando todavía estaba en la escuela secundaria. Fui el empleado número cuatro en Interplay en 1983. Fueron grandes momentos y muchachos geniales. Escribí Neuromancer , El señor de los anillos , y ayudé en muchos otros juegos.

Dejé Interplay en 1992. Todavía amaba la compañía, pero necesitaba trabajar horas regulares. Pasé alguna vez en Phoenix Technologies Ltd. Trabajando en el software del sistema PCMCIA . Incluso escribió un artículo al respecto para el Dr. La revista de Dobb .

Después de Phoenix me independicé por bastante tiempo. Hice algunos CDI , juegos interactivos de disco compacto por contrato. Todos fueron terribles. No por la programación, sino porque CDI no era una buena idea y el juego no era muy divertido.

En 2007, me uní a Kelley Blue Book , donde todavía estoy hoy. Nuestro sitio es [www.kbb.com] [www.kbb.com]. Es un sitio de valoración automotriz. No es glamoroso, pero mis compañeros de equipo son inteligentes y divertidos.

Mientras estaba aquí en KBB, comencé a escribir nuevamente y eventualmente hice pequeñas conferencias. Durante un tiempo, la mayoría de las conversaciones fueron sobre jQuery y jQuery Mobile . Finalmente escribí un libro sobre jQuery e hice un video sobre Ionic . También hice un video para Learn Now Online , en jQuery Mobile .

El año pasado comencé a hacer videos para LinkedIn Learning / Lynda.com . Hasta ahora tengo 5 videos. Dos en C ++ , dos en Kotlin y uno en Bash . Planeaba algunos videos más en C ++ en los próximos meses.

En mi tiempo libre, he estado diseñando un juego móvil. No es nada lujoso, un juego casual, que espero haber completado para el primer o segundo trimestre de 2019. Será mi primer juego desde la era CDI de mediados de los 90.



- ¡Un historial impresionante! Pero volvamos a 1983, cuando llegaste a Inerplay . Cuéntanos cómo llegaste allí y quiénes fueron esos tipos geniales que mencionaste.



- Mientras estaba en San Diego , a unos 100 kilómetros de Orange , en California , hice mis propios juegos para Vic 20 y C64 . En 1983, se realizó una exhibición de juegos de computadora en un lugar llamado Lion Country Safari [Lagoon Hills, Orange] . Allí conocí a Brian Fargo . Luego trabajó para Boone , que fue dirigido por un tipo llamado Michael Boone (más tarde creó Boone Boards ). Hablé con Boon sobre llegar a ellos como desarrollador de juegos, sin embargo, cuando la compañía se vino abajo, Brian me llamó y se ofreció a unirme a su startup: Interplay Prouctions . Acepté Nuestra primera oficina estaba ubicada en el área industrial de Newport Beach , directamente encima de la oficina del fabricante de ropa Quiksilver .




[Foto proporcionada por el propio Troy.] En la foto de la primera fila [de izquierda a derecha]: Alan Pavlish , Brian Fargo , yo y Jay Patel . Fila de atrás: Bill Heinman , Troy Warrel y Todd Kamasta . Esta es una fotografía de finales de 1984, principios de 1985.


En aquellos días, estábamos haciendo algo bajo licencia, contrato de trabajo y puertos para otras compañías. Incluso hicimos algo por el Departamento de Defensa , a través de Loral . Se trataba de mapas con GPS , que era nuevo en ese momento. Por este trabajo, recibimos gracias del ejército de los Estados Unidos. También contratamos a la Universidad de California , Irvine . Hicieron juegos educativos bajo la guía de un profesor. También hicimos algunas películas de acción de aventura para Activison . Entre ellos se encuentran MindShadow , Tass Times en Tonetown y Borrowed Time . La proliferación de juegos no fue fácil en aquellos días. No fue muy difícil encontrar una pequeña tienda de computadoras que ponga su juego a la venta, pero tomó mucho tiempo, además, sin un millón de dólares en un banco, era simplemente imposible forzar una red comercial grande, como Sears o Walmart , para vender su producto. Hoy es mucho más fácil. Simplemente puede cargar su creación en la App Store o venderla usted mismo a través de su propio sitio web. Así que obtener Activison como editor significó mucho y nos permitió mantenernos a flote.


Alrededor de 1987, creé la aplicación más genial que nunca vio la luz del día. Se llamaba Software Studio . La aplicación le permitió crear algo así como una caricatura en C64 y Apple II . El set incluía un conjunto de escenas y personajes preparados. Cada personaje tenía su propio conjunto de animaciones, podían caminar, sentarse, bailar y todo eso. Allí se usó un motor de animación increíblemente efectivo: solo unos pocos kilobytes podrían caber en una caricatura de 5 minutos. Al principio, Activision se interesó en la aplicación, pero luego se alejaron de este tema. Luego intentamos interesar a otros jugadores, incluido Disney . Me gustó el programa, pero todos temían que fuera demasiado flexible. Disney estaba especialmente preocupado por el mal uso de sus personajes. Al final, admitimos la derrota y abandonamos esta aventura.


Después de un tiempo, Brian Fargo me preguntó si quería hacer un juego sobre Neuromancer , según un libro que ambos leímos. Los derechos de la versión cinematográfica parecían estar con Sabana Boys [Productions] , y se les dio el visto bueno para la producción. Tim Leary poseía los derechos de igronización, pero el desarrollo se estancó. Tim no es programador, pero los programadores con los que trabajó abandonaron el proyecto. Fuimos a Bel Air [Los Ángeles] , 60 kilómetros al norte, para encontrarnos con él en su casa, pero esa es otra historia.


Q2
- Toda una trayectoria impresionante que tienes. Pero volvamos a 1983 cuando llegaste por primera vez a la interacción . Cuéntanos más sobre cómo llegaste allí y quiénes fueron los otros que mencionaste.

- Había estado haciendo mis propios juegos para el Vic 20 y el C64 en San Diego, a unos 100 km del condado de Orange , ambos en California . En 1983, hubo una exposición de juegos de computadora en un lugar llamado Lion Country Safari . Allí conocí a Brian Fargo . Estaba trabajando para una compañía llamada Boone , que estaba dirigida por un tipo llamado Michael Boone . (Más tarde crearía Boone Boards ). Había estado hablando con Boone acerca de venir a bordo como programador de juegos, pero cuando colapsaron, Brian me llamó y me preguntó si quería unirme a su startup, Interplay Productions . Yo dije que si. Nuestras oficinas originales estaban en una sección industrial de Newport Beach , encima de una oficina del fabricante de ropa, Quiksilver .

En la foto, primera fila: Alan Pavlish , Brian Fargo , yo y Jay Patel . Fila de atrás: Bill Heineman , Troy Worrell y Todd Camasta . La imagen data de finales de 1984 o principios de 1985.

En aquellos días hicimos títulos, contratos de trabajo y puertos para otras compañías. Incluso trabajamos para el Departamento de Defensa , a través de Loral . Recibimos una recomendación del Ejército de los EE. UU. Por nuestro trabajo. Implicaba mover el mapa con GPS , que era algo nuevo en aquel entonces. También hicimos algunos contratos de desarrollo para la Universidad de California, Irvine . Hicimos algunos juegos de entretenimiento educativo bajo la dirección de un profesor. E hicimos algunos juegos de aventuras de acción para Activision . Eran MindShadow , Tass Times en Tonetown y Borrowed Time , sin ningún orden en particular. Distribuir juegos era muy difícil en aquellos días. Conseguir pequeñas tiendas de computadoras para llevar tu juego no fue demasiado difícil, pero tomó mucho tiempo y fue imposible conseguir que grandes minoristas como Sears y Walmart o cadenas de tiendas de computadoras vendan tu producto, a menos que tengas millones de dólares en el banco. Los desarrolladores de hoy lo tienen mucho más fácil. Puede cargarlo en una tienda de aplicaciones o venderlo usted mismo en su propio sitio web. Conseguir que Activision licenciara nuestros juegos fue un gran problema y nos ayudó a mantenernos solventes.

Durante este tiempo, alrededor de 1987, creé la mejor aplicación que nunca se lanzó. Se llamaba Software Studio . Te permitió hacer una especie de caricatura en el C64 y Apple II . Llegó con una colección de escenarios y personajes preconstruidos. Cada personaje tenía una colección de animaciones. Podrían caminar, sentarse, bailar, etc. Todo utilizaba motores de animación que eran súper eficientes. En solo un kilobytes, podrías hacer una caricatura de 5 minutos. Inicialmente, Activision estaba interesado, pero luego se retiraron. Luego intentamos interesar a otros jugadores, incluido Disney . A todos les gustó la aplicación, pero su gran preocupación era que el producto era demasiado flexible. Disney estaba especialmente preocupado por la gente que hacía dibujos animados que usaban inapropiadamente a sus personajes. Al final, admitimos la derrota y la archivamos.

Entonces, Brian Fargo , preguntó si estaba interesado en hacer un juego basado en "Neuromancer" . Un libro que ambos habíamos leído. Parece que los Cabana Boys tenían los derechos de la película y habían sido aprobados para la producción. Tim Leary tenía los derechos del juego de computadora, pero el desarrollo del juego se había estancado. Tim no es un programador y los programadores con los que estaba trabajando habían abandonado el proyecto. Fuimos a Bel-Air , a unos 60 km al norte para encontrarnos con él en su casa y el resto es historia.



"Una historia increíble, Troya". Es una pena que Software Studio nunca salió, parece que este fue un gran avance. Cuando era niño, usaba un software similar. No recuerdo el nombre, algo así como The Simpsons: Cartoon Studio , pero según los dibujos animados soviéticos. Pero fue dos milésimas, y lo hiciste hace 15 años. Impresionante


Pero volvamos a los negocios. La siguiente pregunta debería haber sido sobre cómo Interplay llegó a Neuromancer , pero ya lo respondiste :). Pero antes de comenzar a hablar sobre el juego en sí, tengo un par de preguntas, cuyas respuestas me interesan personalmente. Esa es la cuestión, Timothy Leary es sin duda una persona sobresaliente, entonces, ¿cómo fue trabajar con él?


Y otra pregunta, ¿estuvo el propio William Gibson involucrado en el desarrollo?


Quien es Timothy Leary?

Tiimoti Francis Leary (22/10/1920 - 31/05/1996) - Escritor estadounidense, psicólogo, participante en la campaña de investigación de drogas psicodélicas, desarrollador de software.


A los veinte años, Leary se convirtió en estudiante de la Universidad de Alabama , y al graduarse recibió una licenciatura en psicología . En 1950 se convirtió en doctor en psicología . En 1957 creó la metodología de psico-diagnóstico "Prueba de Leary de las relaciones interpersonales" , que todavía utilizan las agencias de inteligencia de los Estados Unidos.


Leary obtuvo su escandalosa fama por estudiar la influencia de los psicodélicos en la psique humana y el sistema nervioso. Leary promovió activamente los psicodélicos, pronunció conferencias y escribió varios libros sobre la expansión de los límites de la conciencia humana.


Esta escandalosa fama de Leary llevó a la supresión de sus méritos en esas áreas de la psicología, que luego se asociaron con nombres completamente diferentes.


En 1984, Leary se unió al movimiento cyberpunk que capturó a Estados Unidos en esos años. También en ese entorno, logró convertirse en un líder, reuniendo a personas insatisfechas con la realidad a su alrededor. Junto con William Gibson, el científico promovió la reunión del hombre y la computadora, creó varios productos de software y escribió varios libros.


El científico murió en 1996. Grabó el momento de su muerte en un video que estaba conectado a Internet. Entonces, todos podían ver su muerte. Lo último que dijo fue: "¿Por qué no?" .




- Trabajar con Tim Leary fue muy bueno. Él fue realmente genial. Tim nos invitó a su casa para discutir el proyecto. Nos instalamos en su sala de estar, desde donde solo había una vista impresionante de Los Ángeles. Después de varias latas de cerveza, le contamos sobre nuestra visión del juego, que era muy diferente de su visión. No estábamos seguros de cómo reaccionaría, pero le gustó la idea, y parecía que estaba extremadamente interesado en hacer de esto una realidad.


Es curioso, Tim , "se quejó" de lo activo que era. Parecía que antes de eso nunca había conocido a un programador informático extrovertido. Me preguntó si yo era actor, no lo era, pero él solo quería que yo protagonizara la película. Entonces parecía posible, pero, por desgracia, nunca llegó al punto. Así que perdí la oportunidad de convertirme en una estrella de cine ;-).


William Gibson no participó en el desarrollo del juego. Aunque nos encontramos una vez en Santa Mónica , durante su sesión de autógrafos. Solo tenía unos dos minutos para hablar con él. Lo invitamos a beber con nosotros después de la sesión, pero ya tenía planes. Parece ser un tipo genial, y realmente aprecio que a pesar del hecho de que estaba ocupado, se tomó un par de minutos para conversar con nosotros.


Q3
- Una historia tan deslumbrante, Troy. Lamento que su Software Studio nunca se haya lanzado, parece que fue un gran avance. Recuerdo cómo estaba usando un software similar cuando era niño. Era algo así como The Simpsons: Cartoon Studio pero adaptado para dibujos animados soviéticos, no recuerdo cómo se llamaba. Pero fue en la década de 2000, y ya lo hiciste hace 15 años. Tan impresionante

Pero volvamos a nuestro negocio. La siguiente pregunta debería ser sobre cómo surgió la interacción con "Neuromancer" , pero ya la respondiste :) De todos modos, antes de comenzar a hablar sobre el juego real, tengo un par de preguntas cuya respuesta es personalmente importante para mí. Aquí vamos, no hay duda de que Timothy Leary es un hombre excepcional, entonces, ¿cómo fue trabajar con esa persona?

Y la otra pregunta, ¿participó William Gibson ?

- Tim Leary fue genial trabajar con él. Era un buen tipo genuino. Nos invitó a su casa para hablar sobre el proyecto. Todos nos sentamos en su sala de estar, que tenía una vista espectacular del horizonte de Los Ángeles . Le explicamos nuestra visión del juego, que era muy diferente de la de él con unas pocas cervezas. No estábamos realmente seguros de cómo reaccionaría. Pero a él le gustó nuestra idea y parecía emocionado de que la hiciéramos realidad.

Una nota al margen extraña, Tim se tropezó con lo intenso que era. Parece que todavía no se ha encontrado con un nerd informático extrovertido. Quería saber si yo era actor, no lo soy, pero realmente quiere que yo participe en la película. En ese momento, la película era real, pero por desgracia nunca se hizo y allí tuve mi oportunidad de ser estrella ;-).

William Gibson , no jugó ningún papel en el juego. De hecho, nos encontramos una vez en Santa Mónica , donde estaba firmando un libro. Tengo unos 2 minutos para hablar con él. Lo invitamos a tomar una copa o un café después de la firma, pero ya tenía planes. Parecía un buen tipo y aprecié que se tomó unos minutos para conversar con nosotros a pesar de que estaba ocupado.



"Me pregunto si Gibson jugó tu juego?" Hasta donde yo sé, entonces él no era fuerte en computadoras :)


Entonces, el "Neuromancer" . Sé que fuiste el único programador en el proyecto. Pero por ahora, centrémonos en el equipo de Neuromancer en su conjunto. ¿Quién más trabajó en el juego? ¿Cuáles fueron los roles?


"Hasta donde yo sé, Gibson no lo jugó".


Bruce Belfort fue productor y guionista. Él era el vínculo que nos mantenía unidos. Muy inteligente y amigable, fue para nosotros algo así como un mentor. El guionista principal fue Michael Stackpole . Entonces él era una estrella en ascenso, y ahora, un autor reconocible de ciencia ficción. Charles Wademan III fue nuestro gran artista. Utilizó las herramientas que preparé para crear la interfaz, los personajes y sus animaciones. Y finalmente, Brian Fargo , jefe de Interplay , se desempeñó como productor ejecutivo y estuvo muy involucrado en el proceso de creación del juego.




[Fotos encontradas en Internet. De izquierda a derecha: Michael Stackpole, Todd Kamasta, Bill Heinman, Troy Miles, Bruce Belfort, Charles Wademan III.]


En total, el juego tomó alrededor de 9-10 meses. Fue estresante pero divertido. Lo más genial fue cuán abierta y honestamente pudimos hablar entre nosotros sin tener en cuenta las críticas. Esto nos permitió exprimir al máximo el uno del otro, lo que hizo que el juego solo fuera mejor.




Q4
- Me pregunto si Gibson jugó el juego. Por lo que sé, a él no le gustaban mucho las computadoras en ese momento :)

Entonces, el "Neuromancer" . Ya sé que fuiste el único programador en un juego, pero por ahora centrémonos en todo el equipo de Neuromancer. ¿Quién más trabajó en el juego? ¿Cuáles fueron los roles?

- Que yo sepa, Gibson nunca jugó el juego.

Bruce Balfour fue el productor y escritor. Él era el pegamento que nos mantenía juntos. Muy inteligente y también amable. Era como un entrenador. Michael Stackpole fue el escritor principal del juego. Era una estrella en ascenso en ese entonces y se ha convertido en un conocido autor de ciencia ficción. Charles HH Weidman III fue nuestro increíble artista. Pudo usar las herramientas que uní para crear la interfaz de usuario y los personajes, y su animación. Y Brian Fargo , el jefe de Interplay , era el productor ejecutivo y estaba muy involucrado en la creación del juego.

El juego tardó unos 9 o 10 meses en completarse. Fue estresante pero divertido. La mejor parte fue cómo pudimos hablar abierta y honestamente entre nosotros sin que nadie tomara los comentarios personales. Esto mejoró el juego y nos permitió sacar lo mejor el uno del otro.



- Un punto importante, el juego se lanzó en un conjunto específico de plataformas, así que cuando hablas sobre cuánto tiempo le llevó al Neuromancer , ¿te refieres a alguna versión específica (si es así, cuál), o todas a la vez? Pregunto porque, por ejemplo, la versión para Amiga [izquierda], en comparación con la versión para MS-DOS [en el medio], parece un juego completamente diferente, sin mencionar la versión para C64 [derecha].




- Solo estoy hablando de C64 . Puertos realizados por otras personas. El C64 fue el mejor auto por su dinero, con un excelente chip de audio y video. El procesador 6502 también fue un artilugio interesante. Debido a su simplicidad, le permitía hacer cosas que los procesadores más potentes no permitían, como el código de modificación automática . Tales monstruos obligaron a sudar a los que hicieron los puertos. El juego fue escrito completamente en 6502nd Assembler .


Q5
- Aquí hay un punto importante, el juego fue lanzado en cierto conjunto de plataformas. Entonces, cuando habla de cuánto tiempo le llevó hacer Neuromancer , ¿se refiere a una versión específica (¿qué es si es así?) ¿O todas a la vez? Lo pregunto porque, por ejemplo, la versión Amiga [izquierda] en comparación con la versión MS-DOS [centro] parece un juego completamente diferente, sin mencionar la versión C64 [derecha].

- Solo estoy hablando del C64 . Los puertos fueron realizados por otros. La C64 era una máquina increíble por el precio. También tenía excelente sonido y chips de video. El procesador 6502 también fue una bestia interesante. Debido a que era tan simple, podía hacer cosas que otras CPU más potentes no podían hacer, como el código de modificación automática . These kinds of tricks gave some of the port writers the blues. The entire game was written in 6502 assembly.



— ! , , , , 6502- . , , ?


— : , , .


Voladura . El C64 podría tener varias pantallas visibles, y usted podría elegir cuál estaba activo simplemente configurando un valor específico. Usar una pantalla significa: limpiarlo , dibujarlo y configurar un bit para mostrar el resultado. Obviamente, aquí necesita la forma más rápida de borrar la pantalla. Y el más rápido resultó ser poner la batería a cero y escribir secuencialmente el valor de la batería en cada ubicación de memoria de pantalla. [Troy literalmente significa una entrada explícita en cada celda: mov ax, 0; mov screen[0], ax; mov screen[1], ax ... mov screen[n], ax mov ax, 0; mov screen[0], ax; mov screen[1], ax ... mov screen[n], ax mov ax, 0; mov screen[0], ax; mov screen[1], ax ... mov screen[n], ax .] Parece una locura, y como programador quieres envolver esto en un bucle for , pero la ramificación ralentiza críticamente la ejecución del código.


Interrupciones La interrupción de video en C64 comenzó cada 30 segundos. Podrías interceptar esta interrupción y obtener algo como "multitarea para los pobres". Hagas lo que hagas allí, debe ser rápido, de lo contrario la imagen se contraerá. Pero podría tener tiempo para hacer todo tipo de cosas útiles, como control de sonido o multiplexación de sprites.


Código auto modificable . El 6502nd pudo hacer una cosa muy extraña: cambiar las instrucciones antes de ejecutarlo. Parece una locura, pero la idea es simple: en lugar de verificar la condición y pasar a la siguiente rama de código, deje una rama y simplemente cambie su código dependiendo de la condición.


 repeat N times { if STATE is 1 increase A by one else decrease A by one do something with A } repeat N times { increase A by one do something with A when STATE has to switch { replace the opcode "increase" above with the opcode to decrease, or vice versa } } 

Por cierto, al principio la arquitectura de la PC era extremadamente inadecuada para los juegos. El problema con el sonido, un subsistema gráfico muy simple, y no recordemos la limitación de la memoria 640K . La mayoría de las PC eran entonces 8088 , y son mucho más lentas que sus contrapartes 8086 . Por lo tanto, más memoria y un mejor procesador no hicieron de la PC un mejor entorno de desarrollo.


Q6
- Increíble! Haciendo nuestro puerto asumimos que el juego estaba completamente escrito en ensamblador, pero nunca supimos que era 6502 . Por cierto sobre los trucos, ¿podrías recordar y describir algo más?

- En este momento se me ocurren tres técnicas interesantes: voladuras , interrupciones y código de auto modificación .

Explosión : el C64 puede tener múltiples pantallas visibles y puede cambiar cuál está activo estableciendo un valor. Para usar una pantalla, debes borrarla , dibujarla y luego voltear el bit para mostrarla. Obviamente, desea un método para borrar la pantalla lo más rápido posible. La forma más rápida posible es cargar el acumulador con cero y almacenar el acumulador en cada dirección de memoria de la pantalla. Parece una locura y tu deseo como codificador es poner un bucle for . Pero el acto de bifurcar y verificar la bifurcación reduce drásticamente el código.

Interrupciones : el C64 tiene una interrupción de video cada 30 segundos. Puedes conectarte a esa interrupción para hacer un poco de multitarea de un hombre pobre. Cualquier cosa que haga debe ser rápida, o la pantalla de video se romperá, pero puede hacer cosas útiles como manejar el audio o multiplexar los sprites.

Código de modificación automática : una cosa muy extraña que puede hacer el 6502 es cambiar una instrucción antes de que se ejecute. Esto suena inútil, pero la idea es simple, en lugar de hacer una comparación y saltar al nuevo código, cambie el código una vez que sepa la elección que debe hacerse para que los pases posteriores no necesiten verificar.

Una nota al margen: la arquitectura original de la PC era un entorno de juego terrible. El sonido en la PC no se incluyó, los gráficos eran muy simples y no hablemos del problema de la memoria de 640 K. La mayoría de las PC eran 8088, que eran más lentas que sus primos 8086. Entonces, aunque la CPU era mejor y la memoria era más grande, no lo convirtió en un mejor entorno para desarrolladores.



- De hecho, la versión para PC se ve y suena pobre. Sin embargo, aquí hay un poco sobre el sonido. La banda sonora del juego se basa en la canción de Devo "Some Things Never Change" . ¿Tienes una historia sobre por qué se eligió esta canción y quién, en principio, fue responsable del diseño de sonido del juego?


- Aquí puedo ser inexacto. Hasta donde yo sé, Tim Leary y Mark Mathersbo de Devo [en la foto] eran amigos. De alguna manera, muy probablemente a través de Tim , tuvimos una introducción, y nos encontramos con Mark en su estudio en Marina del Rey . Mark es un tipo duro, muy experto en tecnología. Escuchamos muchas canciones del nuevo álbum de Devo , Mark pensó que "Some Things Never Change" sería lo mejor para nuestro proyecto y nos solidarizamos con él. Mark nos entregó una copia digital de la canción. Trabajar con archivos de sonido a finales de los 80 sigue siendo un dolor de cabeza. Bill "Burger" Heinman (ahora Rebecca Heinman ) fue un verdadero mago, pudo procesar el archivo fuente y hacerlo de 8 bits para C64 y 1 bit para otras plataformas. Entonces escuché por primera vez una canción real en un juego de computadora. El sonido no era perfecto, pero lo suficientemente bueno para su tiempo.



Q7
- De hecho, la versión para PC se ve y suena pobre en comparación con sus hermanos. De todos modos, hay algo sobre el sonido, la banda sonora del juego basada en la canción "Some Things Never Change" de Devo . ¿Hay alguna historia sobre por qué se eligió especialmente esta canción y quién fue el responsable del diseño de sonido?

- Este es un punto en el que estoy un poco confuso. Que yo sepa, Tim Leary era amigo de Mark Mothersbaugh de Devo . De alguna manera obtuvimos una introducción, muy probablemente a través de Tim , y conocimos a Mark en su estudio en Marina del Rey . Mark era un tipo súper genial. También era muy experto en tecnología. Escuchamos muchas pistas en el nuevo álbum de Devo . Mark sintió que "Algunas cosas nunca cambian" sería la mejor pista para nuestro proyecto, y estuvimos de acuerdo. Nos dio una copia digital de la pista en un DAT . Fue un gran dolor trabajar con archivos de sonido a finales de los 80. Burger Bill Heineman , ahora Rebecca Heineman , fue el mago que procesó el archivo y lo hizo 8 bits en el C64 y 1 bit en todos los demás. Era la primera vez que escuchaba una canción real en un juego de computadora. No fue perfecto, pero fue genial para su tiempo.



- Creo que esta canción encaja perfectamente. Pero volvamos a la programación y hablemos un poco sobre la arquitectura del juego. Para Neuromancer , ¿escribió un motor completamente nuevo o se basó en su trabajo anterior?


- Arquitectónicamente, el Neuromancer constaba de dos partes, animación y jugabilidad . La parte de animación , con actualizaciones mínimas, migró de Software Studio , esto le dio a la APN reacciones animadas y notas al pie de texto. El motor de juego era completamente nuevo. Inicialmente, era más complejo, con un uso abundante de números aleatorios, pero esta parte se descartó: a nadie le gustan los juegos que son demasiado impredecibles. El juego en sí tenía dos herramientas interesantes. El primero podría grabar el juego: la salida era un archivo de texto. Si le das de comer un juego, entonces ella comenzó a jugar sola. Esto fue para depurar. Además, el motor del juego se podía jugar solo, sin una parte de animación. De nuevo, para la depuración. La parte de juego del motor también podría funcionar sin animación . Todo esto facilitó la vida de los guionistas, incluyéndome a mí, ya que podíamos ir directamente a la escena correcta y trabajar con ella.


Q8
- Esa canción encaja perfectamente en mi opinión. Ahora volvamos a la programación y hablemos un poco sobre la arquitectura general del juego. Lo primero, ¿ha escrito el nuevo motor para el Neuromancer o se basó en algunos de sus trabajos anteriores?

- La arquitectura de Neuromancer se dividió en dos partes: animación y juego . La animación sobrevivió de Software Studio . Dio a todos los NPC respuestas animadas y burbujas de texto. El sistema solo tenía una actualización menor. El motor de juego era completamente nuevo. Inicialmente había sido más complicado con más aleatoriedad, pero esa parte se atenuó ya que a nadie le gusta un juego que es demasiado aleatorio. El juego en sí tenía dos herramientas interesantes. El primero fue posible grabar el juego. Esencialmente, un archivo de texto obtendría salida y si volvía a introducir ese archivo en el juego, se reproduciría solo. Fue para depurar. Y el motor del juego se podía jugar solo sin la animación. De nuevo, esto fue para depurar. El juego también podría ejecutarse sin la animación . Esto facilitó a los escritores, incluyéndome a mí, ya que vamos directamente a la escena que queríamos escribir o editar.



- Me gustaría detenerme en la parte del juego . Al estudiar la versión para MS-DOS, descubrimos que el juego usa algo así como una máquina virtual. La máquina ejecuta el bycode contenido en archivos de la forma "R% n.BIH" , que aparentemente son scripts para el NPC . Estos archivos son una mezcla de datos de control, bytecode, código de objeto 8086 y líneas ASCII. ¿Son todas estas características de una versión específica o parte de la arquitectura original?


- No es que haya trabajado mucho con los puertos, excepto que les expliqué a los programadores el código para 6502 , pero parece que está basado en archivos DAT del juego. Combiné animación y jugabilidad en estos archivos, además, también había código para los niveles. No olvides que el ensamblador 6502 no tenía un enlazador, así que lo escribí.


Q9
- Quiero ver más de cerca la jugabilidad de esto. Al explorar la versión para MS-DOS del juego, descubrimos que utiliza algún tipo de máquina virtual. La máquina ejecuta el código de bytes almacenado en los archivos de datos "R% n.BIH" , que parece ser un script NPC . Esos archivos son una mezcla loca de datos de control, el código de bytes, un código de objeto 8086 y cadenas ASCII. Entonces, ¿fue parte del diseño inicial o es una versión específica?

- No hice mucho con los puertos, excepto guiar al programador a través del código 6502, pero parece que se basa en los archivos de datos del juego. Combiné la animación y el juego en los archivos de datos. También habría código para los niveles. Tenga en cuenta que el ensamblaje 6502 no tenía un vinculador, así que creé uno.



"Bueno, dado que trabajamos con el puerto, no tengo mucho que pedir por código, ¿tienes algo que agregar?" Ya hemos discutido algunas técnicas de bajo nivel, pero ¿tal vez recuerdas algunos problemas interesantes al trabajar en la lógica del juego?


"De hecho, en este momento no puedo recordar nada de eso". Buena suerte con el puerto, y por favor envíeme enlaces al juego y al artículo cuando estén listos.


Q10
- Bueno, ya que trabajamos con el puerto, entonces no tengo mucho que preguntar sobre el código. Continúa si tienes algo que agregar. Ya discutimos una serie de técnicas de bajo nivel, pero ¿tal vez podrías recordar algunos problemas interesantes que resolviste mientras trabajabas en la lógica del juego?

- Realmente no tengo nada más relevante que se me ocurra en este momento. Buena suerte con su puerto y envíeme enlaces a su puerto y al artículo cuando estén listos.



"Por supuesto, Troy". Gracias por su tiempo Espero que hayan disfrutado esta entrevista. Una última pregunta: ¿tu juego favorito?


"Lo único que estoy jugando en este momento es el simulador X-Plane ". Ella es simplemente genial. A veces juego en mi iPad y realmente me gustan los juegos con física interesante, por ejemplo, Hello Stars . Parece ser estúpido, pero hecho con talento. A veces juego copiando juegos de 8 bits de la vieja escuela, como Pitfall y Donkey Kong , pero no he progresado mucho, simplemente no tengo suficiente tiempo.


Q11
- Sí lo haré. Gracias por tu tiempo, Troy. Espero que les guste la entrevista. Para terminar, hay una última pequeña pregunta: ¿cuál es tu juego favorito?

- El único juego que realmente juego hoy en día es una simulación, X-Plane. Es asombroso De vez en cuando pierdo el tiempo jugando juegos en mi iPad y realmente me gustan los juegos basados ​​en la física, como Hello Stars. Es estúpido, pero inteligente. ¡También he estado jugando a hacer clones de juegos de 8 bits de la vieja escuela como Pitfall! y Donkey Kong. Tampoco está muy lejos, nunca parece tener suficiente tiempo.



Tal historia La entrevista resultó ser pequeña en volumen, pero, en mi opinión, muy amplia en términos de detalles. Publiqué una versión en inglés en mi blog .


Con respecto al juego, se ha hecho mucho desde que se publicó el último artículo: diálogos, inventario, guardar / cargar y un montón de cosas. Si todo va bien, en un par de semanas tendremos una construcción completamente jugable, hasta ahora sin ciberespacio, pero ya será posible avanzar un poco en la historia. La próxima parte de numeración del ciclo se lanzará después de que obtengamos esta compilación. Pero ahora, de todos modos, en mi blog , puedes seguir las noticias sobre el proyecto.

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


All Articles