GEMS (Gaming Ecosystem of Modular Shards) is a toolkit for building Persistent Browser-Based Games by providing an opinionated backbone that simplifies the creation of community-driven experiences. GEMS uses a data-driven approach that allows for customization via configuration and extensibility through scripts.
A Persistent Browser-Based Game (PBBG) is an online game you can play in your web browser that keeps going even when you're not logged in. Players can make progress, gather resources, and influence the game world over time. This type of game combines elements of strategy and adventure, allowing you to return later and see how your actions have shaped the game. It’s designed for anyone looking for a fun and engaging experience without needing to be a hardcore gamer.
This project is an Elixir application, built using the Phoenix framework. It uses Node.js for static asset management and PostgreSQL for persistence.
To start the application:
- Run
mix setup
to install and setup dependencies - Start the server with
mix phx.server
or inside IEx withiex -S mix phx.server
- Visit
localhost:4000
from your browser.
GEMS is free and open-source. We welcome contributions to GEMS! Here’s how you can get involved:
-
Report issues: If you find a bug or have an idea for a new feature, please let us know by opening an issue or discussion in the project's repository.
-
Code contributions: You can fork the repository, make your changes, and submit a pull request. To get started, take a look at our contribution guidelines
-
Help with docs: If you notice parts of the documentation that can be improved or want to create new guides, your contributions are welcome!
-
Share your feedback: Your thoughts are important! Tell us about your experiences and suggestions to help us improve GEMS.
-
Join the community: Participate in discussions, help other users, and share projects you’ve created using GEMS. Together, we can grow a supportive community.
GEMS is distributed under the AGPL (Affero General Public License) to keep the source code open and transparent. This license ensures that the software remains freely available for anyone to use, modify, and share, while also requiring that any derivative works provide the same freedoms. If you don't know what the AGPL license is start here.
TLDR; The AGPL license is a strong copyleft license that ensures the software's source code, including any modifications or improvements made to the original code, remains open and available to everyone.
We believe that licensing GEMS under the AGPL is the right choice to protect the project against bad actors. It ensures that while our code is available for anyone to use, any improvements made by third parties come back to benefit the whole community. This way, we can all build on each other's work and keep GEMS growing and getting better.