A small real-time gameplay prototype built in Unity focused on responsive player movement, enemy spawning systems, and gameplay state management.
This project was developed as a focused gameplay engineering exercise exploring modern Unity workflows, real-time systems, and scalable gameplay architecture.
The player survives inside an enclosed arena while enemies continuously spawn and pursue the player. Enemy spawn frequency increases over time, gradually increasing difficulty until the player is overwhelmed.
The prototype includes:
- Responsive player movement using Unity's Input System
- Smooth player-facing rotation during movement
- Enemy AI pursuit behavior
- Dynamic enemy spawning and difficulty scaling
- Game over and restart systems
- UI overlay and survival timer
- Prefab-driven enemy architecture
| Input | Action |
|---|---|
| WASD / Arrow Keys | Move |
| R | Restart after game over |
- Unity 6.3 LTS
- C#
- Unity Input System
- Rigidbody Physics
- TextMeshPro
- Git / GitHub
- Real-time player movement and camera follow system
- Physics-based enemy pursuit logic
- Difficulty scaling through adaptive spawn timing
- Centralized game state management
- Prefab-driven enemy spawning workflow
- Organized scene hierarchy and script structure
- Serialized Inspector-driven configuration
- Separation of gameplay, UI, camera, and spawning systems
- Survival timer
- Game over overlay
- Restart prompt
Assets
├── Materials
├── Prefabs
│ └── Enemies
├── Scenes
├── Scripts
│ ├── Camera
│ ├── Enemies
│ ├── Managers
│ ├── Player
│ └── UI
└── UI
Potential future improvements include:
- Object pooling for enemy spawning
- Character animation integration
- Audio and visual effects
- Additional enemy behaviors
- Main menu and pause systems
- Score tracking and persistence
This prototype was intentionally scoped as a focused gameplay engineering exercise emphasizing:
- clean gameplay systems
- maintainable Unity architecture
- iterative development workflows
- real-time responsiveness and player feedback
Joshua Lanman
LinkedIn: Joshua Lanman


