When using a powerful set of tools like those provided within Unreal Engine 4 it’s not a bad idea to keep any bespoke tools you may need to use within the engine as well. The idea being that when you’re creating your game and, say, you need to add or adjust a new puzzle, in my case, you simply fire up your puzzle creator/editor within the engine. No need to boot up another app, no need to load another project, bam, right there and then.
For my games I need specific tools to create the logic-puzzles. Since Piczle Colors I have tried to keep them in-engine and over time I have come to realise a few things that help me keeping things running smoothly.
Design your tool as if someone else has to use them. This is a little obvious if you’re working in a larger team, but when solo-devving it is easy to forget that. By focusing your design from a user’s perspective you’ll end up making it a better experience for yourself as well when you use the tool. Plus, if you succeed in creating a good interface you may even consider giving your players access to it as well.
When play-testing your game it is imperative you can switch easily and quickly to the editor to make any changes or fixes that you may have come across. Try to avoid having to stop your run, load a new project or level; try to have it pop up with an in-game button press and allow it to manipulate and save your data real-time.
Another advantage of creating a robust editor within your engine is that it offers you the opportunity to try things out, test ideas and build systems before you create them in-game. For example, if you have an idea about input, your editor can be a playground to test it. Before you build an input system for your entire game, test it out in your editor first, figure out the issues and quirks, fix them and be ready for a perfectly thought-out and designed system for when you start developing the game itself.
Visualise your data. Your game data, especially when you’re dealing with something like logic-puzzles, is an obtuse sea of esoteric numbers. However, in the editor you are free to add as many overlays and visualisations as you need. What is easier when creating a logic-puzzle? To manipulate a series of 0s and 1s or to draw a block on a grid? Keep your editor readable, easy to use and understand as you manipulate your game’s data.
Don’t forget upkeep, don’t ignore fixing or adding features. As you develop your game you will definitely come across issues you hadn’t considered before. Rather than adding in a few hacks to deal with or visualise those issues, take a little time to adjust your in-engine editor to handle or fix them instead. In the long run it will save you a lot of time, even if it is fairly late in the development cycle; you will always underestimate how much time you lose with a badly thought-out hack as opposed to a properly implemented fix.
Your tools are the most important aspect of your game’s development and your own sanity. Luckily Unreal Engine 4’s editor is very powerful and visual. Any data editor, tool or visualiser you need to build yourself should be as easy to use and feature-rich. And time spent creating good tools is always recouped during development thanks to easier and quicker iteration and testing.