Skip to content

ucsd-cse125-sp23/group-5

Repository files navigation


As the Wind Blows 💨

Project for CSE 125 Spring 2023, Group 5
Homepage »

As the Wind Blows is a 3D multiplayer game, created with Rust, WGPU, and a touch of love. We built the game engine from scratch, providing a fresh gameplay experience accompanied by a visually appealing art style. Set in a world of floating sky islands, this immersive battle game invites you and your friends to enjoy together. Come and discover the charming universe of As the Wind Blows!

cover

Getting Started

To get started on contributing to the project, follow the steps below.

Prerequisites

  • Rust (install using rustup)
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Building

  1. Clone the repo
    git clone https://github.com/ucsd-cse125-sp23/group-5.git
  2. Build the project
    cargo build
  3. Run the server and client(s)
    1. In debug mode(running locally)
    cargo run --features debug-addr --release --bin server # start the server
    cargo run --features debug-addr --release --bin client # start a client
    1. In debug mode(running on the local machines)
    cargo run --features debug-remote --release --bin server # start the server
    cargo run --features debug-remote --release --bin client # start a client
    1. In production mode(running on the demo machines)
     cargo run --features prod --release --bin server # start the server
     cargo run --features prod --release --bin client # start a client

Testing

All the unit tests are attached in the src directories in each file with the code that they’re testing. The convention is to create a module named tests in each file to contain the test functions and to annotate the module with cfg(test).

  1. Run all unit tests
    cargo test
  2. Run tests specific to a crate
    cargo test -p [client|server|common]
  3. Run tests specific to a module
    cargo test -p [client|server|common] -- [module_name]

Documentation

Documentation is generated using cargo doc. The documentation is generated in the target/doc directory.

  1. Generate documentation and open it in a browser
    cargo doc --open

Project Structure

This project follows a monorepo architecture, where the client, server, and common libraries reside in a single repository. There are 3 crates in this project: client, server, and common.

  • client: This folder contains the code and resources for the game client. The client is responsible for rendering the game, handling user input, and communicating with the server.
  • server: This folder contains the code and resources for the game server. The server is responsible for managing game state, handling client connections, and processing game events.
  • common: This folder houses the shared Rust library that contains code and resources used by both the client and server. This can include shared data structures and and utility functions.

License

Distributed under the MIT License. See LICENSE.txt for more information.

Team

  • Yunxiang Chi
  • Esa Hammado
  • Binghong Li
  • Xiyan Shao
  • Alan Wang
  • Shuhua Xie
  • Lingye Zhuang

About

As the Wind Blows: CSE 125 Spring 2023 Group 5 Project, a Multiplayer, 3D Game

Resources

Stars

Watchers

Forks

Releases

No releases published