Tree Guard
Team Size: 5 | Duration: 10 weeks
Tree Guard is a top-down action and tower defense game with unique vacuum mechanics. As the only engineer in the team, I contributed to all of the game systems in the engine.
My Contribution
Weapon and Ability System
Dynamic Materials
Implementing AI Boss with Behavior Tree
Challenges & What Could Be Done Better
Weapon and Ability System
- Implemented the logic for each ability and skill. We decided to add a level-up system where each ability’s skill level is managed in the player class for reference.
Custom Structure and Data Table for Easier Maintanance
- The data table made maintenance easier and allowed non-programmers to adjust the game.
- Maximum EXP required for each level
- Ability descriptions displayed in the level-up options
Dynamic Materials
-
By using a Material Dynamic Instance, I was able to update the color of the leaves based on the current health. I created a custom color curve to simulate the leaf color and assigned the color whenever the tree took damage.
-
The Dynamic Material Instance was also used for bombs to create a ticking effect.
Implementing AI Boss using Behavior Tree
-
Using a custom decorator and service to patrol points, the boss uses two layers of detection. First, it uses multi-box trace to check for the player or the tree, then uses line trace to ensure the object is in sight.
-
We spawned the boss twice; for the second encounter, we made the boss stronger. To achieve different effects, I added a boolean to switch to different nodes when the boss returns.
Challenges & What Could Be Done Better
- Aside from engineering, my initial game pitch was selected for this project, which initially had only the core mechanics of a vacuum and vampire survivor-style game. We struggled at the midpoint and had to spend a lot of time rethinking the core concept, which should have been decided earlier. I learned the importance of designing the core gameplay loop before starting development.