[Troy Miles é palestrante, autor e desenvolvedor de software com muitos anos de experiência. Ele começou sua carreira escrevendo jogos para o Commodore 64, Apple II e IBM PC no 6502nd x86th Assembler. Duas vezes vencedor do Prêmio de Jogo do Ano. Ele é o autor do jQuery Essentials, além de um grande número de artigos de revistas e publicações em seu próprio blog. Criador de vídeos de treinamento. Atualmente programando aplicativos da Web e móveis no Kelley Blue Book.]
Oi Talvez você me conheça da série Reversim Neuromant , onde falo sobre como fazemos engenharia reversa e portamos um videogame baseado no romance de mesmo nome de William Gibson . Devido ao seu conteúdo, é mais um spin-off do que a próxima parte numérica - um material independente que não requer preparação adicional do leitor.
E começou com o viiri , com as palavras: “Este é o programador que escreveu o Neuromancer. Acho que ele não vai se importar em responder perguntas ”, ele me enviou um link para uma conta no Twitter de um homem chamado Troy Miles (foto). Depois, trabalhei na quarta parte do ciclo e não dei muita importância a isso. Depois de pensar algumas semanas depois, a ideia de uma entrevista com o desenvolvedor me pareceu tão bem-sucedida que escrevi imediatamente para Troy sobre quem somos, o que fazemos e o que queremos dele. A resposta não demorou a chegar: Troy reagiu muito favoravelmente ao nosso empreendimento e concordou em responder às minhas perguntas.
- Olá, Troy, acho que é hora de começar nossa curta entrevista. Para começar, quero que você se apresente aos meus leitores. Por favor, Troy, conte-nos os destaques de sua carreira profissional.
- Olá pessoal, meu nome é Troy Miles . Trabalho como programador desde 1979 e ainda estava no ensino médio. Tornei-me o quarto funcionário contratado pela Interplay [após sua fundação] em 1983. Foram ótimos momentos e ótimos caras. Escrevi Neuromancer , O Senhor dos Anéis , e ajudei no desenvolvimento de muitos outros jogos.
Deixei a Interplay em 1992. Ainda amava essa empresa, mas precisava de um horário de trabalho estável. Passou algum tempo na Phoenix Technologies Ltd , trabalhando no software do sistema para os módulos PCMCIA . De alguma forma, eu até escrevi um artigo sobre isso no Dr. Revista Dobb .
Depois de Phoenix, me tornei um desenvolvedor independente por um tempo. Criou alguns jogos CDI sob contrato. Eles eram terríveis, não em termos de programação - a jogabilidade era mais ou menos, e o próprio CDI , em princípio, não era uma boa idéia.
Em 2007, entrei para o Kelley Blue Book , onde permaneço hoje. Nosso site é www.kbb.com. Este é um recurso sobre tópicos automotivos. Sem brilho excessivo, mas meus colegas são bons o suficiente.
Durante o tempo no KBB, comecei a escrever novamente e, se possível, realizar pequenas conferências. Até agora, os relatórios foram principalmente sobre jQuery e jQuery Mobile . No final, no jQuery, eu até escrevi um livro e fiz um vídeo tutorial sobre o Ionic . Também gravei um videoclipe do jQuery Mobile para o Learn Now Online .
No ano passado, comecei a fazer vídeos para o LinkedIn Learning / Lynda.com . Hoje existem cinco deles: dois em C ++ , dois em Kotlin e um sobre Bash . Eu pretendo fazer mais alguns vídeos C ++ em um futuro próximo.
No meu tempo livre, desenvolvo um jogo para celular. Nada sobrenatural, um casual comum, que espero terminar no primeiro semestre de 2019. Este será o meu primeiro jogo desde meados dos anos 90 do CDI .
Q1- Oi Troy, acho que é hora de começar nossa pequena entrevista. Em primeiro lugar, quero que você se apresente aos meus leitores. Por favor, Troy, leve-nos através dos marcos de sua carreira profissional.
- Olá pessoal, eu sou Troy Miles . Sou programador pago desde 1979, enquanto ainda estava no ensino médio. Eu era funcionário número quatro na Interplay em 1983. Aqueles eram bons tempos e ótimos caras. Escrevi Neuromancer , Senhor dos Anéis , e ajudei em muitos outros jogos.
Deixei a Interplay em 1992. Ainda amava a empresa, mas precisava trabalhar horas regulares. Passou algum tempo na Phoenix Technologies Ltd. Trabalhando no software do sistema PCMCIA . Até escreveu um artigo sobre isso para o Dr. Revista Dobb .
Depois de Phoenix, fiquei independente por um bom tempo. Fiz alguns CDI , CD jogos interativos em contrato. Eles eram todos terríveis. Não por causa da programação, mas porque CDI não era uma boa ideia e a jogabilidade não era muito divertida.
Em 2007, entrei para o Kelley Blue Book , onde ainda estou hoje. Nosso site é [www.kbb.com] [www.kbb.com]. É um site de avaliação automotiva. Não é glamourosa, mas meus companheiros de equipe são inteligentes e divertidos.
Enquanto estava na KBB, comecei a escrever novamente e, eventualmente, fazendo pequenas conferências. Por um tempo, a maioria das palestras foi sobre jQuery e jQuery Mobile . Acabei escrevendo um livro sobre jQuery e fiz um vídeo no Ionic . Também fiz um vídeo para o Learn Now Online , no jQuery Mobile .
No ano passado, comecei a fazer vídeos para o LinkedIn Learning / Lynda.com . Até agora, tenho 5 vídeos publicados. Dois no C ++ , dois no Kotlin e um no Bash . Planejei mais alguns vídeos em C ++ nos próximos meses.
Nas horas vagas, desenvolvi um jogo para celular. Nada extravagante, um jogo casual, que espero concluir até o primeiro ou segundo trimestres de 2019. Será o meu primeiro jogo desde a era CDI , em meados dos anos 90.
- Um histórico impressionante! Mas vamos voltar a 1983, quando você veio ao Inerplay . Conte-nos como você chegou lá e quem foram os grandes caras que você mencionou?

