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

    Rotational Mechanics & Player Controller

    • 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.

    Enemy AI Programming

    • 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.

    Camera Programming

    • 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.

    Particle Animation & UI/UX Programming

    • 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.