ProductPromotion
Logo

Rust

made by https://0x3d.site

GitHub - SoftbearStudios/mk48: Mk48.io ship combat game
Mk48.io ship combat game. Contribute to SoftbearStudios/mk48 development by creating an account on GitHub.
Visit Site

GitHub - SoftbearStudios/mk48: Mk48.io ship combat game

GitHub - SoftbearStudios/mk48: Mk48.io ship combat game

Mk48.io Game

Build

Logo

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!

Building

Tools

  1. Install rustup (see instructions here)
  2. Install Rust Nightly (rustup override set nightly-2022-08-14)
  3. Add WebAssembly target (rustup target add wasm32-unknown-unknown)
  4. Install trunk (cargo install --locked trunk, install gcc first if it complains about missing cc)
  5. Optionally, install the make command

You may use any version of Rust that works, but only nightly-2022-08-14 is known to be compatible.

Client

  1. Enter /client
  2. make or, equivalently, trunk build --release
  3. Deploy the server to host the client

Server

  1. Enter /server
  2. make to build and run a test server
  3. Navigate to localhost:8081 (or whatever port is printed in the console)

Developing

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 :)

Entity data

Entities (ships, weapons, aircraft, collectibles, obstacles, decoys, etc.) are defined at the bottom of common/src/entity/_type.rs.

Entity textures

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.

Engine

Both client and server rely on our custom game engine (which is present in the engine directory).

Admin interface (optional)

One notable feature of the engine is an (optional) admin interface. To build it:

  1. Install NodeJS 14 or higher (here)
  2. Enter /engine/js
  3. make
  4. Deploy the server to host the admin interface
  5. Go to localhost:8081/admin/
  6. Paste the contents of engine/game_server/src/auth.txt, generated randomly by a build script, into the alert dialog

Macros

Many 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:

  • Mk48 entity loader (generates EntityData for all entity types, used by both client and server)
  • Game engine audio loader (generates Audio enum for client, with a variant per sound)
  • Game engine settings (generates Javascript bindings for settings structs)
  • Game engine renderer layer (for composable rendering layers)

Contributing

See Contributing Wiki page.

Trademark

Mk48.io is a trademark of Softbear, Inc.

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory