Mother Forever Devlog


Mother Forever Devlog

Here you can find all the posts, from the beginning, of my incremental progress on my Unity project for making a procedurally generated MOTHER map simulator and exploration experience.

You can play around with the online version on Itch.io, which is periodically updated to keep up with the current developments, here:
MOTHER Forever Itch.io page



  • My brain has a problem of thinking of fun technical ideas and fixating on them till I’ve solved them for myself… at the expense of all the OTHER technical ideas that I kinda got to a good stopping point and just… stopped.

    At least, if it’s any consolation to my QTE system exploration, it’s still KINDA related!

    I’ve decided to start looking into what it would take to procedural generate a large (and/or infinite!) MOTHER map. I’m not sure what the end goal will be for gameplay, if any, but the main challenge for myself is to capture the feeling of exploring the world of MOTHER itself – a game both seemingly barren in it’s environment, but yet so full in it’s design that I feel myself wanting to step on every tile just to see a cliff I haven’t walked on on before.

    So far I’ve worked on getting the basics of the tile and character rendering down – There’s a lot of work to do in getting the data all set up, but I want to focus on making sure I have scalable systems before getting in the weeds of settling on tile packing.


  • Is it.. exactly? Like I wanted? No. I WANTED to use UI tookit to make buttons that displayed the color and HEX code, and when pressed, open up a small palette picker window. For some reason, making custom stuff like that that requires binding to serialized properties is NOT possible – or at least, not EASY – in the editor. HOWEVER, making a custom Palette attribute and a property drawer works in a similar way.

    using a single integer value, the palette attribute splits it into a luminosity value (left, 0-3) and a hue value (right, 0-15) that match up with the NTSC NES color palette. This leads to a much more intuitive way of picking colors over typing the index by text only.

    I’ve also done a bit to separate map, graphics, and character systems so I can build them out individually- I’ll need to make a proper unity based tool for making parcel data, since using tiled is pretty cumbersome at the moment. using UI toolkit for that should be a bit easier, since I can use window logic to deal with data binding.

    for now at least, each parcel has a desired attribute included so each individual object can have it’s own palette across all it’s tiles! After some finagling with color correction for my map shader, it’s looking a lot better – though I may need to search for better base palette data, as the one I have is a bit strong.


  • I originally thought that while wave function collapse might be a good way to handle paths and rivers in this project, it wasn’t going to be at all useful in generating everything else in the game. I decided to check how true that actually was by taking a full version of the game map I found online, and check what happens when you split the map into 64×64 pixel chunks. I was correct that rivers and paths are made up of prefab tiles, but I saw that basically, so was everything else!

    I’ve reworked the world generation system to accommodate for this – instead of arbitrary parcels created in tiled, I now can just build 8×8 tile parcels out of a template build a map parcel by parcel instead of trying to place things on a map and worry about laying one parcel over another, or checking for overlapping rects, etc. Immediately upon making a couple prefab parcels and adding them in, The world looks much more structured and similar to a real MOTHER map.

    I learned how to do custom asset importing in the process, to allow me to use Tiled files directly as assets!

    The next big step of course is to 1) create all the tiles from the game and 2) figure out the rules for tile adjacency for the wave function collapse from the original map.

    I’ll probably procrastinate on that to work on menu stuff for a bit, tho