Jeu d’arcade en 3D développé sous Unity en 2024
Langage :
C#
Rôles :
Chef de projet
Chargé de toute la programmation ainsi que de l’intégration
Participation au game design et level design
Durée :
Projet sur 6 semaines
Equipe :
Equipe de 4 personnes
Concept :
Shoot ‘Em Up en vue à la troisième personne avec
défilement vertical.
Dans ce jeu, les joueurs doivent naviguer à travers trois
environnements différents, en survivant à des vagues
de vaisseaux ennemis.
Ils devront utiliser les ressources récupérées sur les
ennemis pour gagner en puissance, atteindre et vaincre
le boss final, et gravir les échelons pour devenir le
meilleur récupérateur.
Mécaniques inspirées du flipper classique :
Plungeur (Lanceur) :
Système de lancement de la balle en début de partie avec gestion de la force (input pressé/relâché).
Flippers :
Palettes réalisées grâce à un hinge joint et un rigidbody pour avoir un temps de réaction fluide et responsive sans ghosting.
Bumpers :
Objets réactifs répartis dans les trois scènes, renvoyant la balle dynamiquement et qui donnent du score a l’impact.
À chaque impact de la balle, leur état (0 ou 1) est mis à jour.
Lorsque tous les bumpers d’une salle sont activés simultanément, un état d’amélioration est déclenché, augmentant leur valeur en score et modifiant leur feedback visuel/sonore.
Le système repose sur un gestionnaire de salle qui vérifie l’état global des bumpers via un tableau booléen, déclenchant l’upgrade dès que toutes les valeurs passent à 1.
Slingshots :
Contrairement aux bumpers, ils n’ont qu’un seul sens de propulsion et servent à guider ou piéger la balle selon le level design.
Différentes Missions à réaliser pour gagner du score :
Mission Manager :
Le cœur du système repose sur un Mission Manager global, capable
de :
Chaque mission est entièrement configurable dans l’inspecteur (score, conditions, timer, multi-event, etc.), ce qui permet une grande flexibilité pour designer les objectifs.
Interaction via Sensors :
Les missions sont déclenchées ou progressées via des capteurs placés dans le monde.
Chaque sensor peut :
Les sensors sont associé à une mission précise via un triggerID répertorié dans le mission manager.
Il utilisent OnTriggerEnter ou OnCollisionEnter selon les besoins, et sont visualisables dans la scène via Gizmos, facilitant le placement et le debug.
Résultat : une mission peut être démarrée en touchant une cible, et progresser automatiquement à chaque action liée (plaque, rampe, bumper...).
Différentes Missions à réaliser pour Cibles / Plaques de pression :
Plaques de pression activées au passage de la balle.
Elles donnent un score immédiat,
mais peuvent aussi être reliées à des objectifs plus complexes via le système de missions.
Multiball :
Chaque salle contient une charge de multiball, représentée physiquement par un tas de bombes.
Une fois en collision, le capteur incrémente une mission dédiée (ID unique) via le MissionManager.
Une fois les 3 charges récupérées (une par salle), la mission est complétée automatiquement et le multiball est déclenché.
Un flipper multi-plateaux :
Passage de Salles :
Trois environnements connectés (Pont, Cale, Prison).
Vous pouvez passez de chaque salle au autres en passant par différents point dans la salle, changeant ainsi dynamiquement le point de vue caméra sur le plateau.
Lorsque la balle atteint un trigger de sortie elle est détruite par le destructeur et est téléportée au crafteur lié à celui-ci afin de rejoindre la salle connectée.
Mécanique Signature :
Dash Temporel :
Toutes les X secondes, le joueur peut ralentir le temps et choisir une
direction pour propulser la balle.
Ce dash ajoute une couche stratégique et intervient comme un “joker”
pour sauver une situation critique ou viser une cible précise.
Gameplay Loop :
1 - Spawn de balle & début de partie :
Le joueur débute avec 3 balles. (Vies)
Une balle est instanciée depuis un point de spawn, avec reset des missions et du cooldown du dash.
Elle est toujours instanciée au niveau du pont sur le point du Plunger.
Le système vérifie que le joueur n’a pas déjà une balle active avant
d’en créer une nouvelle.
2 - Jouer / compléter des missions / survivre :
Tant qu’il y a au moins 1 balle sur le plateau, la partie continue.
Les missions peuvent être complétées (cibles, rampes…) et les joueurs accumulent des points.
Si certaines conditions sont remplies, le mode multiball se déclenche.
3 - Perte de balle :
Si la balle sort du terrain (LoseArea), elle est détruite.
Si c’est une balle normale :
Si c’est une balle multiball, elle est simplement détruite (sans impact sur les vies).
4 - Fin de Partie & Leaderboard Online :
Fonctionnement :
Communication via la clé publique sécurisée de l’API.
Le leaderboard utilise Leaderboard Creator, une solution open-source
hébergée sur GitHub.
Lien de l’outil leaderboard creator par Danial Jumagaliyev :
Mot de la fin :
Kraken Project a été mon tout premier projet complet.
Étant responsable du game design et du développement, j’ai pu concevoir ma propre architecture gameplay et apprendre à organiser proprement mes systèmes (physique, scoring, multiball, dash…), tout en les faisant interagir sans bugs ni conflits.
C’était la première fois que je concevais un jeu de A à Z: gameplay, UI, menu, boucle de jeu, feedbacks, son et même build final.
Ce projet a aussi été un excellent exercice de game feel: transformer un concept aussi simple que le flipper en une expérience fluide, lisible et agréable à jouer sur PC, en 3D, demande bien plus de finesse qu’il n’y paraît.
J’espère que ce projet vous aura plu !