We’ve previously blogged about some of the levels that we’ve created, but how do we approach level editing for Project Giants? A lot of structural assumptions were made for the level to function properly, and level creators may not necessarily have the experience using Unity. Luckily, Unity’s powerful editor scripting allows us to create custom tools and editors to make level creation an easy and joyous task.

We’ve decided early on the development cycle that any standalone tile entity in the game should be a prefab. Doing so immediately allows us to create a “prefab painter” type editor that will enable level creators to place tile entities into the levels and will “just work” out of the box.



Levels in Project Giants are tile based. As a result, paths need to be placed on “grid positions,” and level creators needs to be properly informed of that. For the level editor, when the tile placement mode is selected, we draw a square at the position of the mouse in the scene view, and will snap at grid positions to convey the rigidity, but also gives a great preview of where the tile will be placed on the level.

Left click to place a tile at an empty grid position, and right click on an existing tile to remove it. Holding either mouse buttons and dragging will perform the corresponding action at each grid position as long as the button is still held down. The result is an interface that is easy to use and understand.

What about other features in the game? A natural extension of the point and click interface is to show a context menu at the path tile to place these features on.

The context menu triggers outside of tile placement mode, and contains options to add and delete available gameplay features that are placeable on the tile, and edit those that allow additional configuration. Not having to manually hunt down the game object in the scene to perform these actions make level customization that much more convenient.

In cases where it is inevitable to find the feature to configure, specifically when dealing with lists/arrays of items in the inspector, finding the correct game object to drag-drop into the array entry can be inconvenient. We’ve created an interface where each list entry can be assigned a value from a dropdown menu, and can be rearranged by a click of a button.



Not only does it make it easier for level creators to use, it reduces any human errors that may occur during the process.

While we’ve only scratched the surface of what Unity’s editor scripting is capable of, with the current state of the level editor, level creation has been a simple and fun task to do.

— Filbert (Lead Developer)