Simplifique e elimine o necessário: Entrevista com John Romero, criador de Doom

No último festival de TI da Tech Train, conhecemos o lendário John Romero, que ajudou no design e desenvolvimento do icônico Wolfenstein 3D, Doom e Quake. Falamos sobre se os desenvolvedores de jogos precisam de habilidades pessoais, em que ferramentas de trabalho vale a pena prestar atenção e em que co-fundador da Id Software tem seus brinquedos favoritos. As perguntas foram feitas por Nikita Tsaplin, fundadora da RUVDS.


→ Versão em inglês de texto e vídeo aqui

Nikita Tsaplin - fundadora do RUVDS

Em uma entrevista, você disse que em 2001 eu estava analisando códigos antigos escritos em 1991 e não encontrei nenhum uso prático para ele. Mas, depois de algum tempo, retornando ao código escrito nos dois milésimos, você o chamou de "nada mal". Como você controla a qualidade do código?




John Romero - Programador, Designer e Co-Fundador da ID Software

Em 1991, pelo menos metade do código foi escrito no Assembler, e eu estava começando a programar em C e era apenas um iniciante. Portanto, retornar a ele após dez anos de programação C ativa foi horrível.

Diga-me, como os critérios de seleção mudaram com o tempo? Quais permaneceram inalterados?


O ambiente em que o código foi executado mudou completamente. Escrito em 1991 foi lançado no DOS, e o código de 2001 funcionou no Windows.

Então isso foi devido a uma atualização da plataforma?


Um ambiente completamente novo. Sim

Você pode falar sobre os principais critérios pelos quais você avalia seu código?


Critérios-chave - é fácil ler o código? Isso é muito importante.

Existem comentários escritos? Ir além disso não vale a pena - rapidamente se torna entediante. Mas é importante que as partes e seções complexas do código sejam comentadas, e sua estrutura como um todo seja compreensível e facilmente complementada.

Quais habilidades um desenvolvedor deve ter para ingressar na indústria de jogos?


Você deve ter um forte desejo de criar jogos. Porque é difícil terminar o jogo - é um trabalho meticuloso. Não importa em que parte você trabalha - levará muito mais tempo do que você jamais imaginou. Você precisa estar preparado para uma longa concentração de atenção em uma tarefa específica.

Ouvi dizer que os desenvolvedores agora mais do que nunca precisam dominar "Soft Skills"? Isso é verdade?


Sim Porque agora todo mundo está se unindo, quando vocês trabalham juntos, precisam ter empatia um pelo outro.

Interagir?


Sim

Você tem muita experiência com isso?


Você precisa se acostumar com isso, e os programadores não gostam de conversar. Eles só querem codificar. É importante entender como limitar o tempo gasto na programação de pessoas, apenas para uma breve conversa. Mas hoje em dia, por que não usar o Slack e se comunicar através dele? Isso é mais conveniente e mais rápido do que remover os fones de ouvido, levantar-se e conversar com alguém do outro lado do escritório. Então, preferimos o Slack.

Sim, as pessoas querem espaço e se comunicam através de mensageiros.


Especialmente se você usa fones de ouvido, sim.

Quais habilidades sociais você acha que são as mais importantes?


Acredito que a interação é muito mais importante que outras habilidades. Sempre foi assim. Se as pessoas ao seu redor não souberem o que estão fazendo ou se não souberem o que está acontecendo, poderá perder muito tempo e dinheiro, porque estava ocupado com a coisa errada.

Portanto, a comunicação é uma das coisas mais importantes que você pode fazer. Todos devem saber como e o que exatamente ele deve fazer. Mesmo se você empreender o trabalho em um fragmento específico, a parte mais importante é como você o apresenta. Não apenas "Ok, eu vou fazer isso ..." Seria mais correto dizer: “Farei isso e isso dessa maneira. Você concorda?

Então - a parte mais importante em todas as fases do desenvolvimento é a comunicação?


Sim


Alguns meses atrás, conversamos com Richard Gray em Moscou. E ele sugeriu que a melhor maneira de os desenvolvedores se estabelecerem na indústria de jogos é fazer algo com suas próprias mãos. Mas, por outro lado, você disse que criar um nível de jogo como Doom em Sigil é uma tarefa extremamente difícil. As ferramentas modernas são muito complexas e em camadas para criar um esboço para um portfólio. Como encontrar um meio termo?


