Écrit par GuillaumeTechnoProjet Skyfall
Skyfall, partie 6 : des menus en pixel art, six arènes et enfin du son
Novembre 2026 : en quatre jours, j'ai refait presque tout ce qu'on voit à l'écran. Des menus en pixel art sous un ciel animé, six arènes à thème avec des pièges, de la musique, l'accroupissement, des coffres et une boutique, comparés écran par écran avec la version d'octobre.

Partie 6 de l’histoire de Skyfall. La partie 5 s’arrêtait à la fin d’octobre sur un jeu encore muet. Le plan prévoyait ensuite des coffres, des effets sonores, un thème principal et d’autres arènes. Tout ça est arrivé du 6 au 9 novembre, en 27 commits.
Les captures de la page du projet dataient du 12 octobre. Je les garde ici, et chaque écran d’octobre est suivi de sa version de novembre.
Table des matières
- Des menus en pixel art
- La salle de guerre et le choix de l’arène
- Six arènes à thème
- Des pièges
- Enfin du son
- S’accroupir et se faufiler
- Des coffres et le miroir
- Des flèches à la bonne vitesse
- La boutique
- Le pointage entre les manches
- Où en est Skyfall
- L’histoire de Skyfall
Des menus en pixel art
Le 6 novembre, j’ai refait les menus. Avant, chaque panneau et chaque bouton était un rectangle dessiné dans le code. Maintenant, tout vient d’une trousse d’interface en pixel art : une seule image, assets/ui/kit.png, découpée en cadres, boutons, sélecteurs et icônes. Tout tombe sur la grille du jeu, où un pixel du jeu vaut un nombre entier de pixels à l’écran, et le texte ne prend que des tailles en pixels de police entiers. Les lignes du filtre CRT et le fondu entre les écrans suivent la même grille, alors elles ne font plus de moiré sur le dessin.
Derrière chaque menu, un ciel animé défile en parallaxe, et un shader éclaire les nuages. Le lendemain, l’écran titre s’est adapté à toutes les fenêtres. Une fenêtre haute ajoute des étoiles au-dessus et des rangées de nuages en dessous. Une fenêtre très large prolonge le ciel et la falaise en miroir. En portrait, le logo passe au-dessus du dessin et le menu se pose sur la mer de nuages. Les textes traduits trop longs rapetissent pour tenir.


L’écran de jeu garde ses trois cartes, mais chacune a maintenant son icône : deux flèches croisées pour la partie rapide, une clé pour le salon privé et une manette pour le jeu sur le même divan.


La salle de guerre et le choix de l’arène
La salle de guerre a gardé sa disposition. Chaque emplacement montre maintenant le champion du joueur, et les règles de la partie ont trois nouvelles options : le miroir, la boutique et les pièges. J’y reviens plus bas.


Le choix de l’arène montre le plus gros changement. En octobre, il y avait Towerfall, Towerfall 2 et quatre cases « coming soon ». En novembre, les quatre cases vides sont remplacées par six arènes, en plus des deux Towerfall et d’une case au hasard.


Six arènes à thème
Les six arènes sont arrivées le 7 novembre. Elderhollow est une forêt bâtie autour d’un grand arbre. Stormkeep est un château sous l’orage. Embergrove est une forge, avec un foyer au centre et des coulées de lave. Oubliette est un cachot. Driftmoor flotte dans le ciel, sur des îles. Cragspire est une grotte de glace.
Chacune a son dessin en plusieurs couches et sa propre ambiance, réglée dans scenes/arena/ambience.lua : la pluie, le tonnerre, les nuages, les particules qui flottent, une teinte ambiante et des flammes de torches animées. La liste des cartes tient dans un seul fichier, engine/map/maps.lua, que le serveur lit aussi. Les votes en ligne envoient un numéro dans cette liste, alors le client et le serveur doivent avoir le même ordre. Les règles de design des cartes sont écrites dans docs/map-design.md, et un test vérifie chaque carte.

