Back Go Back

Brave Little One

Sword Icon

Brave Little One

Survive waves of enemies in a test of endurance and skill.

Brave-Little-One
Brave Little One

About

In Brave Little One, players take control of a lone warrior fighting for survival against relentless waves of enemies. The game tests players’ reaction speed, decision-making, and endurance as they level up, acquire upgrades, and fight to stay alive until the final boss battle.

Project Details

  • Role Icon My Role: Gameplay Programmer
  • Team Icon Team Size: 1
  • Engine Icon Engine: Godot (GDScript)
  • Time Icon Development Time: 2 weeks

Introduction

In Project Asylum, you play as an employee sent to verify the demolition of an abandoned mental institution. But things quickly spiral into chaos as the building itself shifts, traps, and terrifies you. Equipped with only a UV flashlight, players must navigate eerie hallways, solve environmental puzzles, and uncover the institution's dark secrets while avoiding unseen dangers lurking in the shadows.

Gameplay and Features

Development Process, My Contributions & Lessons Learned

This project refined my skills in GDScript programming, event-driven design, and AI behavior scripting. I gained valuable experience in implementing scalable upgrade systems, designing enemy wave mechanics, and structuring game flow to maintain engaging pacing. Additionally, working on UI elements, game-state management, and level progression deepened my understanding of organizing game logic efficiently.

Code

View key scripts used in Brave Little One.

                
            // HealthComponent.gd - Handles player and enemy health
            extends Node
            class_name HealthComponent
            
            signal died
            signal health_changed
            signal health_decreased
            
            @export var max_health: float = 10
            var current_health
            
            func _ready():
            current_health = max_health
            
            func damage(damage_amount: float):
            current_health = clamp(current_health - damage_amount, 0, max_health)
            health_changed.emit()
            if damage_amount > 0:
                health_decreased.emit()
            check_death()
            
            func heal(heal_amount: int):
            damage(-heal_amount)
            
            func get_health_percent():
            return max(current_health / max_health, 0)
            
            func check_death():
            if current_health == 0:
                died.emit()