Production time: 8 weeks, 50%

Team size: 13

Engine: TGE (TGA in-house engine)


Dialogue system

Cutscene programming

Camera functionality

All enemy behavior

Boss fight

Dialogue/cutscene system

For the dialogue, I continued building onto the dialogue system I made for the previous project and added different kinds of events other than just text.

Events included in the dialogue system:

-Text/Character speak

-Set condition

-Wait for set amount of time

-Camera shake

-Camera set/release target

-Camera pan

-Move or rotate character

-Play animation on character

-Reset cutscene

-Play one-time events (used when there needs to be functionality outside the scope of what the dialogue system can do)

These events are written in a json file in order of execution. I had a lot of fun building this system and using it, and while writing directly in the json worked out fine, it was also a bit tedious at times since it was very prone to accidental writing mistakes or forgetting variable names and having to double check. This made me very interested to try to remake the dialogue system in my own engine in a simple-to-use visual node-based editor tool.

Enemy AI

Our game had basic enemy types - regular boar, charge boar, regular bee, and dragon bee. The enemy behavior was built with a state machine class that I wrote in an earlier project. There were roaming, idling, chasing, charging and projectile shooting states, which could be reused for different enemies.

Boss fight and cutscene

I scripted an introduction cutscene for the boss as well as the battle itself. The boss has 3 stages - the first one just alternates between charging at the player and shooting fire projectiles. Once the boss reaches half of its max health, it enters a summon state, where it summons 3 waves of 3 smaller minion bees at a time. The purpose of this phase was to create a situation during the battle where it is beneficial for the player to use their charge attack upgrade.