+ + ascending_graphics + +
+ + + + + + + + + + + + + + + + + + + + + +A graphical rendering library for 2D, using wgpu and winit.
+diff --git a/.github/workflows/check-archives.yml b/.github/workflows/check-archives.yml deleted file mode 100644 index d797e4e8..00000000 --- a/.github/workflows/check-archives.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: Check Archive Status - -on: - schedule: - - cron: "0 0 * * THU" # Run weekly on Thursdays - workflow_dispatch: # Allow manual trigger - -jobs: - check-archives: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 # Fetch all history for all branches and tags - - # Check if there's already an open PR - - name: Check for existing PR - id: check_pr - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - pr_count=$(gh pr list --json number --search "is:open is:pr author:app/github-actions head:update-archive-status" --jq length) - echo "has_open_pr=$([[ "$pr_count" -gt 0 ]] && echo 'true' || echo 'false')" >> "$GITHUB_OUTPUT" - - - name: Set up Python - if: steps.check_pr.outputs.has_open_pr != 'true' - uses: actions/setup-python@v4 - with: - python-version: "3.x" - - - name: Install dependencies - if: steps.check_pr.outputs.has_open_pr != 'true' - run: | - python -m pip install --upgrade pip - pip install requests pytoml - gh --version || true - - - name: Check archive status - if: steps.check_pr.outputs.has_open_pr != 'true' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: python .github/workflows/check_archives.py - - - name: Create Pull Request - if: steps.check_pr.outputs.has_open_pr != 'true' - uses: peter-evans/create-pull-request@v5 - with: - commit-message: Update repository archive status - title: Update repository archive status - body: | - This PR updates the archive status of GitHub repositories based on their current state. - - This is an automated update triggered by the weekly archive status check. - branch: update-archive-status - base: master # Specify the base branch - delete-branch: true diff --git a/.github/workflows/check_archives.py b/.github/workflows/check_archives.py deleted file mode 100644 index 703e8a39..00000000 --- a/.github/workflows/check_archives.py +++ /dev/null @@ -1,138 +0,0 @@ -import os -import requests -import pytoml -import json -from pathlib import Path - - -def load_toml(file_path): - with open(file_path, "r", encoding="utf-8") as f: - return pytoml.load(f) - - -def save_toml(file_path, data): - with open(file_path, "w", encoding="utf-8") as f: - pytoml.dump(data, f) - - -def check_github_archive_status(repo_full_name, token): - headers = { - "Authorization": f"token {token}", - "Accept": "application/vnd.github.v3+json", - } - url = f"https://api.github.com/repos/{repo_full_name}" - response = requests.get(url, headers=headers) - - if response.status_code == 200: - return response.json().get("archived", False) - return None - - -def get_crates_io_repository(crate_name): - headers = {"User-Agent": "arewegameyet (gamedev-wg@rust-lang.org)"} - url = f"https://crates.io/api/v1/crates/{crate_name}" - try: - response = requests.get(url, headers=headers) - response.raise_for_status() # Raise an error for bad status codes - - data = response.json() - if not data or "crate" not in data: - print(f"Warning: Invalid response from crates.io for {crate_name}") - return None - - repo_url = data["crate"].get("repository") - if not repo_url: - print(f"Warning: No repository URL found for crate {crate_name}") - return None - - if "github.com" not in repo_url: - print(f"Info: Non-GitHub repository for crate {crate_name}: {repo_url}") - return None - - parts = repo_url.split("github.com/") - if len(parts) != 2: - print(f"Warning: Malformed GitHub URL for crate {crate_name}: {repo_url}") - return None - - return parts[1].rstrip("/") - except requests.exceptions.RequestException as e: - print(f"Error fetching crate {crate_name} from crates.io: {e}") - return None - except (KeyError, ValueError, AttributeError) as e: - print(f"Error parsing response for crate {crate_name}: {e}") - return None - - -def extract_github_repo(item): - if not item or not isinstance(item, dict): - print(f"Warning: Invalid item format: {item}") - return None - - if item.get("source") == "github": - return item.get("name") - elif item.get("source") == "crates": - name = item.get("name") - if not name: - print(f"Warning: No name found for crates.io item: {item}") - return None - return get_crates_io_repository(name) - - repo_url = item.get("repository_url", "") - if not repo_url: - return None - - if "github.com" in repo_url: - parts = repo_url.split("github.com/") - if len(parts) == 2: - return parts[1].rstrip("/") - - return None - - -def main(): - token = os.environ.get("GITHUB_TOKEN") - if not token: - print("No GitHub token found") - return - - content_dir = Path("content") - changes_made = False - - for data_file in content_dir.rglob("data.toml"): - # Skip the contributors data file - if "contributors/data.toml" in str(data_file): - print(f"Skipping contributors file: {data_file}") - continue - - print(f"Processing {data_file}") - data = load_toml(data_file) - file_changes_made = False - - for item in data.get("items", []): - # Skip if already archived - if item.get("archived", False): - print(f"Skipping already archived item: {item.get('name')}") - continue - - repo = extract_github_repo(item) - if not repo: - continue - - print(f"Checking {repo}") - is_archived = check_github_archive_status(repo, token) - - if is_archived is True: # Only update if GitHub says it's archived - item["archived"] = True - file_changes_made = True - changes_made = True - print(f"Marked {repo} as archived") - - if file_changes_made: - save_toml(data_file, data) - - if not changes_made: - print("No changes were needed to archive status") - - -if __name__ == "__main__": - main() diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 16091e60..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Zola - -on: - push: - pull_request: - schedule: - - cron: "0 0 * * MON" # Weekly, Mondays at 00:00 - -jobs: - zola: - runs-on: ubuntu-latest - env: - BASE_URL: https://github.com/getzola/zola/releases/download - VERS: v0.20.0 - ARCH: x86_64-unknown-linux-gnu - # https://github.com/crazy-max/ghaction-github-pages/issues/1#issuecomment-623202206 - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - uses: actions/checkout@v3 - - name: Install Zola - run: curl -L ${BASE_URL}/${VERS}/zola-${VERS}-${ARCH}.tar.gz | tar -xz - - run: ./zola --version - - run: ./zola build - - uses: actions/upload-artifact@v4 - with: - path: public - retention-days: 10 - - name: Deploy - if: github.ref == 'refs/heads/master' - uses: crazy-max/ghaction-github-pages@v3 - with: - build_dir: public - - fmt: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - run: pip3 install pytoml - - run: find . -name data.toml | xargs ./sort_data.py - - run: if [[ `git status --porcelain` ]]; then git diff && exit 1; fi diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 1173bde0..00000000 --- a/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -# Generated by Cargo -# will have compiled files and executables -/target - -# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries -# More information here http://doc.crates.io/guide.html#cargotoml-vs-cargolock -Cargo.lock - -public -.DS_Store diff --git a/static/.nojekyll b/.nojekyll similarity index 100% rename from static/.nojekyll rename to .nojekyll diff --git a/404.html b/404.html new file mode 100644 index 00000000..f8414f0e --- /dev/null +++ b/404.html @@ -0,0 +1,3 @@ + +
Click here to be redirected.
diff --git a/categories/3dformatloaders/index.html b/categories/3dformatloaders/index.html new file mode 100644 index 00000000..85e95e68 --- /dev/null +++ b/categories/3dformatloaders/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/3drendering/index.html b/categories/3drendering/index.html new file mode 100644 index 00000000..af5207d1 --- /dev/null +++ b/categories/3drendering/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/ai/index.html b/categories/ai/index.html new file mode 100644 index 00000000..1619dd62 --- /dev/null +++ b/categories/ai/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/animation/index.html b/categories/animation/index.html new file mode 100644 index 00000000..7ccabf18 --- /dev/null +++ b/categories/animation/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/audio/index.html b/categories/audio/index.html new file mode 100644 index 00000000..196b6fb2 --- /dev/null +++ b/categories/audio/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/ecs/index.html b/categories/ecs/index.html new file mode 100644 index 00000000..d916a52a --- /dev/null +++ b/categories/ecs/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/engines/index.html b/categories/engines/index.html new file mode 100644 index 00000000..c7c998d3 --- /dev/null +++ b/categories/engines/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/input/index.html b/categories/input/index.html new file mode 100644 index 00000000..690e1864 --- /dev/null +++ b/categories/input/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/math/index.html b/categories/math/index.html new file mode 100644 index 00000000..62ee92e7 --- /dev/null +++ b/categories/math/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/mesh/index.html b/categories/mesh/index.html new file mode 100644 index 00000000..e934b287 --- /dev/null +++ b/categories/mesh/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/networking/index.html b/categories/networking/index.html new file mode 100644 index 00000000..aaf54190 --- /dev/null +++ b/categories/networking/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/physics/index.html b/categories/physics/index.html new file mode 100644 index 00000000..6b61274a --- /dev/null +++ b/categories/physics/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/scripting/index.html b/categories/scripting/index.html new file mode 100644 index 00000000..705b81c7 --- /dev/null +++ b/categories/scripting/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/shader/index.html b/categories/shader/index.html new file mode 100644 index 00000000..165ff4bb --- /dev/null +++ b/categories/shader/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/textrendering/index.html b/categories/textrendering/index.html new file mode 100644 index 00000000..203089d4 --- /dev/null +++ b/categories/textrendering/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/tools/index.html b/categories/tools/index.html new file mode 100644 index 00000000..f9ba55f9 --- /dev/null +++ b/categories/tools/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/ui/index.html b/categories/ui/index.html new file mode 100644 index 00000000..0bb07e3f --- /dev/null +++ b/categories/ui/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/vr/index.html b/categories/vr/index.html new file mode 100644 index 00000000..8ae1b7e7 --- /dev/null +++ b/categories/vr/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/categories/windowing/index.html b/categories/windowing/index.html new file mode 100644 index 00000000..751b70ad --- /dev/null +++ b/categories/windowing/index.html @@ -0,0 +1,6 @@ + + + + +Click here to be redirected.
diff --git a/config.toml b/config.toml deleted file mode 100644 index 1e320523..00000000 --- a/config.toml +++ /dev/null @@ -1,20 +0,0 @@ -title = "Are we game yet?" -description = "A guide to the Rust game development ecosystem." - -# The URL the site will be built for -base_url = "https://arewegameyet.rs/" - -# Whether to automatically compile all Sass files in the sass directory -compile_sass = true - -# Configure the Markdown rendering -[markdown] -# Whether to do syntax highlighting -highlight_code = true -highlight_theme = "base16-ocean-dark" - -# Whether to build a search index to be used later on by a JavaScript library -build_search_index = true - -[extra] -# Put all your custom variables here diff --git a/content/contributors/data.toml b/content/contributors/data.toml deleted file mode 100644 index a5576ccd..00000000 --- a/content/contributors/data.toml +++ /dev/null @@ -1,32 +0,0 @@ -[[contributors]] -name = "doppioslash" -links = { twitter = "doppioslash", github = "doppioslash", home = "http://doppioslash.com" } -about = "Graphics Programmer" -description = "Writes on shadercat.com about Physically Based Shading and Rendering with Rust and Unity." - -[[contributors]] -name = "nxnfufunezn" -links = { twitter = "nxnfufunezn", github = "nxnfufunezn" } -about = "Backend developer and FP enthusiast" - -[[contributors]] -name = "bwasty" -links = { github = "bwasty" } -about = "Software Engineer" - -[[contributors]] -name = "doomy" -links = { twitter = "piedoomy", github = "piedoomy", home = "https://u9h.design" } -about = "Designer & Rustacean" -description = "Working with the Amethyst Engine team." - -[[contributors]] -name = "ozkriff" -links = { twitter = "ozkriff", github = "ozkriff", home = "https://ozkriff.games" } -about = "System programmer, hobby game developer" -description = "Writes turn-based games in Rust (Zemeroth atm), runs the @rust_gamedev twitter account." - -[[contributors]] -name = "17cupsofcoffee" -links = { twitter = "17cupsofcoffee", github = "17cupsofcoffee", home = "https://www.seventeencups.net/" } -about = "Software engineer, hobbyist game dev" diff --git a/content/ecosystem/2drendering.md b/content/ecosystem/2drendering.md deleted file mode 100644 index 4d53a00a..00000000 --- a/content/ecosystem/2drendering.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "2D Rendering" -description = "Sprites, vectors, splines, hex grids and more" -aliases = ["/categories/2drendering"] -+++ diff --git a/content/ecosystem/3dformatloaders.md b/content/ecosystem/3dformatloaders.md deleted file mode 100644 index d87262cc..00000000 --- a/content/ecosystem/3dformatloaders.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "3D Format Loaders" -description = "FBX, OBJ and more" -aliases = ["/categories/3dformatloaders"] -+++ diff --git a/content/ecosystem/3drendering.md b/content/ecosystem/3drendering.md deleted file mode 100644 index 50d8cba2..00000000 --- a/content/ecosystem/3drendering.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "3D Rendering" -description = "Graphics APIs, wrappers for and backends to Vulkan and OpenGL, and more" -aliases = ["/categories/3drendering"] -+++ diff --git a/content/ecosystem/_index.md b/content/ecosystem/_index.md deleted file mode 100644 index 9c14da0f..00000000 --- a/content/ecosystem/_index.md +++ /dev/null @@ -1,10 +0,0 @@ -+++ -title = "Ecosystem" -description = "Libraries and tools to help you build games in Rust." -page_template = "categories/page.html" - -[extra] -icon = "cubes" -single = "crate" -plural = "crates" -+++ diff --git a/content/ecosystem/ai.md b/content/ecosystem/ai.md deleted file mode 100644 index 12dcf4f8..00000000 --- a/content/ecosystem/ai.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "AI" -description = "AI libraries, steering, behaviour trees, planners, etc." -aliases = ["/categories/ai"] -+++ diff --git a/content/ecosystem/animation.md b/content/ecosystem/animation.md deleted file mode 100644 index c9521511..00000000 --- a/content/ecosystem/animation.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Animation" -description = "Rigging, tweening, anything related to animation." -aliases = ["/categories/animation"] -+++ diff --git a/content/ecosystem/audio.md b/content/ecosystem/audio.md deleted file mode 100644 index e3c1e3bc..00000000 --- a/content/ecosystem/audio.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Audio" -description = "Wrappers for FMOD, OpenAL, MIDI and similar, and higher level APIs." -aliases = ["/categories/audio"] -+++ diff --git a/content/ecosystem/ecs.md b/content/ecosystem/ecs.md deleted file mode 100644 index a29035c0..00000000 --- a/content/ecosystem/ecs.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "ECS" -description = "Entity Component System implementations" -aliases = ["/categories/ecs"] -+++ diff --git a/content/ecosystem/engines.md b/content/ecosystem/engines.md deleted file mode 100644 index a74337f3..00000000 --- a/content/ecosystem/engines.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Game Engines" -description = "2D and 3D engines and frameworks" -aliases = ["/categories/engines"] -+++ diff --git a/content/ecosystem/input.md b/content/ecosystem/input.md deleted file mode 100644 index c41ef1bf..00000000 --- a/content/ecosystem/input.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Input" -description = "Libraries to handle controllers, gamepads, keyboards, etc." -aliases = ["/categories/input"] -+++ diff --git a/content/ecosystem/math.md b/content/ecosystem/math.md deleted file mode 100644 index 44f92ae6..00000000 --- a/content/ecosystem/math.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Math" -description = "Linear algebra libraries, quaternions, color conversion and more" -aliases = ["/categories/math"] -+++ diff --git a/content/ecosystem/mesh.md b/content/ecosystem/mesh.md deleted file mode 100644 index 881db040..00000000 --- a/content/ecosystem/mesh.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Mesh Tools" -description = "Tools for optimising and processing meshes." -aliases = ["/categories/mesh"] -+++ diff --git a/content/ecosystem/networking.md b/content/ecosystem/networking.md deleted file mode 100644 index cfc4f4ba..00000000 --- a/content/ecosystem/networking.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Networking" -description = "Multiplayer, Protocols, and more" -aliases = ["/categories/networking"] -+++ diff --git a/content/ecosystem/physics.md b/content/ecosystem/physics.md deleted file mode 100644 index f659b17b..00000000 --- a/content/ecosystem/physics.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Physics" -description = "2D and 3D physics engines, collision detection libraries" -aliases = ["/categories/physics"] -+++ diff --git a/content/ecosystem/scripting.md b/content/ecosystem/scripting.md deleted file mode 100644 index e8d9d3cb..00000000 --- a/content/ecosystem/scripting.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Scripting Languages" -description = "Scripting languages embeddable in a Rust game" -aliases = ["/categories/scripting"] -+++ diff --git a/content/ecosystem/shader.md b/content/ecosystem/shader.md deleted file mode 100644 index b2c78447..00000000 --- a/content/ecosystem/shader.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Shaders" -description = "Languages and tools for writing, compiling, and using shaders." -aliases = ["/categories/shader"] -+++ diff --git a/content/ecosystem/textrendering.md b/content/ecosystem/textrendering.md deleted file mode 100644 index 79db865a..00000000 --- a/content/ecosystem/textrendering.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Text Rendering" -description = "Libraries and tools for loading and rendering fonts" -aliases = ["/categories/textrendering"] -+++ diff --git a/content/ecosystem/tools.md b/content/ecosystem/tools.md deleted file mode 100644 index 68b5f394..00000000 --- a/content/ecosystem/tools.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Tools" -description = "Tools & other game-dev related libraries" -aliases = ["/categories/tools"] -+++ diff --git a/content/ecosystem/ui.md b/content/ecosystem/ui.md deleted file mode 100644 index 01e757ee..00000000 --- a/content/ecosystem/ui.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "UI" -description = "Immediate mode UI libraries and more" -aliases = ["/categories/ui"] -+++ diff --git a/content/ecosystem/vr.md b/content/ecosystem/vr.md deleted file mode 100644 index 1b5181d7..00000000 --- a/content/ecosystem/vr.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "VR" -description = "VR engines and libraries" -aliases = ["/categories/vr"] -+++ diff --git a/content/ecosystem/windowing.md b/content/ecosystem/windowing.md deleted file mode 100644 index 21297b18..00000000 --- a/content/ecosystem/windowing.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Windowing" -description = "Windowing and Context Creation crates" -aliases = ["/categories/windowing"] -+++ diff --git a/content/games/_index.md b/content/games/_index.md deleted file mode 100644 index adc53e4a..00000000 --- a/content/games/_index.md +++ /dev/null @@ -1,11 +0,0 @@ -+++ -title = "Games" -description = "Games that have been built by the Rust community." -page_template = "categories/page.html" - -[extra] -icon = "game" -single = "game" -plural = "games" -columns = "four" -+++ diff --git a/content/games/action.md b/content/games/action.md deleted file mode 100644 index 9e94de56..00000000 --- a/content/games/action.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Action" -description = "Games that demand co-ordination and quick reaction-times" -+++ diff --git a/content/games/card.md b/content/games/card.md deleted file mode 100644 index 88b08f40..00000000 --- a/content/games/card.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Card" -description = "Games inspired by tabletop card games" -+++ diff --git a/content/games/fps.md b/content/games/fps.md deleted file mode 100644 index 1547b857..00000000 --- a/content/games/fps.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "FPS" -description = "Shooting games played from a first-person perspective" -+++ diff --git a/content/games/open-world.md b/content/games/open-world.md deleted file mode 100644 index 46698768..00000000 --- a/content/games/open-world.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Open World" -description = "Games where you explore a large open world" -+++ diff --git a/content/games/other.md b/content/games/other.md deleted file mode 100644 index 410fad86..00000000 --- a/content/games/other.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Other" -description = "Games that defy categorization" -+++ diff --git a/content/games/platformer.md b/content/games/platformer.md deleted file mode 100644 index 45a56024..00000000 --- a/content/games/platformer.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Platformer" -description = "Games where you jump and climb your way past obstacles" -+++ diff --git a/content/games/puzzle.md b/content/games/puzzle.md deleted file mode 100644 index 53aa4635..00000000 --- a/content/games/puzzle.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Puzzle" -description = "Games to test your brain" -+++ diff --git a/content/games/racing.md b/content/games/racing.md deleted file mode 100644 index c5a6c25d..00000000 --- a/content/games/racing.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Racing" -description = "Games where you have to be the fastest to win" -+++ diff --git a/content/games/released.md b/content/games/released.md deleted file mode 100644 index 1f15527a..00000000 --- a/content/games/released.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Released" -description = "Finished games that have been released" -+++ diff --git a/content/games/rpg.md b/content/games/rpg.md deleted file mode 100644 index 249a476d..00000000 --- a/content/games/rpg.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "RPG" -description = "Games where you roleplay as a character" -+++ \ No newline at end of file diff --git a/content/games/simulation.md b/content/games/simulation.md deleted file mode 100644 index af709f47..00000000 --- a/content/games/simulation.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Simulation" -description = "Games that simulate a world" -+++ diff --git a/content/games/strategy.md b/content/games/strategy.md deleted file mode 100644 index 31add39d..00000000 --- a/content/games/strategy.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Strategy" -description = "Games involving tactics and decision-making" -+++ diff --git a/content/resources/_index.md b/content/resources/_index.md deleted file mode 100644 index c68548a6..00000000 --- a/content/resources/_index.md +++ /dev/null @@ -1,10 +0,0 @@ -+++ -title = "Resources" -description = "Books, guides and videos about Rust game development." -page_template = "categories/page.html" - -[extra] -icon = "book" -single = "resource" -plural = "resources" -+++ diff --git a/content/resources/articles.md b/content/resources/articles.md deleted file mode 100644 index 08c49c80..00000000 --- a/content/resources/articles.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Articles" -description = "Articles and blog posts" -+++ diff --git a/content/resources/books.md b/content/resources/books.md deleted file mode 100644 index c51e5b4c..00000000 --- a/content/resources/books.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Books" -description = "Long-form writing about Rust and/or game development" -+++ diff --git a/content/resources/lists.md b/content/resources/lists.md deleted file mode 100644 index 1da7b2b9..00000000 --- a/content/resources/lists.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Lists" -description = "Collections of code, resources or links" -+++ diff --git a/content/resources/tutorials.md b/content/resources/tutorials.md deleted file mode 100644 index 038906ad..00000000 --- a/content/resources/tutorials.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Tutorials" -description = "Guides to help you learn" -+++ diff --git a/content/resources/videos.md b/content/resources/videos.md deleted file mode 100644 index 59233747..00000000 --- a/content/resources/videos.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "Videos" -description = "Conference talks, presentations and guides in video form" -+++ diff --git a/ecosystem/2drendering/index.html b/ecosystem/2drendering/index.html new file mode 100644 index 00000000..9b179fc9 --- /dev/null +++ b/ecosystem/2drendering/index.html @@ -0,0 +1,6022 @@ + + + + + + + + + + ++ Are we game yet? +
+ +Sprites, vectors, splines, hex grids and more
+A graphical rendering library for 2D, using wgpu and winit.
+Opinionated wrapper for `fermium`.
+Blit sprites on a buffer with a mask
+General-Purpose, Easy-to-use, Fast, and Portable graphics engine
+Line segment rasterization with pixel-perfect clipping.
+A pixel perfect 2D rendering engine
+Antialiased 2D vector drawing library
+An opinionated crate of SDL2 bindings.
+A simple and learnable gamedev library for rust
+A 2D/3D monospaced ASCII rendering engine for the terminal
+Imaging library. Provides basic image processing and encoders/decoders for common image formats.
+2D Graphics rendering on the GPU using tessellation.
+Cross-platform window context and rendering library. +
+A simple portable multimedia layer to create apps or games easily
+Rust wrapper for Nuklear 2D GUI library (github.com/vurtun/nuklear)
+A library for 2D graphics that works with multiple back-ends
+A tiny library providing a GPU-powered pixel frame buffer.
+A powerful, flexible wrapper around wgpu
+Rendering framework built on an extensible asset pipeline
+Rotate sprites using the rotsprite algorithm
+This crate provides an easy option for drawing hardware-accelerated 2D by combining Vulkan and Skia.
+2D/3D renderer - makes it simple to draw stuff across platforms (including web)
+A tiny Skia subset ported to Rust.
+Cross-platform, safe, pure-rust graphics API
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +FBX, OBJ and more
+Comprehensive Rust bindings for the Assimp library
+A parser and runtime for Blender's .blend files.
+A library for parsing COLLADA documents for mesh, skeletal and animation data
+A Rust library for loading MagicaVoxel .vox files.
+A library to load various 3D file formats into a shared, in-memory representation
+Yet another assimp alternative (obj, gltf & glb is supported). DAE, Stl and Usdz support is comming soon.
+A package for loading Wavefront .obj files
+Wavefront obj parser for Rust. It handles both 'obj' and 'mtl' formats. +
+A library for parsing .off mesh files
+Assimp bindings for rust
+A lightweight OBJ loader in the spirit of tinyobjloader
+A parser for the Wavefront .obj file format.
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Graphics APIs, wrappers for and backends to Vulkan and OpenGL, and more
+General-Purpose, Easy-to-use, Fast, and Portable graphics engine
+Cross platform, lightweight Rust graphics library
+💡 Experimental real-time global illumination renderer 🦀
+A software rendering crate that lets you write shaders with Rust
+A 2D/3D monospaced ASCII rendering engine for the terminal
+GLFW3 bindings and idiomatic wrapper for Rust.
+Elegant and safe OpenGL wrapper. + +Glium is an intermediate layer between OpenGL and your application. You still need to manually handle +the graphics pipeline, but without having to use OpenGL's old and error-prone API. + +Its objectives: + + - Be safe to use. Many aspects of OpenGL that can trigger a crash if misused are automatically handled by glium. + - Provide an API that enforces good pratices such as RAII or stateless function calls. + - Be compatible with all OpenGL versions that support shaders, providing unified API when things diverge. + - Avoid all OpenGL errors beforehand. + - Produce optimized OpenGL function calls, and allow the user to easily use modern OpenGL techniques. +
+GL on Whatever: a set of bindings to run GL (Open GL, OpenGL ES, and WebGL) anywhere, and avoid target-specific code.
+Cross-platform OpenGL context provider.
+Keep it simple, stupid, 2D and 3D graphics engine for Rust.
+Cross-platform window context and rendering library. +
+Wrapper around parts of Pixar’s OpenSubdiv
+Rendering framework built on an extensible asset pipeline
+An easy-to-use Vulkan rendering engine in the spirit of QBasic.
+2D/3D renderer - makes it simple to draw stuff across platforms (including web)
+Rust ffi bindings and idiomatic wrapper for AMD Vulkan Memory Allocator (VMA)
+Safe wrapper for the Vulkan graphics API
+Cross-platform, safe, pure-rust graphics API
+A high-performance, bindless graphics API
+gfx-rs hardware abstraction layer
+Bare metal OpenGL 4.5+ wrapper
+Stateless and type-safe graphics framework
+Easy to use, customizable, efficient 3D renderer library built on wgpu.
+Higher-level graphics abstrations based on gfx-hal
+Low-level D3D12 bindings for Rust.
+Three.js inspired 3D engine in Rust
+Simplification of core Vulkan synchronization mechanisms such as pipeline barriers and events.
+Async bindings using tokio for wgpu
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +AI libraries, steering, behaviour trees, planners, etc.
+Rusty Utility AI library
+A dependency-free chess engine library built to run anywhere.
+Generalized Rust Ant Colony Optimization
+NavMesh, NavNet, NavGrid, NavFreeGrid and NavIslands navigation system
+The core of the NPC engine, providing a generic MCTS framework.
+Pathfinding, flow, and graph algorithms
+AI behavior tree
+Steering calculations for autonomous agents
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Rigging, tweening, anything related to animation.
+A rust runtime library for ozz-animation with cross-platform deterministic.
+A small library for parameterized inbetweening
+A simple, efficient spring animation library for smooth, natural motion in Rust
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Wrappers for FMOD, OpenAL, MIDI and similar, and higher level APIs.
+A safe wrapper around Steam Audio that provides spatial audio capabilities with realistic occlusion, reverb, and HRTF effects, accounting for physical attributes and scene geometry.
+Low-level cross-platform audio I/O library in pure Rust.
+Easy Rust API to play audio using OpenAL
+A rust binding for the FMOD library
+Sound library for games.
+A wav encoding and decoding library
+A library wrapper for integrating FMOD Engine in Rust applications.
+Rust bindings with a high-level wrapper for the minimp3 C library. +
+A library for parsing and playing mod music files
+A simple portable multimedia layer to create apps or games easily
+High-level PortMidi bindings for Rust
+Reimplementation of DrPetter's 'sfxr' sound effect generator
+Rust bindings for the soloud audio engine
+Realtime procedurally generated sound effects
+High-level bindings for the official libvorbis library.
+Ogg Vorbis stream encoding and decoding powered by high-level bindings for best-in-breed C libraries
+A library for reading and writing wav files.
+Idiomatic interface for OpenAL 1.1 and extensions (including EFX)
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Entity Component System implementations
+An asyncronous and parallel entity-component system
+Bevy Engine's entity component system
+A fast and flexible entity component system library.
+Serializable entity component system for games
+Powerful entity-component-system library
+An event-driven entity component system
+Froggy is a prototype for the Component Graph System programming model. +It aims to combine the convenience of composition-style Object-Oriented Programming +with the performance close to Entity-Component Systems. +
+A fast, minimal, and ergonomic entity-component-system library
+High performance entity component system (ECS) library
+Entity Component System based on sparse sets
+Specs is an Entity-Component-System library written in Rust. +
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +2D and 3D engines and frameworks
+Open Source Client and Server 2D Game Engine.
+A refreshingly simple data-driven game engine and app framework
+General-Purpose, Easy-to-use, Fast, and Portable graphics engine
+A cross-platform open-source reimplementation of the Age of Empires (1997) engine
+AGPL licensed and opinionated game engine for pixel-art games
+An opinionated 2D game engine focused on simplicity, explicitness, and type-safety
+A simple terminal framework to draw things and manage user input
+Rust interface to the Corange game engine, written in Pure C, SDL and OpenGL by Daniel Holden. + Features include: deferred rendering, UI rendering, text rendering, multiple lights, post-processing effects, + SSAO, shadow mapping, color correction, skeletal animation, inverse kinematics, collision detection, OpenCL support, + asset management, entity management, terrain, file loaders including .dds, .wav, .bmp, .obj, .smd, 3D math. +
+A small, portable and extensible game framework.
+Pure rust OpenGL accelerated roguelike console API with native/wasm support
+MuOxi, a modern mud game engine written in Rust.
+Feature-rich, easy-to-use, 2D/3D game engine with a scene editor. Like Godot, but in Rust.
+The Godot game engine's gdnative bindings.
+A 2D/3D monospaced ASCII rendering engine for the terminal
+A lightweight game framework for making 2D games with minimum friction, inspired by Love2D.
+Unicorn Console: create quick fantasy game in Rust/Python/Lua/Rhai/Wasm !
+An engine for Vulkan in Rust, tries to implement modern graphic features. (suspended for now)
+A framework for creating incredible standalone VR experiences
+A fast and fun 2D game engine for Rust
+Lotus is a game engine with the main focus of being easy-to-use and straight forward on developing 2D games.
+Simple and easy to use graphics library +
+Create cross-platform classic RPGs in 2D and 3D with powerful built-in world editing tools.
+A simple platformer game library in Rust
+musi_lili is a retro game engine for GB styled games written in Rust. Inspired by pico8.
+A Creative Coding Framework for Rust.
+A simple portable multimedia layer to create apps or games easily
+A game engine for making beautiful games.
+The Piston game engine core libraries
+A simple game framework for 2D games in pure Rust
+A game framework based off wgpu and winit
+A CP437/ASCII terminal library and helpers to make creating roguelike games in Rust easy. Similar to libtcod, but aiming to be Rust-native.
+Learn Rust with a simple, cross-platform, 2D game engine.
+An easy-to-use Vulkan rendering engine in the spirit of QBasic.
+Prefab editor for bevy game engine. Make levels/object templates with intuitive UI
+Bindings to StereoKit: an easy-to-use Mixed Realty engine, designed for creating VR, AR, and XR experiences
+A simple 2D game framework written in Rust
+A 3D game engine with built-in editor
+Data-oriented game engine written in Rust
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ You're seeing this page because we couldn't find a template to render. +
+
+ To modify this page, create a section.html file in the templates directory or
+ install a theme.
+
+ You can find what variables are available in this template in the documentation.
+
+ Are we game yet? +
+ +Libraries to handle controllers, gamepads, keyboards, etc.
+This is just a basic Library to help with winit input.
+A powerful, flexible and ergonomic way to manage action-input keybindings for the Bevy game engine.
+A simple portable multimedia layer to create apps or games easily
+Platform-agnostic asynchronous gamepad, joystick and flighstick library
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Linear algebra libraries, quaternions, color conversion and more
+A linear algebra and mathematics library for computer graphics.
+A type-agnostic dual-quaternion math library
+Mathematics library for 3D computer graphics
+Manipulations and data types that represent 2d matrix.
+A simple and fast 3D math library for games and graphics
+Math interoperability standard types
+General-purpose linear algebra library with transformations and statically-sized or dynamically-sized matrices.
+Linear Algebra using const generics for no_std and specialization to enable SIMD.
+Convert and manage colors with a focus on correctness, flexibility and ease of use.
+A simple and type agnostic quaternion math library designed for reexporting
+Spline interpolation made easy
+A crate to do linear algebra, fast.
+Simple uniform cubic spline evaluation and inversion.
+A simple and type agnostic library for vector math designed for reexporting
+Generic 2D-3D math swiss army knife for game engines, with SIMD support and focus on convenience.
+Oxygen Quark is a maths library mainly developed for the Oxygen Engine.
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Tools for optimising and processing meshes.
+Core module for density mesh generator
+Image module for density mesh generator
+A library to evenly tile hexagons on a sphere. +
+Rust ffi bindings and idiomatic wrapper for mesh optimizer
+Wrapper around parts of Pixar’s OpenSubdiv
+Conway/Hart Polyhedron Operations
+Implements the Voronoi diagram construction as a dual of the Delaunay triangulation for a set of points and the construction of a centroidal tesselation of a Delaunay triangulation.
+Data types, collections, and algorithms for working with maps on 2D and 3D integer lattices. Commonly known as voxel data.
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Multiplayer, Protocols, and more
+Network-agnostic, high-level game networking library
+Rust wrappers for libdatachannel.
+Client-server networking library built on top of the QUIC protocol, implemented in Rust by quinn.
+High-level, rust-y bindings to the ENet library
+Powerful netcode for edict based game engines
+GGRS is a reimagination of GGPO, enabling P2P rollback networking in Rust. Rollback to the future!
+Reference implementation of netcode.io
+A simple semi-reliable UDP protocol for multiplayer games
+Server-client networking library for the Bevy game engine with modular architecture
+Painless WebRTC peer-to-peer full-mesh networking socket
+Fast and easy-to-use event-driven network library
+a cross-platform (including Wasm!) networking library built in Rust. Intended to make multiplayer game development dead-simple & lightning-fast
+A batteries included networking crate for games.
+Quilkin is a non-transparent UDP proxy specifically designed for use with large scale multiplayer dedicated game server deployments, to ensure security, access control, telemetry data, metrics and more.
+Versatile QUIC transport protocol implementation
+Server/Client network library for multiplayer games with authentication and connection management
+a Nack based reliable udp library for games and IPC
+Tools to provide serialization, multiplexing, optional reliability, and optional compression to a game's networking.
+Amethyst networking crate
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +2D and 3D physics engines, collision detection libraries
+A library for continuous 2D collision detection for game developement
+A 3D collision and physics framework for video games.
+2-dimensional physics engine in Rust. This crate is being superseded by the rapier3d crate.
+3-dimensional physics engine in Rust. This crate is being superseded by the rapier3d crate.
+High-level Rust interface for Nvidia PhysX
+2-dimensional physics engine in Rust.
+3-dimensional physics engine in Rust.
+Physics library for use with `specs`
+2-dimensional particle-based fluid dynamics in Rust.
+3-dimensional particle-based fluid dynamics in Rust.
+2 and 3-dimensional collision detection library in Rust. Will be superseded by the parry2d crate.
+2 and 3-dimensional collision detection library in Rust. Will be superseded by the parry3d crate.
+A simple 2d and 3d physics engine for bevy
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Scripting languages embeddable in a Rust game
+A rusty dynamically typed scripting language
+A type-safe scripting language
+A static, type inferred programming language for application embedding
+Zero-cost high-level wrapper for Lua
+Lisp dialect scripting and extension language
+Scripting DSL (for Dialogue Graphs, et al)
+Rust crate for calling LuaJIT from Rust
+High level bindings to Lua 5.4/5.3/5.2/5.1 (including LuaJIT) and Luau +with async/await features and support of writing native Lua modules in Rust. +
+Embeddable TCL interpreter for Rust applications
+Source code for the Mun language and runtime.
+A small extensible functional scripting language designed for concise expression with little code.
+Embedded scripting for Rust
+The Rune Language, an embeddable dynamic programming language for Rust.
+A python interpreter written in rust.
+A Rustified binding for Wren
+The SPAIK Programming Language
+Game scripting language for rapid prototyping and story logic
+Lua programming environment in Rust
+WLambda is an embeddable scripting language for Rust
+The GameLisp scripting language
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Languages and tools for writing, compiling, and using shaders.
+A crate for mucking around with piles of bytes.
+Create GLSL-compatible versions of structs with explicitly-initialized padding
+Multi-platform high-performance compute language extension for Rust.
+A Shader generation tool from TOML to GLSL written in Rust +
+Provides a mechanism to lay out data into GPU buffers ensuring WGSL's memory layout requirements are met
+HLSL compiler library, this crate provides an FFI layer and idiomatic rust wrappers for the new DXC HLSL compiler and validator.
+Functionality for generating a Merkle-tree of a given text file with include references, replacing includes paths with a deterministic versioned identity, and also functionality for flattening include directives into a single file. The primary motivation is compiling shaders for various graphics APIs, but the the functionality can apply to a variety of source code parsing use cases.
+Compile GLSL/HLSL/WGSL and inline SPIR-V right inside your crate.
+Prebuilt, statically-linked DXC. +
+Shader translator and validator. Part of the wgpu project
+🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧
+SPIR-V/GLSL/HLSL shader interface reflection to JSON. (CLI)
+Light weight SPIR-V query utility for graphics.
+Reflection API in rust for SPIR-V shader byte code, intended for Vulkan applications.
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Libraries and tools for loading and rendering fonts
+API for loading, scaling, positioning and rasterizing OpenType font glyphs.
+A simple no_std font parser and rasterizer.
+A simple portable multimedia layer to create apps or games easily
+A pure Rust alternative to libraries like FreeType. + +RustType provides an API for loading, querying and rasterising TrueType fonts. + +It also provides an implementation of a dynamic GPU glyph cache for hardware font rendering. +
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Tools & other game-dev related libraries
+A crate to load files from the aseprite sprite editor.
+Conveniently load, cache, and reload external resources
+Bindings for the basis-universal Supercompressed GPU Texture Codec by Binomial
+A crate for mucking around with piles of bytes.
+A simple terminal framework to draw things and manage user input
+Tweak constant variables live from a web GUI
+Core module for density mesh generator
+Image module for density mesh generator
+Provides a mechanism to lay out data into GPU buffers ensuring WGSL's memory layout requirements are met
+Helper library for working with 2d hex-grid maps
+A library to evenly tile hexagons on a sphere. +
+Dust3D is a cross-platform 3D modeling software that makes it easy to create low poly 3D models for video games, 3D printing, and more.
+Tweak values directly from the source code
+A simple framework for loading and caching game assets
+A simple library for animation in Rust
+Rust interface for integrating https://mod.io - a modding API for game developers
+A trait for abstracted, decoupled modulation sources
+Procedural noise generation library.
+A Rust crate for reading and writing Ogmo Editor 3 projects and levels
+This crate provides a very thin abstraction over other profiler crates.
+Pyxel is a library for loading [PyxelEdit](https://pyxeledit.com) documents in Rust
+A general purpose, deterministic bin packer designed to conform to any two or three dimensional use case.
+For use with the Sharecart1000 system.
+Cross-platform software buffer
+Prefab editor for bevy game engine. Make levels/object templates with intuitive UI
+Procedurally generate pixel sprites and save them in different formats
+Superluminal Performance API for adding user events to profiler captures
+A rust crate for loading maps created by the Tiled editor
+A triangle mesh data structure including basic operations.
+A Rust crate that implements a frame-rate-independent game loop.
+A simple modular archiving format, written in pure Rust
+Implements the Voronoi diagram construction as a dual of the Delaunay triangulation for a set of points and the construction of a centroidal tesselation of a Delaunay triangulation.
+Translate between 1D indices and 2D coordinates with wrapping
+Utilities and collections for 3D hexagonal maps
+Data types, collections, and algorithms for working with maps on 2D and 3D integer lattices. Commonly known as voxel data.
+Asset framework for game engines & editor suites.
+The Rust bindings for the Doryen library (a.k.a. libtcod).
+Multiresolution Stochastic Texture Synthesis, a non-parametric example-based algorithm for image generation
+A customizable battle system for turn-based games.
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Immediate mode UI libraries and more
+An easy-to-use immediate mode GUI that runs on both web and native
+A cross-platform GUI library inspired by Elm
+High-level Rust bindings to dear imgui
+A crate to build debug UIs on structs using a derive macro (based on the imgui crate)
+Traits and default implementations for inspecting values with imgui.
+Immediate mode user interface toolkit.
+Rust wrapper for Nuklear 2D GUI library (github.com/vurtun/nuklear)
+Renderer Agnostic User Interface
+Backend-agnostic immediate mode GUI library in Rust
+Rust bindings for Sciter - Embeddable HTML/CSS/script engine (cross-platform desktop GUI toolkit). Also capable with DirectX / OpenGL.
+Cross-platform software buffer
+An easy-to-use, 100% Rust, extensible 2D GUI library.
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +VR engines and libraries
+A framework for creating incredible standalone VR experiences
+Rust bindings for LibOVR (Oculus Rift SDK).
+A high-level binding for OpenVR.
+High-level, mostly-safe OpenXR bindings
+A VR headset library for Rust programs targeting the Oculus Rift.
+Bindings to StereoKit: an easy-to-use Mixed Realty engine, designed for creating VR, AR, and XR experiences
+Safe rust API that provides a way to interact with Virtual Reality headsets +and integration with vendor specific SDKs like OpenVR and Oculus. The API is inspired on the +easy to use WebVR API but adapted to Rust design patterns
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Windowing and Context Creation crates
+GLFW3 bindings and idiomatic wrapper for Rust.
+Cross-platform OpenGL context provider.
+Cross-platform window setup with optional bitmap rendering
+A simple portable multimedia layer to create apps or games easily
+The official Piston window wrapper for the Piston game engine
+Cross-platform software buffer
+Cross-platform window creation library.
+Do you know about a missing crate? Did you launch a new crate?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a crate you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Games that demand co-ordination and quick reaction-times
+A small 2D top-down physics-based tank war game with worms-like turn mechanics written using Oxygengine
+A thrilling action game where your favorite Ferris the crab and the rust mascot got guns and has taken up the duty to find evildoer languages while managing to keep itself alive. Take part in this awesome adventure and help Ferris be the best ever!
+How long can you stay alive?
+A multiplayer grappling-hook strategy about frogs.
+A realtime action-puzzle game like Tetris Attack
+A simple remake of the Fiiish endless swimmer in Rust.
+A dynamic 2D shoot 'em up game, written using SDL2
+A jump and bump game for two players made with ggez
+Mk48.io is an online multiplayer naval combat game
+A toy game in Rust, using Piston. The code is thoroughly commented in order to help people to follow it easily
+Rostige Schlange ("Rusty Snake" in German apparently) is a small snake clone, using OpenGL for rendering
+A remake of the original Space Invaders written in rust
+You control a sphere in a bowl-shaped 2D space. Your goal is to hit the other spheres as hard as possible to shatter them into pieces!
+Small 2d platformer game using SDL2 and glam. Mostly to make fun of my friends if I'm being honest :)
+A space shooter game that strives to be an entry point for new game developers to make their first contributions.
+A modern asteroids-like game with procedural destruction
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Games inspired by tabletop card games
+A remake of the Shenzhen Solitaire variant
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Shooting games played from a first-person perspective
+Experimental minimalist game with a special graphical mecanic
+A Quake 3 like game with voxelized destructible maps
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ You're seeing this page because we couldn't find a template to render. +
+
+ To modify this page, create a section.html file in the templates directory or
+ install a theme.
+
+ You can find what variables are available in this template in the documentation.
+
+ Are we game yet? +
+ +Games where you explore a large open world
+A simple Minecraft written in Rust with the Piston game engine
+Minecraft like voxel game using wgpu, supporting both native targets and wasm
+An extensible open world rogue like game with pixel art
+Open-world exploration game with plants. Everything is procedurally generated
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Games that defy categorization
+A thrilling action game where your favorite Ferris the crab and the rust mascot got guns and has taken up the duty to find evildoer languages while managing to keep itself alive. Take part in this awesome adventure and help Ferris be the best ever!
+A web visualization of mind-blowing portals using ray-tracing
+A tiled based game written in Rust, uses the Amethyst game engine!
+A rewrite of Blobby Volley 2 written in Rust, a blazingly fast, memory safe, thread safe language.
+A small relaxing game about doodling castles. Explore gridless building chemistry, and watch the game carefully assemble every brick, pebble and plank.
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Games where you jump and climb your way past obstacles
+Hop your way through bite sized levels while dodging spikes, turrets, lasers, and more. Then, change the direction of gravity, and do it all again!
+A thrilling action game where your favorite Ferris the crab and the rust mascot got guns and has taken up the duty to find evildoer languages while managing to keep itself alive. Take part in this awesome adventure and help Ferris be the best ever!
+A simple 2D platformer game that demonstrates the use of two Rust crates: Gate and Collider.
+A game prototype written in Rust, shows how to use specs and nphysics.
+Small 2d platformer game using SDL2 and glam. Mostly to make fun of my friends if I'm being honest :)
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Games to test your brain
+(the) Gnorp Apologue is the journey of the gnorps as you guide them towards their goal of delightfully excessive wealth accumulation. Made with Tetra.
+A (100% Rust) puzzle game about snakes in cramped places
+A falling-blocks-type 2D game with a simple but addictive gameplay
+A multiplayer strategy-puzzle game about traversing a shifting maze
+A realtime action-puzzle game like Tetris Attack
+In Helix Repair, your task is to repair a broken DNA sequence by correcting nucleobases. You have 20 seconds!
+A puzzle game about bouncing lasers off mirrors to activate orbs
+Pascal Penguin is a 2D grid-based puzzle game with levels designed around slippery ice.
+Play as a little robot (named プシン) as it pushes boxes around inside a warehouse to organize them
+A puzzle game in which players manoeuvre a robot by issuing instructions via a simple programming language
+A Tetris clone with a deliberately frustrating set of blocks. There's also a classic mode for the purists, an ultra hard metal mode and even a chill mode.
+A color changing puzzle adventure. Hard puzzles, forgiving mechanics.
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Games where you have to be the fastest to win
+Cartoonish style racing game using Rust and OpenGL - highly experimental at its current state
+A realistic sailing/foiling inshore simulator that puts you in the driving seat of modern competitive sailing
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Finished games that have been released
+(the) Gnorp Apologue is the journey of the gnorps as you guide them towards their goal of delightfully excessive wealth accumulation. Made with Tetra.
+A (100% Rust) puzzle game about snakes in cramped places
+A simple remake of the Fiiish endless swimmer in Rust.
+In Helix Repair, your task is to repair a broken DNA sequence by correcting nucleobases. You have 20 seconds!
+The game of Hnefatafl, Copenhagen variant. Sometimes called viking chess. An engine, client, and server.
+A realistic sailing/foiling inshore simulator that puts you in the driving seat of modern competitive sailing
+Experimental minimalist game with a special graphical mecanic
+An online, real-time strategy game in which you expand your territory by capturing and upgrading towers.
+A puzzle game about bouncing lasers off mirrors to activate orbs
+Mk48.io is an online multiplayer naval combat game
+Pascal Penguin is a 2D grid-based puzzle game with levels designed around slippery ice.
+Play as a little robot (named プシン) as it pushes boxes around inside a warehouse to organize them
+A puzzle game in which players manoeuvre a robot by issuing instructions via a simple programming language
+A small relaxing game about doodling castles. Explore gridless building chemistry, and watch the game carefully assemble every brick, pebble and plank.
+An isometric university management game
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Games where you roleplay as a character
+a procedurally-generated, turn-based tactical shooter set in a post-apocalyptic future, where you carry mail between survivor camps in your trusty delivery van, all the while fending off attacks from bandits and zombies.
+Boat Journey is a turn-based game where you drive a boat through a procedurally-generated landscape on a voyage along a river destined for the ocean. Accept passengers to have them help you on your journey. Fight monsters, collect junk, trade the junk for fuel, use the fuel to travel to the ocean.
+A small, complete fantasy-themed console-style RPG made with Rust and Miniquad
+Dose Response is a roguelike game where you play an addict. Avoid the dangers threatening your mind and body while desperately looking for the next fix.
+A simple Minecraft written in Rust with the Piston game engine
+A short tactical dungeon-crawler about escaping from an insectoid-infested facility
+A turn-based tactical roguelike with a focus on ranged combat. Deal enough damage to enemies to get through their armour without breaching the hull of the station, or risk being pulled into the void.
+A simple web-playable roguelike made with Rust and SDL.
+An extensible open world rogue like game with pixel art
+Roguelike where combat outcomes are pre-determined and known by the player. Set in a neon sewer!
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Games that simulate a world
+A traffic simulation game exploring how small changes to roads affect cyclists, transit users, pedestrians, and drivers
+A Dwarf Fortress/Rimworld-like game written in Rust
+Establish a new ant colony and help it grow or let it develop on its own.
+World's most acurate dwarven simulation.
+Planet and terraforming simulation game
+A realistic sailing/foiling inshore simulator that puts you in the driving seat of modern competitive sailing
+Direct the trains in the delivery areas.
+Mk48.io is an online multiplayer naval combat game
+An open-source game combining elements of Dwarf Fortress, Civilization, Warhammer, Douglas Adams, and more.
+A virtual ecosystem where different species of creature can live, grow and die as part of a self-contained food chain.
+A web visualization of mind-blowing portals using ray-tracing
+A pixel physics simulation sandbox where you can paint with elements, conduct experiments and build your own world!
+They live, work, and die on a time machine they didn't invent and can't control. You are their Overlord. Help them learn, grow, and thrive.
+A small relaxing game about doodling castles. Explore gridless building chemistry, and watch the game carefully assemble every brick, pebble and plank.
+An isometric university management game
+An ecosystem simulation game. Achieve the greatest possible eco-diversity without disrupting the equilibrium.
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Games involving tactics and decision-making
+a procedurally-generated, turn-based tactical shooter set in a post-apocalyptic future, where you carry mail between survivor camps in your trusty delivery van, all the while fending off attacks from bandits and zombies.
+A Dwarf Fortress/Rimworld-like game written in Rust
+Establish a new ant colony and help it grow or let it develop on its own.
+A multiplayer grappling-hook strategy about frogs.
+A 3D real-time strategy game.
+World's most acurate dwarven simulation.
+A multiplayer strategy-puzzle game about traversing a shifting maze
+The game of Hnefatafl, Copenhagen variant. Sometimes called viking chess. An engine, client, and server.
+Assume role of the mayor of a small coastal city, caught in the middle of hilariously rapid global warming spurt.
+An online, real-time strategy game in which you expand your territory by capturing and upgrading towers.
+Mk48.io is an online multiplayer naval combat game
+An open-source game combining elements of Dwarf Fortress, Civilization, Warhammer, Douglas Adams, and more.
+A real-time strategy game/engine written with Rust and WebGPU.
+Online multiplayer sandbox space ship combat game
+They live, work, and die on a time machine they didn't invent and can't control. You are their Overlord. Help them learn, grow, and thrive.
+A City Builder set during the Industrial Revolution. Build industries to extract natural resources. Produce goods to satisfy the population. Manage transportation routes and trade with nearby cities.
+An isometric university management game
+A small 2D turn-based hexagonal tactical game made with ggez engine
+A turn-based hexagonal strategy game
+Do you know about a missing game? Did you launch a new game?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a game you can't find here? Try asking on the chat.
++ Since you ended up here, you probably agree that Rust is potentially an ideal language for Game Development. +
++ Its emphasis on low-level memory safe programming promises a better development process, less debugging time, + and better end results. +
++ While the ecosystem is still very young, you can find enough libraries and game engines to sink your teeth into + doing some slightly experimental gamedev. +
++ If you haven't learned Rust yet, maybe take a look at Resources + first. If you are already proficient with Rust, you might want to start with Ecosystem or + Community. +
++ The main meeting places for people doing gamedev in Rust are on Discord + - there's a #games-and-graphics channel on the Rust Community server, + as well as a dedicated Game Development in Rust server. +
++ Many libraries also have their own lively Gitter chats, which you can find in their descriptions. +
+For news and updates, check out the subreddit, + the community Bluesky and + Mastodon accounts, or the monthly newsletter + (currently on pause). +
+Libraries and tools to help you build games in Rust.
+Games that have been built by the Rust community.
+Books, guides and videos about Rust game development.
++ The people that help maintain this site. +
++ Arewegameyet? is made by @doppioslash + and powered by Zola, a Rust static site generator. +
++ Inspired by arewewebyet, and arewelearningyet. +
++ Are we game yet? +
+ +Articles and blog posts
+Some thoughts on tools and libraries
+Introduction to WGPU and high-level rendering terminology
+How to port games to the web using Emscripten
+An overview of which engines and libraries to use
+Making games using Rust, Lua and the ECS design pattern
+Details why Rust has the potential to be significant for the future of programming in games
+Introduction to Winit Rust and Pixels (hardware accelerated framebuffer)
+3-part series of posts on writing a simple raytracer in Rust
+A quick overview of a few frameworks for developing games, by the author of ggez
+A quick overview of a few graphics libraries, by the author of ggez
+Do you know about a missing resource? Did you launch a new resource?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a resource you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Long-form writing about Rust and/or game development
+A game development guide on how to program a shoot 'em up game with the Rust programming language and the Macroquad game library
+Learn how to run Rust on the web while building an endless runner
+Make fun games as you learn Rust through a series of hands-on gamedev tutorials and real-world use of core language skills
+A collection of runnable examples that illustrate various Rust concepts and standard libraries
+A deep and detailed tutorial about designing and implementing roguelike games in Rust
+A tutorial about making a simple Sokoban game using ECS, GGEZ and specs
+A series about drawing a triangle without using any outside crates
+Do you know about a missing resource? Did you launch a new resource?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a resource you can't find here? Try asking on the chat.
++ You're seeing this page because we couldn't find a template to render. +
+
+ To modify this page, create a section.html file in the templates directory or
+ install a theme.
+
+ You can find what variables are available in this template in the documentation.
+
+ Are we game yet? +
+ +Collections of code, resources or links
+A curated list of links to miniquad/macroquad-related code & resources
+A curated list of Rust code and resources, inspired by other awesome lists
+A curated list of wgpu code and resources
+A collection of Bevy assets, plugins, learning resources, and apps made by Bevy's community
+ChevyRay's curated list of cool/useful Rust crates for game development
+List of curated frameworks by the Game Development in Rust Discord server
+Do you know about a missing resource? Did you launch a new resource?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a resource you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Guides to help you learn
+A tutorial on/in/about/with 3D graphics, Rust, Vulkan, ash
+A tutorial on writing a chess game, with the Bevy game engine
+A beginner-friendly guide to building games in Rust
+A tutorial about cloning the snake game, with the Bevy game engine
+A game development guide on how to program a shoot 'em up game with the Rust programming language and the Macroquad game library
+Learn how to run Rust on the web while building an endless runner
+This tutorial will show you how to write a simple game server
+Make fun games as you learn Rust through a series of hands-on gamedev tutorials and real-world use of core language skills
+How to port games to the web using Emscripten
+A Rust port of the code for the excellent OpenGL tutorials at learnopengl.com
+Tutorial for learning Rust graphics programming using the wgpu-rs library
+Walkthrough on how to use Matchbox and bevy_ggrs to implement a low-latency multiplayer web game
+This tutorial will show you how to write a roguelike in the Rust programming language and the libtcod library
+Each commit in this repo is a step in a game development tutorial
+A deep and detailed tutorial about designing and implementing roguelike games in Rust
+A tutorial about making a simple Sokoban game using ECS, GGEZ and specs
+A series about drawing a triangle without using any outside crates
+A tutorial on how to write a line of sight algorithm for 2D games without using trigonometry or square roots
+Do you know about a missing resource? Did you launch a new resource?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a resource you can't find here? Try asking on the chat.
++ Are we game yet? +
+ +Conference talks, presentations and guides in video form
+A talk about wgpu's architecture and implementation (FOSDEM 2020)
+A talk about reviving space_shooter_rs through effective planning, refactoring, and documentation (RustFest Global 2020)
+A talk by Herbert Wolverson (Rust Würzburg)
+Making games using Rust, Lua and the ECS design pattern
+Do you know about a missing resource? Did you launch a new resource?
++ Please create a + pull request + or an + issue + on our GitHub! +
+Looking for a resource you can't find here? Try asking on the chat.
+{{ description }}
-{{ page.description }}
-Do you know about a missing {{ section.extra.single }}? Did you launch a new {{ section.extra.single }}?
-- Please create a - pull request - or an - issue - on our GitHub! -
-Looking for a {{ section.extra.single }} you can't find here? Try asking on the chat.
-- Since you ended up here, you probably agree that Rust is potentially an ideal language for Game Development. -
-- Its emphasis on low-level memory safe programming promises a better development process, less debugging time, - and better end results. -
-- While the ecosystem is still very young, you can find enough libraries and game engines to sink your teeth into - doing some slightly experimental gamedev. -
-- If you haven't learned Rust yet, maybe take a look at Resources - first. If you are already proficient with Rust, you might want to start with Ecosystem or - Community. -
-- The main meeting places for people doing gamedev in Rust are on Discord - - there's a #games-and-graphics channel on the Rust Community server, - as well as a dedicated Game Development in Rust server. -
-- Many libraries also have their own lively Gitter chats, which you can find in their descriptions. -
-For news and updates, check out the subreddit, - the community Bluesky and - Mastodon accounts, or the monthly newsletter - (currently on pause). -
-- The people that help maintain this site. -
-- Arewegameyet? is made by @doppioslash - and powered by Zola, a Rust static site generator. -
-- Inspired by arewewebyet, and arewelearningyet. -
-{{ section.description }}
-- Are we game yet? -
- {% endblock %} -