Over the years, the IronMON community has seen an ever-increasing amount of new content that enhances the playing experience - Tracker updates, extensions, quality of life patches, and more have made IronMON more accessible and fun to play. This guide aims to provide guidance on things you can do to increase the interoperability of your project with existing community projects.
Most of the community projects are hosted on GitHub, we recommend you do the same. GitHub provides a familiar place for our community members to download your project, and provides a number of quality of life features that enhance the development experience, such as robust version control.
-
Include your source code in the repository! Having your source code available to everyone allows other developers to audit your code, creating a more trusted environment for everyone. Future community members can also take inspiration from your work and create something new!
-
Your release asset files should NOT contain version information in the file name.
- Use the tagging feature to denote which version a release is.
- GitHub automatically provides a download to the latest release at the static address of:
https://github.com/<username>/<repository>/releases/latest/download/<file>
The key here is keeping the name of<file>
consistent across releases. This makes it much easier to instantly grab the latest release of your project. For example, useMyExtension.lua
and notMyExtension_v1.0.lua
.
-
A good README is vital! Most of our community is not tech-savvy by developer standards and may have trouble finding the correct files to download your project! It is worth specifying the specific file to download from the Assets section. For example,
Ironmon-Tracker.zip
instead of"Download the latest release"
. Many users may end up downloading your source code when they intend to download your release!
There are a lot of community patches that add quality of life features or additional content to the game. Unfortunately, it is not easy to create a patch that is compatible with other community patches. Here are some tips:
-
Where possible, do not shift the address space of the game.
- This allows the tracker and other extensions to read from known addresses to get information from the game.
TODO: Add tips on how to do that (or how to determine where your new offsets would be).
-
Your release should include information on the base ROM that the patch is intended for, and the resulting ROM. Use SHA1 hashes to denote this. For example:
Intended for: ROM Pokemon Fire Red v1.1 (SHA1: dd5945db9b930750cb39d00c84da8571feebf417) ROM + Patch SHA1: 1484c6a6e02f13f4df6302dd2ac076d2c4044e67
If you know that your ROM is compatible with other community ROMs, please denote that as well, along with the correct SHA1 hash of the resulting functioning ROMs.
-
If you are aware of other popular patches that your patch IS or IS NOT compatible with, please document that so users know when they can and cannot use your patch.
Videos for YouTube or other content platforms are a great way to introduce others to IronMON!
- For links in the video description, use the static link to the latest version of a project when possible.
For example, DO NOT use
https://github.com/besteon/Ironmon-Tracker/releases/tag/v8.5.3
for linking to the Ironmon-Tracker. Instead, usehttps://github.com/besteon/Ironmon-Tracker/releases/latest
, which will always point to the latest version, so you don't have to update the video description in the future.