Línguas de programação – quanto tempo e que tipo de complexidade estaria envolvida na escrita de Chris Sawyer a maior parte do Rollercoaster Tycoon em Assembler? Troca de pilhas de engenharia de software, Rollercoaster Tycoon: o jogo mais otimizado de todos os tempos? | PcGamesn
Rollercoaster Tycoon: O jogo mais otimizado de todos os tempos
Contents
A Assembléia fica complicada quando você está fazendo todas essas otimizações loucas (operações de vetorização, usando conjuntos de instruções especiais (SSE, etc.) bits, etc.) que você simplesmente não pode fazer de C. Se você está fazendo essas coisas, então a hora está na verdade “mexer este bit, monte, meça. Mexem. “Loop e não na codificação real. Com um bom montador de macro e um programador qualificado, a montagem de escrever não é um enorme desça da escrita C Código.
Quanto tempo e que tipo de complexidade estaria envolvida na escrita de Chris Sawyer a maior parte do Rollercoaster Tycoon em Assembler?
Ele poderia ter começado escrevendo em C e depois alterar partes dele para o assembler conforme necessário para o desempenho?
Ha, ha, ha, isso é como uma pergunta de alguém que está lendo meus comentários antigos.
3 respostas 3
Ao ler sua biografia, parece dois anos (início de 1997 ao final de 1998). Dado que ele parece ser um ‘único projeto de cada vez’ e o conjunto de ferramentas e o tempo não são ótimos para o ‘desenvolvimento de equipes’, eu presumiria que 24 meses seguidos de programador.
Naquele momento, ele era um programador de jogos profissionais trabalhando em Assembly desde 1983, então eu não equipararia “dois anos Chris” a “dois anos me anos” de trabalho.
Dado que a maioria dos jogos profissionais leva em torno de 25 anos para uma equipe se desenvolver, duas pessoas para um jogo líder no setor é uma conquista incrível, emprestando credence aos ditados:
- Um ótimo programador é 10x mais produtivo que um bom programador
- O programador é mais importante que a linguagem para produtividade
Então, neste caso, o quanto mais rápido seria o Rollercoaster Tycoon se Chris usasse C ou Java ou JavaScript ou . Provavelmente não teria importância além do fato de que ele pode ter sido um pouco mais lento usando uma linguagem de nível superior com que ele não tinha 14 anos de experiência.
respondeu 18 de novembro de 2010 às 23:02
2.331 2 2 crachás de ouro 18 18 crachás de prata 17 17 crachás de bronze
Ótimos pontos, eu meio que pensei que pode ser o caso.
Se você pensa em C como pouco mais que um assembler de “alto nível”, e assumimos que Chris não estava fazendo otimizações loucas ao seu código de montagem em todo rotina, então eu imagino em termos de % mais tempo, então pode não ser muito mais para um programador de montagem qualificado.
A Assembléia fica complicada quando você está fazendo todas essas otimizações loucas (operações de vetorização, usando conjuntos de instruções especiais (SSE, etc.) bits, etc.) que você simplesmente não pode fazer de C. Se você está fazendo essas coisas, então a hora está na verdade “mexer este bit, monte, meça. Mexem. “Loop e não na codificação real. Com um bom montador de macro e um programador qualificado, a montagem de escrever não é um enorme desça da escrita C Código.
Ainda assim, eu não teria sido capaz de fazer isso! ! (Editar: A Wikipedia me diz que ele escreveu algumas partes em C para “Interface com o sistema operacional Windows”, então eu acho que ele não estava inicializando o DirectX no Assembly então. ufa!)
Rollercoaster Tycoon: O jogo mais otimizado de todos os tempos?
No início da manhã de domingo em abril de 1999, o designer de jogos Chris Sawyer estava empoleirado em seu centro de comando da sala de estar, uma coleção de tecnologia dos anos 90, navegando fóruns online. No final de março, o magnata inaugural da montanha -russa havia pousado em prateleiras na América do Norte, pingando o amor contagioso de Sawyer por parques temáticos, e algo parecia ter dado muito errado.
Nos fóruns, os jogadores estavam dizendo que o jogo havia perdido o progresso e os enviou de volta à estaca zero nos cenários do jogo, que avançam sequencialmente níveis como. Depois de anos de trabalho cuidadoso, o jogo parecia ter se autodestruturado por razões misteriosas. Mas Sawyer teve um palpite: ontem à noite, o horário de verão teve efeito.
Talvez fosse mais do que uma coincidência. Dentro de algumas horas, ele descobriu a conexão. Os estampadores de tempo ajustados nos arquivos de jogo salvar, para proteger contra adulteração ou corrupção, não estavam combinando. “Embaraçosamente, foi um bug flagrante da minha parte”, diz Sawyer. “Ou foi?
A chamada do sistema que ele usou deveria ter produzido o tempo no UTC, inalterado pela economia do dia, sem criar nenhum problema. “Apenas por algum motivo”, diz ele, “isso fez mudar!”Ele rapidamente codificou um patch e depois um utilitário para corrigir os arquivos de jogo salvar.
A maior ironia era que o magnata da montanha -russa se destacava como um monumento ao que uma única pessoa pode realizar na programação. Escrito quase inteiramente no código de montagem (como o magnata do transporte anterior de Sawyer), o Rollercoaster Tycoon e sua sequência espremeram e remaram os processadores da época para simular passeios, economias e até milhares de visitantes e seus estados mentais. Analisando tantos números em tempo real sem engana exigir uma abordagem magra e intransigente e não a família de idiomas mais lenta e mais amigável. E na assembléia ultra-atenciosa, onde as cartas se destacam para as e zeros, um fala diretamente ao processador.
É um idioma extremamente difícil de aprender e está saindo de moda desde o desenvolvimento de Fortran na década de 1950. .
Bonito e alegre, ele então entrou no negócio para si mesmo e criou o magnata do transporte enquanto mantinha seus direitos, um hábito que lhe proporcionou uma fonte constante de renda. Parte disso foi para viajar na Europa e nos EUA para montar montanhas -russas em lugares como Cedar Point em Ohio. Ele agora está montado mais de 700 montanhas -russas. Seu favorito, Taron na Phantasialand na Alemanha, parece algo fora de um jogo de magnata.
Sawyer gravitou para a montagem x86 naturalmente, apreciando sua apresentação limpa e compilação rápida de raios, e quando ele partiu para fazer o Rollercoaster Tycoon, ele montou dois PCs: um rápido para codificação e um mais lento para testar. (Os requisitos do sistema do jogo mais tarde pediam um Intel Pentium 90MHz com pelo menos 16 megabytes de RAM.) Sentado também no seu posto de comando, uma impressora de matriz de pontos (ele acredita), uma máquina de fax, um guia de bolso para o código de montagem x86 e uma referência de desktop de 500 páginas. Isso foi o suficiente para ele; Embora os manuais completos tenham milhares de páginas, ele memorizou a maior parte do que precisava.
“Eu estava programando em x86 há tanto tempo que raramente precisava procurar as coisas”, diz ele.
O jogo mais antigo parecia o magnata do transporte, mas com montanhas -russas, e seu artista gráfico Simon Foster criou um sistema mais flexível e fotorrealista para que as montanhas -russas pareçam a parte. Grande parte do processo de design inicial foi de forma livre e inspirada por alguns antecessores óbvios: Will Wright, Peter Molyneux, Sid Meier. Mas acima de tudo, Sawyer teve que priorizar o desempenho. Novos recursos significavam um fardo maior para o PC lento e de cobaias, e enquanto alguns deles podiam ser afastados do código, outros tiveram que ficar.
Pathfinding foi um deles, e se tornou a maior dor de cabeça. “É fácil programar um algoritmo de busca de rota que funciona perfeitamente”, diz Sawyer, “mas não é de utilidade se impedir o jogo por segundos ou minutos em um momento em que precisar tomar uma decisão.”
Ele se afastou dos algoritmos, afastando muitos homens e mulheres nos arbustos e descendo o caminho decorativo errado. “Eu visitei alguns grandes parques temáticos nos EUA até então e consegui me perder em alguns deles”, diz ele, ele diz. “Então eu pensei que provavelmente estava certo que os convidados do Rollercoaster Tycoon também lutassem […] se o layout do parque foi mal projetado.”
Depois que o jogo evoluiu da lista de desejos em ruínas para um templo da SVGA para parques temáticos, Sawyer a espalhou para amigos, vizinhos e filhos dos vizinhos, que responderam muito positivamente. A editora Hasbro organizou para caça a playtesters profissionais, e Sawyer fez sua própria investigação sem fim. E apesar do hiccup de tempo de poupança do dia, o Rollercoaster Tycoon passou a ser o jogo de PC mais vendido de 1999.
Para a sequência, Sawyer adicionou à base de código original, aproximando -se de sua visão final. “Eu ainda amo esse jogo e tudo sobre isso”, disse ele a Eurogamer em 2016. Sawyer continuou com a Assembléia, usando -a quase exclusivamente para codificar a locomoção de Chris Sawyer em 2004, seu jogo mais ambicioso até hoje e também seu último título importante de desktop. Desde então, ele se afastou do desenvolvimento de jogos e licenciou os direitos dos novos jogos da Rollercoaster Tycoon para a Atari – esforços que nunca chegaram perto do sucesso dos dois primeiros.
Sawyer simplesmente não se dá bem com a indústria como é agora, embora ele aprecie o recente ressurgimento em Sims de administração. Há pouca necessidade de um codificador de montagem hoje em dia (como ele concorda), e trabalhar como lobo solitário é mais difícil do que nunca. “Eu também sinto que agora criei todos os jogos que queria criar”, diz ele, incluindo versões móveis de seus jogos clássicos, “e trabalhando nos designs de jogos de outra pessoa, simplesmente não me excita.”
Matt Hrodey Matt Hrodey é um escritor de jogos que cobriu o Rollercoaster Tycoon 2 para PCGamesn.