Journal Spacewar

6
10
mai
2026

Chers colègues et amis linuxiens,

Spacewar! est une ré-implémentation fidèle de Spacewar! 4.8 (juillet 1963) pour PDP-1 en Rust. Programation à virgule fixe, noyau no_std.

Deux vaisseaux, un puits de gravité, quelques étoiles et un bouton « hyperespace » fortement déconseillé.

J'ai aussi ajouté la musique dans le même esprit avec une réimplémentation de Harmony Compiler.

Pour jouer, il faut être deux.

Pour ceux qui ont la flegme de compiler j'ai essayé de fournir les exécutables pour différents systèmes ici dist/ mais je n'ai pas pu tester les autres plateformes à part linux.

Sinon pour installer cargo install --git https://codeberg.org/sbechet/spacewar spacewar

Projet que je n'aurai jamais lancé sans l'aide de Claude par manque de temps.

Amusez vous bien :-)

  • # Cool

    Posté par  (site web personnel, Mastodon) . Évalué à 4 (+2/-0). Dernière modification le 10 mai 2026 à 16:47.

    C'est sur GitHub ou Codeberg ? (je ne vois pas le dépôt dans ton GitHub)

    J'ai réussi à télécharger avec :

    git clone ssh://git@codeberg.org/sbechet/spacewar.git

    Pour l'instant, j'ai une erreur, il faut installer alsa. On verra ce soir.

    • [^] # Re: Cool

      Posté par  . Évalué à 2 (+2/-0).

      Oui, j'ai fixé partout (sauf dans la journal, je ne sais pas faire) : 100% codeberg.org

      • [^] # Re: Cool

        Posté par  (Mastodon) . Évalué à 4 (+1/-0).

        Du coup c'est quoi la ligne complète du cargo install ? Je peux faire la modif pour toi.

        En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

        • [^] # Re: Cool

          Posté par  (site web personnel) . Évalué à 1 (+1/-2).

          bin t'as toute la doc' sur https://codeberg.org/sbechet/spacewar

          • [^] # Re: Cool

            Posté par  (Mastodon) . Évalué à 5 (+2/-0).

            merci pour le RTFM mais je suis juste là pour proposer de corriger le message, pas pour apprendre à utiliser cargo sur codeberg.

            En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

            • [^] # Re: Cool

              Posté par  (site web personnel) . Évalué à 2 (+0/-0).

              ce n'est pas un RTFM ('fin si, si tu le prends comme cela ce qui serait dommage :/).

              il n'y a que l'URL à changer : cargo install --git https://codeberg.org/sbechet/spacewar spacewar comme visible dans le dernier commit

              Merci de respecter tes interlocuteurs qui essaient d'aider et de ne pas réagir à fleur de peau lorsque ce n'est pas indiqué ;-)

              • [^] # Re: Cool

                Posté par  (Mastodon) . Évalué à 4 (+1/-0).

                pardon c'est vrai que je suis parti au quart de tour, j'ai mal lu l'URL, je pensais que c'était la doc de codeberg, et pas le dépôt lui-même.

                j'ai corrigé le journal.

                En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: Cool

        Posté par  (site web personnel, Mastodon) . Évalué à 4 (+2/-0).

        J'ai réussi à le compiler directement sur une Fedora 44.

        C'est chouette pour un jeu de 1963 ! Ils étaient en avance d'une quinzaine d'années par rapport aux jeux d'arcade. Dommage qu'il faille être deux derrière le clavier pour jouer…

        En regardant rapidement le code source, je vois qu'un projet Rust peut contenir des "sous-projets" ? (je ne sais pas quel est le vocabulaire officiel)

        Dans le Cargo.toml on a :

        [workspace]
        members = [
            "spacewar_core",
            "spacewar_phosphor",
            "spacewar_raw",
            "spacewar_synth",
            "spacewar_music",
            "spacewar_frontend",
            "spacewar_minifb",
            "spacewar_softbuffer",
        ]
        ...

        Ca m'intéresse car je suis lentement en train d'apprendre le Rust.

  • # C'est triste le manque de temps

    Posté par  (site web personnel, Mastodon) . Évalué à 7 (+4/-0).

    Projet que je n'aurai jamais lancé sans l'aide de Claude par manque de temps.

    J'avais réalisé une version en C++ à partir d'une traduction/adaptation Javascript du code original, de mémoire, cela ne m'avait pas pris plus d'une journée, le code n'étant pas très gros, et la traduction assez "mécanique" en dehors de quelques détails (par exemple, la version originale et la traduction Javascript génèrent du code à la volée pour précalculer la rotation des vaisseaux, ma âersion génère une liste de lignes à tracer).

    Bon, je n'avais pas mis de musique, et mon émulation du tube cathodique est peut-être beaucoup plus simple.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.