Sharpshooter – Unity learning project

Simple FPS game developed during a GameDev.tv course. During the project, I learned a great deal about player input systems and player character control.

You can try the project here:
Sharpshooter – itch.io

Project objective

The objective was to create a simple, fast-paced FPS featuring a variety of weapons and enemy types. The game includes two types of enemies—flying drones and turrets—as well as three distinct weapons.

The game also features pickup mechanics for restoring health and ammunition, as well as unlocking new weapons throughout the level.

Additional implementations

While developing the project, I implemented several additional features based on my own ideas for this type of game.

Deflecting Shields

Some turrets are protected by deflecting shields that block the player’s bullets while allowing turret projectiles to pass through. This mechanic prevents players from eliminating the threat head-on and forces them to either find a way around the shields or carefully dodge incoming fire while advancing.

Acid Pools

Acid pools are environmental hazards that damage the player on contact.

I implemented them to make platforming and movement sections more threatening, as the project does not include fall damage. They also encourage players to pay closer attention to their surroundings and actively search for health pickups after taking damage.

Tutorial UI

During the first mission, players receive simple on-screen prompts that explain the controls and basic game mechanics. The system was implemented without an event system, making it one of the main areas for future improvement, as the current solution is fairly simple and limited.

Project Future

The main goal of this project (besides learning Unity) is to serve as a level design sandbox where I can experiment with more advanced level design principles and ideas, while also gaining experience working with more complex and visually interesting assets.

Although not every level will be published, I plan to share new ones whenever I have the time to develop them.