- Enquanto estava em San Diego , a cerca de 100 quilômetros de Orange , na Califórnia , fiz meus próprios jogos para Vic 20 e C64 . Em 1983, uma exibição de jogos de computador foi realizada em um local chamado Lion Country Safari [Lagoon Hills, Orange] . Lá conheci Brian Fargo . Ele então trabalhou para Boone , que era liderado por um cara chamado Michael Boone (ele mais tarde criou o Boone Boards ). Conversei com Boon sobre como desenvolvê-los, no entanto, quando a empresa se desfez, Brian me ligou e se ofereceu para ingressar em sua startup - Interplay Prouctions . Eu concordei. Nosso primeiro escritório estava localizado na área industrial de Newport Beach , logo acima do escritório do fabricante de roupas Quiksilver .

[Foto fornecida pelo próprio Troy.] Na foto da primeira fila [da esquerda para a direita]: Alan Pavlish , Brian Fargo , eu e Jay Patel . Fila de trás: Bill Heinman , Troy Warrel e Todd Kamasta . Esta é uma fotografia do final de 1984 - início de 1985.
Naquela época, estávamos fazendo algo sob licença, contrato de trabalho e portos para outras empresas. Até fizemos algo para o Departamento de Defesa , através de Loral . Tratava-se de mapas com GPS , o que era novo na época. Por esse trabalho, recebemos agradecimentos do Exército dos EUA. Também contratamos a Universidade da Califórnia , Irvine . Eles fizeram jogos educativos sob a orientação de um professor. Também fizemos alguns filmes de ação e aventura para a Activison . Entre eles estão MindShadow , Tass Times em Tonetown e Borrowed Time . A proliferação de jogos não era fácil naqueles dias. Não foi muito difícil encontrar uma pequena loja de computadores que levasse seu jogo à venda, mas demorou muito tempo, além disso, sem um milhão de dólares em um banco, era simplesmente impossível forçar uma grande rede comercial, como a Sears ou o Walmart , a vender seu produto. Hoje é muito mais fácil. Você pode simplesmente enviar sua ideia para a App Store ou vendê-la por meio do seu próprio site. Portanto, adquirir a Activison como editor significou muito e nos permitiu ficar à tona.
Por volta de 1987, criei o aplicativo mais legal que nunca vi a luz do dia. Foi chamado de Software Studio . O aplicativo permitiu criar algo como um desenho animado no C64 e no Apple II . O conjunto incluía um conjunto de cenas e personagens preparados. Cada personagem tinha seu próprio conjunto de animações, eles podiam andar, sentar, dançar e tudo mais. Um mecanismo de animação incrivelmente eficaz foi usado lá - apenas alguns kilobytes podem ser usados em um desenho animado de 5 minutos. No início, a Activision se interessou pelo aplicativo, mas depois se afastaram desse tópico. Então tentamos interessar outros jogadores, incluindo a Disney . Gostei do programa, mas todo mundo temia que fosse muito flexível. A Disney estava especialmente preocupada com o mau uso de seus personagens. No final, admitimos a derrota e abandonamos esse empreendimento.
Depois de um tempo, Brian Fargo perguntou se eu queria fazer um jogo no Neuromancer , de acordo com um livro que nós dois lemos. Os direitos para a versão cinematográfica pareciam estar com Sabana Boys [Productions] , e eles receberam o aval da produção. Tim Leary possuía os direitos à igronização, mas o desenvolvimento parou. Tim não é um programador, mas os codificadores com quem ele trabalhou abandonaram o projeto. Fomos a Bel Air [Los Angeles] , 60 quilômetros ao norte, para encontrá-lo em sua casa, mas isso é outra história.
Q2- Um histórico impressionante que você tem. Mas vamos voltar a 1983 quando você veio para o Interplay . Conte-nos mais sobre como você chegou lá e quem foram os outros que você mencionou?
- Eu estava fazendo meus próprios jogos para o Vic 20 e o C64 em San Diego, a aproximadamente 100 km de Orange County , ambos na Califórnia . Em 1983, houve uma exposição de jogos de computador em um local chamado Lion Country Safari . Lá, eu conheci Brian Fargo . Ele estava trabalhando para uma empresa chamada Boone , chefiada por um cara chamado Michael Boone . (Mais tarde, ele criou o Boone Boards .) Eu estava conversando com Boone sobre entrar como programador de jogos, mas quando eles entraram em colapso, Brian me ligou e perguntou se eu queria me juntar à sua startup, a Interplay Productions . Eu disse que sim Nossos escritórios originais estavam em uma seção industrial de Newport Beach , acima de um escritório do fabricante de roupas, Quiksilver .
Na foto, primeira fila: Alan Pavlish , Brian Fargo , eu e Jay Patel . Fila de trás: Bill Heineman , Troy Worrell e Todd Camasta . A imagem data do final de 1984 ou início de 1985.
Naquela época, fizemos títulos, contratos de trabalho e portos para outras empresas. Nós até fizemos algum trabalho para o Departamento de Defesa , através de Loral . Recebemos uma recomendação do Exército dos EUA por nosso trabalho. Envolveu mover o mapa com GPS , o que era uma novidade na época. Também fizemos algum desenvolvimento de contrato para a Universidade da Califórnia, Irvine . Fizemos alguns jogos de educação e entretenimento sob a direção de um professor. E fizemos alguns jogos de aventuras de ação para a Activision . Eles eram MindShadow , Tass Times em Tonetown e Borrowed Time , em nenhuma ordem específica. Distribuir jogos era muito difícil naqueles dias. Conseguir que pequenas lojas de informática realizassem seu jogo não era muito difícil, mas consumia muito tempo e era impossível conseguir grandes varejistas como Sears e Walmart ou cadeias de lojas para vender seu produto, a menos que você tivesse milhões de dólares no banco. Os desenvolvedores hoje têm muito mais facilidade. Você pode fazer o upload para uma loja de aplicativos ou vendê-lo em seu próprio site. Portanto, conseguir que a Activision licencie nossos jogos foi um grande negócio e nos ajudou a permanecer solventes.
Durante esse período, por volta de 1987, criei o aplicativo mais legal que nunca foi lançado. Foi chamado de Software Studio . Isso permitiu que você fizesse uma espécie de desenho animado no C64 e no Apple II . Ele veio com uma coleção de estágios e personagens pré-construídos. Cada personagem tinha uma coleção de animações. Eles podiam andar, sentar, dançar, etc. A coisa toda usou mecanismos de animação super eficientes. Em apenas um kilobytes, você pode fazer um desenho animado de 5 minutos. Inicialmente, a Activision estava interessada, mas depois se retiraram. Então tentamos interessar outros jogadores, incluindo a Disney . Todos gostaram do aplicativo, mas sua grande preocupação era que o produto era muito flexível. A Disney estava especialmente preocupada com pessoas fazendo desenhos animados que usavam seus personagens de forma inadequada. No final, admitimos a derrota e a arquivamos.
Então, Brian Fargo , perguntou se eu estava interessado em fazer um jogo baseado em "Neuromancer" . Um livro que nós dois lemos. Parece que os Cabana Boys tinham os direitos do filme e tinham sido iluminados para produção. Tim Leary tinha os direitos dos jogos de computador, mas o desenvolvimento do jogo havia parado. Tim não é um codificador e os codificadores com os quais ele estava trabalhando abandonaram o projeto. Fomos a Bel-Air , cerca de 60 km ao norte, para encontrá-lo em sua casa e o resto é história.
"Uma história incrível, Troy." É uma pena que o Software Studio nunca tenha saído, parece que esse foi um grande avanço. Quando criança, eu usei um software semelhante. Não me lembro do nome, algo como Os Simpsons: Cartoon Studio , mas de acordo com os desenhos animados soviéticos. Mas era dois milésimos, e você fez isso há 15 anos. Impressionante.
Mas voltando aos negócios. A próxima pergunta deveria ter sido sobre como a Interplay chegou ao Neuromancer , mas você já respondeu :). Mas antes de começarmos a falar sobre o jogo em si, tenho algumas perguntas, cujas respostas são interessantes para mim pessoalmente. É isso, Timothy Leary é sem dúvida uma pessoa extraordinária, então como foi trabalhar com ele?
E outra pergunta: o próprio William Gibson estava envolvido no desenvolvimento?
Quem é Timothy Leary?
Tiimoti Francis Leary (22/10/1920 - 31/05/1996) - escritor americano, psicólogo, participante da campanha de pesquisa em drogas psicodélicas, desenvolvedor de software.
Aos vinte anos, Leary tornou-se estudante da Universidade do Alabama e, após se formar, recebeu um diploma de bacharel em psicologia . Em 1950, ele se tornou doutor em psicologia . Em 1957, ele criou a metodologia de diagnóstico diagnóstico "O teste de Leary das relações interpessoais" , que ainda é usado pelas agências de inteligência dos EUA.
Leary teve sua fama escandalosa por estudar a influência dos psicodélicos na psique humana e no sistema nervoso. Leary promoveu ativamente os psicodélicos, ministrou palestras e escreveu vários livros sobre a expansão dos limites da consciência humana.
Essa fama escandalosa de Leary levou à supressão de seus méritos nas áreas da psicologia, que mais tarde se associaram a nomes completamente diferentes.
Em 1984, Leary se juntou ao movimento cyberpunk que capturou a América naqueles anos. Também naquele ambiente, ele conseguiu se tornar um líder, reunindo pessoas insatisfeitas com a realidade ao seu redor. Juntamente com William Gibson, o cientista promoveu a reunião do homem e do computador, criou vários produtos de software e escreveu vários livros.
O cientista morreu em 1996. Ele gravou o momento de sua morte em um vídeo conectado à Internet. Então, todo mundo poderia assistir a sua morte. A última coisa que ele disse foi: "Por que não?" .
- Trabalhar com Tim Leary foi muito legal. Ele foi muito legal. Tim nos convidou para a casa dele para discutir o projeto. Nós nos instalamos em sua sala, de onde havia apenas uma vista deslumbrante de Los Angeles. Depois de várias latas de cerveja, contamos a ele sobre nossa visão do jogo, que era muito diferente de sua visão. Não tínhamos certeza de como ele reagiria, mas ele gostou da ideia e parecia que ele estava extremamente interessado em tornar isso realidade.
Engraçado, Tim , meio que "resmungou" sobre o quanto eu era ativo. Parecia que antes ele nunca havia conhecido um programador de computador extrovertido. Ele perguntou se eu era ator - não era -, mas ele só queria que eu estrelasse o filme. Então parecia possível, mas, infelizmente, nunca chegou ao ponto. Então eu perdi minha chance de me tornar uma estrela de cinema ;-).
William Gibson não participou do desenvolvimento do jogo. Embora tenhamos nos encontrado uma vez em Santa Monica , durante sua sessão de autógrafos. Eu só tinha cerca de dois minutos para conversar com ele. Nós o convidamos para beber conosco depois da sessão, mas ele já tinha planos. Ele parece ser um cara legal, e eu realmente aprecio o fato de que, apesar de estar ocupado, ele levou alguns minutos para conversar conosco.
Q3- Uma história tão impressionante, Troy. Lamentamos que o seu Software Studio nunca tenha sido lançado, parece que foi um grande avanço. Lembro-me de como estava usando software semelhante quando criança. Era algo como The Simpsons: Cartoon Studio, mas adaptado para desenhos animados soviéticos, não me lembro como era chamado. Mas foi nos anos 2000 e você já fez isso há 15 anos. Tão impressionante.
Mas vamos voltar ao nosso negócio. A próxima pergunta deve ser sobre como o Interplay criou o "Neuromancer" , mas você já respondeu :) De qualquer forma, antes de começarmos a falar sobre o jogo real, eu tenho algumas perguntas cujas respostas são importantes pessoalmente para mim. Aqui vamos nós, não há dúvida de que Timothy Leary é um homem extraordinário, então como foi trabalhar com essa pessoa?
E a outra pergunta: o próprio William Gibson participou?
- Tim Leary foi super legal de se trabalhar. Ele era um cara legal genuíno. Ele nos convidou para sua casa para conversar sobre o projeto. Ficamos todos sentados na sala dele, que tinha uma vista espetacular do horizonte de Los Angeles . Explicamos a ele nossa visão para o jogo, que era muito diferente da de algumas cervejas. Não tínhamos certeza de como ele reagiria. Mas ele gostou da nossa ideia e parecia empolgado para torná-la real.
Uma nota lateral estranha, Tim meio que tropeçou em como eu era intensa. Parece que ele ainda não havia conhecido um nerd extrovertido de computador. Ele queria saber se eu era ator, não sou, mas ele realmente quer que eu faça parte do filme. Naquela época, o filme era real, mas, infelizmente, nunca foi feito e lá foi minha chance de estrelato ;-).
William Gibson , não teve nenhum papel no jogo. Na verdade, nos encontramos uma vez em Santa Monica , onde ele estava assinando um livro. Eu tenho cerca de 2 minutos para falar com ele. Nós o convidamos para beber ou tomar um café após a assinatura, mas ele já tinha planos. Ele parecia um cara legal e eu apreciei que ele levou alguns minutos para conversar conosco, apesar de estar ocupado.
"Gostaria de saber se Gibson jogou o seu jogo?" Tanto quanto eu sei, então ele não era forte em computadores :)
Então, o "Neuromancer" . Eu sei que você era o único programador no projeto. Mas, por enquanto, vamos nos concentrar na equipe do Neuromancer como um todo. Quem mais trabalhou no jogo? Quais foram os papéis?
"Até onde eu sei, Gibson não tocou."
Bruce Belfort foi um produtor e roteirista. Ele foi o elo que nos manteve juntos. Muito inteligente e amigável, ele era para nós algo como um mentor. O roteirista principal foi Michael Stackpole . Então ele era uma estrela em ascensão e agora - um autor reconhecível de ficção científica. Charles Wademan III foi nosso grande artista. Ele usou as ferramentas que eu criei para criar a interface, os personagens e suas animações. E, finalmente, Brian Fargo , chefe da Interplay , atuou como produtor executivo e esteve muito envolvido no processo de criação do jogo.

