Buddhetti


“A monk returns from a long pilgrimage only to find his home village in ruins. He must journey to the mountains and unveil the darkness that encloses it.”

  • 6th game project at TGA
  • Made in a group of 15 people
  • Top down adventure
  • 5 unique abilities
  • Leveling and skill tree
  • 14 weeks (half-time)
  • Created using Cobra (our in-house C++/DirectX11)
  • Unity used as editor

Contribution

When developing Buddhetti, I was responsible for several items – including the pathfinding, player controller, camera, mechanics of all abilities, the skill tree, and more. I spend most of my time finishing and polishing the pathfinding, because I felt it was essential for a comfortable core gameplay loop.


Pathfinding

The editor for our in-house engine “Cobra” was still not finished, therefore we still used Unity as our editor for this project. Because of this, generating a navmesh was very easy. I solved pathfinding with A* between vertices in the navmesh early, but was later confronted with issues regarding preformance and smoothness.

The biggest breaktrough was when I wrote an internal ray-check that tested if the entity could walk straight to the end point. By following the ray cast between the start and end point, checking if the ray ever leaves any polygon in the mesh, the algorithm could easily and quickly know if this was possible. After adding pre-baking of neighboring nodes in the navmesh, the result was solid.


Skill Tree

I also implemented the skill tree, which added a level of strategy to the game. Through the polymorphic system I created, leveling up skills was effortless.

When initializing the sprites, I added a feature where you could save a lambda that would be called when the sprite is clicked. This lambda would later serve the purpose of calling a function, where the index would be converted into the ability and skill that should be upgraded. By then calling the Increment() function on that ability, sending the index of the skill as argument, the skill in question would get upgraded. The rest was just graphical.

In-game footage


Ability Mechanics

I implemented the animation and functionality of all 5 abilities (the 5th being the basic attack).

Heavy Attack (Spender)
Ranged Attack
Heal
Dash

Cone collision check for heavy attack