La photo principale du projet montrait une reprise dans des ruines sous la pluie. La nouvelle se passe dans Embergrove, au moment où une flèche touche le roi nain.


Des pièges
Le 9 novembre, les arènes ont eu des pièges : des boules à pointes, des bouches qui crachent du feu, du givre ou des pics, des blocs qui bougent, des glaçons qui tombent, et les leviers et la cloche qui les déclenchent. Chaque carte liste ses pièges dans son propre fichier hazards.lua.
Comme la physique, les pièges sont du Lua pur dans engine/hazards/, et le même code tourne dans le client et sur le serveur Nakama. Celui qui simule la partie fait tourner l’horloge des pièges et la synchronise avec les autres. Une mort par piège compte pour celui qui a tiré le levier, sinon c’est une mort contre soi-même. La reprise reconstruit les pièges à partir des instantanés enregistrés, comme le reste. Et la règle Traps les coupe, les blocs mobiles restant alors immobiles comme du décor.

Enfin du son
Le 7 novembre, Skyfall a eu de la musique et des effets sonores. core/audio.lua lit la musique en continu et passe d’un morceau à l’autre en fondu. La musique baisse pendant la reprise et la pause. Les effets sonores ont des groupes de voix et un panoramique stéréo. Chaque écran choisit sa musique, et l’arène prend celle du thème de la carte. Il y a 9 musiques (le menu, la victoire, et un combat par thème : forêt, château, lave, cachot, ciel, glace, plus un par défaut) et 52 effets sonores.
Les sons ne passent pas par le réseau. À chaque image, scenes/arena/audio.lua compare l’état synchronisé des joueurs, des flèches et de la manche avec celui de l’image d’avant, et joue ce qui a changé. Chaque joueur entend donc les actions de tous les autres sans un seul message de plus. Les menus ont aussi leurs petits clics de curseur, de confirmation et de retour.
Tout l’audio est généré par du code. Un synthétiseur en Python, dans tools/audio/, rend la musique et les effets en OGG avec numpy et ffmpeg. Chaque son repart d’un générateur aléatoire initialisé avec son nom, alors rendre un seul son donne le même fichier qu’un rendu complet.
Certaines flèches ont leurs propres sons. La foreuse part avec un claquement d’arc qui monte en sifflement tant qu’elle vole, puis grince quand elle s’enfonce dans un mur. La flèche jouet fait un « pop » à chaque rebond et un « boing » quand elle frappe un archer.
S’accroupir et se faufiler
Le 7 et le 8 novembre, les archers ont appris à s’accroupir. On garde le bas enfoncé au sol, la boîte de collision passe de 14 à 10 pixels, les pieds restent plantés, et on se retourne sur place au lieu de marcher. On reste accroupi sous un plafond bas. Un archer accroupi qui ne bouge plus s’efface à 6 % d’opacité, son nom et son carquois compris.
La ruée aussi rentre la tête : pendant 0,2 seconde, l’archer ne mesure plus que 8 pixels. Il peut donc se glisser dans une fente d’une tuile, et passer un coin qui le bloque de 3 pixels ou moins. Elderhollow et Stormkeep ont des plateformes à sens unique : on atterrit dessus par le haut, on les traverse par le bas et par les côtés, et on se laisse tomber à travers avec bas et saut.
Les nouvelles poses s’inspirent de TowerFall et de Celeste. Il y a une pose accroupie, une glissade le dos au mur et un bras agrippé au rebord, des nuages de poussière, de l’écrasement et de l’étirement, et pendant la ruée, des images rémanentes de la couleur du joueur et des traînées de vent. La reprise les rejoue à partir de l’état enregistré. Même les chapeaux suivent : ils s’enfoncent sur la tête quand on s’accroupit ou qu’on fait une ruée.

