Skip to content

A twin-stick Multiplayer Online Battle Arena shooter currently in development.

License

Notifications You must be signed in to change notification settings

OrnitOnGithub/moba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unnamed MOBA

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

Compile & run

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

Dependencies

On Linux, you need to additionally install libudev-dev.

TODO

Immediate

  • 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)
  • Correctly update info for each player
  • Extrapolation (clientside)
    • Gameobjects
    • Players

Get ready for playtesting

  • 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

Irrelevant now, do after playtesting

  • 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

Issues that won't be solved

  • Fullcreen issue on Linux (can't exit fullscreen) (Macroquad issue)
  • Icon doesn't show up on Linux (Macroquad issue)

About

A twin-stick Multiplayer Online Battle Arena shooter currently in development.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published