Technical Deep-Dive

Divers

Ayant implémenté des centaines de features sur Paladium, voici un condensé des systèmes conçus pour accrocher et fidéliser les joueurs d'un serveur Minecraft free-to-play multijoueur.

C#
Architecture
Gameplay
Art
Multijoueur
Scroll

Présentation

Mon travail principal sur le projet a été d'implémenter divers systèmes de gameplay, de réaliser l'équilibrage, et de garantir la qualité en jeu des fonctionnalités. Lorsque j'ai implémenté ces features, mon objectif était de faire en sorte que le joueur revienne j'ai donc accordé une attention très importante aux feedbacks visuels et auditifs afin que chaque action devienne satisfaisante. Ce sont des détails infimes que le joueur ne remarquera jamais consciemment, mais que son cerveau enregistre.

Les contraintes

👥

Multijoueur → plusieurs joueurs interagissent simultanément, les états et transitions doivent rester cohérents pour tous

🎯

Game service → en free-to-play, chaque gameplay doit être conçu pour accrocher le joueur, créer de la rétention et donner envie de revenir

Optimisation → pas de polling, uniquement des timers et des événements ciblés pour limiter la charge serveur

📖

Compréhensible → le code doit rester lisible et maintenable par toute l'équipe, même en croissance rapide

🧩

Component pattern → tout est construit sur une architecture par composants, modulaire et extensible sans casser l'existant

Minecraft (Bonus)

J'ai recodé certaines fonctionnalités de Minecraft en lien avec des blocs et items, et implémenté en jeu plus de 1000 blocs. Cette tâche ne fait pas partie du projet en lui-même, mais a été nécessaire dans la création de notre moteur de jeu.
J'ai dû coder de façon extrêmement optimisée pour que le serveur puisse gérer autant de blocs et d'items sans lag. Pendant cette phase, mon collègue, qui est le Lead Technical, m'a beaucoup appris sur l'optimisation du code en multijoueur.

Rails
Rails
Murret
Murrets

UI / UX

J'ai implémenté diverses interfaces et j'ai apporté mon expertise ainsi que mes conseils aux autres personnes qui ont fait du front-end. J'ai aussi travaillé sur l'UX car les interfaces dont je disposais comme modèles, provenant de la version Java (PC), n'étaient pour certaines pas adaptées à un usage console et téléphone, donc je les ai adaptées. J'ai utilisé Figma pour faire cela.

Screen sur figma
Screen sur figma
Screen en jeu
Screen en jeu

Bug resolution

En plus de développer de nouvelles fonctionnalités, j'ai aussi été en charge de corriger de nombreux bugs au moment du lancement du projet, qui pouvaient être liés au gameplay, au backend ou même aux API. J'ai dû débugger et comprendre du code qui n'était pas le mien pour résoudre les problèmes efficacement.

image de la table sans pattern avec et sans et avec du liquide dedans
Je savais pas comment illuster lol

Hotel des ventes

J'ai été en charge de la refonte de l'hôtel des ventes car la version en jeu n'était pas assez satisfaisante : les menus de l'UI étaient lents et peu ergonomiques, et le code qui implémentait ces menus n'était pas du tout scalable. Ma mission a donc été de refaire la partie front-end et back-end de l'UI en utilisant mon framework UI. Je n'ai pas eu à refaire l'API qui gère les données, mais je l'ai utilisée pour concevoir l'HDV.

Ui hdv
Interface hdv
Ui Hdv
Interface hdv

Contenu & items

Cette tâche ne demandait pas beaucoup de matière grise, mais elle était essentielle. Notre jeu introduit de nombreux nouveaux minerais, armures, outils et composants qui n'ont pas forcément de logique propre ils héritent simplement du comportement de base du jeu. J'ai implémenté plus de 200 items, blocs et entités avec leurs crafts et leur loot. Tout a été réalisé en JSON, car notre moteur réseau implémente un système de component pattern permettant de définir le comportement des items et blocs sans toucher au code. Il suffisait de rédiger un fichier JSON pour décrire le comportement, puis de créer les modèles et textures associés.

Items
Items
Visuel en jeu
Visuel en jeu

Les messages