Isso é verdade Motores modernos levarão muito tempo para criar um nível.

Tudo está longe de ser tão simples como era antes. Agora leva muito tempo. Hoje, muitas pessoas estão envolvidas no desenvolvimento. A equipe individual é responsável pela iluminação nos níveis. E há designers de jogos estabelecendo limites, artistas com arte conceitual. Eles estão trabalhando em um estilo visual de jogo. Ainda precisa verificar o trabalho dos shaders.

Parece-me que agora é quase impossível fazer um nível apenas para um portfólio, se necessário.


Em geral, isso é possível, mas leva muito tempo. Há um ótimo exemplo no YouTube. Se você usa o Anrial e deseja entender exatamente o que consiste na sequência de criar um nível sozinho - há instruções para isso. Um cara gravou um vídeo de 30 minutos, onde mostra a criação de um corredor por 10 horas. Dura apenas trinta minutos, mas é reproduzido em alta velocidade, suficiente para ver todos os passos para trabalhar no corredor. Dez horas! Hoje, os jogos consomem muito tempo.

Qual estratégia você acha que os desenvolvedores devem seguir para iniciar uma carreira?


A melhor opção é aprender o máximo de material possível em casa. Você sabe, pode ir à escola e aprender nela, o que dará vantagens na forma de um diploma e outras coisas. Mas você aprende muito mais fazendo em casa. Portanto, o trabalho será mais rápido e você aprenderá exatamente o que deseja.

Alguns dizem que os programadores que usam estruturas prontas para uso não têm idéia de como isso funciona internamente. Isso faz alguma diferença? Entende como a estrutura usada funciona?


Sim e ótimo. Isso é útil. Suponha que um programador júnior use estruturas. Programadores experientes sabem como eles funcionam. Isso significa que, se necessário, eles podem construí-lo, porque conhecem os detalhes do trabalho do começo ao fim, certo? E isso é muito útil, porque as estruturas podem ser usadas de maneira ineficiente, sem conhecer a estrutura interna, causando perdas significativas de desempenho.

Uma questão de flexibilidade. Afinal, você pode combinar estruturas, se souber.


Obviamente, tudo precisa ser combinado para que funcione, mas isso não significa que a otimização será a melhor. Isso não garante o conhecimento do software. Especialmente quando se trata de bancos de dados. Você pode anotar as informações ou o próprio código para operar os bancos de dados, o que funcionará terrivelmente. E você sentirá que tudo está em ordem, porque o conjunto de comandos está correto, mas se você não sabe como o InnoDB os usa em seus trabalhos e como eles os interpretam, esqueça-os. Você precisará contratar um consultor que venha e corrija o trabalho.

Outro tópico interessante é o Agile. Em livros e artigos, o game dev é cheio de romance e imprevisibilidade. É nesse contexto que o Agile seria útil. Agile e talvez outras abordagens?


Somente ágil, mas não de forma resistente e inviolável. Utilizamos "marcadores" para determinados períodos durante os quais você precisa entregar o material. Este é um período de tempo grande e confortável. Cerca de três vezes o esperado pelo Agile. Cerca de seis semanas em vez de duas. Essa é uma lacuna muito conveniente e confortável na qual muitos problemas podem ser resolvidos. Também existem empréstimos do estilo Kanban ... Talvez porque nem todas as tarefas devam ser concluídas em seis semanas, algumas ainda estão em operação e não podem ser concluídas dentro do prazo. Como resultado, verificamos os resultados do trabalho e não adiamos os processos inacabados para o próximo "marcador".

Aqui, estamos falando mais sobre a compilação correta de uma lista de oportunidades e tarefas que devem ser concluídas do que seguir cegamente o princípio do prazo. Se você realizar sua tarefa - excelente, se não - a pergunta será adiada para o próximo "marcador".

Posteriormente, essa estratégia se transforma em um exercício para reavaliar prioridades. Se algo levar muito tempo, faça-o de maneira diferente. Simplifique e corte o necessário para resolver a tarefa. Ou você apenas muda se já passou muito tempo.

Para resumir - você precisa entender como os processos funcionam e combinar diferentes abordagens?


Sim

Você pode comparar como os processos de desenvolvimento foram organizados nos estúdios de jogos agora e, por exemplo, nos anos noventa ou dois milésimos?


