{"id":13495830,"url":"https://github.com/amethyst/amethyst","last_synced_at":"2025-03-28T17:34:00.291Z","repository":{"id":41329943,"uuid":"48364554","full_name":"amethyst/amethyst","owner":"amethyst","description":"Data-oriented and data-driven game engine written in Rust","archived":true,"fork":false,"pushed_at":"2021-12-06T18:23:49.000Z","size":59298,"stargazers_count":7973,"open_issues_count":0,"forks_count":751,"subscribers_count":185,"default_branch":"main","last_synced_at":"2024-04-14T12:13:38.685Z","etag":null,"topics":["engine","game-engine","gamedev","hacktoberfest","rust"],"latest_commit_sha":null,"homepage":"https://amethyst.rs/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amethyst.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"custom":["https://amethyst.rs/donate"],"open_collective":"amethyst"}},"created_at":"2015-12-21T09:59:29.000Z","updated_at":"2024-04-14T10:33:44.000Z","dependencies_parsed_at":"2022-07-13T11:00:32.876Z","dependency_job_id":null,"html_url":"https://github.com/amethyst/amethyst","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amethyst%2Famethyst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amethyst%2Famethyst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amethyst%2Famethyst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amethyst%2Famethyst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amethyst","download_url":"https://codeload.github.com/amethyst/amethyst/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222352420,"owners_count":16970674,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["engine","game-engine","gamedev","hacktoberfest","rust"],"created_at":"2024-07-31T19:01:38.671Z","updated_at":"2024-10-31T11:30:15.356Z","avatar_url":"https://github.com/amethyst.png","language":"Rust","readme":"\u003cimg src=\"docs/splash.png\" alt=\"Amethyst Game Engine\" /\u003e\n\n[![Build Status][s1]][ac] [![Crates.io][s2]][ci] [![docs page][docs-badge]][docs] [![MIT/Apache][s3]][li]\n[![Join us on Discord][s4]][di] [![Community forum][s5]][ds] [![Reddit][s7]][rd]\n[![Code coverage][s8]][cc] ![Lines of Code][s6]\n\n# Inactively Maintained!\n![Inactively Maintained](https://img.shields.io/badge/Maintenance%20Level-Inactively%20Maintained-yellowgreen.svg)\n\nThe Amethyst Game Engine has halted its development. Read this post about it:\nhttps://amethyst.rs/posts/amethyst--starting-fresh\n\nFor 0.15.3 and older, the following Rust version has to be used for compiles to work.\n\n`rustup override set 1.47 `\n\n## What is Amethyst?\n\nAmethyst is a data-driven and data-oriented game engine aiming to be fast and as configurable as possible.\n\n## Principles\n\nThese principles are what makes Amethyst unique and competitive in the world of game engines:\n\n- Massively parallel architecture.\n- Powered by a correct [Entity Component System][ecs] model.\n- Rapid prototyping with [RON] files for prefabs and an abstract scripting API.\n- Strong focus on encouraging reusability and clean interfaces.\n\n## Why Amethyst?\n\n### Extreme Multithreading\n\nAmethyst is based over a very powerful parallel [ECS] called Specs. This allows games built with Amethyst to maximize the available processing power to run as smoothly and as quickly as possible, without the headaches of multi-threaded programming.\n\n### Clean\n\nBy design, the Amethyst engine encourages you to write clean and reusable code for your behaviours and data structures. This allows engine users to easily share useful components, thus reducing development time and cost.\n\nUsing the [ECS] architecture, the code of games can be cleanly divided between data and behaviour, making it easy to understand what is going on, even if the game is running on a massive 64-core processor.\n\n### Community\n\n- [Discord](https://discord.gg/amethyst) - Announcements, help, useful information, general discussion.\n\n## Features\n\nPlease visit the [features page][feat] for a list of features Amethyst provides.\n\n## Navigation\n\n- [**Link to the book (master)**][bkm]\n- [**Link to the book (0.15)**][bkstable]\n- [**Link to the book (0.14)**][bks14]\n- [**Link to the examples (master)**][exm]\n- [**Link to the examples (0.15)**][ex15]\n- [**Link to the examples (0.14)**][ex14]\n\n## Usage\n\nWhile the engine can be hard to use at times, we made a lot of [documentation][bkstable] that will teach you everything you need to use Amethyst comfortably.\n\nIf you don't understand a part of the documentation, please let us know. Join us on Discord or open an issue; we are always happy to help!\n\n## Getting started\n\n### Before you begin\n\nThis repository uses Git LFS for some files used in examples.\nIf you intend to run the examples, make sure you have LFS installed in your system before you clone.\nYou can download it and read the installation instructions at [Git LFS home page](https://git-lfs.github.com/).\n\n### Examples\n\nTo compile any of the examples run:\n\n```shell\n$ cargo run -p name_of_example\n```\n\nAll available examples are listed under the [examples][exm] directory.\n\nFor a full-blown \"Hello World\" tutorial check out the [Getting Started][gs] chapter in the book.\n\n### Showcase games\n\nOur official showcase games demonstrate larger, continuously developed game projects made with Amethyst:\n\n- [Evoli] - 3D, ecosystem simulator\n- [Space Menace][menace] - 2D, action platformer\n\nFor more examples see [Games Made With Amethyst][gmwa] topic on the community forum for some good sources of inspiration.\n\n## Dependencies\n\nIf you are compiling on Linux, make sure to install the dependencies below.\n\n### Arch Linux\n\n```sh\npacman -Syu grep gcc pkgconf openssl alsa-lib cmake make python3 freetype2 awk libxcb\n```\n\n### Debian/Ubuntu\n\n```sh\napt install gcc pkg-config openssl libasound2-dev cmake build-essential python3 libfreetype6-dev libexpat1-dev libxcb-composite0-dev libssl-dev libx11-dev libfontconfig1-dev\n```\n\n### Fedora\n\n```sh\ndnf install pkgconfig gcc openssl-devel alsa-lib-devel cmake make gcc-c++ freetype-devel expat-devel libxcb-devel libX11-devel\n```\n\n### openSUSE\n\n```sh\nzypper install gcc pkg-config libopenssl-devel alsa-devel cmake gcc-c++ python3 freetype2-devel libexpat-devel libxcb-devel\n```\n\n### Nix/NixOS\n\nIn your project's root folder, create a file `shell.nix` with the following contents:\n\n```nix\nlet\n  mozilla = import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz);\n  nixpkgs = import \u003cnixpkgs\u003e { overlays = [ mozilla ]; };\nin\n\n  with nixpkgs;\n\n  mkShell {\n    buildInputs = [\n      alsaLib\n      cmake\n      freetype\n      latest.rustChannels.stable.rust\n      expat\n      openssl\n      pkgconfig\n      python3\n      vulkan-validation-layers\n      xlibs.libX11\n    ];\n\n    APPEND_LIBRARY_PATH = lib.makeLibraryPath [\n      vulkan-loader\n      xlibs.libXcursor\n      xlibs.libXi\n      xlibs.libXrandr\n    ];\n\n    shellHook = ''\n      export LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH:$APPEND_LIBRARY_PATH\"\n    '';\n  }\n```\n\n### Other\n\nSee your distribution-specific installation process for the equivalent dependencies.\n\n**Please note that you need to have a functional graphics driver installed. If you get a panic about the renderer unable to create the context when trying to run an example, a faulty driver installation could be the issue.**\n\n## Building Documentation\n\nYou can build the book locally with:\n\n```sh\ncargo install mdbook\nmdbook build book\n```\n\nIf you're actively editing the book, it's easiest to run:\n\n```shell\nmdbook serve book\n```\n\nand navigate to `http://localhost:3000`. The text itself can be found in `book/html/index.html`. For more information, please see the [mdBook project](https://github.com/rust-lang-nursery/mdBook).\n\nTo generate the API documentation locally, do:\n\n```shell\n$ cargo doc\n```\n\nThe API reference can be found in `target/doc/amethyst/index.html`.\n\n## Questions/Help\n\nAmethyst supports _only_ the latest stable release of Rust. Use the nightly and beta channels with this project at your own risk.\n\nIf you have a question, please check out the [FAQ] before asking. Chances are, the solution to your problem is already present there. If you still need help, feel free to ask on our [Discord server][di].\n\nOther places you might want to check out are [r/rust\\_gamedev][rg] and the [#rust-gamedev IRC][irc].\n\n## Contributing\n\n**Note:** Any interaction with the Amethyst project is subject to our [Code of Conduct](https://github.com/amethyst/amethyst/blob/master/CODE_OF_CONDUCT.md).\n\nAmethyst is a community-based project that welcomes contributions from anyone. If you're interested in helping out, please read the [contribution guidelines][cm] before getting started.\n\nWe have a [good first issue][gfi] category that groups all issues or feature requests that can be made without having an extensive knowledge of Rust or Amethyst. Working on those issues is a good, if not the best, way to learn.\n\nIf you think you are not ready to code yet, you can still contribute by reviewing code written by other members of the community. Code reviews ensure that code merged into Amethyst is of the highest quality as possible. Pull requests that are available for reviews can be found [here][pr].\n\nIf for some reason we don't have any open PRs in need of a review nor any good first issues (that would be a good thing), feel free to consult our [issue tracker][it].\n\n## Backers\n\nThank you to all our backers! 🙏 [Become a backer](https://amethyst.rs/donate)\n\n## Sponsors\n\nAmethyst is supported by:\n\n\u003cp\u003e\n  \u003ca href=\"https://www.digitalocean.com?utm_medium=opensource\u0026utm_source=amethyst/\"\u003e\n    \u003cimg src=\"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg\" width=\"201px\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\n  \u003ca href=\"http://embark-studios.com\"\u003e\n    \u003cimg src=\"https://embark.dev/img/logo_black.png\" width=\"201px\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## License\n\nAmethyst is free and open source software distributed under the terms of both the [MIT License][lm] and the [Apache License 2.0][la].\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.\n\n[ac]: https://github.com/amethyst/amethyst/actions\n[bkm]: https://book.amethyst.rs/master/\n[bks14]: https://book.amethyst.rs/v0.14.0/\n[bkstable]: https://book.amethyst.rs/stable/\n[cc]: https://codecov.io/gh/amethyst/amethyst\n[ci]: https://crates.io/crates/amethyst/\n[cm]: docs/CONTRIBUTING.md\n[di]: https://discord.gg/amethyst\n[docs]: https://amethyst.rs/doc/\n[docs-badge]: https://img.shields.io/badge/docs-website-blue.svg\n[ds]: https://community.amethyst.rs/\n[ecs]: https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system\n[evoli]: https://github.com/amethyst/evoli\n[ex14]: https://github.com/amethyst/amethyst/tree/v0.14.0/examples\n[ex15]: https://github.com/amethyst/amethyst/tree/v0.15.0/examples\n[exm]: https://github.com/amethyst/amethyst/tree/master/examples\n[faq]: https://github.com/amethyst/amethyst/wiki/Frequently-Asked-Questions\n[feat]: docs/FEATURES.md\n[gfi]: https://github.com/amethyst/amethyst/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22\n[gmwa]: https://community.amethyst.rs/t/games-made-with-amethyst/134\n[gs]: https://book.amethyst.rs/stable/getting-started.html\n[irc]: https://botbot.me/mozilla/rust-gamedev/\n[it]: https://github.com/amethyst/amethyst/issues\n[la]: docs/LICENSE-APACHE\n[li]: COPYING\n[lm]: docs/LICENSE-MIT\n[menace]: https://github.com/amethyst/space-menace\n[pr]: https://github.com/amethyst/amethyst/pulls\n[rd]: https://www.reddit.com/r/Amethyst/\n[rg]: https://www.reddit.com/r/rust_gamedev/\n[ron]: https://github.com/ron-rs/ron\n[s1]: https://github.com/amethyst/amethyst/workflows/CI/badge.svg\n[s2]: https://img.shields.io/crates/v/amethyst.svg\n[s3]: https://img.shields.io/badge/license-MIT%2FApache-blue.svg\n[s4]: https://img.shields.io/discord/425678876929163284.svg?logo=discord\n[s5]: https://img.shields.io/badge/discourse-online-green.svg\n[s6]: https://tokei.rs/b1/github/amethyst/amethyst?category=code\n[s7]: https://img.shields.io/badge/dynamic/json.svg?label=r/Amethyst\u0026query=%24.data.subscribers\u0026url=https://www.reddit.com/r/Amethyst/about.json\n[s8]: https://img.shields.io/codecov/c/github/amethyst/amethyst.svg\n","funding_links":["https://amethyst.rs/donate","https://opencollective.com/amethyst"],"categories":["Rust","Game development","Game Engines and Frameworks","Libraries","game-engine","rust","[Applications powered by ECS](#contents)","Game Development"],"sub_categories":["Stack Overflow","UI Test Automation Scripting","Rust","[Game Engines](#contents)","Ruby"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famethyst%2Famethyst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famethyst%2Famethyst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famethyst%2Famethyst/lists"}