AnthonyTornetta / Cosmos

A multiplayer block-based space exporation game in active development
GNU General Public License v3.0
61 stars 5 forks source link
3d bevy cosmos ecs game game-development multiplayer rust space

Cosmos

A multiplayer block-based space exploration game, written in rust using the Bevy engine.

If you're interested in playing the game, helping out, pitching ideas, or just hanging out, join our discord server! Join Cosmos's Discord server here!

Screenshots

Cosmos is a game where you can create your dream spaceship that you can pilot through space.

Build your own ship block by block and cruise through space with friends, or make have everyone build their own ship.

Fly by huge, fully-interactable, planets

Beware! In the depths of space, there's always someone that wants you dead. Watch out for pirates! They spawn in pacts and, once they see you, will hunt you mercilessly.

Compilation

To get started, install your OS dependencies here. The dependencies section is all you need to do.

This project requires the latest nightly rust to compile. To swap to nightly, run the command

rustup default nightly.

To run the client, navigate to the cosmos_client directory and run

cargo run

For the server, navigate to the cosmos_server directory and run

cargo run

For release builds, append the --release flag to the build/run commands.

Controls

There is no option to modify controls yet, so for now check out cosmos_client/src/input/inputs.rs to see a list of all controls currently implemented.

Documentation

The first time you view the cosmos documentation, make sure you have mdbook and mdbook-mermaid installed. If you don't you can install them by running the following commands:

cargo install mdbook
cargo install mdbook-mermaid

Every time you want to view the documentation, navigate to the docs/ directory. To have it update as you modify it, run mdbook serve and navigate to the URL it provides, or to just build it run mdbook build.

System ordering

If you want to view the ordering of the systems, run (on linux) cargo run --features print-schedule | dot -Tsvg > ./debug.svg for either the cosmos_client or cosmos_server projects. If the print-schedule feature is enabled, these are setup to use bevy_mod_debugdump to create graphs of the Update schedule. If you need a different schedule, you'll have to change the main.rs file for either project to specify the correct schedule. Note, you'll need graphviz for the dot cmomand to work.

Cosmos Roadmap

See the issues page for the list of current features/bugs in development.

Release 0.0.7a (In Progress)

Release 0.0.6a

Release 0.0.5a

Release 0.0.4a

Release 0.0.3a

Release 0.0.2a

Release 0.0.1a

Release 0.0.8a

Everything that will still have to be done after 0.0.7a

NPCs

Factions

NPC controlled OR player controlled NPC controlled factions store reputation of other factions + players Factions have different attributes