ANOTHER ONE

Puzzle Shooter Demo

Another One is a simple demo designed show off a dynamic health regeneration mechanic, a sine wave idle system for more organic character movement, and basic AI-driven enemies. This project was created as a learning exercise in Unity and shows how to implement these features!

REGENERATION

Health bars remain hidden until the player is injured, at which point the UI becomes visible. Once the player avoids damage for a few seconds, their health begins to regenerate automatically. Should the player take more damage during healing, regeneration is halted until the cooldown resets. This system is implemented inAnotherOne/Assets/FPS/Scripts/PlayerCharacterController.cs, between lines 176-330. It has booleans track the player's damage state and timings for when regeneration should resume.

SINE WAVE IDLE

We adopt a procedural approach to idle animations through a sine wave mechanism. This simulates the movements of a character breathing or swaying while standing still. It's achieved by combining mathematical sine functions with the game's frame-based updates. You can find the relevant implementation inAnotherOne/Assets/FPS/Scripts/PlayerWeaponsManager.cs, lines 345-455.

BASIC ENEMIES

Our enemies rely on a random roaming script paired with a chase-and-attack mechanic. While there are occasional quirks in their animations, these mushroom minions do engage the player on sight (most of the time!). We also add an item drop system that determines if an enemy will drop loot upon defeat. This can be configured through the Unity editor for different drop rates and item prefabs. The logic is inAnotherOne/Assets/FPS/Scripts/EnemyController.cs, particularly around lines 74, 430-442, and 509-520.

ADDITIONAL

This project is built on the free FPS Microgame template, which provides basic shooter mechanics. Some paid environment assets (rocks, trees, textures) have been removed to make this demo open source, so the scene may differ visually from the original development build. However, gameplay and functionality remain intact for anyone wishing to explore or expand upon the code!