STAGE 2-6
PROTOTYPE

Geometry Survival

Role Gameplay Programmer
Timeline 2025
Platform Unity 3D (URP) · PC
Team Size 1 (Solo)
UnityC#URPMaterialPropertyBlockObject PoolingNew Input System
STAGE 2-6 // GAMEPLAY GEOMETRY SURVIVAL Unity C# URP MaterialPropertyBlock Object Pooling New Input System SYSTEM_INIT: OK | MEMORY: ALLOCATED | RENDERING: ONLINE

Mission Brief

Build a responsive 3D top-down shooter arena capable of handling continuous projectile fire and enemy waves without frame-time spikes or broken GPU draw-call batching.

Key Systems Engineered

Ground-Plane Raycast Mouse Aiming Decoupled from Movement (PlayerController.cs)

Separates unit-clamped WASD Rigidbody velocity from cursor aiming by casting a Physics.Raycast from the camera through the mouse screen position against a dedicated groundLayer to compute exact world-space look rotation.

Dual Independent Object Pools (ObjectPool & EnemySpawner)

Implements pre-warmed, self-expanding object pools twice independently — once for high-frequency player bullets and once for enemy wave spawning and recycling.

GPU-Batching-Safe Dissolve Shader Animation (EnemyHealth.cs)

Animates _DissolveStrength during enemy spawn-in and death using a MaterialPropertyBlock rather than material.SetFloat, preventing per-enemy material duplication and preserving GPU draw-call batching while disabling colliders mid-dissolve to prevent double-hit bugs.

Implementation Details

Architecture & Deep Dive

Geometry Survival separates movement from aiming by raycasting against a dedicated ground plane layer, computing world-space aim direction independently of WASD velocity input.

The dissolve shader effect uses MaterialPropertyBlock instead of direct material property modification, preventing Unity from creating per-instance material copies that would break GPU draw-call batching. Colliders are disabled during the dissolve animation to prevent double-hit bugs.

Select Player Class

Your class determines which skills and projects are highlighted throughout the site.

Achievements (0/11)

Press Start
Skipped or clicked through the boot sequence.
Class Act
Selected a Player Class to customize project ordering.
Efficient
Opened the 60-second Recruiter Mode summary.
Level Up
Opened your first engineering project Case File.
Completionist
Cleared all 12 project Case Files.
Coin Collector
Found and collected all 7 hidden coins across the site.
Old School
Entered the Konami Code or activated Arcade Mode.
Snake Charmer
Scored 10 or more points in the 404 Game Over Snake mini-game.
Hello, World
Copied the contact email address to your clipboard.
Curious
Opened the Keyboard Controls (?) overlay.
Bonus Round
Entered the hidden Bonus Stage development lab.

System Settings

Theme
Motion
Audio
Sound Effects
Advanced
Keyboard Shortcuts
Show Hidden Coins
Arcade Mode (CRT)

Keyboard Shortcuts

Navigate Sections
1 2 3 4
Open Achievements
A
Open Settings
S
Toggle Audio
M
Close Modal
Esc
Konami Code
↑ ↑ ↓ ↓ ← → ← → B A