[Fotos encontradas na Internet. Da esquerda para a direita: Michael Stackpole, Todd Kamasta, Bill Heinman, Troy Miles, Bruce Belfort, Charles Wademan III.]
No total, o jogo levou cerca de 9 a 10 meses. Foi estressante, mas divertido. O mais legal é que podemos conversar abertamente e honestamente sem levar em consideração as críticas. Isso nos permitiu espremer o máximo um do outro, o que tornou o jogo apenas melhor.

Q4- Só queria saber se Gibson jogou o jogo. Até onde eu sei, ele não gostava muito de computadores naquela época :)
Então, o "Neuromancer" . Eu já sei que você era o único programador de um jogo, mas por enquanto vamos nos concentrar em toda a equipe do Neuromancer. Quem mais trabalhou no jogo? Quais foram os papéis?
- Que eu saiba, Gibson nunca jogou o jogo.
Bruce Balfour foi o produtor e escritor. Ele foi a cola que nos manteve juntos. Muito inteligente e também amável. Ele era como um treinador. Michael Stackpole foi o principal escritor do jogo. Ele era uma estrela em ascensão na época e se tornou um conhecido autor de ficção científica. Charles HH Weidman III era nosso artista incrível. Ele foi capaz de usar as ferramentas que eu bati juntas para criar a interface do usuário, os personagens e suas animações. E Brian Fargo , chefe da Interplay , era o produtor executivo e estava muito envolvido na criação do jogo.
O jogo levou cerca de 9 ou 10 meses para ser feito. Foi estressante, mas divertido. A melhor parte foi como fomos capazes de falar aberta e honestamente um com o outro, sem que ninguém considerasse os comentários pessoais. Isso tornou o jogo melhor e nos permitiu tirar o melhor proveito um do outro.
- Um ponto importante, o jogo foi lançado em um certo conjunto de plataformas; portanto, quando você fala sobre quanto tempo levou para o Neuromancer , você quer dizer alguma versão específica (se sim, qual) ou todas de uma só vez? Eu pergunto porque, por exemplo, a versão para Amiga [esquerda], comparada à versão para MS-DOS [no meio], parece um jogo completamente diferente, sem mencionar a versão para C64 [direita].