Dependia mais do número de pessoas na equipe. Quero dizer, sempre dependia do tamanho da equipe. Mesmo agora, se você tivesse apenas uma equipe de quatro, teria desenvolvido o mesmo estilo que desenvolvemos nos anos 90 com a mesma composição. Porque a equipe é tão pequena que as pessoas conhecem seu papel na equipe e se comunicam estreitamente. Porque, provavelmente eles trabalham na mesma sala.

Uma pequena equipe também trabalha na minha empresa RUVDS, e não precisamos de comunicação formal constante.


Exatamente. Isto não é necessário. A mesma situação foi na década de 1990. Simplesmente, tudo o que você escreve muda devido ao desenvolvimento de plataformas, mas os métodos de comunicação e desenvolvimento permanecem os mesmos. O design que você está desenvolvendo é diferente à medida que a linguagem de design evoluiu a partir dos anos 80. O que você projeta é diferente, mas como você desenvolve o produto permanece o mesmo.

Existem coisas que ficam mais fáceis ou mais difíceis de desenvolver jogos ao longo do tempo? E porque


Existem muitas ferramentas úteis que facilitam a criação de jogos. Torna-se mais difícil escrever um bom design. É difícil ter uma boa ideia para um jogo. Você pode ter o melhor programador do jogo que escreverá um jogo nojento e ninguém o fará. A habilidade do programador não afeta isso.

Então, o design do jogo vem primeiro?


Esta é a coisa mais importante. Se você tem um ótimo designer de jogos na equipe, que é um pouco versado em programação, corre o risco de abrir um novo gênero para jogos. Você terá um ótimo jogo. Portanto, o design de jogos é mais importante do que qualquer outra coisa.

Retornando ao TechTrain. Para onde esse trem leva a indústria de jogos?


Eu diria que os jogos de Realidade Aumentada (AR) são um segmento muito inspirador. Este é um novo espaço para o pensamento e há muito dinheiro. Não tanto quanto a VR tinha quando todos investiam nela, mas ...

Mas VR não durou muito.


Sim, não aguentou. VR é melhor em aplicativos que não são de jogos. Ela tem boas idéias, mas o principal obstáculo para o sucesso da RV foi o cansaço. As pessoas se cansam rápido demais enquanto jogam. Você sabe, as pessoas não pulam mais em seus Wee pads. Eles estão apenas cansados. E eles não querem mais fazer isso. E VR é difícil de usar.

Você já teve realidade aumentada ou experiência em desenvolvimento de realidade virtual?


Não fiz nada relacionado ao AR, mas gosto muito de seus recursos. Se você observar atentamente os jogos Lego, ou Minecraft-Earth, o AR tem um grande potencial, todo mundo começa a experimentar, além de clientes como ele. Pokemon Go provou para todos que existe uma tonelada de dinheiro em potencial de RA. Não substitui consoles, smartphones, é um novo segmento e tecnologia.

Parece que todos sabem o quão nova é a tecnologia, mas não sabem como usá-la.


Na verdade, uma API já foi criada para ela. A Apple desenvolveu um kit AR, e está tudo bem. Eles não fizeram um pacote semelhante para VR - conscientemente. Eles o desenvolveram para o AR porque sabem que ele funcionará. Usar o AR emparelhado com o Swift 5 pode fazer muitas coisas legais.

O que você acha dos jogos para celular?


Bem, Sigil é lançado em smartphones.


Parece-me que lançamos o Sigil em uma série de dispositivos. Quantidade louca. Você sabe, no Instagram e no Twitter, existem tantos dispositivos executando o Sigil. As pessoas continuam a enviar capturas de tela.

Mas ... eles terminaram de construir por conta própria? Sigil foi produzido para smartphones?


Bem ... Foi lançado na plataforma Android. Você pode baixar os mods de suporte do Doom. Sigil também pode ser jogado no Xbox. Você pode usar o Automechs - é o Doom com código-fonte aberto e suporte para modificações; em seguida, você pode instalar o Sigil no Xbox e jogá-lo com calma.

Certo. Você já pensou em lançar um jogo Battle-Royale no universo Doom? Algo como Fortnite?


Eu acho que seria engraçado. Eu não farei isso. Mas seria muito engraçado se alguém fizesse isso. Battle Royale é apenas uma estrutura com seu próprio conjunto de regras com base em qualquer jogo. Por exemplo, o mesmo Fortnite. Ela não era um jogo de Battle Royale. Mas ela se tornou uma quando viu PUBG e pegou sua peça.



