1 pontos por GN⁺ 3 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • Space Cadet Pinball teve seu código recriado por meio de engenharia reversa e pode rodar em várias plataformas
  • No Linux, a forma mais fácil de instalar é com Flatpak, que também inclui os recursos originais do jogo do Windows
  • Ao trocar pelos dados do Full Tilt! Pinball, é possível usar resolução de 1024x768
  • Os dados do Full Tilt também alteram as regras, fazendo com que algumas luzes não alternem e permaneçam acesas
  • Para software proprietário descontinuado, seria desejável um escrow com conversão para licença FOSS

Executando Space Cadet Pinball no Linux

  • O Space Cadet Pinball, que vinha incluído no Windows XP, teve seu código-fonte recriado com descompiladores e ferramentas de engenharia reversa, e há um projeto no GitHub organizado para rodar em várias plataformas
  • No Linux, a forma mais fácil de executar é com Flatpak, que também inclui os recursos originais do jogo da versão para Windows
  • Na interface gráfica, é possível instalar com ferramentas como o KDE Discover, e na linha de comando a instalação pode ser feita com o comando abaixo
    flatpak install com.github.k4zmu2a.spacecadetpinball
    
  • Também existe uma versão baseada no navegador, mas a experiência foi melhor instalando e executando diretamente no computador local

Usando os dados do Full Tilt para uma resolução mais alta

  • Os gráficos padrão ficam no nível de 480p, então podem parecer serrilhados
  • Os dados do jogo da versão separada Full Tilt! Pinball oferecem suporte à exibição em resolução 1024x768
  • Os dados do jogo Full Tilt podem ser baixados no arquivo zip do archive.org
  • Para fazer a versão Flatpak usar esses arquivos de dados, é preciso um pequeno trabalho manual
  • Procedimento para aplicar os dados

    • Primeiro, é necessário executar o jogo pelo menos uma vez para criar o diretório de dados
    • Extraia o arquivo zip baixado diretamente no diretório de dados do Flatpak
      cd ~/.var/app/com.github.k4zmu2a.spacecadetpinball/data/SpaceCadetPinball
      unzip ~/Downloads/CADET.ZIP
      
    • É preciso excluir o diretório de dados existente que vem embutido no app ou, se quiser agir com mais cuidado, renomeá-lo
      sudo rm -r $(flatpak info --show-location com.github.k4zmu2a.spacecadetpinball)/files/extra/Pinball
      
    • Essa exclusão é necessária porque o jogo procura dados em vários locais, mas ao encontrar os arquivos em um diretório ele não continua procurando nos demais
    • Em uma instalação por usuário, talvez sudo não seja necessário, mas se o local da instalação for /var/lib/flatpak, serão necessários privilégios de root
    • Se o jogo for atualizado, talvez seja preciso repetir a etapa 3
    • Porém, o pacote Flatpak não recebe atualizações há mais de 2 anos, então a chance ou a frequência de atualizações parece baixa

Diferenças entre os dados originais e os dados do Full Tilt

  • Se você mantiver juntos os arquivos de dados originais e os do Full Tilt, será possível alternar dentro do jogo entre os dados originais 3DPB e os dados do Full Tilt
  • Os arquivos de dados também parecem influenciar as regras do jogo
  • Na versão original 3DPB, as luzes da lane de reentrada e da lane de lançamento alternam cada vez que a bola passa por elas
  • Na versão Full Tilt, as luzes não alternam e permanecem acesas, facilitando completar o conjunto de luzes e melhorar o conjunto de bumpers associado
  • Alguns Macs da mesma época vinham com um jogo chamado Marble Blast pré-instalado, e também havia pessoas com um apego parecido a esse jogo
  • Ao contrário deste pinball, a série Marble Blast continuou sendo expandida e hoje existem versões mais novas que ainda podem ser jogadas

Portabilidade e preservação

  • Esse jogo antigo foi amado o bastante e, especialmente graças ao trabalho de alguém com capacidade e motivação, acabou ganhando uma forma executável em várias plataformas
  • Ter o código-fonte de alguma forma traz a grande vantagem de permitir portar o jogo para diferentes plataformas
  • Graças a esse projeto, ele aparentemente roda não só em Mac, Windows e Linux, mas também em Android e Nintendo Switch
  • Se fosse possível pagar ao desenvolvedor original, isso seria desejável, mas há preocupações especialmente quanto à legalidade de baixar os dados da versão Full Tilt
  • Isso porque esses dados incluem arte e arquivos protegidos por direitos autorais que faziam parte de um produto comercial
  • Mesmo preferindo resultados feitos sob licença FOSS, a realidade nem sempre funciona assim, e a visão é de que quem cria coisas boas deve ser recompensado para que mais coisas boas existam

