Código-fonte do Descent 3 é divulgado
Atualização (2024/04/16)
- Agradecemos pelo grande interesse e participação na comunidade de desenvolvedores no Discord do Descent. Já existe uma comunidade ativa, então participe pelo link abaixo.
- Em breve, são esperados grandes commits, como trabalho paralelo de outros desenvolvedores ou merge de código escrito depois que este código foi arquivado.
Direção de desenvolvimento e decisões
- Daqui para frente, haverá suporte a C++17.
- Como está sendo usado o clang no modo LLVM para formatação de código, execute o
clang-format antes de enviar um PR.
Lançamento inicial
- Este é o código-fonte da versão mais recente do Descent 3, incluindo o patch '1.5' escrito há alguns anos por Jeff Slutter e Kevin Bentley. Na época, funcionava em Windows, Linux e Mac.
- Algumas bibliotecas proprietárias de áudio e vídeo da Interplay (formatos ACM e MVE) foram removidas. Esse código ainda está em posse dos autores, então estão procurando alguém que ajude a criar um conversor para fazer as cutscenes antigas funcionarem. Será necessário algum esforço para substituir esse código por stubs para que tudo compile.
- O objetivo inicial é fazer tudo compilar novamente e, se possível, adicionar ações de CI/CD também. Depois disso, será preciso organizar o código, removendo comentários antigos de controle de versão e coisas do tipo. A maior parte do código foi escrita por uma equipe excelente, mas é preciso considerar que, naquela época, todos eram muito mais jovens e menos experientes.
- Se quiser ajudar na manutenção, envie uma mensagem. Caso contrário, PRs serão muito bem-vindos.
- Esta é a última atualização mostrando o jogo rodando em arquiteturas diferentes. Pedimos desculpas por não termos conseguido lançar o patch 1.5. Alguns problemas logísticos atrapalharam.
- Agradecimentos a Jeff Slutter por ter feito a maior parte do trabalho de modernização do código dos anos 90. Estamos ansiosos para ver o que a comunidade fará com isso!
Opinião do GN⁺
- A divulgação do código-fonte de um jogo amado há mais de 20 anos deve atrair o interesse de muitos desenvolvedores. No entanto, modernizar código antigo exigirá muito esforço.
- A abertura do código por si só já é significativa, mas para que isso seja aplicado ao jogo de fato, ainda parece haver muitos desafios, como resolver questões de licença, oferecer suporte a plataformas atuais e estabelecer um processo de desenvolvimento.
- Para o desenvolvimento sustentável de um projeto open source, parece importante que haja antes um roadmap claro, diretrizes para contribuidores e uma estrutura de governança bem definida.
- Entre os engines de jogo open source, Godot e Cocos2d-x vêm sendo desenvolvidos ativamente. Pode ser útil entender os pontos fortes e fracos deles e pensar em formas de diferenciação.
- Há preocupação sobre se um jogo de 20 anos atrás ainda funcionará bem hoje ou passará uma sensação datada. Parece necessário atualizar de forma moderna elementos centrais do jogo, como gráficos, som e UI.
1 comentários
Comentários do Hacker News
Foram apresentados casos de como a série de jogos Descent teve um grande impacto na vida de uma pessoa: ele se casou com a esposa que conheceu no fórum, deu aos filhos nomes baseados nos apelidos de amigos do Descent e contou histórias de ter ido a casamentos e funerais de conhecidos.
O sistema de controle de voo totalmente livre em 360 graus de Descent acabou sendo a origem da opção de inverter o eixo Y em jogos FPS posteriores. Um desenvolvedor relembra que leu o FAQ de Descent aos 12 anos, aprendeu IRC e que o jogo teve grande influência em sua trajetória até se tornar engenheiro e desenvolvedor de jogos.
Entre jogadores competitivos, era usada uma técnica chamada "trichording" para maximizar a velocidade, pressionando várias teclas ao mesmo tempo para se mover simultaneamente nos 3 eixos. Não está claro se isso era um design intencional ou um bug.
Os formatos antigos das bibliotecas de som/vídeo de Descent 3 (ACM, MVE) foram removidos, mas houve disposição em compartilhar o código para o desenvolvimento de ferramentas de conversão. Parece que o FFMPEG oferece suporte a esses formatos.
Para um engenheiro, a série Descent foi a porta de entrada para o mundo da internet. Aos 10 anos, jogava D1 com amigos por ligação telefônica e, no D2, experimentou matchmaking via Kali/Kahn. Conheceu IRC e ICQ e passou a se dedicar às atualizações mais recentes de PC. No D3, entrar no top 100 do ranking mundial foi uma experiência marcante.
Também houve curiosidade sobre o processo e o contexto da abertura do código-fonte de Descent 3, além de perguntas sobre a possibilidade de liberar o código-fonte de Hardwar, outro jogo da Interplay.