Brimstone Devlog 5 (Owen)


 

   Hey everyone, I’m Owen Jones and I’m one of the two programmers of the group Midnight Games currently working on our game the Brimstone for Wake Techs SGD final project. Our game is all about solving puzzles to help the souls trapped within the Brimstone hotel pass on to the afterlife, while constantly evading the danger that lurks in the halls of each floor. So, this week, I’m going to be discussing Furcas the demon, who acts as the game’s primary antagonist horror element. We'll be going into the technical side of him, things like how he works, how he interacts with the player and other parts of our game, and our reasons for the design choices we made regarding his behavior. So, without further ado let’s get right into it.

How Furcas Works: Path Finding

    Furcas has a lot of interconnected systems that make up his overall behavior, including his vision, brain, pathfinding/movement, and a few others. Starting with his movement, Furcas's movement is based around a node system that uses Unity’s navmesh surface and navmesh agent to control his pathfinding. Upon needing to move from one section of the map to another, Furcas starts by finding a starting position and end position from a list of preset locations in the scene. The starting position is checked to make sure that it is a suitable distance away from the player, to prevent him from spawning to close or even on top of the player.       

Visualization of floor one with starting points, ending points, and possible routes:


How Furcas Works: State Machine

    Once Furcas's route has been planned he is put onto the map, this is where the next part of his system, the state machine, comes into play. The state machine is essentially Furcas's brain and handles input from other scripts to determine how he behaves and reacts to certain events. He has a variety of states to choose from but for now we'll be focusing on two of them, roaming which is his default state, and chasing which is when he engages the player. As stated previously by default Furcas starts in the roaming state, which involves him simply moving from his starting position to his ending position and completing his route. However, if he spots the player during his roaming, he will swap to his chase state and begin chasing the player. In this state Furcas will continually chase the player until he catches them, or he loses line of sight, which will cause him to enter his patrol state, something will go into further detail in a future section below.

Visualization of data that is sent out and brought into the state machine for Furcas.


How Furcas Works: Cone of Vision

   One of the crucial systems that feeds information to Furcas's state machine as seen in the diagram above is his Cone of Vision system, the system that allows him to essentially see the player. The Cone of Vision system works in three stages, detecting if the player is within Furcas's overall range of sight which is projected in a sphere around him, detecting if the player is then within his vision angle, which is the amount of space in front of him that he is able to see, and finally whether the he has a clear line of sight to the player of if the player is currently obstructed from view. Once all these stages have been complete, a value called the realization value is risen to twenty and Furcas begins to chase the player. This value determines how long Furcas will continue to chase the player after he loses line of sight of them. Once it reaches zero Furcas's will enter his patrol state which will be discussed below.

Visualization of Furcas's Cone of Vision system:


How Furcas Works: Suspicion

  The suspicion system is the hardest system to explain, but also the most important for making Furcas's behavior more complex. Essentially, this system revolves around allowing Furcas to deviate from his assigned path during his route if his suspicion value is raised to a certain level.  Once Furcas's suspicion has been raised high enough, he will enter his patrol state. In this state Furcas will swap his pathfinding to use a system of nodes that have been placed throughout the map. These nodes help him patrol specific areas to search for the player, adding to his ability to track you down.

Visualization of patrol nodes and patrol range:


Lots of events can happen during your exploration of a floor that will trigger Furcas's suspicion to raise such as, failing or completing a puzzle, running near him, or walking to close to him, random events such as a floorboard squeaking, and interacting with certain objects. These events, random or not, are meant to make the player consider what they do carefully. Running shouldn’t be used all the time as it attracts his attention faster if you are near him, and not everything that can be interacted with should be interacted with. Finally, this system ties directly into Furcas's spawning which is set on a 60 second timer. In between this interval, certain events on the suspicion event list will instead decrease the time to spawn for Furcas, making him a more prevalent threat depending on your actions.

 

  That sums up how the various systems used to make Furcas work together and alone. In the end we want Furcas to be a complex force to deal with and always feel like a credible threat to the player when he's around. I hope you enjoyed this little explanation of him, and I can’t wait for us to be able to show you him and all the wonderful things we’ve been making in our game. 

 

Get The Brimstone Final Project 2024

Leave a comment

Log in with itch.io to leave a comment.