A 3D multiplayer shooter.
Full video: vimeo.com/679751924
- Dependencies
Install Rust as per https://www.rust-lang.org/tools/install.
On Ubuntu/Debian, install:
sudo apt install libasound2-dev pkgconf
- Clone
git clone https://github.com/barnex/scathanna-3d.git
- Edit your preferences in
config.json
. In particular, chose a nickname and a server address.
cd scathanna-3d
$EDITOR config.json
{
"server": "127.0.0.1:3344", <== set host:port here
"name": "Nameless Frog", <== chose a nickname
"avatar": "hamster", <== chose frog|panda|turkey|pig|hamster|chicken|bunny
"movement_keys": "wasd", <== configure keys (arrow keys always work, too)
"mouse_sensitivity": 100,
"window_width": 1024,
"window_height": 768,
"window_resizable": false,
"fullscreen": false,
"vsync": true,
"max_fps": 200,
"msaa": 4,
"alpha_blending": true
}
- Optional: run your own game server if you like.
cargo run --release --bin scathanna_server 127.0.0.1:3344 deck
(where "deck" is the name of a map found in assets/maps
).
- Play
cargo run --release --bin scathanna
These are the most options to set in config.json
:
"server": "host:port"
game server to connect to"name": "MyName"
sets your nickname"avatar": frog|panda|turkey|pig|hamster|chicken|bunny
sets how you look
The most useful options are:
"mouse_sensitivity": 100
Set mouse sensitivity (100 = normal speed)."movement_keys": "wasd"
Choose other movement keys (up, left, down, right). Arrow keys always work regardless of this setting."vsync": false
Use this on disable vertical sync on slow hardware if your FPS counter runs below 60 FPS."msaa":4
Set anti-aliasing quality (0,1,2,4,8,...). Useful on slow hardware."fullscreen": true
Run in borderless fullscreen mode.
- Ray-traced lightmaps with indirect illumination
- Network multiplayer games (deathmatch / team deathmatch)
- Voxel-based map editor
glutin | Top-level event loop |
---|---|
gl_client | Game specific logic (draw_player , draw_effect ...) |
engine | High-level primitives (draw_model , Material , set_camera ...) |
gl_obj | Ergonomic GL types: Texture, Shader, ... (impl Drop , !Send ,...) |
gl_safe | Safe GL bindings (pub fn create_texture... ) |
gl | unsafe GL bindings (unsafe fn create_texture... ) |
This is a small personal hobby project. I may not have much time to work on issues or pull requests.