A downloadable tool for Windows, macOS, and Linux

Download NowName your own price

Summary:

Noted GML will automatically generate JSDoc for GameMaker functions.

Code documentation is often overlooked when programming games because it's tedious and doesn't progress the project. However, documentation can prevent a lot of confusion and headache, especially on larger projects. It can also save you several hours of tedium from not having to consistently open up functions you've written months ago to remember what they do or what their arguments are for. So I created Noted GML to reduce tedium and to (hopefully) prevent procrastination of documentation.


Features:

  • Simple and speedy automated generation of JSDoc for GameMaker. Just copy and paste your function definition into the "input" textbox and Noted GML will take care of the rest!
  • Generate additional JSDoc for constructor methods (i.e. if you declare a function inside of a constructor, it can generate additional JSDoc for that).
  • Can generate GMEdit's '@hint' tags.
  • Options to automatically remove prefixes from function arguments (e.g. '_arg' -> 'arg')


Limitations:

  • Noted GML is designed to parse one function declaration at a time (don't put off documentation folks!). However, there is a work around if you declare a 'dummy' constructor function and then put multiple functions inside of it as if they were methods, then turn off the 'Append function name' option. Keep in mind that it will not generate JSDoc for any sub-methods of constructor functions declared inside the 'dummy' constructor.
  • Noted GML assumes that the function you paste is a valid GameMaker function. Although it will give some leeway if you miss something like an end bracket or semi-colon for example, you may get odd results if you paste an invalid function. So make sure your function works before pasting it into Noted GML!
  • Since GameMaker is a dynamically typed language, it is difficult to infer type hints for return values or args based on the function definition alone (e.g. '@returns {String}' or @arg {Bool}). I might figure out something in a future update but, for now, this will be something you have to type yourself. However, if you use GMEdit and add a type hint directly into your arg definitions (e.g. 'function(arg:bool){}') it will keep those hints when generating '@hint' tags.
  • Descriptions will not be automatically generated. There is no feasible way of doing this except for employing an AI language model like ChatGPT. I did look into adding ChatGPT into this tool, but, alas, I'm too broke to afford consistent API use right now :(


Additional Notes:

  • I attempted to build a web version of the tool to work on Itch.io but ran into some issues getting it to run outside of building it in VSCode. I'll keep investigating, but the desktop version is faster anyway so I recommend that!
  • Supposedly this build should work on Mac and Linux as well, but I have not been able to test that. So please let me know if you encounter any issues!


If you have any thoughts or requests feel free to leave a comment or review! Also, if you enjoyed the tool maybe consider donating to the project (especially if you want me to add AI generated descriptions in the future). It would really help me out with development of not just this tool, but other tools I'll be releasing in the near-future :)

Cheers and happy game-making!

Download

Download NowName your own price

Click download now to get access to the following files:

Noted-GML_v1.0.0_desktop.zip 53 MB

Leave a comment

Log in with itch.io to leave a comment.