Sciophobia
ROLE
Producer, Programmer, UI/UX Designer, Level Designer, Narrative Designer
DESCRIPTION
Sciophobia is an atmospheric horror game set in an abandoned underwater facility off the west coast of America.
​
You play as a journalist who decides to investigate the area and uncover the truth of what really happened there.
YEAR
2022
GENRE
Horror/Narrative Driven
PLATFORM
PC
CAMERA VIEW / NIGHTVISION
At the beginning of the project, we decided that I would be one of the the main 3D modellers for the group. Throughout the next month or so, we quickly realised that having three modellers and one programmer was a bad idea, so this quickly changed. Being one of the more skilled programmer out of the three of us, I decided to move over to programming, while still helping the modellers if they needed it.
At the beginning of the project, we decided that I would be one of the the main 3D modellers for the group. Throughout the next month or so, we quickly realised that having three modellers and one programmer was a bad idea, so this quickly changed. Being one of the more skilled programmer out of the three of us, I decided to move over to programming, while still helping the modellers if they needed it.
I started off by creating a simple widget. The widget consists of UI elements for a camera, which I created from scratch in Adobe Illustrator, and a material that I created using Unreal Engine's material nodes. This can also double as the player's view, as it was a simple case of pulling the material and UI elements on to the player's screen.
​
Nightvision was probably the hardest thing to get right. To get the green tint, I had to simply change the material to one with a green and transparent overlay to it, however getting the area to light up was a challenge, as I had never done something like this before. I ended up using a spotlight that is located in front of the player camera to light up the area around them to simulate a nightvision mode on the camera.
INTERACTION
I also wanted the player to be able to interact with the environment to make it feel more dynamic. The more interaction the player has with the world itself, the more they feel like they are a part of it. I did this by doing simple things, such as being able to open drawers. This mechanic also allowed me to place notes in drawers and other areas, making them harder to find.
​
At first, I attempted to create a physics based version of the drawers opening, but I quickly realized that this was not going to be possible. Whether it was a problem with the mesh itself, the collision or a simple mistake I made with the programming, I am still not sure, but I just could not get it to work. I eventually went with this simple animation of the drawer sliding out. This was not entirely what I wanted, but it was still pretty effective.
I also wanted the player to be able to interact with the environment to make it feel more dynamic. The more interaction the player has with the world itself, the more they feel like they are a part of it. I did this by doing simple things, such as being able to open drawers. This mechanic also allowed me to place notes in drawers and other areas, making them harder to find.
​
At first, I attempted to create a physics based version of the drawers opening, but I quickly realized that this was not going to be possible. Whether it was a problem with the mesh itself, the collision or a simple mistake I made with the programming, I am still not sure, but I just could not get it to work. I eventually went with this simple animation of the drawer sliding out. This was not entirely what I wanted, but it was still pretty effective.
I also wanted the player to be able to interact with the environment to make it feel more dynamic. The more interaction the player has with the world itself, the more they feel like they are a part of it. I did this by doing simple things, such as being able to open drawers. This mechanic also allowed me to place notes in drawers and other areas, making them harder to find.
​
At first, I attempted to create a physics based version of the drawers opening, but I quickly realized that this was not going to be possible. Whether it was a problem with the mesh itself, the collision or a simple mistake I made with the programming, I am still not sure, but I just could not get it to work. I eventually went with this simple animation of the drawer sliding out. This was not entirely what I wanted, but it was still pretty effective.
I also wanted the player to be able to interact with the environment to make it feel more dynamic. The more interaction the player has with the world itself, the more they feel like they are a part of it. I did this by doing simple things, such as being able to open drawers. This mechanic also allowed me to place notes in drawers and other areas, making them harder to find.
​
At first, I attempted to create a physics based version of the drawers opening, but I quickly realized that this was not going to be possible. Whether it was a problem with the mesh itself, the collision or a simple mistake I made with the programming, I am still not sure, but I just could not get it to work. I eventually went with this simple animation of the drawer sliding out. This was not entirely what I wanted, but it was still pretty effective.
I also wanted the player to be able to interact with the environment to make it feel more dynamic. The more interaction the player has with the world itself, the more they feel like they are a part of it. I did this by doing simple things, such as being able to open drawers. This mechanic also allowed me to place notes in drawers and other areas, making them harder to find.
​
At first, I attempted to create a physics based version of the drawers opening, but I quickly realized that this was not going to be possible. Whether it was a problem with the mesh itself, the collision or a simple mistake I made with the programming, I am still not sure, but I just could not get it to work. I eventually went with this simple animation of the drawer sliding out. This was not entirely what I wanted, but it was still pretty effective.
I also wanted the player to be able to interact with the environment to make it feel more dynamic. The more interaction the player has with the world itself, the more they feel like they are a part of it. I did this by doing simple things, such as being able to open drawers. This mechanic also allowed me to place notes in drawers and other areas, making them harder to find.
​
At first, I attempted to create a physics based version of the drawers opening, but I quickly realized that this was not going to be possible. Whether it was a problem with the mesh itself, the collision or a simple mistake I made with the programming, I am still not sure, but I just could not get it to work. I eventually went with this simple animation of the drawer sliding out. This was not entirely what I wanted, but it was still pretty effective.
ACT 2 (LEVEL STREAMING)
I had a little bit of trouble deciding what the best way to handle Act 2 was. Some things I needed to consider included: the most efficient way to add blood decals, change any lighting etc. while still managing to change the layout of the level. My first thought was to duplicate the level, and make the player run through a whole new level for act 2 and onwards, but this did not seem like the best route, as there is unfortunately a bit of a stutter between changing levels, and this was simply something that we did not like the look of.
I ended up going with the use of level streaming, something we had learned through a level design module as a way of optimization. I found (from a small solo project) that you could convincingly and smoothly adjust the levels layout using level streaming, albeit being very careful what you load in and out. Here is an example of what the result was. I used walls to seem as if doorways had completely disappeared, along with seamless portals to mess with the player, and make it seem as if the layout of the level had changed.
​
I think this looks pretty good, it certainly does the job, and I definitely do not think it is a big enough change to warrant a whole duplicate level