Un monde qu'on garde, et qu'on partageA world you keep, and share

Des mondes sauvegardés, un vrai menu, une partie solo ouverte aux amis, un chat, et un serveur qui rejoue chacun de vos pas. Le jalon où RADIONAUT devient un jeu qu'on reprend.Saved worlds, a proper menu, a solo game opened to friends, a chat, and a server that replays every one of your steps. The milestone where RADIONAUT becomes a game you come back to.

Jusqu'ici, chaque partie repartait d'un monde neuf : on creusait, on construisait, on quittait, et tout disparaissait. Ce jalon, « Persistance et serveurs », change ça. Le monde se sauvegarde, on le retrouve tel qu'on l'a laissé, et on peut y inviter des amis.

Until now, every game started from a fresh world: you dug, you built, you quit, and it was all gone. This milestone, “Persistence and servers”, changes that. The world is saved, you find it as you left it, and you can invite friends into it.

Le jeu s'ouvre maintenant sur un écran titre, devant le ciel de la planète : la géante à anneaux, les deux lunes et le rayon du Signal. Quatre choix : Solo, Multijoueur, Options, Quitter. Tout se fait au clavier, à la souris ou à la manette, avec un clavier à l'écran pour taper un nom à la manette.

The game now opens on a title screen, in front of the planet's sky: the ringed giant, the two moons and the Signal's beam. Four choices: Solo, Multiplayer, Options, Quit. Everything works with keyboard, mouse or gamepad, with an on-screen keyboard for typing a name on a gamepad.

L'écran titre, devant la géante, les deux lunes et le rayon du SignalThe title screen, in front of the giant, the two moons and the Signal's beam

Solo liste vos mondes, avec la date de la dernière partie, leur taille et leur graine. On en crée un en lui donnant un nom et, si on veut, une graine : un nombre ou des mots, et la même graine donne toujours le même monde. On peut le renommer, le mettre à la corbeille, ou le ramener à une copie de secours : le jeu en garde une à chaque ouverture d'un monde qui a changé. Le monde est sauvegardé toutes les minutes et en quittant : le terrain exploré, ce qu'on y a construit, la position et l'inventaire de chaque joueur, les objets restés au sol, et même la météo.

Solo lists your worlds, with the date of the last session, their size and their seed. You create one by giving it a name and, if you like, a seed: a number or some words, and the same seed always gives the same world. You can rename it, send it to the recycle bin, or roll it back to a backup: the game keeps one each time a world that has changed is opened. The world is saved every minute and when you quit: the explored land, what you built, each player's position and inventory, items left on the ground, even the weather.

La liste des mondes, ici remplie d'exemplesThe world list, filled with examples here

Multijoueur garde une liste de serveurs. Pour chacun, le jeu affiche son nom, son message d'accueil, le nombre de joueurs et le ping, sans même s'y connecter, et les parties du réseau local apparaissent d'elles-mêmes. On peut aussi ouvrir sa partie solo à ses amis sans la redémarrer : dans le menu de pause, « Ouvrir au réseau », et le jeu affiche l'adresse à leur donner. Chaque ami garde son personnage dans votre monde, et le vôtre est protégé : personne ne peut se connecter à votre place.

Multiplayer keeps a list of servers. For each one, the game shows its name, its welcome message, the player count and the ping, without even connecting, and games on the local network show up on their own. You can also open your solo game to friends without restarting it: in the pause menu, “Open to network”, and the game shows the address to give them. Each friend keeps their own character in your world, and yours is protected: nobody can connect in your place.

Une partie solo ouverte au réseau, avec l'adresse à donner (adresse d'exemple)A solo game opened to the network, with the address to share (example address)

Une fois à plusieurs, on se parle : T ou Entrée ouvre le canal radio, le chat du jeu. Les arrivées et les départs s'y affichent dans la langue de chacun, et les mêmes commandes servent dans le chat et à la console d'un serveur dédié : expulser, bannir, nommer des admins, tenir une liste d'accès, sauvegarder, changer la météo. Ada et Bob, dans la vidéo ci-dessous, sont deux joueurs scriptés : Bob pose une question, Ada répond en tapant, puis demande qui est en ligne.

