A prototype third-person shooter game built with Pascal using the Raylib graphics library and custom game engine components.
TPS Prototype is a demonstration project showcasing a third-person shooter game with:
- Third-person and first-person camera modes
- Player movement with animations (idle, walk, run, jump)
- Weapon system with attached models
- Enemy AI (zombies) with targeting and states
- Physics-based interactions
- Debug visualization tools
- WASD - Movement
- SPACE - Jump
- LMB - Shoot
- C - Switch between third-person and first-person camera
- M - Toggle mouse look
- F1 - Toggle debug mode
- Third-Person Camera: Follows player with configurable offset and occlusion
- First-Person Camera: Direct view from player's perspective
- Smooth camera transitions
- Occlusion detection (third-person)
- Adjustable far plane with UP/DOWN arrows
- Zombie AI with states: Idle, Chase, Attack, HitReact, Dead
- Health and damage system
- Target tracking
- Animation state management
- R3D rendering engine with bloom, SSGI, SSAO
- Dynamic lighting with shadows
- Model loading (GLB/GLTF formats)
- Animation support
- Debug visualization (physics capsules, raycasts, camera frustum)
- Language: Object Pascal (Free Pascal)
- Graphics: Raylib + R3D rendering engine
- Physics: Kraft physics engine
- Models: GLB/GLTF format support
- Animations: Skeleton animation system
Adjust game parameters in the code:
PLAYER_SPEED- Normal movement speedPLAYER_RUN_SPEED- Sprint speedCAMERA_OFFSET_HEIGHT- Camera height above player- Enemy stats in
Zombie.SetStats()
| Key | Action |
|---|---|
| W/A/S/D | Movement |
| SPACE | Jump |
| Left Mouse Button | Shoot |
| C | Camera mode switch |
| M | Mouse look toggle |
| F1 | Debug overlay toggle |
| X | Toggle X-ray mode |
| UP/DOWN | Adjust far plane |
| 1/2/0 | Toggle layer visibility |
- Weapon attachment positioning may need adjustment per model
- Animation names are hardcoded and may need updating for different models
- Physics slop values may need tuning for different scales
Built with โค๏ธ using Pascal and Raylib