Pode ser acionado com qualquer universo. Mas os videogames projetados especificamente para esse modo se saem melhor de qualquer maneira. Ainda existem muitos jogos semelhantes experimentando a mecânica de jogos. Por exemplo, enquanto você toca e faz tudo, meus recursos, por exemplo ... Cavando e o círculo se estreitando, entendeu?

Sim


E as pessoas atiram em você enquanto você cava! E você precisa do meu para coletar itens!

Sim Boa comparação! Quais gêneros de jogos você acha que serão obsoletos no futuro?


Atualmente nenhum deles. Quero dizer, o único gênero que resta são as missões de texto, mas ainda existem jogos de aventura. Por exemplo, missões comuns se transformaram em jogos de aventura místicos e, ao mesmo tempo, um grande número de jogos casuais. Onde quer que os jogos sejam vendidos, especialmente em telefones celulares, você pode notar uma enorme variedade de gêneros. E as pessoas que acreditam que as missões, ou qualquer outra coisa, se foram para sempre, nos anos 90 ou 2000 - elas só precisam ir ao "rack de discos", por outro lado, para ver todos os jogos de aventura. Esses jogos vendem lindamente para mulheres mais velhas e que gostam deles. O mercado de jogos agora é ilimitado entre 18 e 25 anos, ou 35 anos. Ele está em todo lugar.

No entanto, agora é muito provável que as estratégias estejam longe de serem tão populares quanto antes. Parece-me que alguns gêneros desaparecerão de qualquer maneira.


Ah, eles definitivamente não vão se perder. Agora eles lançam muitas estratégias. Quero dizer, desenvolvemos estratégias porque são interessantes. Por exemplo, existem empresas como a Paradox Interactive, que têm seu próprio nicho entre os fãs, constituídos especialmente por jogadores hardcore que amam seus jogos pela forma como são feitos. Por preencher os jogos, por quão complicados eles são. E eles definitivamente sobreviverão. As pessoas gostam de jogar Age of Empires Definitive Edition, que foi lançado recentemente. E este é um jogo de novecentos e noventa ... Oitavo? Parece? Sim E isso é uma estratégia.

Uma das minhas estratégias favoritas. Sim


Sim Eles não vão a lugar algum. RTSki, no sentido. A mesma civilização. Todos esses jogos estão por aí, enquanto continuam a ser desenvolvidos.

Qual é o segredo para criar um jogo de sucesso? O uso da tecnologia mais recente é importante?


Bem, isso ajuda. A tecnologia avançada ajuda. Mas um design de jogo realmente bom é a razão pela qual as pessoas jogam. Eles não jogam por causa do motor. Você quer jogar o jogo porque é feito no Unreal? Não, dificilmente. Você joga por causa do design e das idéias do jogo, de como fica e do que ele diz sobre o que você pode fazer nele. Estes são todos os aspectos do design.

Quais são as suas ferramentas ou soluções de desenvolvimento favoritas para jogos? No momento e para toda a sua carreira?


Para fluxo de trabalho e produtividade geral - o Slack é ótimo. Para o sistema de tickets, usamos o Assembla, mas Jira também é excelente. Usamos o Perforce para controlar licenças devido à alta velocidade. Estes são os nossos principais programas que todo mundo usa em nosso estúdio. Para o departamento de criação, é o Photoshop, o Maya e, se você conhece o SyncScetch, é outra ótima ferramenta ... A espingarda é ótima para o fluxo de trabalho. Do lado dos desenvolvedores, usamos o Unity e o VSCode, tanto para Mac quanto para PC, para fazer edições. E isso é tudo, em geral.

Para tabelas de design e cálculo, geralmente usamos o Google Tables. Algumas ferramentas leem informações das tabelas do Google na rede e retornam ao jogo.

Na maioria das vezes, este é um software do Google. Usamos apresentações para documentos de design e tabelas do Google para a maioria das informações. Para jogos ... No sistema de lançamento de itens, por exemplo, mas isso não importa.

Acho que todo mundo gostaria de saber ... Que tipo de jogo o próprio John Romero recomendaria?


Hitman 2.


Hitman? Certo?


Hitman 2.

Um dos meus jogos favoritos!


Awesome.

E quando você falou sobre jogadores hardcore que querem desafiar o jogo, pensei em Hitman!


Sim

Desde que ele tem seu próprio nicho de maníacos, que ...


