Mk48.io is an online multiplayer naval combat game, in which you take command of a ship and sail your way to victory. Watch out for torpedoes!
rustup
(see instructions here)rustup override set nightly-2022-08-14
)rustup target add wasm32-unknown-unknown
)trunk
(cargo install --locked trunk
, install gcc
first if it complains about missing cc
)make
commandYou may use any version of Rust that works, but only nightly-2022-08-14
is known
to be compatible.
/client
make
or, equivalently, trunk build --release
/server
make
to build and run a test serverlocalhost:8081
(or whatever port is printed in the console)If you follow the Building steps, you have a fully functioning game (could be used to host a private server). If your goal is to modify the game, you may want to read more :)
Entities (ships, weapons, aircraft, collectibles, obstacles, decoys, etc.) are defined at the bottom of
common/src/entity/_type.rs
.
Each entity type must be accompanied by a texture of the same name in the spritesheet, which comes with the
repository. If entity textures need to be changed, see instructions in the sprite_sheet_packer
directory.
Both client and server rely on our custom game engine (which is present in the engine
directory).
One notable feature of the engine is an (optional) admin interface. To build it:
/engine/js
make
localhost:8081/admin/
engine/game_server/src/auth.txt
, generated randomly by a build script, into the alert dialogMany macros are utilized by the codebase. Mk48-specific macros can be found in the macros
directory,
and game engine macros can be found in the engine/engine_macros
directory. A few notable macros are:
EntityData
for all entity types, used by both client and server)Audio
enum for client, with a variant per sound)See Contributing Wiki page.
Mk48.io is a trademark of Softbear, Inc.