Donner un visage au mondeGiving the world a face

Du relief dans chaque pixel, un vrai soleil, une géante à anneaux dans le ciel, un horizon à 2 km et un brouillard qui va et vient : le jalon où RADIONAUT a trouvé son allure.Depth in every pixel, a real sun, a ringed giant in the sky, a horizon 2 km away and fog that comes and goes: the milestone where RADIONAUT found its look.

À la fin du jalon précédent, une personne qui ne joue pas aux jeux vidéo a regardé l'écran par-dessus mon épaule, et elle a tout de suite pensé au grand classique des jeux de cubes. Elle n'avait pas tort sur un point : de loin, de grandes faces carrées d'un mètre posées sur une grille se ressemblent toutes. Ce jalon, « Identité visuelle », change donc la façon dont le monde est dessiné, sans toucher au jeu lui-même : on creuse et on construit toujours au mètre près.

At the end of the previous milestone, someone who does not play video games looked at the screen over my shoulder and immediately thought of the big classic among block games. They were not wrong on one point: from a distance, large one-metre square faces sitting on a grid all look alike. So this milestone, “Visual identity”, changes how the world is drawn without touching the game itself: you still dig and build one metre at a time.

L'Explorateur par-dessus l'épaule, le rayon du Signal à gauche et la géante annulaire à droiteThe Explorer over the shoulder, the Signal's beam on the left and the ringed giant on the right

Chaque pixel de texture du sol naturel devient un petit relief de 12,5 cm. La mousse se bosselle, la pierre se découpe en strates, le sable se ride. Les textures ont été redessinées en motifs nets plutôt qu'en bruit de pixels, et elles sont tournées ou retournées d'un bloc à l'autre pour casser la grille.

Every texture pixel of natural ground becomes a small 12.5 cm bump. Moss gets lumpy, stone splits into strata, sand ripples. Textures were redrawn as clean patterns rather than pixel noise, and they are rotated or flipped from one block to the next to break up the grid.

Le relief de près : rides du sable, touffes de mousse et strates de la pierreRelief up close: sand ripples, moss tufts and stone strata

La lumière vient maintenant d'un soleil, avec de vraies ombres portées : celle de l'Explorateur, celle d'une falaise, celle de chaque touffe de mousse. Les ombres sont froides et les surfaces au soleil prennent une lumière chaude, mais tout reste dans les 32 couleurs du jeu : chaque couleur a son ombre profonde, son ombre et sa lumière, choisies à la main. Et le ciel est enfin celui d'une autre planète : une géante gazeuse à anneaux, deux lunes, et à l'horizon, le rayon violet du Signal. Ce qu'il y a au pied de ce rayon ? Je ne le dirai pas encore.

Light now comes from a sun, with real cast shadows: the Explorer's, a cliff's, every tuft of moss. Shadows are cool and sunlit surfaces turn warm, but everything stays within the game's 32 colours: each colour has its deep shadow, its shadow and its highlight, picked by hand. And the sky finally belongs to another planet: a ringed gas giant, two moons, and on the horizon, the violet beam of the Signal. What lies at the foot of that beam? I am not saying yet.

On voit loin, aussi. Le monde en blocs s'étend sur 16 morceaux autour du joueur, et au-delà, un horizon simplifié prolonge le paysage jusqu'à 2 kilomètres. Depuis un sommet, on aperçoit les îles, les baies gelées et les montagnes suivantes. Chacun règle cette distance selon sa machine, dans les options : Courte, Moyenne, Longue (par défaut) ou Très longue, jusqu'à 4 km.

You can see far, too. The block world extends 16 chunks around the player, and beyond that, a simplified horizon stretches the landscape out to 2 kilometres. From a summit you can make out the islands, the frozen bays and the next mountains. Everyone sets this distance to suit their machine in the options: Short, Medium, Long (default) or Very long, up to 4 km.

Et parfois, le temps se gâte. Après dix à trente minutes de beau temps, un brouillard dense monte en moins d'une minute, reste quelques minutes, puis se lève. Il cache le lointain, efface les astres et le rayon du Signal. C'est le serveur qui décide de la météo, donc tous les joueurs d'un même monde sont dans le même brouillard.

And every now and then, the weather turns. After ten to thirty minutes of clear skies, a thick fog rolls in within a minute, lingers for a few minutes, then lifts. It hides the distance and wipes out the moons, the giant and the Signal's beam. The server decides the weather, so every player in the same world is in the same fog.

Voir à 2 km sans construire le monde jusque-là

Seeing 2 km away without building the world that far

À 16 morceaux de distance, il y a déjà des dizaines de milliers de cubes de monde autour d'un joueur. Aller jusqu'à 2 km de la même façon multiplierait ce nombre par plus de soixante : aucune machine ordinaire ne suivrait. L'horizon prend donc un raccourci. Le générateur sait répondre à une question bien plus simple : quelle est la surface à tel endroit ? Le serveur la pose sur une grille de plus en plus lâche à mesure qu'on s'éloigne, compresse les réponses et les envoie à part, sans jamais retarder le monde proche.

At a distance of 16 chunks, there are already tens of thousands of cubes of world around a player. Going out to 2 km the same way would multiply that by more than sixty: no ordinary machine would keep up. So the horizon takes a shortcut. The generator can answer a much simpler question: what does the surface look like at this spot? The server asks it on a grid that gets coarser with distance, compresses the answers and sends them separately, without ever delaying the nearby world.

Le plus délicat, c'est le raccord : là où s'arrêtent les vrais blocs, l'horizon doit reprendre exactement à la même hauteur, sinon on voit le ciel à travers une fente. Deux tests automatiques le surveillent, l'un compare les hauteurs sur des milliers de colonnes dans trois mondes, l'autre lance des rayons à travers le raccord ; aucun ne passe. J'ai accepté deux défauts pour avancer : de loin, une zone qui change de niveau de détail « saute » de quelques pixels, et les constructions des joueurs ne se voient pas encore de loin.

The delicate part is the seam: where the real blocks stop, the horizon must pick up at exactly the same height, or you see sky through a crack. Two automated tests keep an eye on it, one compares heights on thousands of columns across three worlds, the other fires rays through the seam; none get through. I accepted two flaws in order to move on: from afar, an area changing level of detail “pops” by a few pixels, and player builds are not visible from a distance yet.

Il me reste un test à faire avant de clore ce jalon : montrer le jeu à des personnes qui ne jouent pas, sans rien leur dire, et écouter à quoi il leur fait penser. Après ça, je reviens au jeu lui-même : sauvegarde du monde, menu principal, et la possibilité d'ouvrir sa partie à un ami.

There is one test left before I close this milestone: showing the game to people who don't play, without telling them anything, and listening to what it reminds them of. After that, I'm back to the game itself: world saving, a main menu, and the option to open your game to a friend.

Marcher, creuser, puis lever les yeux vers la géanteWalking, digging, then looking up at the giant
La page de RADIONAUT →RADIONAUT game page → Tout le journalAll devlogs