logo of the comfy engine Comfy

Contributing

Comfy is still very early in its lifecycle. While it has been used to make games, only a few people have used it or even seen the source code so far. The best way to contribute is to use comfy and report any issues you find.

The codebase is not clean by any means. It is not the goal of comfy to be the most beautiful codebase out there. Many things may be suboptimal, and for some of them it makes a lot of sense to have an open discussion about it. But pull requests which just reformat the code or move things around or do some kind of re-organization will likely be rejected unless there was a prior discussion.

If you find anything that does not work as expected please do open an issue. Comfy is meant to be a productive and ergonomic companion for those who want to make games.

If something is not ergonomic or you have an idea for how it could be more ergonomic without sacrificing too much, please open an issue.

If you really just want to make a pull request to contribute something without a prior discussion, the best place are the examples. Both simple and advanced examples, as well as small example games, are welcome.

Comfy is not currently aiming for heavy documentation coverage due to the rapid pace of development. Examples are preferred to documentation as they're easier to fix when APIs change. Most things should be self-explanatory.

If you'd like to chat about anything comfy related, join our discord server.

It should again be noted that comfy's codebase is not the cleanest code you've ever seen. There is a lot of low hanging fruit and areas for improvement, and while we're very happy and enthusiastic about improving it, we also want to remain pragmatic about changes. Changes which are motivated by real world usages in game are very likely to be incorporated, but changes which are purely cosmetic, or appeal to abstract values without any pragmatic grounding might get rejected. An example of this would be performance improvements that sacrifice ergonomics, and that don't show up on a profiler.