Ce système a pour but de faire en sorte que tous les messages en jeu suivent la même direction artistique. Il implémente divers outils comme un builder pour créer facilement des messages traduits et leur donner une émotion (erreur, succès…). J'ai aussi implémenté et dessiné divers emojis personnalisés pour que les textes en jeu soient plus vivants. Il intègre également des outils d'envoi de messages inter-serveur via RabbitMQ.

Des messages
Des messages
Emojie
Emojie

Ornement

Ce système a pour but d'ajouter de la décoration au-dessus des pseudos des joueurs. J'ai conçu le système pour afficher un modèle 3D qui adopte la même physique que le nametag (rotation selon le regard), et j'ai dessiné les ornements en jeu.

Ornement en jeu
Ornement 1Ornement 2

L'agriculture

J'ai conçu et développé l'ensemble des fonctionnalités liées à l'agriculture : des outils spécialisés comme un auto-planteur de graines et des houes capables de labourer une zone plus grande, de nouvelles plantations exclusives, une machine appelée Crusher qui transforme ces plantations en minerais, ainsi qu'un totem de croissance qui accélère la pousse des cultures dans sa zone d'effet.

Visuel en jeu
Visuel en jeu
Interface du crusher
Interface du crusher

Hud

J'ai conçu le front-end et le back-end du HUD. Le système est scalable et permet de rajouter facilement de nouvelles valeurs. Il introduit aussi un système pour visualiser des cooldowns.

Visuel en jeu
Visuel en jeu
Interface du crusher
Interface du crusher

PvP

Le serveur est principalement joueur contre joueur, mais encore faut-il donner envie aux joueurs de se battre. J'ai été en charge de créer entièrement l'équilibrage et les features liées au PvP, comme un système d'avant-postes capturables que l'on peut améliorer pour générer plus d'argent, un système de largage, et un événement King of the Hill. J'ai également réalisé les visuels de ces features (modèles, animations, textures).

Le Crusher en jeu
Le Crusher en jeu
Interface du crusher
Interface du crusher

Farmland

La Farmland est un monde à part dans notre mode de jeu : plusieurs îles de difficulté croissante où le joueur chasse des animaux et combat des monstres. L'objectif est d'améliorer son niveau de chasseur pour débloquer des îles plus difficiles et obtenir de meilleures récompenses. J'ai conçu et game-designé cette partie du jeu.

Le Crusher en jeu
Le Crusher en jeu
Interface du crusher
Interface du crusher

Leaderboard

Pour apporter plus d'implication et de compétitivité, j'ai conçu avec un collègue le système de leaderboard. Il s'est occupé de la partie API et de la récupération/tri des données, tandis que je me suis chargé de la partie in-game : affichage des scores des joueurs, et un système de leaderboard temporaire hebdomadaire qui récompense les meilleurs joueurs chaque semaine avec diverses récompenses.

Le Crusher en jeu
Le Crusher en jeu
Interface du crusher
Interface du crusher

Le minage

Le minage a été repensé pour offrir une expérience plus engageante. J'ai introduit un système de fragmentation des minerais avec des ressources secondaires, afin de multiplier les micro-récompenses et rendre la progression plus fluide. Le minage est structuré en deux niveaux de profondeur, donnant des objectifs clairs et valorisant la progression du joueur.

Des minerais
Des minerais
Visuel en jeu
Visuel en jeu

Visuel

J’ai réalisé des modèles, des textures et diverses animations. J’ai également eu pour tâche de modifier des assets déjà existants, créés par d’autres artistes, ce qui m’a demandé de respecter la direction artistique de Paladium lors de la création de visuels. Je me suis aussi occupé du level design en plaçant des PNJ et des indications dans différents endroits du serveur. J’ai également retravaillé certaines fonctionnalités développées par mes collègues afin d’améliorer leur impact visuel pour les joueurs.

Screen en jeu
Interface du crusher

Equilibrage

J'ai contribué aussi à l'équilibrage général du projet en remplissant les fichiers de configuration, comme les prix de vente et d'achat des items. J'ai ajusté le coût des ressources dans le gameplay, le nombre de ressources données pendant le farm et divers autres paramètres, ce qui m'a demandé d'avoir une vision globale du projet pour garantir la cohérence de l'ensemble.

© 2026 Nathanaël Rallo. All rights reserved.