project· maintenu
Cold Star · A small light in a very large dark
Un jeu incrémental sci-fi pour le navigateur, écrit en Rust et compilé en WebAssembly. « A small light in a very large dark, and the cost of keeping it lit. »
Petit jeu fini, en accès libre : une invitation à étendre.
Contexte
Cold Star est un jeu incrémental minimaliste qui tourne entièrement dans le navigateur. Le pitch, repris du dépôt : « A minimalist sci-fi incremental game about a small light in a very large dark, and the cost of keeping it lit. »
On se réveille sans énergie dans le noir de l’espace. On ranime un réacteur défaillant, on rassemble un équipage, on bâtit une station, puis un vaisseau, et on part vers une galaxie générée procéduralement : seize systèmes, des surfaces planétaires, des contacts qu’on peut héler, négocier ou affronter. Trois origines convergent en milieu de partie, chacune vers plusieurs fins. « It starts as a single button in the dark. It ends as a galaxy. »
Le jeu s’inscrit dans la filiation d’A Dark Room : un récit porté par la divulgation progressive de l’interface, presque sans exposition. L’instrument se réchauffe à mesure qu’on le ranime : sa couleur et sa chaleur sont de l’état de jeu réel, pas de la décoration.
Une simulation déterministe
Rust compilé en WebAssembly, rendu avec Dioxus, dans un workspace
à séparation stricte : sim, le moteur pur et déterministe, sans
I/O ni unsafe ; content, les données de jeu validées en
fichiers RON ; app, une vue en lecture seule au-dessus de l’état.
L’invariant central : advance(n) == n × advance(1). Avancer d’un
tick ou de mille produit exactement le même état. C’est ce qui rend
triviaux les sauvegardes par instantané, les liens de partage
encodés en base64 et le rattrapage hors-ligne.
Pourquoi c’est ici
Cold Star pousse à l’extrême une conviction technique : une simulation pure et déterministe paie ses dividendes partout. C’est aussi un terrain où éprouver Rust → WASM sur un produit fini, interactif et stateful, une boucle de jeu complète plutôt qu’une API sans état.
Le jeu est feature-complete pour l’arc qu’il dessine, et volontairement ouvert à l’extension : contenu, équilibrage, rencontres, polish.