Sim Esses desafios.

... Derrube o máximo de pontos em níveis difíceis.


Artesanato e desafios loucos.

Eu os adoro.


Ótimo.

Sim sim Eu passei por todas as partes.


Classe!

Sim, eu passei por todas as partes anteriores, mas elas relançaram o jogo em 2016 e criaram absolutamente ... Apenas o melhor design do mundo.

Sim


Estou ansioso pelo lançamento de Ghost Recon: Breakpoint. Fortemente. E certo ... mal posso esperar. Vai ser demais. Eu amo o Ghost Recon. Adoro o jogo original, não sou fã do GRAW, mas sei que ... Consegui fazer um novo papel, e agora mal posso esperar pelo lançamento.

Você sabe, grandes jogos estão sendo lançados agora, mas alguns deles demoram muito para se aprofundar depois do trabalho.


Sim

Você está cansado demais para entender.


Sim, eu quero jogar ...

Toda essa mecânica ...


Sim sim Como "Preciso me lembrar de tudo novamente?" Mas ... O mesmo World of Warcraft era o mesmo. Há muitos equipamentos, muitas missões, jogadas de motivação pessoal, por exemplo, o que exatamente você quer fazer no jogo e, se algo acontecer, o jogo exige alta concentração. E se você não precisar de tal envolvimento - você joga outros jogos que não requerem atenção. Os jogos independentes são ótimos para essas ocasiões, pois agora passam em algumas horas. Por exemplo, Firewatch e outros projetos emocionais.

Sim sim ...


Você sabe, estes são jogos para um pouco de distração. E ...

E Hitman também pode ser atribuído a eles.


Ah sim! Hitman certo ...

Especialmente se você estiver familiarizado com a série e dizer a si mesmo: "Eu só quero tentar esse desafio". Não é?

Sim ...


Você não precisa completar a missão inteira.

Você costuma se acostumar com isso em algumas horas. Então sua lista principal é Hitman, Ghost Recon e ... Talvez a terceira?


Jogos independentes. Existem muitos deles.

E agora nos voltamos para um grupo de desenvolvedores profissionais na pessoa do nosso público.


Bom

Por favor, dê uma olhada na câmera e diga-nos o que o inspira.


Oh Senhor ... O que me inspirou? .. Pacman foi a razão de eu começar a desenvolver videogames. Seu design, lembro que foi lançado em 1980, era muito diferente do resto dos jogos da época.

1980 é "Mate o alien", cores preto e branco, som ruim.



Com o lançamento do Pacman, tudo mudou. Era um caminhante inofensivo, um design absolutamente completo e perfeito, difícil de acreditar, e ele me mostrou que o design do jogo não tem limites. Há tantas coisas que me inspiraram a criar jogos.

Um bom conselho também não será supérfluo para quem deseja ingressar na indústria de jogos.


Comece com jogos simples, sem dispersão. Não tente fazer algo grande no começo. Escreva um conceito simples, tente implementá-lo e finalize-o até o fim. Você descobrirá como é difícil concluir o projeto e seguirá as ambições.

Na Wikipedia russa, você é gravado como John Romero. Mas eu li que seu nome verdadeiro é Alfonso.


Sim, Alfonso.

Então, por que você se chama John?


Porque o nome do meu pai também é Alfonso, e se você disser "Al!" - nós dois responderíamos. Minha mãe decidiu me chamar de John, porque meu pai já era Al. Agora todo mundo me conhece, como John.

Ok, então isso é da infância.


Sim, isso é da infância. Minha mãe me chamou de Johnny.

Obrigado pela entrevista! Ficarei feliz em encontrá-lo novamente na Rússia.


Classe! Definitivamente nos encontraremos no TechTrain.

No TechTrain e também no escritório da nossa equipe RUVDS!


Ótimo!

Muito obrigado!


Sim obrigado!


PS E a última dica de John Romero:


A maneira de manter o nível de erros em um nível baixo é escrever algumas linhas de código em funcionamento e testá-las.Confira-os nos mínimos detalhes. Verifique se tudo funciona. Em seguida, escreva mais algumas linhas fazendo alguma coisa. Repita o teste todas as vezes, criando o código em etapas. Você não deve trabalhar por meia hora e, em seguida, teste o código. Será cheio de bugs. Basta escrever algumas linhas e ver se elas funcionam. Então você criará um código muito estável.

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


All Articles