1 pontos por GN⁺ 2023-07-14 | 1 comentários | Compartilhar no WhatsApp
  • Código-fonte roubado em 2003 e parcialmente organizado de The Simpsons: Hit & Run, com o código do videogame para PS2, Xbox e PC disponibilizado
  • O download da versão de desenvolvimento/debug compilada do jogo está na aba releases
  • Há arquivos demais para subir tudo no GitHub de uma vez, então o restante do repositório está no MEGA
  • A pasta do MEGA contém assets e scripts adicionais para compilar/buildar o jogo diretamente
  • A pasta documents/ não está no repositório, pois contém informações pessoais da equipe de desenvolvimento da Radical em 2003, notas do projeto, cronograma de férias etc.

1 comentários

 
GN⁺ 2023-07-14
Opiniões no Hacker News
  • Dá a sensação de ver uma vida passada. Naquela época eu trabalhava na Relic Entertainment e, se minha memória não falha, os escritórios da Relic e da Radical ficavam ambos em Yaletown, Vancouver. A Radical depois se mudou para Main & Terminal.
    Nessa época, trabalhei em Company of Heroes e Dawn of War, e o código parece muito familiar. É C++ do mesmo estilo e também se parece muito com o código de Homeworld.
    https://github.com/HomeworldSDL/HomeworldSDL
    Estudei na SFU, e Neall Verheyde, que era programador da Radical, deu uma disciplina por um semestre. Infelizmente, parece que ele faleceu alguns anos atrás.
    https://www.dignitymemorial.com/obituaries/west-vancouver-bc...

    • Company of Heroes era o jogo favorito entre meus amigos da faculdade. Gastamos centenas de horas nele quando deveríamos estar fazendo trabalhos :)
      "Ready ze panzerfaust"
    • É realmente uma pena ver a série Company of Heroes ter se estragado. O mais recente, CoH3, é sem alma, ganancioso e simplesmente quebrado, a ponto de parecer quase uma zombaria da base de jogadores.
      Algo parecido está acontecendo com a franquia Men of War, que é semelhante, mas mais realista. A enshittification está acontecendo em toda parte, e nada está melhorando.
    • Acho que sempre vou me lembrar de Company of Heroes com carinho. Joguei muito com amigos, e era um jogo bem feito, com excelente atenção aos detalhes e senso de humor. Infelizmente, essa magia se perdeu nas versões novas.
    • Dawn of War me levou para a longa e sombria espiral de plástico e desespero com pintura que é Warhammer 40k. Era um jogo incrível.
  • Se você é fã deste jogo, o Reubs[0], no YouTube, está recriando o jogo inteiro e todos os assets com uma engine e ferramentas modernas.
    Obviamente, infelizmente isso não será lançado ao público, mas é divertido ver o que poderia ter sido possível.
    [0] https://youtube.com/@reubs

  • Acho que é o código C++ mais limpo, fácil de entender e fácil de ler que já li.
    Quando leio projetos open source em C++ de áreas que não são jogos, a maioria parece um monte de sintaxe indecifrável.
    Fico curioso se o código deste jogo é particularmente bem escrito ou se eu é que costumo olhar só para codebases erradas.

    • Entrei na Radical Entertainment alguns anos depois de Hit & Run, e havia muitos engenheiros e artistas excelentes, com contratação e liderança também sólidas. Não era um lugar sem defeitos, mas era ótimo tanto para desenvolvedores iniciantes quanto experientes.
      No fim, dá para dizer que a transição para a geração 360/PS3, com valores de produção e dificuldade muito maiores, foi o que derrubou a empresa; dependendo de quem você perguntar, também foi porque a Radical, que pertencia à Vivendi, acabou envolvida na fusão com a Activision.
    • Uma boa parte dos idiomas de C++ é a) muito antiga, vindo desde a era do C++98, e foi mudando lentamente a cada versão, e b) extremamente conservadora. Ideias valorizadas em linguagens mais modernas, como KISS ou “sem mágica”, se aplicam menos, especialmente em desenvolvimento de sistemas e embarcados, onde a eficiência pesa mais.
      É bem possível que as codebases que você mencionou não pareçam tão bagunçadas ou arcaicas para desenvolvedores que usam C++ principalmente. Elas só parecem assim para quem vem de fora — e, claro, existem muitas codebases realmente bagunçadas. Desenvolvimento de jogos tem seus próprios paradigmas e idiomas, e em geral tende a ser estruturado de forma mais independente e modular.
      Ainda assim, codebases modernas pós-C++11 podem parecer muito mais “limpas” até para quem não é desenvolvedor C++.
    • Também há muito código de jogos que é bem hacky e feio :)
      Mesmo assim, recomendo ler códigos como os de Quake e Doom. Começando pelas versões iniciais, eles são bem mais simples, fáceis de ler e bons para experimentar modificações.
      Há uma lista de codebases que valem a leitura aqui: https://github.com/albertz/wiki/blob/master/coding.md#recomm...
    • Vale dar uma olhada também no KDE. Sempre achei que a maioria dos projetos fosse bem escrita.
    • Os comentários eram surpreendentemente bons. Mas, embora a codebase seja fácil de entender, isso é no sentido de que cada linha é simples; a estrutura é frágil.
      Não estou dizendo que isso seja um grande problema. Se o código vai ser tocado por poucas pessoas, uma codebase frágil pode ser aceitável. Mas é menos adequada para código que milhares de pessoas vão usar e modificar por décadas, como sistemas operacionais, compiladores e navegadores.
      [1]
      Há suposições não verificadas por toda parte, código específico de plataforma dentro de #ifdef em todo lugar, singletons em todo lugar. Só dei uma olhada por 5 minutos, então deve haver mais exemplos.
  • https://github.com/Svxy/The-Simpsons-Hit-and-Run/blob/main/g...

  • É um código “vazado” de 20 anos, e parece que ele já tinha vazado uma vez antes, mas ninguém percebeu no começo :) Mesmo assim, eu adorava esse jogo antigamente

    • Parece que o upload via conexão discada finalmente terminou ;) Era um jogo surpreendentemente divertido, considerando a premissa. Até esse jogo, eu achava que a família Simpsons morava em Illinois, não em Oregon
  • https://github.com/search?q=repo%3ASvxy%2FThe-Simpsons-Hit-a...
    A palavra "fuck" aparece apenas 50 vezes no repositório inteiro

  • Simpsons Hit and Run foi mesmo um presente quando saiu. O quanto a Radical amava a franquia The Simpsons transparecia por todos os cantos do jogo. Ele era cheio de pequenas referências ao programa e falas espirituosas, e jogar era divertido por si só

    • Eu também adorava. Pelo mesmo motivo, joguei bastante Tapped Out por anos. Ele tem praticamente tudo que já apareceu em Simpsons, e é muito divertido construir o mundo e ver os personagens andando por aí
      Muitas vezes penso em procurar um jeito de extrair os assets e criar um clone open source, para o dia em que a EA inevitavelmente encerrar o serviço e tirá-lo do mundo
  • Gosto de como os comentários do código mantêm o tom do próprio jogo e de The Simpsons
    “””
    // Synopsis: Blahblahblah
    “””
    Eu gostaria de trabalhar em um lugar que permitisse ou incentivasse esse tipo de coisa

    • Esse tipo de coisa é só fazer commit e bancar até o fim. Já encerrei uma reunião dizendo: “Eu escrevi assim porque era óbvio a ponto de não valer a pena escrever um comentário mais detalhado, e esta reunião invalidou esse ponto. Se vocês realmente não entenderem, peçam para um dos juniores explicar”
      Só que você precisa estar certo, e tão certo que nem uma objeção forçada consiga se sustentar. Caso contrário, é bom começar a atualizar o currículo
    • Meu chefe, o chefe do meu chefe e o chefe acima dele nunca leram meu código. Escreva os comentários que quiser
  • Considerando que este jogo tem popularidade cult, achei que haveria uma enxurrada de atividade. Segundo o GitHub, vazou em 1º de junho, e fico me perguntando se há alguém trabalhando para fazê-lo rodar em computadores modernos. É realmente interessante

  • Foi divertido ler graças aos ótimos comentários e aos nomes de variáveis e métodos
    Todo mundo deve ter tido uma variável assim em algum momento: https://github.com/Svxy/The-Simpsons-Hit-and-Run/blob/eb4b34...
    O mesmo vale para comentários assim: https://github.com/Svxy/The-Simpsons-Hit-and-Run/blob/eb4b34...

    • Muito engraçado. Às vezes fico pensando se a engenharia de software não é séria demais