Estou falando apenas de C64 . Portas feitas por outras pessoas. O C64 foi o carro mais legal por seu dinheiro, com um excelente chip de áudio e vídeo. O 6502nd processador também foi um dispositivo interessante. Devido à sua simplicidade, ele permitiu que você fizesse coisas que os processadores mais poderosos não permitiam, como código de modificação automática . Esses malucos obrigados a suar quem fez os portos. O jogo foi inteiramente escrito no 6502º Assembler .
Q5- Aqui está um ponto importante, o jogo foi lançado em certos conjuntos de plataformas. Então, quando você está falando sobre quanto tempo levou para produzir o Neuromancer , você quer dizer uma versão específica (o que é?) Ou todas de uma vez? Estou perguntando porque, a versão Amiga [esquerda] em comparação com a versão MS-DOS [centro], por exemplo, parece um jogo completamente diferente, sem mencionar a versão C64 [direita].
- Estou falando apenas do C64 . Os portos foram feitos por outros. O C64 era uma máquina incrível pelo preço. Ele também possuía excelentes chips de som e vídeo. O processador 6502 também era um animal interessante. Por ser tão simples, você poderia fazer coisas que outras CPUs mais poderosas não poderiam, como código auto-modificável . These kinds of tricks gave some of the port writers the blues. The entire game was written in 6502 assembly.
— ! , , , , 6502- . , , ?
— : , , .
Jateamento . O C64 pode ter várias telas visíveis e você pode escolher qual delas está ativa simplesmente configurando um valor específico. Usar uma tela significa: limpá-la , desenhá-la e definir um pouco para exibir o resultado. Obviamente, aqui você precisa da maneira mais rápida de limpar a tela. E o mais rápido foi definir a bateria para zero e gravar sequencialmente o valor da bateria em cada local da memória da tela. [Troy significa literalmente uma entrada explícita em cada célula: 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 uma loucura e, como programador, você deseja agrupar isso em um loop for , mas a ramificação diminui bastante a execução do código.
Interrupções . A interrupção de vídeo no C64 é iniciada a cada 30 segundos. Você pode interceptar essa interrupção e obter algo como "multitarefa para os pobres". O que quer que você faça lá, deve ser rápido, caso contrário, a imagem tremerá. Mas você pode ter tempo para fazer todo tipo de coisa útil, como controle de som ou sprites de multiplexação.
Código auto-modificável . O 6502 foi capaz de fazer uma coisa muito estranha - alterar as instruções antes de executá-lo. Parece loucura, mas a idéia é simples: em vez de verificar a condição e passar para o próximo ramo de código, deixe um ramo e apenas altere seu código, dependendo da condição.
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 } }
A propósito, no começo a arquitetura do PC era extremamente pouco adequada para jogos. O problema com o som, um subsistema gráfico muito simples, e não vamos lembrar da limitação da memória de 640K . A maioria dos PCs era então 8088s e eles são muito mais lentos que seus colegas do 8086 . Portanto, mais memória e um processador melhor não tornaram o PC um ambiente de desenvolvimento melhor.
Q6- Incrível! Criando nossa porta, assumimos que o jogo foi inteiramente escrito em assembly, mas nunca se soube que era 6502 . A propósito dos truques, você poderia se lembrar e descrever um pouco mais?
- Havia três técnicas interessantes em que posso pensar agora: detonação , interrupções e código auto-modificável .
Explosão - o C64 pode ter várias telas visíveis e você pode alterar qual delas está ativa definindo um valor. Para usar uma tela, você precisa limpá-la , desenhá-la e virar o bit para mostrá-la. Obviamente, você deseja um método para limpar a tela o mais rápido possível. A maneira mais rápida possível é carregar o acumulador com zero e armazenar o acumulador em cada endereço de memória da tela. Parece uma loucura e seu desejo como codificador é colocar um loop for . Mas o ato de ramificação e verificação da ramificação diminui drasticamente o código.
Interrupções - o C64 tem uma interrupção de vídeo a cada 30 segundos. Você pode se conectar a essa interrupção para fazer um pouco da multitarefa de um homem pobre. O que você fizer deve ser rápido, ou a exibição do vídeo será interrompida, mas você pode fazer coisas úteis, como dirigir o áudio ou multiplexar os sprites.
Código de modificação automática - Uma coisa muito estranha que o 6502 pode fazer é alterar uma instrução antes de ser executada. Isso parece inútil, mas a ideia é simples, em vez de comparar e pular para o novo código; altere o código assim que souber a escolha que precisa ser feita para que os passes subsequentes não precisem ser verificados.
Uma nota lateral - a arquitetura original do PC era um ambiente de jogo terrível. O som no PC não foi incluído, os gráficos eram muito simples e não vamos falar sobre o problema de memória de 640 K. A maioria dos PCs era 8088, mais lenta que seus primos 8086. Portanto, mesmo que a CPU fosse melhor e a memória maior, não o tornava um ambiente de desenvolvedor melhor.
- De fato, a versão para PC parece e soa ruim. No entanto, aqui está um pouco sobre o som. A trilha sonora do jogo é baseada na música de Devo "Some Things Never Change" . Você tem uma história sobre por que essa música foi escolhida e quem, em princípio, foi responsável pelo design de som do jogo?
- Aqui eu posso ser impreciso. Até onde eu sei, Tim Leary e Mark Mathersbo, da Devo [foto] eram amigos. De alguma forma, provavelmente através de Tim , tivemos uma introdução e nos encontramos com Mark em seu estúdio em Marina Del Rey . Mark é um cara durão, muito técnico. Ouvimos muitas faixas do novo álbum do Devo , Mark pensou que “Some Things Never Change” seria o melhor para o nosso projeto, e éramos solidários com ele. Mark nos entregou uma cópia digital da música. Trabalhar com arquivos de som no final dos anos 80 ainda é uma dor de cabeça. Bill "Burger" Heinman (agora Rebecca Heinman ) era um verdadeiro assistente, ele conseguiu processar o arquivo de origem e torná-lo em 8 bits para C64 e 1 bit para outras plataformas. Então eu ouvi uma música de verdade em um jogo de computador. O som não era perfeito, mas bom o suficiente para o seu tempo.
Q7- De fato, a versão para PC parece e soa ruim em comparação com seus irmãos. De qualquer forma, há algo sobre o som, a trilha sonora do jogo baseada na música "Some Things Never Change" de Devo . Existe uma história sobre por que especialmente essa música foi escolhida e quem foi responsável pelo design de som?
- Este é um ponto em que estou um pouco confuso. Que eu saiba, Tim Leary era amigo de Mark Mothersbaugh, da Devo . De alguma forma, conseguimos uma introdução, provavelmente via Tim , e conhecemos Mark em seu estúdio em Marina del Rey . Mark era um cara super legal. Ele também era muito experiente em tecnologia. Ouvimos muitas faixas do novo álbum do Devo . Mark sentiu que "algumas coisas nunca mudam" seria a melhor pista para o nosso projeto, e concordamos. Ele nos deu uma cópia digital da faixa em um DAT . Foi uma dor imensa trabalhar com arquivos de som no final dos anos 80. O Burger Bill Heineman , agora Rebecca Heineman , foi o assistente que processou o arquivo e o tornou 8 bits no C64 e 1 bit em todos os outros. Foi a primeira vez que ouvi uma música de verdade em um jogo de computador. Não foi perfeito, mas foi legal para a época.
Acho que essa música se encaixa perfeitamente. Mas vamos voltar à programação e falar um pouco sobre a arquitetura do jogo. Para o Neuromancer , você escreveu um mecanismo completamente novo ou foi baseado no seu trabalho anterior?
- Arquitetonicamente, o Neuromancer consistia em duas partes, animação e jogabilidade . A parte da animação , com atualizações mínimas, migrada do Software Studio , deu reações animadas ao NPC e notas de rodapé do texto. O mecanismo de jogabilidade era completamente novo. Inicialmente, era mais complexo, com uso abundante de números aleatórios, mas essa parte foi descartada - ninguém gosta de jogos que são imprevisíveis demais. O jogo em si tinha duas ferramentas interessantes. O primeiro poderia gravar a jogabilidade - a saída era um arquivo de texto. Se você lhe der um jogo, ela começará a jogar sozinha. Isso foi para depuração. Além disso, o mecanismo de jogo era jogável por si só, sem uma parte de animação. Novamente, para depuração. A parte de jogabilidade do mecanismo também pode funcionar sem animação . Tudo isso facilitou a vida de roteiristas, inclusive eu, pois podíamos ir diretamente para a cena certa e trabalhar com ela.
Q8- Essa música combina perfeitamente na minha opinião. Agora vamos voltar à programação e falar um pouco sobre a arquitetura geral dos jogos. A primeira coisa, você escreveu o novo mecanismo para o Neuromancer ou foi baseado em alguns de seus trabalhos anteriores?
- A arquitetura do Neuromancer foi dividida em duas partes: animação e jogabilidade . A animação sobreviveu do Software Studio . Deu a todos os NPCs respostas animadas e bolhas de texto. O sistema teve apenas uma pequena atualização. O mecanismo de jogo era novo. Inicialmente, era mais complicado com mais aleatoriedade, mas essa parte foi atenuada, pois ninguém gosta de um jogo muito aleatório. O jogo em si tinha duas ferramentas interessantes. O primeiro foi possível gravar o jogo. Essencialmente, um arquivo de texto seria produzido e, se você o alimentasse de volta ao jogo, ele seria reproduzido. Foi para depuração. E o mecanismo do jogo era jogável por si só sem a animação. Novamente, isso foi para depuração. O jogo também pode ser executado sem a animação . Isso tornou mais fácil para os roteiristas, inclusive eu, já que vamos diretamente para a cena que queríamos escrever ou editar.
- Gostaria de me debruçar sobre a parte do jogo . Estudando a versão para MS-DOS, descobrimos que o jogo usa algo como uma máquina virtual. A máquina executa o bycode contido em arquivos no formato "R% n.BIH" , que aparentemente são scripts para o NPC . Esses arquivos são uma mistura de kernel de dados de controle, bytecode, código de objeto 8086 e linhas ASCII. Todos esses recursos de uma versão específica ou fazem parte da arquitetura original?
- Não é que trabalhei muito com portas, exceto que expliquei aos programadores o código do 6502 , mas parece que ele se baseia nos arquivos DAT do jogo. Combinei animação e jogabilidade nesses arquivos, além disso, havia também código para os níveis. Não esqueça que o 6502nd Assembler não tinha um vinculador, então eu escrevi.
Q9- Quero dar uma olhada mais de perto na parte do jogo . Explorando a versão do jogo para MS-DOS , descobrimos que ele utiliza algum tipo de máquina virtual. A máquina executa o bytecode armazenado nos arquivos de dados "R% n.BIH" , que parece ser um script NPC . Esses arquivos são uma mistura louca de dados de controle, o bytecode, algum código de objeto 8086 e seqüências de caracteres ASCII. Então, isso faz parte do design inicial ou é específico da versão?
- Eu não fiz muito com as portas, exceto orientar o programador pelo código 6502, mas parece que ele se baseia nos arquivos de dados do jogo. Combinei a animação e o jogo nos arquivos de dados. Também haveria código para os níveis. Lembre-se de que o conjunto 6502 não tinha um vinculador, então eu criei um.
"Bem, como trabalhamos com a porta, não tenho muito o que perguntar por código, você tem algo a acrescentar?" Já discutimos algumas técnicas de baixo nível, mas talvez você se lembre de alguns problemas interessantes ao trabalhar na lógica do jogo?
"De fato, agora não me lembro de nada assim." Boa sorte com a porta e envie-me links para o jogo e o artigo quando estiverem prontos.
Q10- Bem, como trabalhamos com a porta, não tenho muito o que perguntar sobre o código. Continue se você tiver algo a acrescentar. Já discutimos várias técnicas de baixo nível, mas talvez você se lembre de alguns problemas interessantes que resolveu enquanto trabalhava na lógica do jogo?
- Eu realmente não tenho mais nada relevante que eu possa pensar agora. Boa sorte com sua porta e envie-me links para sua porta e o artigo quando estiverem prontos.
"Claro, Troy." Obrigado pelo seu tempo. Espero que tenham gostado desta entrevista. Uma pergunta final: seu jogo favorito?
"A única coisa que estou jogando agora é o simulador de X-Plane ." Ela é simplesmente ótima. Às vezes eu jogo no meu iPad e gosto muito de jogos com física interessante, por exemplo, Hello Stars . Parece ser estúpido, mas feito com talento. Às vezes eu jogo copiando jogos antigos de 8 bits, como Pitfall e Donkey Kong , mas não progredi muito, apenas não tenho tempo suficiente.
Q11Sim, eu irei. Obrigado pelo seu tempo, Troy. Espero que você goste da entrevista. Para finalizar, há uma última pergunta: qual é o seu jogo favorito?
- O único jogo que realmente jogo atualmente é uma simulação, o X-Plane. Isso é demais. Ocasionalmente, perco tempo jogando jogos no meu iPad e gosto muito de jogos baseados em física, como o Hello Stars. É estúpido, mas inteligente. Eu também tenho brincado em fazer clones de jogos de 8 bits da velha escola como o Pitfall! e Donkey Kong. Nem é muito longe, nunca parece ter tempo suficiente.
Que história. A entrevista acabou sendo pequena em volume, mas, na minha opinião, muito ampla em termos de detalhes. Publiquei uma versão em inglês no meu blog .
Com relação ao jogo, muito foi feito desde a publicação do último artigo: diálogos, inventário, salvamento / carregamento e várias outras coisas. Se tudo correr bem, em algumas semanas teremos uma versão completamente jogável, até agora sem o ciberespaço, mas já será possível avançar um pouco na história. A próxima parte de numeração do ciclo será lançada após a compilação. Mas agora, mesmo assim, no meu blog , você pode acompanhar as novidades do projeto.