/thetawave

A physics based, space shooter game made with Rust and the Bevy engine.

Primary LanguageRustMIT LicenseMIT

Demo Build Discord License: MIT

What is Thetawave?

Thetawave is a physics-based space shooter with procedurally generated levels, diverse foes, and distinct characters. As an open-source project, it invites collaboration and creativity from the community, allowing enthusiasts and developers to contribute to its evolution. This aspect of open-source development adds a unique dimension to Thetawave, as it grows and diversifies with inputs from its user base. Engaging in both gameplay and development, players and developers alike can experience the thrill of space combat while shaping the game's future.

Gameplay

Controls

Action Keyboard 🖮 Controller 🎮
🕹️ Movement 'WASD' / Arrow Keys D-Pad
🔫 Fire Weapon Left Click / Spacebar Right Bumper (RB)
💥 Special Ability Right Click / Shift Left Bumper (LB)

How to Play

Objective: Protect the planet from invading enemies!

Game Over Conditions:

  • When all players' health bars are depleted from damage.
  • When the blue defense bar is depleted (occurs when enemies reach the bottom of the arena).

Power-Ups:

Wrenches restore health.
Gems increase fire rate.
Armor negates damage.
Energy orbs give additional projectiles.

Special Mechanics:

  • Letting cargo hauler mobs reach the bottom of the arena heals the defense bar.

Building and Playing Locally

While you can play in the browser (works best on Google Chrome...for now), you can play offline in a few ways. The simplest way to play a native build of the game offline is to download the latest Github release for Windows or Linux. Then run the executable.

To run the game after compiling locally, do the following.

  1. Clone the repository git clone https://github.com/thetawavegame/thetawave.git

  2. Download our assets.

    One way is to download a recent Linux .tar.gz release, and extract the assets/ directory in the tarball into your local assets/ directory. We do so in the following Bash command. In Windows, just copy the files manually. Replace the link with that of a build from the latest release, especially if you are running off of the main branch.

    curl -Ls https://github.com/thetawavegame/thetawave/releases/download/v0.2.0/thetawave-0.2.0-x86_64-unknown-linux-gnu.tar.gz  \
        | tar -xz -C assets/ --strip-components=2 --wildcards "*/assets/*"

    If when running the main branch you still have missing assets, it means that we are using assets that are not yet published in a release. In that case, you might checkout the latest tag. Find it by running git tag and then execute, for example, git checkout v0.2.0.

  3. Compile/run using Cargo as follows.

    cargo run --release
  4. Enable the install features you want. Our install features are as follows.

    • cli - Enables start up parameters on the built thetawave executable.
    • storage - Enables writing user stats to a local SQLite database.
    • arcade - Enables arcade-specific features, namely through serial communication to a microcontroller.

    One can run using install features as follows.

    cargo run --release --features "storage,cli,arcade"

How to Contribute

We welcome contributions from all community members. Your insights and improvements help us grow.

For complete guidelines on contributing, please see our Contributing Guide. It includes all the necessary information on how you can participate in shaping Thetawave.

Team

@cdsupina 💡
Role: Creative Director
Contribution: Visionary leadership and creative oversight.
@varoonp123 💻
Role: Lead Programmer
Contribution: Architect of the game's deployment and technical features.
@LordDeatHunter 🎨
Role: Lead Artist
Contribution: Key driver of the game's visual style and artistic assets.

External Assets

🎵 Music

Joel Schuman - Original Game Soundtrack

📢 Sound Effects

Space Ultimate Megapack - Comprehensive Space Audio Collection

🎨 Art

Kadith's icons - Game Iconography

📜 Fonts

Space Madness - Font Design by Rose Frye