Keep The Gold - My first Godot project
- Nick Lee
- May 2
- 5 min read
This is a portfolio that will discuss my recently completed Negotiated Skills Development (NSD) project. I had to learn quite a few new skills for this as I had never made a game entirely by myself before.
Here is a link to the game itself: https://nickleeaudio.itch.io/keep-the-gold
Planning
Inspired by the Brackeys ‘How to Make 3D Games in Godot’ video (Brackeys, 2025), I created a plan of work with all of the main sections that I would work on each week before submission. The first task was to create a short design document that outlined the main features and style of the game. The design document was made to be somewhat vague and non-specific in features and was as follows:
Design Document
Instant Summary
The evil wizard has stolen your kingdom’s gold and is hoarding it in his keep. Take it back from him before the time runs out and watch out for his powerful spells.
Look and Feel
Assets from here. Designed keep that includes indoor and outdoor area. Medieval looking, similar to https://ochounos.itch.io/donensbourgh and kingdom come but more cartoony. Skyrim maybe.
Game Design / Mission
Start level from outside with outside ambience. Head to the keep entrance where you meet the evil wizard.
Wizard locks you out, find a level/key/side door to get in.
Take the gold out without getting hit by spells or before time runs out and exit closes.
Success – you take all the gold back.
Fail – lose health and die from wizard or get locked in.
Controls
WASD and E to collect and deposit gold. Could potentially be picking items up and carrying them out like Skyrim
Enemy
Wizard that can hurt you with spells. Could be roaming around keep or be shooting spells down one specific alley.
Sound Asset List
Next, I created a Sound Asset List with some ideas for sounds and sound systems to be implemented into the game. This is always an important part of the project planning process for myself. As shown, not all of the sound ideas were included yet all of the planned systems were.

GreyBoxing
This was a feature I had known about before starting the project but had never created myself. The greybox was somewhat simple and turned out quite similar to the end design. It was a useful process for understanding how to create a level from scratch.

Knowledge of Level Design in Godot
Following the greybox as an outline, I used imported assets to build the Keep and the outside area. Other than assigning materials to scenes and adding collision, it was a fun task to populate the game level with assets. The level was also designed to be a fun area to traverse to find the gold. Creating a main scene and UI scenes allowed for simple transitions and a simple gameplay experience.
Knowledge of GDScript
Godot uses a visual scripting language called GDScript. It is similar to some other programming languages, yet it has some useful quality-of-life changes that make understanding and writing it easier. Following tutorials to begin with, I learned the basic layout and functions of GDScript. By the end of the project, I feel comfortable creating my own scripts and functions to make systems work. There are examples of scripts in this project relating to box game design systems and sound systems.
Game Design Systems
Win/Loss
The player would win by being outside of the keep when a timer ends or lose if they are still inside. This involved simple signals and Boolean variable checks.

If the player lost all their health, the game would also end. When magic hits the player, it would call an AutoLoad (aka Singleton) script called PlayerVariables and take health away.

Gold
The main objective is to make it out of the Keep with as much gold as possible. The player can collect gold and the amount they have is displayed with UI.

The gold spawn is randomised using an Array of locations. This adds to the replayability, as the gold will spawn at different locations each time the game starts.

Enemy
The wizard cannot move around the level but is always looking at the player.

Using a timer, the wizard will shoot magic at the player and detect if it hits the player using a Raycast.

UI
A late addition to the project was the inclusion of UI screens. These are fairly simple but are an important part of game design. There are basic controls that work seamlessly. Scripting was involved in displaying the correct information on the End screen as well as the Master Volume slider control in the Options window.




Sound Systems
Footsteps
Using a Raycast, the player script detects what surface is underneath the player. With the addition of a Headbobbing animation, the correct footstep sounds in a random container are played when the player is moving.

Timer
When the player first enters the keep, a timer sequence is started (linked to the Win/Loss condition). Four looping audio files of increasing tempo are started and stopped when each timer starts or stops. Feedback suggested this made the players feel rushed but was a useful addition.

Health
When the player’s Health variable is at 2 or below, a looping heartbeat sound will play.

UI
The controls have a feedback sound when the player hovers over each of the buttons

Music is added to these screens that loops between two tracks with varying instrumentation. The music is not stopped during gameplay, only the volume is brought down and then back up when the Game Over screen appears.

Response to Feedback
Feedback and iteration were an important part of creating this game and helped to improve the overall gameplay experience. A build of the game was sent to peers, and their insightful feedback gave me information on what to add or what needed fixing. Once the first iteration after feedback was made, it was sent out again for further feedback.

Extra Skills
Lighting
This was an important part of adding ambience to the level and making it look appropriate. I learned the basic skills of having world lighting, shadows and the inclusion of emitting lights as seen in the torches and candles.

Particle effects
Following a simple tutorial for the magic, I included Godot’s particle emitter for when the magic hits an object or the player.

Animations
Animation players were an important part of the design process. Though the enemy has simple animations in the game, the animation player was also used to keyframe sound levels and the pause menu for smooth fading.

Conclusion
Overall, I would say that I have a useful and suitable knowledge of Godot and how it can be used to create a game. The completion of this project has given me plenty of new skills, especially strengthening my understanding of scripting. The project and technical discussion video outlines a basic explanation of how these systems were implemented into the project and the game is available for anyone to play at the Itch.io page, meaning that further development is possible.
Give the game a go for yourself and let me know what you think!
Comentários