Ghost Hunting Platformer
Overview
This is a platformer game I worked on with a couple of my friends in August of 2025. We decided to work on it for 2 weeks as a self-imposed game jam. In the game the player is a ghost-hunter equipped with a ghost beam that they use to weaken ghosts before capturing them in a manner similar to the Luigi’s Mansion games. The player also can capture specific types of ghosts to temporarily give themselves a special projectile that can be used to help weaken other ghosts, or progress in the level.
I was responsible for pitching the core concept and game mechanics to the group. I worked as a designer and programmer to implement various game systems and mechanics such as the main ghost capture mechanic.
Genre:
2D Platformer
Engine:
Godot 4
Dev Time:
2 weeks
Team Size:
3
Additional Software:
Trello, Figma, GitHub
Game Design
Pitched core game concept to team members.
Designed core ghost capturing mechanics integral to the gameplay and implemented visual indicators.
Designed system for giving player special projectiles when capturing special types of ghosts.
Designed system for opening doors when level requirements have been met.
Coding
Implemented and improved upon core gameplay features.
Created logic for unlocking doors/moving objects upon meeting level requirements.
Implemented core systems for weakening and capturing ghosts.
Added a “sweet spot” mechanic to the player’s beam weapon to expand upon the base ghost capturing mechanic.
Added quality of life platformer features such as coyote time and jump buffering to the base platformer project.
Playtesting
Tested game mechanics and systems to ensure quality as well as functionality.
Provided feedback to team members on what can be improved in terms of art and design.
Project Goals
Make a functioning game prototype in 2 weeks that we can possibly expand upon in the future with more development time if we like the results.
Keep our game dev abilities sharp and learn new skills in the process.
Detailed Info
Capturing Ghosts
I worked on both the design and implementation of the main gameplay mechanic: capturing ghosts. The main idea was that the player would use a beam/vacuum kind of weapon to slowly drain the ghosts energy before capturing them. I took the beam sprite our team made and added a collision shape to it. Then I made it so while the player held down the beam button the sprite would appear and the collision shape would activate.
Any enemy that was in the beam or entered into the beam would then slowly lose energy (which is treated like health) at a set rate and try to move away from the player. They slowly lose speed as their energy decreases and once a ghost’s energy was fully depleted, a prompt would appear above the enemy telling the player which button to press to complete the capture. To add a little flair to the capture animation I added a tween to ghost class to make them spin and shrink as they moved towards the beam’s muzzle.
The mechanic on its own was solid, but I wanted to add a bit more to it. So I added a “sweet spot” mechanic to the player’s beam. The way this works is that the closer to the end of the beam the ghost is while the player is in the process of capturing it, the faster the ghost loses energy. I accomplished this by simply checking for the ghost’s location relative to two specific points on the beam, and used this to determine the rate at which they lose energy. To convey this to the player I made the ghost’s energy meter flash while it was in the “sweet spot” of the beam.
Special Projectiles
While the player is progressing the level they may find ghosts that are not like the normal ghosts they come across. These are special ghosts that the player can capture to gain a special projectile that they can fire in limited quantities. The idea with these was that the player would need to capture these ghosts at times to destroy/bypass obstacles in the level. Unfortunately, we didn’t get to implement this functionality fully, but I was able to get the base system for acquiring the projectiles working and made them do damage if the player fired them at ghosts.
Level Progression
Another thing the player will come across in the level at times is a “ghost bank”. These are machines that the player needs to deposit a certain number of ghosts to open another section of the level. I worked alongside another team member to get these working, and made it so that once the machine was filled a locked door nearby would open and allow further progression.
QoL systems
At the start of the project while we were still working out what we wanted to make, I took the time to add some quality of life things that we knew would be needed in a 2D platformer. These being Coyote Time, in which the player has a small amount of time after stepping off a ledge to press jump, and Jump Buffering where the game will detect if the player pressed jump just before landing on the ground and store that input to execute upon landing.
These were key things to set up while we were still working out the specifics on game mechanics and made the game feel more responsive.
Playtesting
In addition to all the other stuff, I also worked hard to playtest mechanics as they were implemented, ensuring that there were no new issues or game breaking bugs present. If I did come across any I would notify the team, document it and, if possible, try to fix the error.
I also provided constructive feedback to the team on things like sprite work and code implementation, sometimes offering ideas for possible solutions.