About 3D Tile Maps with Advanced Features (RTS Terrain)

I am currently exploring 3d Tile Maps and it seems that there is barely anything out there. Things that I am currently unsure how to define / handle are things like cliff levels and ramps. My current prototype uses cliff levels and pathing connections defined on the corners while tile type and other things are defined at the center (2 different 2d arrays holding that data).
While that kind of works so far its quite the mess to keep track of especially when the tiles are filled in using conditional matching that includes rotating and offsetting. Even more messy is the tile creation since it often is needed to have tiles that cover more than just 1 cliff level offsets (eg: ramps allow only 1 cliff difference, real cliffs can allow more) and the sheer amount you simply need to cover all possibilities

I mainly went down that route over tile center only data (like the 2d tilemap package) is because pretty much every commercial game that uses some kind of this approach (Warcraft 3, Starcraft 2, Dota 2, Path of Exile, …)

example of a Dota 2 tile

and PoE that takes it even further with larger than 1x1 tiles:

has anyone experimented with such kind of terrain and what did you learn / come up with when working on it?

I’ve used this stuff both in 2D and to a lesser degree in 3D.

And yes, the more axes of freedom you have, the harder it is to write code that generates a reasonable matching of these tiles.

Another approach involves a combination of large pre-authored chunks consisting of many tiles, plus just single small tiles. For instance, you might have a big castle 10x10 tiles in size, and emplace that all at once, then fill in tiles around the edge, connecting a line of road tiles to the front door, etc.

Another example might be a long bridge that you can use to span chasms in the ground, rivers, etc.

There are many different algorithms for this too, but they definitely take some coding and tweaking to get them generating satisfactory results.

i do not need any large tiles anytime soon (or ever). but they are more or less just another layer of complexity ontop of the normal 3d tiles. i mostly need it for fast map iteration times kinda like this antiqueblandallosaurus

are you talking about any specific algorithms i can look at?

Without knowing anything about your world, it really just comes down to finding good discussions about how other procgen levels are created in games that are similar to yours.

since i’m currently just prototyping, i’m open for anything.

my current prototype has a list of tilesets that then again contains many tiles with relative corner data (cliff height, is path, …) and when creating the map i test every tile multiple times (rotation etc) for a match and insert it. i also have tile centric data such as tile set index and variation index that i currently don’t properly integrate

How exactly do you define 3D tiles? I’ve done plenty of research into isometric art and the like and I could point you in the right direction with regards to and often what happens is you have a combination of 2D backgrounds and 3D characters not the other way around. Could it be the vocabulary?

You’d be surprised how often that limits you when it comes to programming and art as this is the first I’ve heard of 3D tilemaps. You can do a 3D scene and then have a grid laid out on top of it mathematically I guess but what you’re looking at seems to me to be more about a modular setup or cube based mesh generation like minecraft.

This is just me having a glanced at it but it looks to me like they’ve got a 3D scene and placed a grid over it which is the sort of thing that Xcom 2 seem to have done. Everything is still 3D, they’ve just translated that to a grid and reading data off that grid.

the thing is i do not want to make a 3d scene. i’m not an artist nor level designer so this makes it easier for me. it also allows me to procedurally generate levels in the future. since my goal is to make a rts like terrain 3d tiles are a perfect fit

isometric 2d tile maps are basically the predecessor of 3d tile maps in rts games. not every 3d rts game went in that direction however

It seems to me like you’re going about this in a very unnecessarily elaborate way when if you just learned some basic 3D skills you’d save yourself a lot of trouble. Kind of reminds me of people who want to do games development but come up with ridiculous ways to avoid doing programming. Unfortunately, there’s no getting around the fact if you want to do anything decent you need to learn both or hire someone, otherwise you’ll frequently find yourself limited.

i mean obviously i will have to do some modeling but i can move some of that work over to programming. as i said i already have a somewhat working prototype its just very messy to work with and extend with more features. that’s why i’m asking for some advice on possible structure or workflow optimizations

Hey, bit of a necro, but if you’re still working on this you might want to have a look at XCom 2’s plot and parcel system. Currently working on a similar system for a turn based tactics system using base 8 for plots, smallest is 8x8 tiles, with varying larger plot sizes. Here’s a good video on the system,
https://www.youtube.com/watch?v=5jrq5rDI4dk

While we’re necroing, thanks for the XCom video… and I’ll throw in my own MakeGeo project which has a random smattering of procgen in it, mostly just my mad wild scribblings of code here and there.

MakeGeo is presently hosted at these locations:

https://bitbucket.org/kurtdekker/makegeo

https://github.com/kurtdekker/makegeo