Portal Defender
This was a solo project, built from scratch using assets I found online. The core mechanics were created using Euler calculations. I had also created animations being triggered by registering collisions. Randomly spawned enemies and powerups in different locations of the map. UI system displaying player information was also created.

Gameplay
-
Designed and implemented the core gameplay loop from scratch, utilizing **Euler-based calculations** for rotational movement and gravitational force simulation.
- Engineered a **gravity-based navigation system**, allowing the player to orbit a black hole while simultaneously being drawn towards it.
- Developed a **polar coordinate movement system**, mapping **vertical input to radius control** and **horizontal input to angular rotation**, enabling fluid navigation around the black hole.
- Implemented a **passive gravitational pull** mechanic that continuously draws the player towards the black hole when no input is detected, creating a dynamic elliptical orbit.
- Simulated **inverse-square law gravity scaling**, increasing the gravitational force as the player moves closer to the black hole for a realistic orbital decay effect.
- Integrated **position clamping and angle normalization** to maintain controlled gameplay, preventing unintended movement anomalies while ensuring a smooth and predictable player experience.
-
Designed and implemented a procedural enemy spawning system, featuring three distinct enemy types and two power-ups, with dynamic difficulty scaling.
-
Developed **three enemy archetypes**:
- Asteroid: A passive obstacle with randomized spawn patterns.
- Shooter: A stationary enemy that forms a defensive ring and fires projectiles.
- Follower: A homing enemy that actively tracks and pursues the player.
- Implemented a **procedural spawn system**, generating enemies within predefined **min-max coordinate boundaries**. Used **random number generation** to control spawn locations and timing for varied encounters.
-
Developed a **stationary shooter AI** that strategically positions itself around the black hole. Once within a set radius, its movement halts, reversing its projectile direction using the
StartShootingReverse()
function to establish a defensive perimeter. -
Engineered an **adaptive homing AI** for the follower enemy:
- Calculated real-time positional vectors between enemy and player.
- Oriented enemy rotation towards the player's position.
- Applied
rigidBody.MovePosition()
to move in the direction of its facing angle, ensuring smooth pursuit behavior.
-
Developed **three enemy archetypes**:
- Implemented a dynamic screen shake effect using the **Observer Design Pattern** to enhance visual feedback upon player damage.
- Designed an **event-driven camera system**, allowing external scripts to subscribe to a **static Shake Event**, triggering controlled screen shake effects in response to in-game events.
- Applied **tweening functions** to modify the camera's **position and rotation values** within a specified range, creating a smooth and responsive shake effect.
-
Designed and integrated particle effects for key player interactions, enhancing visual feedback and game responsiveness.
- Implemented **collision-triggered particle effects**, dynamically activating upon specific gameplay events to reinforce player actions.
-
Developed a modular UI system, including an **options menu and player stats display**.
- Implemented settings for audio, sound effects (SFX), and resolution scaling, ensuring an adaptable and customizable player experience.
Rotational Mechanics & Player Controller
Enemy AI Programming
Camera Programming

Particle Animation & UI/UX Programming
- © Untitled
- Design: HTML5 UP