An open API service indexing awesome lists of open source software.

https://github.com/mechanicalflower/magic_combo

:star2: Utilities for games project management
https://github.com/mechanicalflower/magic_combo

ci game-development gamedev godot godot-engine godot4 godotengine python reuse

Last synced: 4 months ago
JSON representation

:star2: Utilities for games project management

Awesome Lists containing this project

README

        

# `🌟 magic_combo`

![Python Version](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-0a7bbc?logo=python&logoColor=white)
![license](https://img.shields.io/badge/license-MIT-green?logo=open-source-initiative&logoColor=white)
[![standard-readme compliant](https://img.shields.io/badge/readme-standard-brightgreen.svg?logo=readme&logoColor=white)](https://github.com/RichardLitt/standard-readme)

![PyPI - Package Version](https://img.shields.io/pypi/v/magic_combo?logo=pypi&logoColor=white)

[![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v0.json)](https://github.com/charliermarsh/ruff)
[![format - black](https://img.shields.io/badge/format-black-000000.svg)](https://github.com/psf/black)
[![types - mypy](https://img.shields.io/badge/types-mypy-blue.svg)](https://github.com/python/mypy)

A collection of Python utilities for seamless
management of my personal games project in
Godot Engine.

## About

This project is used to **develop, contribute**
**and manage** my game projects, but it's also
completely **optional**.

### Develop, contribute and manage

The package is split into 3 parts:
- **tasks**, that is a wrapper around the Godot
binary. It's allow to automatically download
the version of Godot used by your game...
- **playbooks**, that is a suite of tasks. It's
useful to build your game from scratch, like
in CI.
- **scripts**, that is more random stuff, like
generate credits from a dep5 file, or bump
your game version in the Godot export preset
file.

And the second goal of this package is to pin
dependencies use in my `.pre-commit-config.yml`
files.

### Optional

I attach importance to being able to do
things without extra tools, so my personal
game projects used this package
to simplify some tasks, but if you know
how to use Godot you can do anything
with Godot.

This project was born to localize
my scripts in one place rather than having
them duplicated in each project.

## Install

This project uses [python](https://www.python.org/)
and [pip](https://pip.pypa.io/en/stable/).
Go check them out if you don't have them
locally installed.

```
$ pip install magic_combo
```

## Usage

To list all sucommands, run:
```
$ magic_combo --list
Subcommands:

playbook.build Build godot game for Linux.
playbook.clean Clean combo, godot and plug caches.
playbook.export Release export for any platform.
playbook.run Build and run godot game for Linux.
script.add-config-to-github-env Add 'godot_version' and 'game_version'
to Github env.
script.bump-version Updates the game version for export.
script.generate-credits Generate a CREDITS.md file.
script.new Create a new godot game project, based
on MechanicalFlower/godot-template.
task.clean-combo
task.clean-godot
task.clean-plug
task.editor
task.export-release-linux
task.export-release-mac
task.export-release-windows
task.godot
task.import-resources
task.install-addons
task.install-godot
task.install-templates
task.makedirs
task.run-release
```

And to run any subcommands, run:

```
$ magic_combo
```