I’m new to UE4 and high-level game engines at all. I would like to get some advice how to implement custom editor tools für grid based games.
I want to use procedural map generation based on semi-complete tiles. Think of a tile like a room/floor or something. The game is going to use a grid based movement system. Therefor the level designer need tools to mark which sections of the grid are accessible and which parts are not (something like a brush to easy mark grid sections as valid/not valid). There is some more work to do like placing objects, lights and wayspoints and so on. The data representation and details on how to implement this is not related to my question. I would like to get some more high level advice how to create such a tool at all. I could think of two ways:
- Write my own small Editor (UE4 + UMG) and create all stuff needed to place objects on the tiles and create a brush tool to mark accessible sections. Further i would need a browser save/load functions a few more game related categories for the tiles and so on. This would take a while but i’m pretty sure it would work.
But i rather would like to know if its advisable to integrate that functionality in the UE4 editor cause most of the object placing tools i need already existing there.
- The base model could just be an actor - all further models are placed as components or just more actors. Most of the tools we need already existing there. We could finally save the whole “tile” via “replace as composite blueprint” and our map generator can easily spawn objects based on those blueprints later on. But there is the problem with the grid-based tools. The grid should be something like a own actor or component of the base actor and should contain all data for the movement grid. In editor mode we need to mark the sections of the grid (think of it like mesh manipulation or something like that) with a somewhat comfortable tool and finally save these informations with the composite blueprints at the end. The grid informations has to stay in the blueprint (similar to the transformation data of the actos and so on).
What do you think is the best/quickest way to go? I would like to go the 2. way but i really dont know how to start without just start reading engine/editor source code (which is without starting point very unefficient i think).