Des coffres et le miroir
Le 8 novembre, les coffres sont arrivés. Avec la règle Chests, des coffres tombent dans l’arène à intervalles réguliers. La règle Mirror les fait tomber par paires, à des places symétriques, et place les joueurs sur des points d’apparition en miroir à gauche et à droite. La boutique entre les manches est devenue une règle qu’on peut couper, et toutes les règles de la partie se synchronisent en ligne. Comme les pièges, la logique des coffres est partagée entre le client et le serveur, dans engine/chest/.

Des flèches à la bonne vitesse
Le 8 novembre, j’ai trouvé que la vitesse des flèches dépendait du nombre d’images par seconde. La physique partait de la position affichée, qui est interpolée entre deux pas de physique, alors chaque pas perdait une partie de son mouvement. Maintenant, la physique part de sa propre position, et l’interpolation va de l’ancienne position de physique à la nouvelle.
Pour ne pas changer le jeu, j’ai baissé les vitesses à celles que les joueurs avaient réellement. Les flèches normales, foreuses, à ronces et jouets passent de 270 à 207 pixels par seconde, la bombe de 250 à 192, la plume de 400 à 366 et le carreau de 230 à 176. La gravité baisse du même facteur, 0,767. Un test vérifie la vitesse à 60 et à 240 images par seconde.
Le même jour, les flèches jouets ont arrêté de se planter. Elles rebondissent sur les murs, les plafonds et les planchers, perdent de la vitesse à chaque rebond, puis se couchent au sol, où on peut les ramasser.


La boutique
En octobre, l’entrée Shop du menu principal était grisée. Depuis le 8 novembre, c’est le Sky Bazaar. Il vend des champions, de l’équipement et des auras contre des pièces ou des gemmes. Les achats sont gardés localement pour l’instant. Un article de la boutique reste verrouillé dans la forge des champions tant qu’on ne l’a pas acheté, et quand on change d’apparence, l’ancienne reste dans un des quatre emplacements de tenue.
Le 9, les onglets de la boutique et la grille de la forge ont eu des pages, qu’on tourne avec le sélecteur « 1/3 », LB et RB, Q et E, ou la roulette de la souris. La boutique a aussi gagné 8 pièces d’équipement, 2 auras et une Valkyrie.

La forge de la partie 5 a pris le même habit que les autres menus.

Le pointage entre les manches
Le 9 novembre, j’ai revu le pointage. Chaque mort compte une seule fois, pour le joueur qui l’a causée. Une mort contre soi-même à 0 point laisse le score à 0. Le gagnant de la manche est le dernier debout pendant les 2 secondes qui suivent la dernière mort.
L’écran entre les manches rejoue chaque changement de score dans l’ordre. Un point gagné fait apparaître un carré doré, un point perdu en fait sortir un rouge, qui reste rouge jusqu’à la manche suivante. Chaque rangée a maintenant le portrait du champion, et celle du gagnant de la manche est bordée d’or.


Où en est Skyfall
- Toujours en pré-alpha, à la version 0.0.0.
- Environ 500 commits depuis le 11 janvier, dont 27 du 6 au 9 novembre.
- Environ 27 800 lignes de Lua dans 153 fichiers, contre 21 000 dans 114 fichiers à la fin d’octobre.
- 9 musiques et 52 effets sonores, tous générés par du code.
Ce qui reste du plan : des comptes, plusieurs monnaies, des pièces de champion à débloquer et des statistiques en ligne, puis Steam, des succès, un mode classé et des quêtes hebdomadaires.
L’histoire de Skyfall
- D’un cube dans Defold à un nouveau départ dans LÖVE
- Sauts muraux, un vrai arc et un réseau silencieux
- Des manches, de la pluie, des torches et une reprise VHS
- La salle de guerre et l’armurerie
- Un éditeur de cartes, un fantôme et la forge des champions
- Des menus en pixel art, six arènes et enfin du son (cet article)
- Un éditeur de pistes pour la musique
- Un éditeur de cartes qui dessine avec le jeu
- Un éditeur de sprites pour les blocs et les décors