Once there are several of you, you talk: T or Enter opens the radio channel, the game's chat. Arrivals and departures show up in each player's own language, and the same commands work in the chat and in a dedicated server's console: kick, ban, name admins, keep an allowlist, save, change the weather. Ada and Bob, in the video below, are two scripted players: Bob asks a question, Ada types her answer, then asks who is online.

Ada et Bob, deux joueurs scriptés, se parlent ; Ada lance /listAda and Bob, two scripted players, talk; Ada runs /list

Une sauvegarde qui survit à un arrêt brutal

A save that survives a hard stop

Écrire un fichier prend du temps. Si le jeu s'arrête au milieu, on peut se retrouver avec un monde à moitié ancien, à moitié nouveau. Ici, une sauvegarde ne remplace jamais un fichier en place. Le jeu écrit d'abord les nouveaux fichiers à côté des anciens, attend que le disque confirme, puis note dans un petit journal la liste des remplacements à faire. Ce journal est la ligne d'arrivée : tant qu'il n'est pas complet, rien n'a changé ; s'il est complet au lancement suivant, le jeu termine les remplacements. Le monde est donc toujours celui de la dernière sauvegarde entière, jamais un mélange.

Writing a file takes time. If the game stops halfway, you can end up with a world that is half old, half new. Here, a save never overwrites a file in place. The game first writes the new files next to the old ones, waits for the disk to confirm, then notes the list of replacements in a small journal. That journal is the finish line: until it is complete, nothing has changed; if it is complete on the next launch, the game finishes the replacements. So the world is always the last complete save, never a mix.

Pour le vérifier, un test tue le serveur à chaque étape d'une sauvegarde, puis à des instants tirés au hasard, sous Windows et sous Linux. Le monde se rouvre à chaque fois, et rien n'est perdu ni dupliqué. Une vraie coupure de courant n'a pas été simulée ; c'est pour elle que le jeu attend la confirmation du disque à chaque étape.

To check it, a test kills the server at every step of a save, then at random moments, on Windows and on Linux. The world reopens every time, and nothing is lost or duplicated. A real power cut was not simulated; that is what waiting for the disk's confirmation at every step is for.

Le serveur rejoue vos pas

The server replays your steps

Au jalon de l'Explorateur, le jeu disait au serveur « je suis ici », et le serveur vérifiait que c'était plausible. Trois relectures ont montré la limite : chaque tolérance ajoutée pour un joueur honnête devenait une faille près de l'eau ou des plafonds. Maintenant, le jeu n'envoie plus sa position mais ses touches, vingt fois par seconde, et le serveur les rejoue avec exactement la même physique. Voler, traverser un mur ou courir plus vite que permis devient impossible : il n'y a plus de position à falsifier. Sur un réseau simulé qui perd des paquets, 7,2 millions de pas ont donné 235 corrections, toutes dues à une perte ; sans pertes, aucune.

In the Explorer milestone, the game told the server “I am here”, and the server checked that it was plausible. Three reviews showed the limit: every allowance made for an honest player became a loophole near water or ceilings. Now the game no longer sends its position but its key presses, twenty times per second, and the server replays them with exactly the same physics. Flying, walking through a wall or running faster than allowed becomes impossible: there is no position left to fake. On a simulated network that drops packets, 7.2 million steps produced 235 corrections, all caused by a loss; without losses, none.

Prochaine étape, après quelques essais à la main (la manette, un second ordinateur sur le réseau local, un ami par Internet) : « Survivre ». Le jour et la nuit, la lumière des torches, la faim, la soif et le froid, les premières créatures, les cavernes. Le but : une première nuit qui fait vraiment peur sans abri.

Next step, after a few hands-on checks (the gamepad, a second computer on the local network, a friend over the Internet): “Survive”. Day and night, torchlight, hunger, thirst and cold, the first creatures, caves. The goal: a first night that is genuinely scary without a shelter.

La page de RADIONAUT →RADIONAUT game page → Tout le journalAll devlogs