Skip to main content

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.

git clone https://github.com/egeltorp/jaminit.git
cd jaminit
pip install -e .

Usage

Create a new game jam project:

jaminit new "Mini Jam 183" --engine pygame --theme "Dreams" --license MIT --git

Example output:

mini_jam_183_dreams/
├── src/
│   └── main.py
├── assets/
│   ├── sprites/
│   ├── sounds/
│   └── 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 Godot projects with predefined folder structure and template files. Include auto-generated README, LICENSE, and .gitignore.
v0.2.0 Multi-engine support Add templates for Pygame 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jaminit-0.0.0-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file jaminit-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: jaminit-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for jaminit-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8e7864553b5733ae4b0e7fe45d8333fe680c82fa8e01e01448e1d4ad72bc6001
MD5 cf4117cd38579d492af2359de65c9129
BLAKE2b-256 db86a74a74a1754b65fcbd100b8cd940775c833fe5861f1ccf5ca37625e147d4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page