Space Cadet Pinball en Linux
(brennan.io)- Space Cadet Pinball fue reconstruido en código fuente mediante ingeniería inversa y puede ejecutarse en varias plataformas
- En Linux, la forma más fácil de instalarlo es con Flatpak, y también incluye los recursos originales del juego de Windows
- Si se cambia a los datos de Full Tilt! Pinball, se puede usar resolución de 1024x768
- Los datos de Full Tilt también cambian las reglas, por lo que algunas luces ya no se alternan y permanecen encendidas
- Para software privativo descontinuado, sería deseable una transición mediante escrow de código fuente hacia una licencia FOSS
Ejecutar Space Cadet Pinball en Linux
- Space Cadet Pinball, que venía incluido con Windows XP, fue convertido en código fuente usando descompiladores y herramientas de ingeniería inversa, y existe un proyecto en GitHub que lo organiza para poder ejecutarlo en varias plataformas
- En Linux, la forma más sencilla de ejecutarlo es con Flatpak, que también incluye los recursos originales del juego de la versión de Windows
- En GUI se puede instalar con herramientas como KDE Discover, y en CLI se puede instalar con el siguiente comando
flatpak install com.github.k4zmu2a.spacecadetpinball - También existe una versión basada en navegador, pero resultó mejor instalarlo y ejecutarlo directamente en una computadora local
Usar mayor resolución con datos de Full Tilt
- Los gráficos predeterminados son de nivel 480p, así que pueden verse toscos
- Los datos del juego de una versión aparte, Full Tilt! Pinball, permiten mostrarlo en resolución 1024x768
- Los datos del juego Full Tilt se pueden obtener del archivo zip en archive.org
- Para que la versión Flatpak use esos archivos de datos, hace falta un poco de trabajo manual
-
Procedimiento para aplicar los datos
- Primero hay que ejecutar el juego al menos una vez para que se cree el directorio de datos
- Descomprime el archivo zip descargado directamente en el directorio de datos de Flatpak
cd ~/.var/app/com.github.k4zmu2a.spacecadetpinball/data/SpaceCadetPinball unzip ~/Downloads/CADET.ZIP - Hay que borrar el directorio de datos existente que viene incluido con la app o, si se quiere proceder con más cuidado, cambiarle el nombre
sudo rm -r $(flatpak info --show-location com.github.k4zmu2a.spacecadetpinball)/files/extra/Pinball - Esto es necesario porque el juego busca datos en varias ubicaciones, pero si encuentra los archivos en un directorio, ya no sigue buscando en las demás
- Si la instalación es por usuario, puede que no haga falta
sudo, pero si la ubicación de instalación es/var/lib/flatpak, se necesitan permisos de root - Cuando el juego se actualice, puede ser necesario repetir el paso 3
- Aun así, el paquete Flatpak no ha recibido actualizaciones en más de dos años, así que la posibilidad o frecuencia de actualizaciones parece baja
Diferencias entre los datos originales y los de Full Tilt
- Si se dejan juntos los archivos originales y los de Full Tilt, dentro del juego se puede alternar entre los datos originales de 3DPB y los de Full Tilt
- Los archivos de datos parecen afectar también las reglas del juego
- En la versión original 3DPB, las luces del carril de reentrada y del carril de lanzamiento se alternan cada vez que pasa la bola
- En la versión Full Tilt, las luces no se alternan y permanecen encendidas, lo que facilita completar el conjunto de luces y mejorar el conjunto de bumpers vinculado
- En algunas Mac de una época similar venía preinstalado un juego llamado Marble Blast, y también había personas con un apego parecido a ese juego
- A diferencia de este pinball, la serie Marble Blast siguió expandiéndose y hoy existen versiones más nuevas que todavía se pueden jugar
Portabilidad y preservación
- Este juego antiguo fue lo bastante querido, y sobre todo hubo alguien con la capacidad y la motivación para trabajarlo, que terminó en una forma ejecutable en múltiples plataformas
- Tener el código fuente, de una forma u otra, da la gran ventaja de poder portar el juego a distintas plataformas
- Gracias a este proyecto, parece poder ejecutarse no solo en Mac, Windows y Linux, sino también en Android y Nintendo Switch
- Si fuera posible pagarle al desarrollador original, sería deseable hacerlo, pero hay inquietudes sobre la legalidad de descargar en particular los datos del juego de la versión Full Tilt
- Eso se debe a que esos datos incluyen arte y datos con copyright que formaban parte de un producto comercial
- Aunque se prefieran resultados hechos con licencia FOSS, la realidad no siempre funciona así, y la idea es que quienes crean cosas buenas deberían ser recompensados para que existan más buenos resultados
Software privativo y escrow de código fuente
- La preservación del software también es un objetivo importante
- Idealmente, este tipo de software privativo debería poder entrar en alguna forma de escrow de código fuente
- Mientras el titular original de los derechos siga vendiendo el producto, esos derechos deben ser respetados
- Pero si decide dejar de venderlo, sería deseable un mecanismo por el cual el código pase a una licencia FOSS para que los usuarios puedan mejorar y mantener el software que usan
- Un enfoque así podría ayudar a equilibrar los derechos de los creadores, los derechos de los usuarios y el objetivo de la preservación
1 comentarios
Comentarios de Hacker News
Soy una de las personas creadoras originales de Space Cadet Pinball, y de verdad me parece genial que todavía haya gente a la que le guste lo suficiente como para mantener vivo un juego de pinball tan viejo
También pienso compartir este post con mis amigos y cofundadores de Cinematronics, Mike Sandige (ingeniero principal) y Kevin Gliner (diseñador y gerente de producto), y creo que a ambos les va a dar tanta alegría verlo como a mí
Gracias a eso pudimos hacer una liga de pinball en la clase de mecanografía de la secundaria. Me da curiosidad saber de qué parte del juego te encargaste y si tienes alguna anécdota divertida del desarrollo o algún bug difícil de encontrar
Durante toda mi carrera he recordado lo afortunado que fui entonces, y te agradezco por un juego que me ayudó a no volverme loco
Este juego tuvo una gran influencia en que me metiera al mundo real del pinball y llegara a un nivel semiprofesional. Siempre he querido preguntar si considerarías volver a la mesa de diseño para hacer una secuela oficial de Space Cadet Pinball
En medio de la enshittification, las microtransacciones y los problemas de licencias desfavorables para quienes juegan pinball virtual, quizá varias generaciones estén deseando algo de esta nostalgia. Ya le he dado demasiadas vueltas al tema y estaría dispuesto a poner todo lo que tengo si hace falta, pero primero quería escuchar tu respuesta
Después hubo gente que llevaba Deluxe Skijump, Doom y Starcraft, pero Space Cadet seguía siendo una opción perfectamente válida
Soy contratista externo de Software Heritage; no sé si siguen haciendo esto ahora mismo, pero me parece una organización ideal para asumir un rol así
https://www.softwareheritage.org/
Es ridículo lo precisa que es esta recreación respecto al original; la apariencia y la sensación al jugar son casi idénticas
El autor la hizo prácticamente a ciegas, solo descompilando el exe sin ver el código fuente original. Así que le queda perfecto eso de “el niño que ni oye, ni habla, ni ve, pero juega pinball increíblemente bien”
Me preguntaba si eso también funcionaba en esta versión y pensaba probarlo cuando estuviera frente a una computadora, pero instalé la versión de AUR y sí, efectivamente funciona. Si escribes “hidden test” durante la secuencia de inicio puedes arrastrar la bola
Aunque claro, quizá también podría funcionar algo parecido si le pides a Claude que escriba la especificación a partir del código desensamblado
Viendo GitHub, está interesante: https://github.com/k4zmu2a/SpaceCadetPinball
Se ha porteado a varias consolas y también hay una versión para navegador: https://pinball.alula.me/
Además, Space Cadet Pinball era parte de un juego más grande de Maxis que yo no conocía, Full Tilt! Pinball. Estuvieron a punto de incluir DOOM con Windows 95, pero lo rechazaron con algo como “¿no podría ser un juego como pinball?”, y así terminó pasando esto
https://en.wikipedia.org/wiki/Full_Tilt!_Pinball#Development
El año pasado en Shopify hicimos un juego de pinball inspirado en Space Cadet, y todavía se puede jugar aquí: https://bfcm.shopify.com/
Cada Black Friday publicamos un sitio que visualiza en tiempo real las ventas de las tiendas; antes era básicamente un globo terráqueo donde cada venta aparecía como un arco que iba del vendedor al comprador. En los últimos años hemos estado haciendo el sitio más divertido e interactivo
Programar la máquina de pinball fue bastante difícil, y un equipo de 2 ingenieros y 1 artista trabajó alrededor de mes y medio en ello. Si te da curiosidad cómo funciona, dejamos notas del proceso en la computadora de escritorio al lado de la máquina de pinball
Me gusta la mención al depósito FLOSS del código fuente al final del texto
Sería difícil implementarlo legalmente, pero la idea de que el software sea de código cerrado mientras se vende y luego pase automáticamente a ser open source cuando ya no se comercialice resulta atractiva desde la perspectiva de posibles usuarios o compradores. En el peor de los casos, si la empresa quiebra o cancela el proyecto, se reduce la dependencia
Me recuerda un poco a https://kde.org/community/whatiskde/kdefreeqtfoundation/
Incluso hay empresas que se dedican a intermediar este tipo de acuerdos: https://www.escrowcompany.co/source-code-escrow/
Creo que bastaría con que, una vez descontinuada la venta, fuera legal redistribuir, decompilar, hacer ingeniería inversa y reimplementar
La versión Full Tilt también tiene multibola, que no está en la versión de Windows
Puedes bloquear bolas disparando al wormhole cuando dos luces tienen el mismo color, y se activa cuando bloqueas 3 bolas
Si te gusta Space Cadet, te recomiendo mucho probar Visual Pinball. Hay muchísimos juegos de pinball mejores que Space Cadet, y también muchas mesas geniales hechas por la comunidad gratis. Eso sí, creo que es solo para Windows. Las mesas se scriptan con VBScript y PinMAME se carga como objeto COM
Y por cierto, trasteando un poco con esto, vi que la programación de Space Cadet era bastante desprolija. El estado de las luces refleja directamente el estado del juego. Por eso aparece un bug por el que puedes saltarte rangos si pierdes la bola o inicias una misión mientras se reproduce el espectáculo de luces de subida de rango
VPX ahora también funciona en Linux, Mac, iOS y Android, y corre bien gracias al trabajo pionero de jsm174. La parte de VBScript se maneja con la cantidad necesaria de Wine y el resto es nativo
También soporta Surround Sound Feedback (SSF), Direct Output Framework (DOF), Pinup Popper packs (PUP Packs) y más. La GUI, que antes era exclusiva de Windows, ahora también está integrada en las versiones de Windows/Mac/Linux mediante ImGUI y puede abrirse incluso durante la partida
Si quieres probarlo, solo inicia sesión en GitHub y descarga las acciones más recientes para tu plataforma [0]. Si no usas Windows, te conviene la versión más reciente de master, que ha reducido mucho más la brecha de funciones con Windows que el lanzamiento 10.8.0 del año pasado. Usa la versión BGFX, que tiene un nuevo backend de renderizado multihilo compatible con Metal y Vulkan
Si quieres saber más, lo mejor es ver el Discord de Virtual Pinball Chat [1] o la wiki [2]. Los desarrolladores han trabajado muchísimo para volver VPX multiplataforma, y se nota en el resultado. Yo incluso hice un Pincab [3] basado en esto y está realmente excelente
Además, VPX ahora también es compatible con Batocera, aunque la versión incluida ahí ya está bastante vieja
[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/
Pero mientras más juegos de pinball pruebo, más reconozco que Space Cadet en sí es un gran juego. Tiene muy buena sensación al jugar y muchos elementos que te mantienen enganchado
Quería encontrar otros juegos de pinball que disfrutara igual, y los más cercanos fueron Xenotitle y Demon's Tilt, aunque me costó más acostumbrarme y volverme bueno en ellos. Después de esos, personalmente creo que lo siguiente mejor es Yoku's Island Express
No es un juego que haya que subestimar
Para Visual Pinball, vale la pena revisar esto: https://archive.org/details/vpinball-x-73-space-cadet / https://github.com/vpinball/vpinball
Puede que haya algo mejor, pero la versión de JP funciona de inmediato sin tener que instalar y configurar un montón de software adicional
https://youtube.com/results?search_query=JP%27s+Space+Cadet - https://youtu.be/UXfohCzilrQ
De verdad impresiona cómo hacen hoy en día estos pinballs
También hay más mesas aquí:
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
En Linux/Mac se colgaba o crasheaba hiciera lo que hiciera, y aunque poco a poco se está quitando esas ataduras, sigue siendo un proyecto muy orientado a Windows
Hay cientos de mesas de alta calidad y salen más de 12 lanzamientos nuevos cada semana. También hay mesas originales nuevas que hacen cosas imposibles en una mesa física, pero muchas otras recrean con gran cuidado máquinas de pinball comerciales legendarias de los años 50 a los 2000. Es muy probable que la mesa que recuerdas de tu adolescencia ya esté emulada
Igual que MAME preserva juegos de arcade antes de que desaparezcan, la comunidad de VPin está preservando la historia para que las futuras generaciones puedan disfrutar máquinas electromecánicas. Internamente, en Visual Pinball una versión especializada de MAME llamada PinMAME emula las ROM de las máquinas de pinball, y Visual Pinball se encarga del renderizado 3D y la simulación física
La mayoría juega en escritorio con teclado, pero así como algunas personas que usan MAME conectan botones y joysticks dedicados o un gabinete arcade completo, VPin también puede ejecutarse en gabinetes con aspecto de máquina de pinball. En lugar del playfield hay una pantalla plana, y se usan botones de flipper y un plunger real para lanzar la bola virtual
VPin también soporta audio estéreo, pero además puede usar los canales extra de salida 7.1 de una tarjeta de sonido común de PC para mover un subwoofer, bass shakers y hasta 4 canales de retroalimentación háptica posicional. Me sorprendió la precisión con la que los transductores recrean la sensación de los bumpers y slingshots reales trabajando dentro del gabinete, e incluso las vibraciones sutiles de una bola de metal rodando sobre un playfield de madera
En mi gabinete hasta puse solenoides de flipper reales de máquina de pinball justo debajo de la posición donde se renderizan los flippers. Mi gabinete VPin está en una sala de juegos junto a 8 máquinas de pinball reales y un gabinete arcade MAME personalizado, así que puedo garantizar que la sensación general se acerca muchísimo a la real
Si quieres probar Visual Pinball, te recomiendo fuertemente empezar con el instalador automático de Pinup Popper que enlazó @eahm arriba: https://nailbuster.com/wikipinup/doku.php
Este gran resultado existe porque varios proyectos funcionan muy bien juntos, pero al principio puede ser confuso instalarlos en el orden y lugar correctos. Que en la primera instalación haya que leer un poco la documentación es una pequeña molestia, pero ahora hasta me parece una ventaja que no sea algo totalmente de un clic. Es lo bastante complejo como para filtrar a quienes llegan demasiado casualmente a llenar todo de spam, así que en este hobby retro-adyacente y completamente gratis todavía queda una comunidad muy informada y muy participativa
Me gusta la idea del depósito en custodia del código fuente, y siento que es una buena área para la intervención de los gobiernos nacionales
Me recuerda a cómo la British Library está obligada a conservar una copia de todos los libros publicados. Quizá podría existir una ley similar para el código fuente aunque fuera solo con fines de preservación
No me importaría en absoluto que se mantuviera bajo llave en una bóveda metafórica y solo se abriera cuando se cumplieran ciertas condiciones sobre el soporte y la vida útil del software. Incluso si la condición fuera “después de que expire el copyright original”, es decir, dentro de más de 70 años, seguiría siendo muchísimo mejor para preservar código fuente que la práctica actual. Hay juegos cuyo código fuente original ya se perdió antes de cumplir 10 años desde su lanzamiento (Kingdom Hearts 1). Creo que cualquier alternativa sería mejor que lo que tenemos ahora
Los incentivos para crear ya son bastante bajos. Escribes un libro y enseguida termina en Anna's Archive y convertido en basura de LLM para beneficiar a la pandilla de Altman. Compartes aquí o en Reddit un reportaje de investigación y uno de los comentarios más votados termina siendo un enlace para saltarse el paywall
Ya estamos en una situación tipo ventana rota de Bastiat, donde la gente tiene cada vez menos incentivos para crear. No quiero aumentar el riesgo de que el trabajo de quienes crean software pueda copiarse y blanquearse aún más fácilmente a nivel de copyright. Una bóveda estatal sería un blanco facilísimo para corporaciones multimillonarias
Aparte de eso, como alguien que hace ingeniería inversa retro, conecté mucho con lo que decía el autor sobre la tensión entre la preservación del software y la necesidad de recompensar a quienes lo crean
Pronto se va a separar el juego de los datos, y entonces la segunda parte será más fácil, lo que permitirá que un Flatpak personalizado extienda los datos
Flatpak ha seguido recibiendo actualizaciones para mantener el runtime al día, pero el juego upstream en sí no se ha actualizado, y Flathub solo mostrará datos appstream sobre las actualizaciones. Si ves el repositorio del manifiesto de Flatpak, el commit más reciente es de hace 6 meses: https://github.com/flathub/com.github.k4zmu2a.spacecadetpinb...
Ojalá alguien hiciera una mesa de pinball real de Space Cadet, ya sea como proyecto hobby o a nivel empresa
Ya de paso, también me gustaría ver una versión real de la mesa de pinball de Sesame Street [2], aunque eso quizá sea un proyecto un poco más ambicioso
[1] - https://spacecadetpinball.wordpress.com
[2] - https://www.youtube.com/watch?v=JZshZp-cxKg
Hay un carril que pasa por debajo de los bumpers, y los bumpers reales sobresalen bastante hacia abajo: https://files.catbox.moe/pnaeri.png
En ese tiempo también querían hacer una máquina de Halo, y eso tampoco llegó a ninguna parte