Thank you for considering contributing to GameForLinux! We use a highly optimized, "Suckless" architecture. Adding a new game requires zero scripting. Everything is handled dynamically based on a single source of truth.
To be included in the collection, your repository must meet the following criteria:
- Language: Go (to maintain consistency and ease of cross-compilation).
- TUI Library: Built on ttbox or any minimal terminal UI library.
- Platform: POSIX-compliant (Linux, macOS, BSD).
- Build: Must compile to a single, static binary with no external dependencies.
- Releases (Crucial): Your repository must use GitHub Releases. Release assets must follow the
<repo-name>-<os>-<arch>format (e.g.,mygame-linux-amd64,mygame-darwin-arm64).
Our automated scripts scrape your repository to build the GameForLinux Website and update this repo's README. Please format your game's repository as follows:
- Description: Ensure your repository's
README.mdstarts with anH1title (# Your Game Name), immediately followed by a short description sentence. - Features: Include a
## Featuressection with bullet points. These will be converted into tags on our website. - Demo: Place a
demo.gifin the root directory of yourmainormasterbranch. The website will automatically use this for the "Watch Demo" button.
Fork this repository to your GitHub account, then clone it locally:
git clone https://github.com/yourusername/gameforlinux.git
cd gameforlinux
git checkout -b add-mygameOpen the games.list file in the root directory and add your game using the username/repo format on a new line at the bottom:
ttasc/sudokute
ttasc/termines
...
yourusername/mygame
Verify that the automation scripts recognize your game dynamically (replace mygame with your repository name):
make install-mygame
make test-mygame
make uninstall-mygame
⚠️ IMPORTANT: Do NOT runmake readme,make web, or manually editREADME.md/index.html. Our GitHub Actions CI/CD pipeline will automatically fetch your descriptions and rebuild the README and Website once your PR is merged.
You only need to commit the games.list file:
git add games.list
git commit -m "feat: add mygame to collection"
git push origin add-mygameHead over to the original repository and open a Pull Request. That's it! The system architecture handles everything else for you.