https://github.com/ambientrun/afps
A moddable FPS game written with the Ambient engine
https://github.com/ambientrun/afps
Last synced: 10 months ago
JSON representation
A moddable FPS game written with the Ambient engine
- Host: GitHub
- URL: https://github.com/ambientrun/afps
- Owner: AmbientRun
- Archived: true
- Created: 2023-06-27T12:55:02.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-28T16:04:44.000Z (almost 3 years ago)
- Last Synced: 2025-02-26T06:33:06.584Z (over 1 year ago)
- Language: Rust
- Homepage:
- Size: 134 MB
- Stars: 6
- Watchers: 3
- Forks: 3
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Deprecated
This game has been moved to [the Ambient repository](https://github.com/AmbientRun/Ambient/tree/main/guest/rust/packages/games/afps).
---
# AFPS Mods
AFPS is a moddable FPS game written with the Ambient engine.
## Run the game
You need to install Ambient first to run it.
## Mod
Different from most Ambient projects, this FPS game is organised with different mods.
The `Cargo.toml` includes several `bins` in orders. You can try to uncomment them group by group and run `ambient run --clean-build` to see how these mods are put up together.
> If it's your first time to run, just call `ambient run` without `--clean-build`.
```toml
# Group 1: show the UI
# This include the aiming cross in the middle of the screen
# Use TAB key to toggle the scoreboard
# The "Rule" mod provides the calculation for player's score/health, etc.
# It's also the foundation of the future animation mod
# When the player health changes, "Hit" or "Death" animation will be triggered
[[bin]]
name = "fpsui_client"
path = "src/fpsui/client.rs"
required-features = ["client"]
[[bin]]
name = "fpsui_server"
path = "src/fpsui/server.rs"
required-features = ["server"]
[[bin]]
name = "fpsrule_server"
path = "src/fpsrule/server.rs"
required-features = ["server"]
# Group 2: show the scene
# For now, I only put a demo quad there, you can edit this as the game scene
[[bin]]
name = "scene_server"
path = "src/scene/server.rs"
required-features = ["server"]
# Group 3: show the players' model
# This will show a T-pose player and you cannot move
[[bin]]
name = "fpsmodel_client"
path = "src/fpsmodel/client.rs"
required-features = ["client"]
[[bin]]
name = "fpsmodel_server"
path = "src/fpsmodel/server.rs"
required-features = ["server"]
# Group 4: add the movement system
# Now you can move your model with mouse/keyboard
[[bin]]
name = "fpsmovement_client"
path = "src/fpsmovement/client.rs"
required-features = ["client"]
[[bin]]
name = "fpsmovement_server"
path = "src/fpsmovement/server.rs"
required-features = ["server"]
# Group 5: Animation
[[bin]]
name = "fpsanim_server"
path = "src/fpsanim/server.rs"
required-features = ["server"]
# Group 6: The audio system
[[bin]]
name = "fpsaudio_client"
path = "src/fpsaudio/client.rs"
required-features = ["client"]
[[bin]]
name = "fpsaudio_server"
path = "src/fpsaudio/server.rs"
required-features = ["server"]
# Group 7: Optional and unfinished Zombie system
# The Zombie rules and health/hit anim is not included yet
# They simply spawan and chase the nearest player
# [[bin]]
# name = "zombie_server"
# path = "src/zombie/server.rs"
# required-features = ["server"]
# [[bin]]
# name = "zombie_client"
# path = "src/zombie/client.rs"
# required-features = ["client"]
```