P6 - Spite: Plague Purge

-- Project Summary --
This project was made in our groups first iteration of our proper engine. Since it was our first project in our engine and it being quite short compared to the next project, a lot of things were missing and implementing everything we needed took too much time which sadly means that this project is currently unfinished and wont be for quite a while. It was developed alongside other diciplines such as Graphical Artists, Game Animators, Level Designers and Sound Designers. You play as a plague doctor in world ridden by plague. In your best efforts to cleanse the plague you travel to the most infested city hoping to find the source and exterminate it.
-- My Contribution --
-- Player Controller & Abilities --
Being the only gameplay programmer in our group I was responsible for implementing most of the larger gameplay features. This was one of the first projects I decided to experiment more with the player controller and how it handles its states. I initially got one working but I quickly realised the problems and downfalls of it which stuff like animations and sound effects much harder to properly implement. I would have re-written it if I had more time and I plan to do so for the final final turn in since it will make other areas regarding the player much easier.
I was also in charge for implementing the different abilities the player has. These went much smoother since most of them were projectile based, so I could easily create a base class that the other projectiles inherited from.
Alpha footage, will be replaced at some point but I'm in a bit of a crunch rn
-- Enemy AI & Decision Tree --
Because of a lot of different timepressures I unfortunatly haven't finished all the different enemy types yet. I did set up a very basic decision tree system though to hopefully speed up the development of the enemies since I thought that I could reuse a lot of the behaviours compared to a state machine which is a bit more rigid and harder to reuse.
-- Navmesh Generation, Pathfinding & Funneling --
Since our engine is made from scratch we do not have any technical AI features and they also had to be made from scratch. We were also a bit too excited about building our own editor and having as much contained in it as possible. This also meant that we had to write our own algorithm for navmesh generation which ate up a lot of my time on the project and it still doesnt work properly so I am currently re-writing it work slightly better, aswell as another programmer making it possible to edit the navmesh with polygons and connections.

Implementing the pathfinding was not so difficult since we had already done a form of it in a previous course. I mostly just had to change to work on a navmesh and improve certain parts of the algorithm to properly find the shortest path. Something that did take a lot of time though was implementing a funneling algorithm which was my biggest time sink during the project. It was a combination of there not being a lot of documentation on how to do funneling and me not quite understanding the documentation that does exist. In the end it works 99% of the time and the 1% it does not work properly i think is more related to certain special cases with the pathfinding.
-- Credits --
-- Programmers --
-- Level Designers --
-- Graphical Artists --
-- Animators --
-- Sound --
Joar Andersén
Wasinn Laokhot