Space Cadet Pinball no Linux
(brennan.io)- 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
sudonã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
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
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
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
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
Depois apareceram pessoas trazendo Deluxe Skijump, Doom e Starcraft, mas o Space Cadet ainda continuava sendo uma opção bem válida
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
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
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
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
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/
Existem até empresas que fazem a intermediação disso: https://www.escrowcompany.co/source-code-escrow/
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
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/
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
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
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
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
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á 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
Existe uma canaleta que passa por baixo dos bumpers, e bumpers reais descem bastante para baixo: https://files.catbox.moe/pnaeri.png
Na época eu também queria fazer uma máquina de Halo, e isso também não foi para frente