gamercade-io / gamercade_console

A Neo-Retro Fantasy Console. Make WASM-powered, networked multiplayer games.
https://gamercade.io
Apache License 2.0
165 stars 10 forks source link
fantasy-console game game-dev game-development gamedev multiplayer retrogames retrogaming rust wasm

Gamercade Console Workspace

The ultimate WASM powered Fantasy Console.

Learn more about Gamercade.

Features

Motivation

Gamercade aims to solve the "I'm a small team/solo developer and I want to make a multiplayer game" problem. In order to have a successful game, these small projects need to have multiple successes:

With Gamercade, the first 3 requirements are removed. This creates a more modern development environment which lets game developers do what they do best: Make exciting games!

Project Goals

Every feature and function of Gamercade and its related tools are built with the goals of achieving the following:

Related Projects:

Community

Currently, the community is mostly active on Discord.

FAQ

We recommend reading the FAQ on our home page.

For Developers

Follow these steps to get your first game project up and running. See the included resources for more information. Also consider making yourself comfortable with the Api Reference.

Building, Bundling, and Running A Game

Building, bundling, and running games requires a few different steps, which all depend on eachother. Below are steps on how to accomplish this using the editor through the GUI. Alternatively, a more efficient way can be done via the gccl tool. See the gamercade_cli folder for more information about how to invoke and use gccl.

Building A Game (in Rust) - How to build a .wasm file

A template example project is available at: rust_template

  1. If you don't already have it, install the wasm target by running rustup target add wasm32-unknown-unknown.
  2. Write your game logic following the spec mentioned.
  3. Build the game as a .wasm library. This can be done with cargo build --target=wasm32-unknown-unknown.
  4. The file will be output in ./target/wasm32-unknown-unknown/debug/project_name.wasm.

Bundling A Game with the Editor - How to create a .gcrom file

  1. With your game .wasm already built from the previous steps...
  2. Run the editor. This can be done from source via cargo run --bin editor
  3. On the File menu, click "Select game .wasm." Find and locate your previously exported .wasm file.
  4. On the File menu, click "Export game" and export.
  5. Save the .gcrom file in the location of your choice.

Running a Game with the Console - How to run a .gcrom file

  1. With a .gcrom available to play from the previous steps...
  2. Run the console. This can be done from source via cargo run --bin console
  3. The console will run with the Main Menu already opened. You can open and close it with the Spacebar.
  4. Press the "Select Game" button to open the file dialog.
  5. Select the .gcrom file you wish to run, and click open.
  6. Launch the game by pressing the "Launch Game" button.

Running a Game as raw .wasm

If you are not using any custom assets, or are okay with the default color palettes, you can also run the raw .wasm files directly from the console. This can be done by following the steps outlined in "Building a Game" section above, or whatever workflow your programming language of choice requires for outputting a .wasm binary.

For Contributors

This is the main workspace crate. Consider viewing the inner crates for more information about the project. Each of them has their own README.

Minimum Supported Rust Version

Gamercade runs on Stable Rust 1.66 or later.

Requirements

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.