Hexagonal map without staggering


It’s great to see Tiled picking up pace again. Thank you for the new hex map feature!

I do want to make a suggestion for making a hex map without staggering, so that it can act like a “cookie cutter” to cut a whole image into tiles, like the orthogonal map does. This is useful, of course, in taking an image or map that already has a hex grid on it, so all that needs to be done is to adjust offsets and stuff, etc.

Also, if a tileset is taken from a whole image, wouldn’t it be nicer if all regions match up so that they can be reused together, instead of manually taking each hex tile from a region to recreate it? I notice that when I take a region from a tileset and drop it on the map, it immediately gets staggered, which ruins it, and playing around with tileside length, offsets, and axes, can’t restore it.

I don’t know how hard it would be to implement, but I feel that it’s a quick hit :smile: Is it?


Good point. I noticed that recently, trying to place a large house consisting of multiple iso tiles. It ended up being a total mess on the map when selected as a whole from the tilesets. It makes working with large objects on the tilesets very tedious.

Haven’t tried this, but have you tried creating such an object on the map, then copy&paste it from the map itself? Does it get messed up in that case as well? If not that would seem like a suitable workaround, ie have a temp map or layer where you construct the complex objects tile-by-tile, then copy & paste them as a whole from that map/layer.

If you have an object larger than a tile, you could alternatively import this image separately to avoid it being cut into pieces, making placement easier. This would be commonly done for semi-large objects like trees and bushes.

When it comes to houses, it is quite common to build them up from smaller pieces to allow for variations in size, room layout and small visual details. In this case, it is not possible to have those pieces align on the tileset since their graphics would overlap, which would stand in the way of using the tiles in any flexible way.

That said, there is a use-case for cutting actual isometric or hexagonal tiles from a tileset image. The approach would work for ground textures as well as small and large objects that do not require other objects to go behind them (though even in this case, sometimes another layer could be used to facilitate that). And indeed, it would make both the development of the tileset as well as the use of the tileset much more comfortable. So eventually, this is something I’d like to support.

This approach usually works, and certainly works for the standard isometric map. For staggered maps though, copying regions is currently not staggering-aware and as such any multi-tile object will get messed up when moved by odd distances along the staggering axis.

Thank you for the quick reply. I’m sorry for only getting to this now.

I haven’t thought of that, but Bjorn says it would still end up staggered? But thanks anyway!

I’m currently writing a rather involved level loader, but as soon as I have the time, I will try the importation approach. It does mean extra steps, however, if it works. My application wants to support fan-made maps from pre-made images they want to use (legal ones of course) that may grids drawn on them, or display tiled borders e.g. square, hex, iso.

Since it’s end-users, not devs, who get to work on a map, from experience, most aren’t particular about the intricacies mentioned here i.e. z-ordering, “seamlessness” of the tileset. Give them a “cut-up” image with just one click, and they’re happy to tinker around from there.

The idea is that users will work in Tiled to define the tiles, properties etc, once “cut”, then we’ll take it from there. Iso and Square already work well from Tiled for this work process, having hex maps completes the cake, so to speak.

All in all, love the new developments and discussions. Keep up the good work!

PS I really like your forum engine. I’m sure I’ve seen/used it before. May I know what it is?

Right, it would still be staggered but the tile placement brush could be made smarter so that it would adjust for the staggering. Alternatively, I could add an “Isometric Hexagonal” map renderer, which would be like the isometric (so not staggered, but diamond shaped) but have hexagonal tiles. But in both cases, allowing direct selection from the tileset of multi-tile regions would need a different tileset cutter.

This recent activity is really mostly because I can afford to spend more time on Tiled thanks to the support I receive on Patreon. With my full job and two kids I’d otherwise just be frustrated with my inbox full of Tiled-related feature requests and questions.

Sure, it’s Discourse. It’s pretty sweet and quite low-maintenance since it’s hosted via Docker and has automatic backup and update features. I put it on a DigitalOcean droplet for $10/month. If you decide to set one up on DigitalOcean as well, be sure to use my URL, which would sponsor 2.5 months of forum hosting. :-)

We will definitely support your development soon after our application’s launch. Moreover, you will likely see an increase of users and patrons from users of our app, as well, as Tiled will be integral to the work process. I can’t give much details yet, but you will be hearing a lot from us soon :smile:

Ah yes, Discourse! I knew I bookmarked that somewhere sometime last year…and named it “Disqus” So wrong >.<

Sure, if we decide on DigitalOcean (not sure right now, as we planned sometime ago to go with Bitmani on GCE), we will gladly name you as the one who made the referral.