On the Subject of Making a Great Module
There are many things to do and many things to avoid while making a new module. Here is a list of tips to consider when developing a module.
1. Begin With a Working Manual
This is the most important part of developing a module. Make sure that you have a solid idea and a clear description of how each part of the module will work. This will allow you (or someone who is developing the module for you) to properly implement the module as intended.
2. Don’t be Afraid to Change
Often when developing a module, you realize that an idea you had or part of your manual is impossible (or at least very difficult) to implement. Instead of wasting your time trying to find a solution to the problem which is out of your skill set, consider changing your idea to better suit the constraints. You don’t always have to change your idea, but remember that it might be necessary.
3. Playtest, Playtest, Playtest
Always playtest your module. Any time you make a significant change, solve the module a few times to try and catch some bugs. Even if you don’t make a significant change, it never hurts to try solving it again. Also remember to have several people playtest your module before releasing it. In addition, if you notice strange behaviour, do not leave it. Try to figure out what is causing it.
4. Don’t Skimp on Your Logging
It is always a good idea to log too much information rather than too little. It can be nearly impossible to spot what is causing a bug with insufficient logging, so it is better to err on the side of caution. At the minimum, your module must log:
- All the information visible on the module that the players need to solve it.
- The intended solution. If the solution depends on something that can change (e.g. strike count, solve count), log all possible solutions for each possible situation.
- If the solution path is complicated, include all relevant steps of the calculation.