Week 1 was spent implementing the basics of our interactive light control system. We based the control system off of the third-person control system that came with Unreal Engine 4, but we’ve added switches to turn on and off lights.
As the game is reliant on utilising lights to control the players sanity, this allows the player to enable lights giving the player access to safe areas to navigate.
In looking at the lighting system within Unreal, we needed a way to be able to see how lights were connected to switches allowing turning lights on and off based on the environment.
By utilising this system we could quickly debug which lights were connected to which switch thus allowing the game designers the ability to place lights and switches for the environment without the need to look at code.
Week 2 saw the team begin implementation of the effect of light on the player. The initial system utilised raycasting and distances to determine if the player was within a light source and then assigned a ratio.
We found that the amount of light that the player was in would never reach a point of being in full light, or a ratio of around 1, unless the player was literally standing inside the light source.
This of course was less than satisfactory.
So we had a look at other ways that this could be handled.
Instead of just using the ratio the player was standing in, we now used an additive lighting system so the longer a player was standing in light their ratio would increase until it hit the maximum of 1.
This would also decrease when the player left the light source until again the players light value would hit 0.
This would be utilised to update the players fear/sanity value as they continue to stay in the dark.
The final system implemented this week was a lighting system to enable lightning flashes through windows.
This would be a feature to allow the player to use the flashing lights to escape a Despair that might be chasing them whilst also giving a small boost to their light level while passing.
In continuation of our light system in week 3, we created a system for lights to have a timed value so a player could turn on the light and then use the time to traverse an area that maybe inaccessible otherwise.
Begun integration of interactive objects within the game world. This is just basic blueprint objects created within Unreal, but will be switched out with the real 3D models that are being worked on by our artist.
And of course, what is another week without bugs discovered. In this case, we found that the light level system would bug out if the character was crouching giving infinite light to the player.
Not really what we want if we have a game that is very reliant on a light system as a main mechanic.
Next we found that the crouch system within the Third Person Controller system meant that falling doesn’t happen, they just hang out over the edge and can no longer walk that direction.
If you standup from this point the player will fall, but you can basically float in the middle of the air for as long as you want whilst crouching currently.
Last thing implemented this week was the ability for searchable desks to contain collectable objects.
The game currently has three limited use items, including batteries, lantern oil and keys. These will be distributed throughout the procedurally generated world and allow for rooms to be locked with colour coded keys as well as chests to be locked.
This is a way to ensure that progression through the game can be gated.
Week 4 was spent finalising and ensuring all of the systems implemented from the first three weeks were all working as expected and implemented in a way that would work going forward.
This was the end of our first sprint and from the work we ended up with, it was a very successful endeavour and we are all looking forward to what will be coming in the next few weeks.