● Unity 6 · C# · vertical slice

ArenaSlice

A first-person arena shooter. One arena, four waves, enemies that see and hear you.

Waves4
Enemies213·4·6·8
AI states6
Weapons2
01 Movement

Jumps built from physics, not feel.

The jump isn't a tuned impulse. Kinematics.cs solves v² = u² + 2as for the speed that reaches an exact height, so changing gravity never changes how high you go. Try it.

Walk 5 m/sSprint 8 m/sCrouch 2.5 m/s Slide μg·cosθCoyote 0.10 sBuffer 0.12 s
Jump kinematicsu = √(2gh)
Takeoff speed6.93m/s
Air time0.69s
02 Enemy AI

They notice you.

Six states on a NavMesh baked at runtime. Sight is a cone 55° either side plus a raycast. Hearing is a sphere around every sound you make.

State machineEnemyAI.cs
    Hearing radar · top-downSprint 14 m

    03 Weapons

    Two guns, one base class.

    Rate, magazine, spread, recoil, falloff, headshots and noise all live in Weapon.cs. The rifle raycasts; launcher rounds fly with real gravity and inherit your velocity.

    04 Scope

    Four waves, five to eight minutes.

    Wave 1
    3
    Wave 2
    4
    Wave 3
    6
    Wave 4
    8

    A start menu, an end screen with your time, and a best time saved to settings.json.

    05 Accessibility

    Playable without colour or sound.

    • Horizontal FOV sliderSet the field of view the way your eyes like it.
    • Separate aim sensitivityAiming down sights has its own setting.
    • Directional subtitlesOn an opaque black box, with where the sound came from.
    • Never colour aloneHealth, ammo, hit markers and alerts all use text or shape too.
    06 Controls

    Press a key.

    The cards light up as you type, the same bindings the game uses.

    ● Open source

    Open it in Unity and press Play.

    Game.cs builds the arena, NavMesh, player and HUD by itself, so there's no scene to wire up. Built-in Unity APIs only, no asset packs.