A command-line tool for initializing structured game jam projects.
Project description
JamInit
JamInit is a command-line tool for creating standardized project structures for game jams.
It aims to reduce setup time and promote consistency across multiple game jam projects.
Features
- Initializes new game jam projects with predefined folder structures.
- Supports multiple engines (Pygame, Godot, Unity).
- Generates template files including README, LICENSE, and .gitignore.
- Optionally initializes a Git repository.
- Configurable templates for custom workflows.
Installation
JamInit requires Python 3.12 or higher.
pip install jaminit
Usage
Create a new game jam project:
jaminit new "Mini Jam 183" --engine pygame --license MIT --git
Example output:
mini_jam_183_dreams/
├── src/
│ ├── main.py
│ ├── settings.py
│ └── player.py
├── assets/
│ ├── sprites/
│ ├── sounds/
│ ├── music/
│ └── fonts/
├── README.md
├── LICENSE
├── .gitignore
└── requirements.txt
Command help:
jaminit --help
Roadmap
| Version | Milestone | Description |
|---|---|---|
| v0.1.0 | Core functionality | Implement base CLI using argparse. Add support for initializing Pygame projects with predefined folder structure and template files. Include auto-generated README, LICENSE, and .gitignore. |
| v0.2.0 | Multi-engine support | Add rich integration. Add templates for Godot and Unity projects. Introduce a shared configuration file defining default directory layout and file templates per engine. |
| v0.3.0 | Git and license automation | Add optional --git flag to automatically run git init and create a .gitignore. Include --license option for MIT, GPL, CC-BY, and Unlicense. |
| v0.4.0 | Template customization | Allow users to define and store custom templates under ~/.jaminit/templates/. Add jaminit template create and jaminit template list commands. |
| v0.5.0 | Metadata and config files | Introduce a .jaminit.json configuration file per project to store metadata (jam name, engine, theme, version). Add command to regenerate project README from metadata. |
| v0.6.0 | Project regeneration | Add jaminit refresh to reapply template updates to an existing project without overwriting code. |
| v0.7.0 | Cross-platform polish | Add full Windows/macOS/Linux support testing, path normalization, and graceful error handling for filesystem issues. |
| v0.8.0 | Interactive mode | Add optional interactive wizard (jaminit new without args) that prompts the user for engine, theme, and license step-by-step. |
| v1.0.0 | Stable release | Comprehensive documentation, unit tests, and CI integration (GitHub Actions). Command autocompletion for Bash, Zsh, and PowerShell. |
Repository Structure
jaminit/
├── jaminit/
│ ├── init.py
│ ├── cli.py # Handles command-line parsing and entrypoint
│ ├── generator.py # Core logic for creating folders and files
│ ├── templates/
│ │ ├── pygame/ # Engine-specific templates
│ │ ├── godot/
│ │ ├── unity/
│ │ └── common/ # Shared templates like README, LICENSE, etc.
│ └── utils.py # Helper functions
│
├── tests/
│ ├── init.py
│ ├── test_cli.py
│ ├── test_generator.py
│ └── test_templates.py
│
├── scripts/
│ └── build_release.py # Optional automation for packaging
│
├── LICENSE
├── README.md
├── pyproject.toml # For modern packaging
├── setup.cfg # Metadata and configuration
├── requirements.txt
└── .gitignore
Contributing
Contributions are welcome. Open an issue before submitting major changes. Use conventional commit messages where possible.
License
Licensed under the MIT License.
See LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jaminit-0.1.0.tar.gz.
File metadata
- Download URL: jaminit-0.1.0.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e464ce3da91e3a0b6ea985707257053196f9d881694a969efec9de348b0600a9
|
|
| MD5 |
b6e99c19a135f1eb9eb6472f75d098db
|
|
| BLAKE2b-256 |
ac94bca8d3c3ff456235b60fd90c59a7e21be4cd082b003bbfdea8ba355927b4
|
File details
Details for the file jaminit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: jaminit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e48fdf9f470c52589f2b50243486e5e81f9b53be885fc8c5dd66064ced253a7
|
|
| MD5 |
0e5e99f2adfc94b9f60eb71fbfb6eee6
|
|
| BLAKE2b-256 |
75fd0f40b9941f54cceb7dd9a371138ae371b032b276926fd0d14504b795f17b
|