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.

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


Download files

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

Source Distribution

jaminit-0.1.0.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

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

jaminit-0.1.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

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

Hashes for jaminit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e464ce3da91e3a0b6ea985707257053196f9d881694a969efec9de348b0600a9
MD5 b6e99c19a135f1eb9eb6472f75d098db
BLAKE2b-256 ac94bca8d3c3ff456235b60fd90c59a7e21be4cd082b003bbfdea8ba355927b4

See more details on using hashes here.

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

Hashes for jaminit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e48fdf9f470c52589f2b50243486e5e81f9b53be885fc8c5dd66064ced253a7
MD5 0e5e99f2adfc94b9f60eb71fbfb6eee6
BLAKE2b-256 75fd0f40b9941f54cceb7dd9a371138ae371b032b276926fd0d14504b795f17b

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