Bricks And Claws
Shoot'em up à la troisième personne développé sur Unity, dans lequel le joueur affronte des vagues d'animaux au cœur d'un carrefour urbain.
Informations générales
- Type : Shoot'em up 3D à la troisième personne
- Moteur : Unity
- Langage : C#
- Contrôles : Clavier, souris et manette
- Outils : Unity, GitHub, Maya, Mixamo
- Méthodes : Scriptable Objects, architecture modulaire, système data-driven
- Rôles : Game Designer, Gameplay Programmer, artiste 3D, Sound Designer, Narrative Designer et QA Tester
Présentation du projet
Bricks And Claws est un shoot'em up à la troisième personne développé sous Unity. Le joueur incarne Mundo, un ancien ouvrier de chantier faisant partie des derniers survivants de l'humanité.
Une puce électronique initialement implantée dans le cerveau des animaux pour lutter contre le réchauffement climatique a provoqué des effets secondaires imprévus. Devenus agressifs envers les humains, les animaux ont entraîné la quasi-extinction de l'humanité. Mundo doit désormais survivre à des vagues incessantes de créatures.
Le gameplay repose sur la gestion de vagues ennemies, les déplacements sur plusieurs lignes, l'esquive, le saut et l'amélioration progressive du personnage grâce à un système de boutique et d'upgrades.
Une arène construite autour d'un carrefour
L'originalité principale du jeu repose sur son arène en forme de carrefour. Les ennemis peuvent arriver depuis plusieurs directions, obligeant le joueur à anticiper les attaques, changer de ligne et gérer plusieurs menaces simultanément.
La caméra à la troisième personne adopte un angle isométrique afin de conserver une bonne lisibilité de l'action et de permettre au joueur de surveiller les différentes branches du carrefour.
Le saut comme mécanique offensive et défensive
Le saut constitue une mécanique centrale. Il permet à la fois d'éviter certains projectiles, comme les boules de neige lancées par les pingouins, et d'attaquer les ennemis volants.
Un temps de recharge empêche son utilisation répétitive et oblige le joueur à choisir précisément le moment où il souhaite sauter.
Mon travail sur le projet
J'ai participé à la majorité des domaines de production du jeu : conception du concept, programmation des systèmes de gameplay, intégration des ennemis, création des interfaces, modélisation 3D, sound design, narration, équilibrage et tests.
Conception du concept et de l'univers
J'ai participé avec Syphax à la création du concept initial, de l'univers narratif, de l'USP et des principales mécaniques du jeu. Cette phase a permis de définir le carrefour comme arène centrale, le système de déplacements par lignes et la structure générale des vagues ennemies.
Architecture du projet Unity
J'ai initialisé le projet Unity et organisé son architecture avec des dossiers distincts pour les scripts, Scriptable Objects, prefabs, interfaces et éléments audio.
J'ai également mis en place le dépôt GitHub et une organisation reposant sur des branches personnelles, une branche principale d'intégration et une branche de sauvegarde régulièrement mise à jour.
Contrôleur et statistiques du joueur
J'ai créé et configuré le prefab du joueur à partir de modèles et d'animations Mixamo. J'ai développé plusieurs composants dédiés :
- déplacements du joueur sur les différentes lignes ;
- gestion des points de vie et de la mort ;
- système de tir et nombre de projectiles simultanés ;
- statistiques et réinitialisation des données ;
- saut, collisions, animation et temps de recharge ;
- compatibilité clavier, souris et manette.
Les données principales du joueur ont été centralisées dans des Scriptable Objects afin de faciliter l'équilibrage, la réutilisation des données et la réduction des dépendances entre les composants.
Système de vagues data-driven
J'ai conçu le système de génération des vagues ennemies à partir de points d'apparition configurables dans l'Inspector.
Les différentes vagues sont décrites par des Scriptable Objects contenant notamment leur durée, les types d'ennemis, leur nombre et leur direction d'arrivée. Cette approche permet de créer et modifier des séquences de jeu sans intervenir directement dans le code.
Le système a ensuite été enrichi pour prendre en charge les attaques latérales, les transitions entre les vagues et les alertes visuelles annonçant leur arrivée.
Système d'ennemis modulaire
J'ai intégré plusieurs types d'ennemis, dont les pingouins, poulets, chats, chiens, oiseaux, chevaux, cerfs, tigres, dragons et un pingouin géant servant de boss.
Une structure commune basée sur des données d'ennemis permet de partager les statistiques essentielles. Des scripts passifs spécialisés complètent ensuite chaque prefab afin de créer des comportements uniques sans modifier la logique générique.
Boutique, économie et améliorations
J'ai développé un système monétaire permettant au joueur de gagner et dépenser des ressources pendant une partie.
J'ai également conçu une boutique interactive et un système d'améliorations permettant de modifier plusieurs statistiques : points de vie, puissance, vitesse d'attaque ou nombre de projectiles.
L'interface fournit des retours visuels immédiats concernant le coût, le niveau et la disponibilité de chaque amélioration.
Power-ups
Plusieurs capacités temporaires ont été ajoutées afin de varier les stratégies de combat :
- Pluie de briques : déclenche une attaque de zone accompagnée d'effets visuels.
- Power-up Mundo : améliore temporairement les capacités du personnage.
- Folie bestiale : applique plusieurs effets temporaires au joueur.
Gestion des phases de jeu
J'ai développé plusieurs gestionnaires permettant de structurer le déroulement complet d'un niveau :
- dialogue narratif avant le niveau ;
- phase de combat et progression des vagues ;
- gestion de la victoire et de la défaite ;
- conclusion narrative après le niveau ;
- redémarrage et changement de niveau.
Interfaces et expérience utilisateur
J'ai intégré les principales interfaces du jeu : points de vie, monnaie, alertes de vagues, boutique, cartes d'amélioration, menu principal, sélection des niveaux, menu pause, paramètres et écran de fin de niveau.
Plusieurs animations et transitions ont été ajoutées afin d'améliorer la lisibilité des actions et de renforcer les retours visuels donnés au joueur.
Système audio
J'ai créé un système audio modulaire reposant sur un gestionnaire central et une banque audio sous forme de Scriptable Object.
J'ai intégré 17 éléments sonores comprenant des musiques, effets sonores et voix, ainsi que des réglages de volume reliés aux sliders du menu des paramètres.
Modélisation et intégration 3D
J'ai modélisé le carrefour principal ainsi que plusieurs accessoires low poly sur Maya : bancs, lampadaires, tunnels, poubelles et briques.
Les modèles ont ensuite été importés, configurés et optimisés dans Unity afin de construire l'environnement de jeu et d'améliorer l'identité visuelle de l'arène.
Polish, équilibrage et QA
Une part importante du projet a été consacrée aux tests, à l'équilibrage et à la correction des bugs.
J'ai notamment ajusté les statistiques du joueur, les ennemis, le rythme des vagues, les coûts des améliorations et les temps de recharge. J'ai également intégré des outils de suivi des performances et des statistiques de partie.
Des effets supplémentaires, comme le camera shake du pingouin géant, les effets de mort des ennemis et les améliorations des barres de vie, ont renforcé les sensations de combat.
Assets externes
Certains éléments visuels ont été produits à partir de ressources externes afin de compléter les créations de l'équipe :
- JMO Assets : effets visuels ;
- ithappy : animaux low poly et animations ;
- Lowpoly UI Icons : icônes d'interface ;
- Quantum Mana Studio : skyboxes ;
- Mixamo : modèle et animations du joueur.
Jouer à Bricks And Claws
Une version WebGL du jeu est disponible directement depuis le navigateur.