Code Modding Progress

While getting the Patreon rolling, I’ve also been planning out code mods. Specifically I’ve been reading up on Python’s import machinery and different approaches to monkey patching. Monkey patching is a much-derided programming technique where you rewrite or add to portions of the code while the program is running. If this sounds crazy, it sorta is, but it’d really give modders the run of the place. It’d be a good fall back for situations where more formal extension hooks don’t exist.

I’m looking to give modders @before, @after, and @instead decorators that would let them hook their own functions into existing methods, but reversibly and in the load order of the mod list. I’d publish a list of recommended places to override, of course.

I’ve also been preparing the data definitions (character types, transformations, all that stuff) to make it easier to turn them into data that I can load from files. This is going to benefit both modders and myself because it’ll give me a more convenient way to maintain both a patreon version and a non-patreon version.

2 thoughts on “Code Modding Progress

  1. ot-0tee says:

    Sorry for the complete OT compared to the blog post, but are we getting a mobile port? Or at least a native port to Linux and MacOS

    • jackoekaki says:

      Sorry for the late reply, not sure why I didn’t get a notification email for this. So:

      – Mobile port: Probably not ever. The native layer I’m using doesn’t support it and it’s a prohibitive amount of work to get the game working exclusively as client-side HTML.
      – Linux: No plans either, but the Windows version works great in Proton and OK in Wine, I’m told.
      – Intel MacOS: I plan to make a port to this, but I haven’t scheduled it yet. I won’t be working on it until I’ve got internationalisation done at least, so it’ll be a while. Your best bet is to follow me on Itch and I’ll do an announcement there when it’s ready.
      – ARM MacOS: No plans. There’s just no way I can break even on buying that hardware.

Leave a Reply

Your email address will not be published. Required fields are marked *

Anti-Spam Quiz: