Skip to content

ASU-CodeDevils/CD-GameDev

Repository files navigation

CD GameDev

The game plan

The way we'll go about developing the game, is through prototyping and iterations. We want you to also be part of the decision process, so as you start contributing to the codebase, we'd love to hear your ideas on the next features we should implement.

To keep things simple, we have opted to go with the following parameters:

  • Game will be 2D pixel art
  • The view will be a side view

As for genre, we are currently aiming for a metroidvania type game, but we might mix and match elements from multiple genres as we progress.

Tech stack

  • Language: Rust
  • Framework: Bevy (ECS)

What you'll learn

  • How to use Rust
  • How to use the Bevy framework
  • Game design
  • How to work in an ECS architecture
  • Understand the different systems required to make a game

Prerequisites

How to run the game

  1. Clone this repository
  2. Move into the project directory
  3. Run the command cargo run game

Keeping compilation times short

The repo is already setup to tell the Rust compiler to use all the optimization possibles, but this mostly helps during compilation between iterations. The first time you compile, or if there are new crates added to the project, you might have to compile everything again, or compile a big part of it, which can be lengthy. But usually, compilation between iterations should only take a few seconds on average.

A way to keep compilation times short between iterations (or just get them started ahead of time), is to use a tool like bacon. This tool allows you to set up a build/check/test/run command whenever a file is detected to have changed. This will ensure that the compilation process is completed as early as possible. To install it, simply run cargo install --locked bacon. Then you can run it by running bacon in the project root directory.

Before contributing

Please read the contribution guide.

Recommended Resources

Rust

  • The Rust book: Hands-down the best resource to get started with Rust (I recommend completing through chapter 6 in the very least).
  • Data modeling in Rust: Gives a good overview of structs and enums, the main building blocks for data modeling in Rust.
  • Rust by example: Lots of great basic examples to use as reference.

Bevy

Note

The following resource is a great starting point for any questions you might have on how to perform a specific task, or want to learn about a specific bevy feature:
taintedcoders.com's guide to Bevy

Additional Resources

Bevy and ECS

Official resources

  • The Bevy GitHub repo: As you get more comfortable with Rust and Bevy, I highly recommend looking at their open issues, which often have some great beginner friendly ones. A great way to contribute to open-source software.
  • The Bevy Discord: A great community if you need any help on any Bevy related topics. Also has some great examples and showcase of what Bevy can do in their Showcase channel.
  • Bevy's official examples: One-stop shop for bevy code examples.

Unofficial resources

Games made in Bevy

Learning Rust

Unofficial resources

About

A game made in Rust.

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •  

Languages