Third Person shooter

Third Person Shooter

Author: Abdulkader Safi

Position: Software Engineer

Read Time: 1 min read

A third-person shooter movement system built with Bevy 0.17, Rapier physics, and TrenchBroom level support.

Screenshot

Features

  • Third-person camera with mouse orbit controls
  • Character movement with walking, sprinting, and jumping
  • TrenchBroom map loading with automatic collision generation
  • Rapier 3D physics with debug rendering

Controls

Key Action
WASD Move (relative to camera)
Shift Sprint
Space Jump
Mouse Orbit camera
Escape Release cursor
Left Click Recapture cursor

Project Structure

src/
├── main.rs                 # App entry, plugin registration, scene setup
├── constants.rs            # Movement speeds, physics values
├── components/
│   ├── mod.rs
│   ├── player.rs           # Player, PlayerMovement, Grounded
│   ├── camera.rs           # ThirdPersonCamera, CameraOrbit, CameraTarget
│   └── movement.rs         # MovementInput
└── plugins/
    ├── mod.rs
    ├── player.rs           # PlayerPlugin - character controller
    ├── camera.rs           # ThirdPersonCameraPlugin - orbit camera
    └── input.rs            # InputPlugin - movement input handling

assets/
└── unnamed.map             # TrenchBroom level file

Running

cargo run

Level Editing

Maps are created using TrenchBroom and exported in Quake 2 (Valve) format. The game automatically loads .map files from the assets folder and generates physics colliders from the mesh geometry.

Dependencies

© Abdulkader Safi - SITEMAP - Privacy Policy