Alphish / gm-community-toolbox

A collection of utility functions for GameMaker.
MIT License
36 stars 6 forks source link

Important links

Installation

Overview

GameMaker Community Toolbox a collection of general-purpose utility functions for GameMaker. While some utility packages were published in the past, they would often end up as a set of loosely related functions, probably found extremely useful by the author but not necessarily applicable to a wider range of users. Likewise, people occasionally posted useful scripts around the Internet, but it wasn't organised into a more comprehensive package. Something ready to integrate into GameMaker project with a one Import Local Package command or, if someone is feeling adventurous, with one Marketplace package download.

GameMaker Community Toolbox aims to fill this niche. The selection of functions is community-driven - GameMaker developers suggest the new functions, upvote the feature requests they like and discuss the fine details (like function naming). Ideally, the Community Toolbox would one day become a go-to utility package that GameMaker users would recommend for novice developers, especially when a programming question can be solved with some of the toolbox' functions.

Not only that, using the same utilities package would improve collaborations. Instead of two developers independently using their own variations of common utility functions (differently named, too), they can use the same set of utilities. By using common function names, they would understand each other's code more easily as well.

Currently, a 24.6 version of Community Toolbox was released, designed to be compatible with GameMaker 2024.6. You can check out the links and the installation guide above for more information.

Note: While GameMaker Community Toolbox is meant to be community-driven, I will still make the final decisions regarding whether to include a certain function in the package or not. This is to ensure that design guidelines will be adhered too, and also to avoid potential feature bloat, when many highly specific functions would be included.

The Process

Short version: If there is a functionality you would like included, make sure it adheres to the design guidelines below, and if it does make a feature request in the Issues section.

If your feature requests gets accepted and you're feeling especially adventurous, you may go ahead and implement it yourself and then make a pull request. Or you can wait for someone else to do the implementation job.

Similar process applies to requesting enhancements of existing functions or reporting bugs (though confirmed bugs will be given a higher priority).

For a new function to be added to the Community Toolbox, it needs to go through the following steps:

Design Guidelines

The functionality of GameMaker Community Toolbox is meant to be simple to learn and integrate into the project. Additionally, its users should be given virtually no reasons to modify the code in this package for personal needs.

In order to achieve these goals, the following design guidelines should be adhered to: