Introduction
This project is a simple 3D action-packed beat-em-all game, made in one month. It was created during the first year of my Bachelor’s program at SAE Geneva. It incorporates procedural elements, a variety of enemy behaviors, and player progression through stat upgrades.
Preview
Core Combat System:
- Sword Attacks: Melee combat with animations and hit detection.
- Gun Attacks: Range Attack to hit enemies from distance.
- Magic Attacks: Zone of area that can hit multiple enemies.
Enemy AI with Behavior Trees
Enemies are designed using behavior trees, offering diverse combat challenges.
Quick reminder: a behavior tree is a decision-making system used in game AI to control character behavior. It organizes actions and conditions into a hierarchical tree structure.
Each enemy has variants that modify the variables of their behavior based on their core design.
-
Wolf: Roams around the player while keeping an eye on them. Attacks after a random delay.
-
Zombie: Remains idle if the player is far. Aggressively charges when the player enters its perception zone.
-
Shooter: Alternates between moving to predefined waypoints and firing projectiles. Includes a short delay before shooting to give the player a chance to dodge.
Procedural Enemy Generation
The game employs a procedural system to generate different enemies in each rooms, ensuring a unique encounter each time you launch the game. Key features include:
- Randomized spawn locations for enemies.
- Variable enemy count based on a pool and a enemie weight value for generation and keeping a linear progression.
Player Progression System
After each combat encounter, players are rewarded with:
- Health: Restore your Hp.
- Damage: Increase the stats of one of the 3 types of combats mechanics. This progression system encourages replayability and strategic planning.
Animations and Camera
The game features animations sourced from Mixamo, for the player combat system and the enemy behavior. The game camera used a orthographic camera point of view to provides a clear, top-down perspective, keeping all the action in view and emphasizing spatial awareness during combat.
🎓 What I Learned
This project deepened my understanding of:
- Procedural Systems: Designing adaptive mechanics for dynamic gameplay.
- Behavior Trees: Implementing AI systems to create varied and realistic enemy behaviors.
- Player Progression: Balancing stat upgrades for engaging long-term gameplay.
- Animation Integration: Using Mixamo animations for rapid prototyping and high-quality visuals.