NIGHTMARE FUEL
UI Designer | Gameplay Programmer
Tools
Godot 4.2.2
Github Desktop
Github
​
Period
July 2024 - August 2024
About
A 3D first person horror game created for the Pirate Software game jam. It was developed by 4 programmers, and 1 artist. I was responsible for creating the inventory system and interactable/throwable potions.
What is Nightmare Fuel
Created for the Pirate Software game jam, Nightmare Fuel is a 3D first person horror game I helped develop with my friends. The theme of this game jam was Shadows and Alchemy. The team wanted to create a unique twist on the theme by making a horror game where a monster hunts the player in the shadows, and you need to brew a potion with various ingredients and elements of alchemy to defeat the monster.
My Role
UI Designer
-
Created the ingredient inventory system for crafting the cure ingredients
-
Designed the potion inventory UI, mouse, and keyboard focus handling
Gameplay Programmer
-
Created cure ingredient and potion base classes
-
Programmed the potion throwing and effects on the enemy and environment
Development
When we began development, we wanted to get the main gameplay loop finished first. One of the key components in the main loop was collecting ingredients to craft a cure for the monster. We also wanted a way for the player to tamper with the monster’s behavior, improving their chance at survival with the monster, which were collectable potions. I was responsible for creating both the ingredients and the potions.
Ingredients and Potions
Inheriting from a class made by Tyler Cobb, another gameplay programmer on the team, I made two scenes: an ingredient and potion scene.
​
Both scenes possess an enum variable of all item types, reducing W.E.T design. When the item is placed in the scene, the user can select any item from a dropdown, and a match statement will change the item's color and name accordingly.




Potion Throwing and Effects



Players can throw collected potions at the monster or environment. Each potion has a different effect:
-
Slowness briefly decreases the monsters speed.
-
Blindness briefly decreases the monsters sight..
-
Noise makes a sound for the monster to investigate.
When the player throws a potion, the potion emits a signal when it collides with a body.
​
If the body is the monster, a function in the monster's script will check if the potion is a slowness or a blindness potion, and apply the temporary effects.
​
If the body is not the monster, the signal checks if the potion is a noise potion, where another signal is emitted, causing the monster to check the potion's position before the potion is shattered.
Inventory Systems
The other game elements I designed and programmed are the two inventory systems for ingredients and potions. Ingredients are necessary to progress to create the necessary parts to create the final cure.
Potion Inventory
The potion inventory is a three slot inventory on the player HUD. When a potion is collected, the next available slot’s texture box gets set to the collected potion. If there is no slot free, the player does not pick the potion up.
​
When a player throws a potion, the current focused slot’s texture is removed, and the potion is thrown. Players can switch which slot is focused with the mouse wheel, or the number keys 1-3.



Ingredient Inventory
The ingredient inventory is a dictionary. The key represents the item to collect, and the value is a boolean to represent if the item was collected or not, changing to True upon collection.
​
Unfortunately, the jam deadline was approaching, and I did not have time to make visuals. If I had time, I would have made the inventory a checklist on a piece of paper, and every time the player collected an item, a check mark would show up on that item.