Tile testing tool

So I have this proposal for a new tool to bounce off of the community here. The basic gist of the feature would be to enable people to quickly and easily test how well one or multiple tiles tile together, and to make editing a tile sheet a lot easier than it currently is. This is all based on my own use, but I’m sure I’m not alone in thinking that a tool like this would be mighty useful for people doing game development or working on tilesets.

This tool, once used, would convert the ‘Preview’ window into a randomly set display of tiles of variable width and height (in tiles). The tool itself would allow users to set a specific width and height for tiles (default to grid width / height). Mousing over the active image would display a rectangle / square of the desired tile size. Clicking within the image would set the currently highlighted area as a ‘tile’ and leave a highlighted border around that area. Multiple areas could be selected or deselected by simply clicking.

The preview window would update by creating a user-defined width and height of tiles, where each tile is a random selection from any of the highlighted areas in the image. If one area of the image is selected, then the one tile repeats X number of times in the x / y direction. If two areas of the images are selected, then it would create a random jumble of those two sections across the x / y of the preview window, etc.

My reasoning for this is that I like to work on tilesets, and it becomes somewhat frustrating to have to keep switching back and forth between multiple documents and managing multiple pallets when trying to work on more complicated tiles.It would be nice to have one large image and pallet to work with, yet still be able to see each tile in a ‘tiled’ sort of mode, and also be able to see how two or more tiles will transition between each other.

In the ‘options’ bar for this tool, I would include the aforementioned ‘width’ and ‘height’ of the selections (keeping them all the same would be expected, and defaulting to the grid size would be an obvious choice), and then a slider to control how many tiles to display in the x / y direction, and then a button that would refresh the preview window with a new, random layout of the tiles selected. The ‘selections’ need only select the upper-left coordinate and then clip each ‘tile’ to the resulting rectangle once the width / height is applied. There are some corner cases to consider (placing of selections near the right / bottom edges of images and how to prevent that from extending the bounds of the image) but I think some simple logic should be able to deal with that.

It would also be very nice if this tool was persistent (like a selection), so that one could keep the preview image displaying the randomly created tile output while further painting, so you could see how your painting would affect the tiling of those tiles and their transitions into each other.

If anyone is confused, I can attempt to create an animated / visualized example of this idea. I’ve got a teeny bit of experience with C / C++, and I may take a stab at downloading / compiling it myself to see if maybe I would be able to implement this idea myself. Not sure if I’d be able to pull it off, tho.