1 puntos por GN⁺ 3 시간 전 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 3 시간 전
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í

    • Era realmente especial que la instalación predeterminada de Windows incluyera un juego divertido, así que gracias por hacerlo y vendérselo a Microsoft
      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
    • Cuando usé NT 4 por primera vez, tenía que instalar varias máquinas y seguir vigilándolas todo el tiempo, y Space Cadet Pinball me ayudó a sobrellevar esas noches largas y aburridas
      Durante toda mi carrera he recordado lo afortunado que fui entonces, y te agradezco por un juego que me ayudó a no volverme loco
    • Incluir Space Cadet Pinball en la instalación predeterminada de Windows fue uno de los puntos de venta más poderosos en la historia de Windows, y de verdad gracias por crearlo
      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
    • Como venía incluido en la instalación predeterminada de Windows 2000, estaba en todas las salas de cómputo, era un buen descanso para escaparse un rato de la realidad y fue una experiencia de juego duradera
      Después hubo gente que llevaba Deluxe Skijump, Doom y Starcraft, pero Space Cadet seguía siendo una opción perfectamente válida
    • Me gustaría saber qué piensas de la propuesta de depósito en custodia del código fuente al final del artículo
      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”

    • Recuerdo que en el original, si escribías algo como “hidden test” durante la secuencia de inicio, podías mover la bola con el cursor
      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
    • También vale la pena mencionar que Microsoft ofrece símbolos de depuración para Pinball
    • Según entiendo, en un enfoque de clean room no deberías mirar directamente el código desensamblado; otra persona tendría que revisarlo y documentarlo para ti
      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

    • En otra parte de este hilo, el CEO negó la versión de que estaban trabajando con DOOM
    • La versión Full Tilt está mucho más completa e incluye multibola, que no existe en la versión incluida con Windows
  • 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 encanta de verdad el mecanismo capturador de bolas que está en el centro hacia la izquierda del fondo, y que lanza la bola “arrojándola” con ese esfuerzo tan peculiar
  • 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/

    • No es lo mismo que un depósito FLOSS, pero el depósito en custodia del código fuente es bastante común en contratos de software empresarial grande
      Incluso hay empresas que se dedican a intermediar este tipo de acuerdos: https://www.escrowcompany.co/source-code-escrow/
    • El escrow de software es muy común; por ejemplo, yo trabajé en un lugar donde había escrow del código fuente de Windows
    • Sinceramente, no sé qué tan útil sería el código fuente en sí
      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

    • Por suerte, eso ya no es cierto
      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/
    • Mi intuición era que un juego más realista sería más divertido, y que quizá me gustaba Space Cadet solo por nostalgia de la infancia
      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
    • He jugado muchísimo pinball, y Space Cadet es un muy buen juego de pinball en diseño, equilibrio e interés
      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

    • La pasé bastante mal intentando ejecutar este proyecto en un entorno que no fuera Windows
      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
    • Visual Pinball es realmente impresionante, y está respaldado por una comunidad enorme y activa de artistas y desarrolladores de mesas
      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

    • No estoy tan seguro de que cualquier alternativa sea mejor que el estado actual
      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

    • Ha habido algunos intentos, y según recuerdo probablemente el más conocido sea este [1]
      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
    • Mucha gente lo ha pensado, pero según recuerdo no se puede construir físicamente
      Hay un carril que pasa por debajo de los bumpers, y los bumpers reales sobresalen bastante hacia abajo: https://files.catbox.moe/pnaeri.png
    • Se lo propuse a un empleado de Stern hace 21 años, pero obviamente no pasó nada
      En ese tiempo también querían hacer una máquina de Halo, y eso tampoco llegó a ninguna parte