A Multiplayer Online Battle Arena game, focusing on the following values:
- Being balanced (no hard-counter interactions)
- Having brute-force anticheat
- Having relatively simple but unique characters
- Playing like a twin-stick top-down shooter
- Looking hand-drawn but also 3D-ish
- Being easy to learn but hard to master
Tested on Windows, Linux and OSX. Not in a very playable state, so no realeases yet.
Run the game:
cargo run --bin game --release
Run the server:
cargo run --bin server --release
You can change the server's IP in src/bin/game.rs:~211
On Linux, you need to additionally install libudev-dev
.
- Add healing, from attacks
- Bullets only hit people once
- Non-piercing bullets need to be deleted once they hit
- Bullet hit-radius depends on character
- Temporary health bar
- Bullet collisions with walls
- Fix (delete) bullet ID thingy
- Player collisions with walls
- Might need to increase the size of the network packet reception buffers.
- very rough UI
- Health bar and count
- Secondary attack bar and count
- Implement dash mechanic
- Client sends dash info
- Server cooks
- Client cooperates
- Design some characters
- Implement first 3 characters
- Healer
- Primary (single shot)
- Dash (short dash)
- Secondary (healing aura...?)
- Sniper
- Primary (single shot)
- Dash (semi-long dash)
- Secondary (wall placement)
- Assassin
- Primary (sword, splash)
- Dash (long dash)
- Secondary (position revert)
- Healer
- Correctly update info for each player
- Extrapolation (clientside)
- Gameobjects
- Players
- Fix getting stuck inside walls (push out)
- Fix hp overheal (implement a heal function or sum idk)
- Balance changes
- Very rough art
- Character top-down views
- Wall sprites
- Bullets
- Decent map
- Clean up code x2
- Hunt for more vulnerabilities
- Fix vulnerability (if client sends big packet, server crashes)
- If client sends incorrect packet, server crashes
- Improve camera
- Animations
- Tie together the game. (Menu, gamemodes, matchmaking server, etc)
- Allow a quick-play mode for developer use only
- Canvas flipping
- Anticheat still doesnt work since a client can report false packet intervals. The server needs to calculate the intervals the client is sending at as an average. This will be ignored for the sake of working on the rest of the game.
- Figure out port and firewall shenanigans
- No issues on Windows and OSX
- Pop-up for Linux players who might need to manually make firewall rules.
- Allow use of different ports
- clientside
- serverside
- Further network-related de-jittering measures than simple extrapolation.
- Map editor
- Offload work to client if possible
- Fullcreen issue on Linux (can't exit fullscreen) (Macroquad issue)
- Icon doesn't show up on Linux (Macroquad issue)