Software proprietário e escrow de código-fonte

  • A preservação de software também é um objetivo importante
  • Idealmente, softwares proprietários desse tipo deveriam poder entrar em alguma forma de escrow de código-fonte
  • Enquanto o detentor original dos direitos autorais continuar vendendo o produto, esses direitos devem ser respeitados
  • Mas se ele optar por descontinuar a venda, seria desejável que o código passasse para uma licença FOSS, permitindo que usuários melhorem e mantenham o software que utilizam
  • Uma abordagem assim pode ajudar a equilibrar os direitos dos criadores, os direitos dos usuários e o objetivo da preservação

1 comentários

 
GN⁺ 3 시간 전
Comentários do Hacker News
  • Sou uma das pessoas que criou o Space Cadet Pinball, e é muito legal ver que ainda existem pessoas que gostam tanto dele a ponto de manter esse velho jogo de pinball vivo
    Também vou encaminhar este post para meus amigos e cofundadores da Cinematronics, Mike Sandige (engenheiro principal) e Kevin Gliner (designer e gerente de produto), e acho que os dois vão gostar tanto quanto eu

    • Era realmente especial quando a instalação padrão do Windows vinha com jogos divertidos, então obrigado por terem criado esse jogo e vendido para a Microsoft
      Graças a isso, deu para fazer uma liga de pinball na aula de digitação no ensino fundamental. Fiquei curioso sobre de quais partes do jogo você cuidou, e se tem alguma história divertida do desenvolvimento ou algum bug difícil de encontrar
    • Quando usei o NT 4 pela primeira vez, eu tinha que instalar várias máquinas e ficar de olho nelas o tempo todo, e o Space Cadet Pinball me ajudou a aguentar aquelas noites longas e entediantes
      Ao longo da minha carreira, sempre pensei naquela época como um golpe de sorte, então obrigado por um jogo que me ajudou a não enlouquecer
    • Colocar o Space Cadet Pinball na instalação padrão do Windows foi um dos maiores argumentos de venda da história do Windows, e sou muito grato por vocês terem feito isso
      Esse jogo teve grande influência para eu entrar no mundo do pinball de verdade e chegar a um nível semiprofissional. Sempre quis perguntar se vocês pensam em voltar à prancheta para criar uma sequência oficial de Space Cadet Pinball
      Talvez várias gerações estejam desejando essa nostalgia, em meio à enshittification, às microtransações e aos problemas de licenciamento desfavoráveis para quem joga pinball virtual. Já pensei demais nisso e, se precisar, estou disposto a colocar tudo o que tenho nisso, mas antes queria ouvir sua resposta
    • Como vinha na instalação padrão do Windows 2000, estava em todo laboratório de informática, era uma ótima pausa da realidade e uma experiência de jogo duradoura
      Depois apareceram pessoas trazendo Deluxe Skijump, Doom e Starcraft, mas o Space Cadet ainda continuava sendo uma opção bem válida
    • Queria saber o que você acha da proposta de escrow de código-fonte no fim do texto
      Sou contratado externo da Software Heritage; não sei se eles ainda fazem isso hoje, mas me parece uma organização ideal para assumir esse papel
      https://www.softwareheritage.org/
  • É absurdo o quanto essa recriação é fiel ao original, e a aparência e a sensação ao jogar são quase idênticas
    O autor fez isso apenas descompilando o exe, sem olhar o código-fonte original, então na prática conseguiu tudo completamente às cegas. Então a frase “uma criança que não ouve, não fala nem vê, mas joga pinball absurdamente bem” cai como uma luva

    • Lembro que no original, se você digitasse algo como “hidden test” durante a sequência de início, dava para mover a bola com o cursor
      Fiquei curioso para saber se isso funciona nesta versão e ia testar depois no computador, mas instalei a versão do AUR e funciona mesmo. Se você digitar “hidden test” durante a sequência de início, dá para arrastar a bola
    • Vale notar também que a Microsoft fornece símbolos de depuração do Pinball
    • Pelo que entendo, numa abordagem clean room você não deveria olhar diretamente o código desmontado; outra pessoa deveria analisar e documentar para você
      Claro, talvez dê para fazer algo parecido pedindo ao Claude para escrever a especificação a partir do código desmontado
  • Olhei o GitHub e achei interessante: https://github.com/k4zmu2a/SpaceCadetPinball
    Foi portado para vários consoles e também tem uma versão no navegador: https://pinball.alula.me/
    E o Space Cadet Pinball era, na verdade, parte de um jogo maior da Maxis que eu não conhecia, o Full Tilt! Pinball. O Windows 95 quase veio com DOOM incluído, mas aparentemente recusaram com algo como “não tem algo como pinball?”, e acabou dando nisso
    https://en.wikipedia.org/wiki/Full_Tilt!_Pinball#Development

    • Em outro ponto desta thread, o CEO negou a história de que houve trabalho com DOOM
    • A versão Full Tilt é muito mais turbinada e inclui multiball, que não existe na versão empacotada com o Windows
  • No ano passado, na Shopify, fizemos um jogo de pinball inspirado em Space Cadet, e ainda dá para jogar aqui: https://bfcm.shopify.com/
    Todo ano lançamos um site que visualiza em tempo real as vendas das lojas na Black Friday; antes era mais um globo mostrando arcos em que as vendas iam do vendedor ao comprador. Nos últimos anos, temos deixado o site mais divertido e interativo
    Programar uma máquina de pinball foi bem difícil, e uma equipe de 2 engenheiros e 1 artista trabalhou nisso por cerca de um mês e meio. Se tiver curiosidade sobre como funciona, deixamos anotações do processo no computador desktop ao lado da máquina de pinball

    • Eu realmente adoro o mecanismo de captura da bola que fica no meio, mais para o lado esquerdo, soltando um gemido esforçado enquanto “arremessa” a bola
  • Gostei da menção a escrow FLOSS de código-fonte no fim do texto
    Seria difícil implementar isso legalmente, mas a ideia de um software ser fechado enquanto está à venda e virar open source automaticamente quando deixar de ser vendido é atraente do ponto de vista de usuários ou compradores em potencial. No pior caso, se a empresa quebrar ou cancelar o projeto, isso reduz a dependência
    Isso me lembra um pouco https://kde.org/community/whatiskde/kdefreeqtfoundation/

    • Não é a mesma coisa que escrow FLOSS, mas escrow de código-fonte é bem comum em contratos de software empresarial de grande porte
      Existem até empresas que fazem a intermediação disso: https://www.escrowcompany.co/source-code-escrow/
    • Escrow de software é muito comum; eu mesmo já trabalhei num lugar que tinha escrow do código-fonte do Windows
    • Sinceramente, não sei se o código-fonte em si seria tão útil assim
      Depois que as vendas forem encerradas, acho que basta tornar legais a redistribuição, a descompilação, a engenharia reversa e a reimplementação
  • A versão Full Tilt também tem multiball, que não existe na versão do Windows
    Você pode travar a bola acertando o wormhole quando duas luzes estiverem da mesma cor, e quando travar 3 bolas isso começa
    Se você gosta de Space Cadet, recomendo muito experimentar o Visual Pinball também. Existem muitos jogos de pinball melhores do que Space Cadet, e há várias mesas incríveis feitas pela comunidade de graça. Pelo que parece, porém, é só para Windows. As mesas são roteirizadas em VBScript e o PinMAME é carregado como objeto COM
    Aliás, mexendo um pouco nisso, percebi que a programação de Space Cadet era bem improvisada. O estado das luzes reflete diretamente o estado do jogo. Então existe um bug em que você pode pular de ranking se perder a bola ou iniciar uma missão enquanto o show de luzes de subida de rank está tocando

    • Felizmente, isso está errado
      O VPX agora também roda em Linux, Mac, iOS e Android, e funciona bem graças ao trabalho pioneiro do jsm174. A parte de VBScript é tratada com a quantidade necessária de Wine, e o resto é nativo
      Também há suporte para Surround Sound Feedback (SSF), Direct Output Framework (DOF), Pinup Popper Packs (PUP Packs) e mais. A GUI, que antes era exclusiva do Windows, agora já vem integrada nas versões Windows/Mac/Linux via ImGUI e pode ser aberta até durante a jogatina
      Se quiser testar, basta entrar no GitHub e baixar a action mais recente da sua plataforma [0]. Para quem não usa Windows, é melhor a versão mais recente do master, que reduziu mais a diferença de recursos em relação à versão de Windows do que o release 10.8.0 do ano passado. Use a versão BGFX, que tem um novo backend de renderização multithread com suporte a Metal e Vulkan
      Se quiser saber mais, vale conferir o Discord Virtual Pinball Chat [1] ou a wiki [2]. Os desenvolvedores trabalharam bastante para tornar o VPX multiplataforma, e o resultado aparece. Eu mesmo montei um Pincab [3] com base nisso, e ficou excelente
      Além disso, o VPX agora também é suportado no Batocera, mas a versão incluída lá já está bem desatualizada
      [0] https://github.com/vpinball/vpinball/actions/workflows/vpinb...
      [1] https://discord.gg/BhR9h5aWm
      [2] https://github.com/dekay/vpinball-wiki/wiki/About-Visual-Pin...
      [3] https://github.com/dekay/vpin-cabinet/
    • Eu tinha a impressão de que um jogo mais realista seria mais divertido, e que talvez eu gostasse de Space Cadet por nostalgia da infância
      Mas quanto mais eu jogo outros jogos de pinball, mais reconheço que Space Cadet em si é um jogo excelente. É gostoso de jogar e tem vários elementos que te prendem
      Eu queria encontrar outros jogos de pinball que me divertissem tanto quanto ele, e os mais próximos foram Xenotitle e Demon's Tilt, mas achei mais difícil me acostumar e ficar bom neles. O seguinte melhor, na minha opinião, seria Yoku's Island Express
    • Joguei muito pinball, e o Space Cadet é um jogo de pinball muito bom em design, equilíbrio e interesse
      Não é um jogo para subestimar
  • Para Visual Pinball, vale a pena conferir isto: https://archive.org/details/vpinball-x-73-space-cadet / https://github.com/vpinball/vpinball
    Pode haver algo melhor, mas a versão do JP funciona de cara sem precisar instalar e configurar um monte de outros programas
    https://youtube.com/results?search_query=JP%27s+Space+Cadet - https://youtu.be/UXfohCzilrQ
    É realmente impressionante como esses pinballs são feitos hoje em dia
    Tem mais mesas aqui também:
    https://vpforums.org/index.php?app=downloads&showcat=50
    https://vpuniverse.com/files/category/82-vpx-pinball-tables
    https://virtualpinballspreadsheet.github.io
    https://nailbuster.com/wikipinup
    https://archive.org/search?query=visual+pinball+tables

    • Tive bastante dificuldade tentando rodar esse projeto em ambientes que não são Windows
      No Linux/Mac ele travava ou dava crash acontecesse o que acontecesse, e embora aos poucos esteja se soltando dessas amarras, ainda é um projeto muito voltado para Windows
    • O Visual Pinball é realmente incrivelmente bom, sustentado por uma comunidade enorme e ativa de artistas e desenvolvedores de mesas
      Existem centenas de mesas de alta qualidade e saem mais de 12 lançamentos novos por semana. Há mesas originais novas que fazem coisas impossíveis em mesas físicas de pinball, mas também muitas recriações caprichadas de máquinas comerciais lendárias dos anos 1950 aos 2000. É bem provável que alguma mesa que você lembra da adolescência já tenha sido emulada
      Assim como o MAME preserva jogos de arcade antes que desapareçam, a comunidade VPin está preservando a história para que gerações futuras possam aproveitar máquinas eletromecânicas. Internamente, no Visual Pinball, uma versão especial do MAME chamada PinMAME emula as ROMs das máquinas de pinball, enquanto o Visual Pinball cuida da renderização 3D e da simulação física
      A maioria joga no desktop com teclado, mas, assim como alguns jogadores de MAME ligam botões, joysticks ou gabinetes de arcade dedicados, o VPin também pode rodar em gabinetes feitos para parecer máquinas de pinball. No lugar do playfield fica uma tela plana, e botões de flipper e um plunger real lançam a bola virtual
      O VPin também suporta som estéreo, mas pode usar os canais extras de saída 7.1 de placas de som comuns de PC para acionar subwoofer, bass shakers e feedback háptico posicional de até 4 canais. Fiquei impressionado com a precisão com que os transdutores reproduzem a sensação de bumpers e slingshots reais funcionando dentro do gabinete, até as vibrações sutis da bola metálica rolando sobre o playfield de madeira
      No meu gabinete, também instalei solenoides de flipper reais logo abaixo da posição dos flippers renderizados. Como meu gabinete VPin fica na sala de jogos ao lado de 8 máquinas de pinball reais e de um gabinete MAME customizado, posso garantir que a sensação geral chega muito perto da coisa real
      Se quiser experimentar o Visual Pinball, recomendo fortemente começar pelo instalador automático do Pinup Popper que o @eahm linkou acima: https://nailbuster.com/wikipinup/doku.php
      Esse excelente resultado vem de vários projetos funcionando juntos de forma harmoniosa, mas no começo pode ser confuso instalar tudo na ordem e nos lugares certos. Na primeira instalação foi um pouco chato precisar ler a documentação, mas hoje acho até uma vantagem ele não ser amigável a um clique. É complexo só o suficiente para filtrar quem chegaria de forma muito casual para fazer spam, então essa comunidade totalmente gratuita e ligada ao universo retrô ainda mantém muita gente experiente e engajada
  • Gosto da ideia de escrow de código-fonte, e isso parece uma boa área para intervenção de governos nacionais
    Lembra o fato de a British Library exigir o depósito de uma cópia de todos os livros publicados. Talvez pudesse existir algo parecido para código-fonte, nem que fosse só por preservação
    Não me incomodaria nem um pouco se ele ficasse trancado num cofre metafórico e só fosse aberto quando certas condições sobre suporte e ciclo de vida do software fossem atendidas. Mesmo que a condição fosse “depois que o copyright original expirar”, ou seja, mais de 70 anos depois, isso ainda seria muito melhor para a preservação do código-fonte do que a prática atual. Já houve jogos cujo código-fonte original se perdeu em menos de 10 anos após o lançamento (Kingdom Hearts 1). Qualquer alternativa me parece melhor do que a situação atual

    • Não sei se qualquer alternativa seria melhor do que a situação atual
      O incentivo para criadores já está baixo o bastante. Você escreve um livro e ele logo aparece no Anna's Archive e é digerido em lixo de LLM para beneficiar a turma do Altman. Você compartilha uma reportagem investigativa aqui ou no Reddit e um dos comentários mais votados costuma ser um link para burlar o paywall
      Já estamos numa situação de janela quebrada à la Bastiat, em que o incentivo para criar está diminuindo. Não quero aumentar o risco de o trabalho de criadores de software ser ainda mais facilmente copiado e lavado em copyright. Um cofre estatal seria um alvo fácil para empresas trilionárias
      Dito isso, como alguém que trabalha com engenharia reversa retrô, me identifiquei bastante com o que o autor disse sobre a tensão entre a necessidade de preservação de software e a de recompensar criadores
  • Em breve vão separar o jogo dos dados, e isso deve facilitar a segunda parte, permitindo que um Flatpak customizado amplie os dados
    O Flatpak recebeu atualizações para manter o runtime atual, mas o jogo upstream em si não foi atualizado, e o Flathub só vai mostrar dados do appstream sobre essas atualizações. Se olhar o repositório do manifesto do Flatpak, o commit mais recente é de 6 meses atrás: https://github.com/flathub/com.github.k4zmu2a.spacecadetpinb...

  • Queria que alguém, como projeto de hobby ou dentro de uma empresa, fizesse uma mesa de pinball física de Space Cadet

    • Já houve algumas tentativas, e acho que provavelmente a mais conhecida é esta [1]
      Já que estamos nisso, eu também adoraria ver uma versão real da mesa de pinball da Sesame Street [2], embora isso talvez seja um projeto um pouco mais ambicioso
      [1] - https://spacecadetpinball.wordpress.com
      [2] - https://www.youtube.com/watch?v=JZshZp-cxKg
    • Muita gente já pensou nisso, mas, pelo que me lembro, não dá para construir fisicamente
      Existe uma canaleta que passa por baixo dos bumpers, e bumpers reais descem bastante para baixo: https://files.catbox.moe/pnaeri.png
    • Propus isso a um funcionário da Stern 21 anos atrás, mas claro que não deu em nada
      Na época eu também queria fazer uma máquina de Halo, e isso também não foi para frente