Terrate
Project Description
A second year project for Falmouth University, made by a small team of students including myself.
COMBAT
How and Why?
When the player holds right click they start to aim, this forces their character to face forward and enables the player to perform a melee attack by pressing left click.
​
This implementation has been a bit controversial, as some players find it intuitive and others find it a bit uncomfortable. The reason I implemented it this way is mainly due to mostly playing FPS's and also trying to make combat as easy as possible for less experienced gamers.
​
Feedback on the original prototype said combat was a bit too difficult, so I made a zoom in button to make smaller creatures such as rabbits and wolves easier to see and track, I moved the camera further to the side so the player's character takes up less screen space, and finally I increased the number of line traces used from 1 to 81 so that aiming is more forgiving. This makes it so the difficulty stems from the player's ability to manage distance between them and the threat.
Villagers
How and Why?
The generic villagers aren't meant to serve any gameplay purpose, they are there to help the player get immersed in the world. They are also the very first thing I've worked on in this project.
​
They have 3 simple behaviours, either go to a random location in the village and stand for a brief second, go to the benches near the camp fire and take a seat, or go back to their house and take a nap. They also go home to sleep when it turns night time and starts raining.
​
There is also a specialized villager at the back of the village which does serve a gameplay purpose, more on him below.
Wildlife
How and Why?
There are 3 different types of wildlife in the game, rabbits ("prey" in code), wolves ("predators" in code), and bears ("apex predators" in code).
​
Rabbits have two behaviours, they either peacefully roam around or they run away from potential threats (anything that isn't another rabbit).
​
Wolves have the same two behaviours as rabbits except they have an extra behaviour where they hunt rabbits or players tagged as hostile. Players are hostile if they attack any wolf and don't break line of sight for at least 10 seconds continuously.
​
Bears either roam or hunt anything, including other bears. Bears deal the most damage, move the fastest and have the most health, they also only spawn in the second section past the bridge so the player only encounters them when they're on the last mission.
This is so the player has time to get accustomed to the controls, and by that point the player might've engaged in combat with wolves as practice, though this is optional since wolves by default won't attack the player.
​
Other Contributions
On top of everything I shard here, I worked on numerous of other smaller systems such as the crafting system, mission markers/compass system and anything related to the players health. I was the only C++ programmer so anything written in C++ in this project is my own. As for blueprints, our team had another blueprint only programmer, who worked on the inventory system, missions and UI. A good rule of thumb is that anything related to my contributions is mostly made by me, for any clarification regarding my contributions feel free to get in contact with me and I'll be happy to explain further.
Reflection 6 Months Later
After reviewing this project 6 months after officially stopping all work on it, it's great to see how far I've come. I used this project to get to grips with UE5 and C++ and as a result was too too scared to take advantage of things like Object Orientated Programming (to create a base animal class and inherit and override behaviours from it) or using interfaces (to create a character interface which would have taking damage or healing functions). But this still served as a perfect foundation from which I built my knowledge on over the summer, if you do want to see my enhanced skills taking advantage of polymorphism to create a scalable gadget/ability system check out my page on Endless Vendetta