Skip to content

Commit 75358ad

Browse files
committed
feat: add initial README with game overview, features, and build instructions
1 parent de2c3d3 commit 75358ad

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

README.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Arena Rush
2+
3+
Arena Rush is a first-person 3D arena shooter built from scratch using C++ and OpenGL, following an Entity-Component-System (ECS) architecture. The player is dropped into a closed urban arena and must survive increasingly difficult waves of enemies while managing limited health and ammunition.
4+
5+
## Features
6+
7+
### Enemies
8+
9+
The game features three distinct enemy archetypes:
10+
11+
- **Brute (Monster)**: A slow, heavily-armoured melee enemy that deals devastating close-range damage.
12+
- **Charger**: A fast, aggressive melee enemy that rushes the player at high speed.
13+
- **Drone (Flyer)**: A ranged flying enemy that orbits the player and fires projectiles from a distance.
14+
15+
### Arsenal
16+
17+
The player has access to three switchable weapons:
18+
19+
- **Automatic Rifle (AR)**: Fully automatic, high rate of fire, moderate damage.
20+
- **Hunting Rifle**: Semi-automatic, very high damage per shot, slow fire rate.
21+
- **Deagle**: Semi-automatic pistol, balanced damage and fire rate.
22+
23+
### Technical Highlights
24+
25+
- **Graphics & Rendering**: PBR and Blinn Phong shading, Bloom post-processing, HDR tone-mapping, and a blood-splatter screen effect. Full model loading with multiple meshes, materials, and textures.
26+
- **Animation**: Skeletal animation for all enemy and map models (GLTF).
27+
- **Physics**: Bullet-physics-based collision with capsule colliders and GImpact & BVH Triangles mesh colliders.
28+
- **Artificial Intelligence**: Context-steering AI for ground enemies and orbital AI for flyers.
29+
- **Gameplay Systems**: A data-driven, JSONC-configured wave progression system with 10 escalating waves.
30+
- **Audio**: Spatial audio via OpenAL (ambient, weapon fire, enemy attacks, reload).
31+
- **User Interface**: Menu system (Main, Pause, GameOver) with HUD elements including health bar, ammo counter, weapon icon, wave countdown, crosshair, and enemy health bars.
32+
- **Movement Mechanics**: Sprinting, crouching, sliding, dashing, and jumping with full collision response.
33+
34+
## Getting Started
35+
36+
This project uses `CMake` and `just` (a command runner) for its build system, with optional support for `Nix`.
37+
38+
### Build Commands (using `just`)
39+
40+
- **`just dev`**: Enter the Nix development environment (if using Nix).
41+
- **`just build`**: Configure and build the project using CMake and Ninja.
42+
- **`just run`**: Run the game using a dedicated Nvidia/AMD GPU.
43+
- **`just run-int`**: Run the game on the integrated GPU.
44+
- **`just clean`**: Remove the `build` and `bin` directories.
45+
- **`just package`**: Package the project using Nix.
46+
- **`just desktop`**: Create a desktop entry for the game.
47+
48+
Alternatively, you can manually build using CMake:
49+
50+
```sh
51+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
52+
cmake --build build
53+
./bin/ArenaRush
54+
```

0 commit comments

Comments
 (0)