🎯 FPS 3D – Mon Premier Projet Unity
Premier prototype FPS solo en Unity et C# — apprentissage game dev
À propos du projet
Mon premier projet sérieux de game development : un FPS 3D solo réalisé avec Unity et C#. Encore au stade de prototype, il pose les bases d'un moteur de gameplay FPS : contrôleur de personnage, caméra à la première personne, système d'arme et objets physiques interactifs/destructibles.
Je suis la série FPS Full Game Tutorial de la chaîne Mike's Code, un tutoriel complet en 15 parties pour construire un FPS de A à Z. J'en suis actuellement à la Part 5 (Shooting at Bottles).
Ce projet me permet de combiner ma passion pour les jeux vidéo avec mes compétences en programmation C#, tout en explorant un domaine complémentaire à ma formation BTS SIO. Le code source est public et suivi sur GitHub.
Ce qui est déjà implémenté (Part 1 à 5)
Contrôleur du joueur — Basic Movement
Déplacement via CharacterController (ZQSD/WASD), saut et gravité personnalisée avec détection de sol par sphère (groundCheck).
Caméra FPS
Rotation souris à la première personne, clamp vertical pour éviter le retournement de caméra, curseur verrouillé au centre de l'écran.
Système d'arme — Basic & Advanced Shooting
Trois modes de tir (Single / Burst / Auto), délai entre tirs, dispersion aléatoire (précision), balles physiques propulsées par impulsion (Rigidbody).
Bullet Impact Effect
Détection de collision par tag (Target, Wall, Beer) avec effet d'impact instancié au point de contact.
Shooting at Bottles
Bouteille de bière réagissant aux impacts (physique + son), avec anti-spam audio sur collisions rapprochées.
Bonus perso — Objets destructibles
Cubes démolissables en morceaux physiques via le plugin Mesh Demolisher, ajout personnel en dehors du tutoriel.
Prochaines étapes (suite de la série)
- Part 6-7 — Modèle d'arme, son, muzzle flash et animations
- Part 8-9 — Rechargement et ajout d'une seconde arme
- Part 10-11 — Ramassage/changement d'arme et UI de base
- Part 12-13 — Ramassage de munitions et visée (ADS)
- Part 14-15 — Objets lançables (grenades)
Ce que j'apprends
- Programmation C# orientée objet dans un contexte game dev (enums, coroutines, singleton)
- Utilisation de l'éditeur Unity et ses composants (Rigidbody, CharacterController, Collider)
- Principes de physique 3D : forces, impulsions, raycast, détection de collisions par tag
- Conception de GameObjects et architecture de scripts Unity (séparation Core/Player/Weapons/Interactables)
Ressources utilisées
- FPS Full Game Tutorial — Mike's Code — série complète suivie pour ce projet
- Unity Learn — Documentation officielle