This last month I’ve been very busy working on the terrain, dungeons and 3d assets areas.
My first approach for terrain was doing something similar to Driftmoon’s terrain… but I had problems with transitions between textures. The solution I found was in this article … but nowadays we have not a texture artist to make masks…
So I decided going in other direction… I’m a great fan of Warcraft III, and I tried to get its terrain type… I found this article about wc3 tilesets layout and this article about auto-tiling… and I decided to implement it… this has been the result…
The algorithm itself isn’t hard to understand, you only need an array of flags where you store the active corner of a tile.
If you want to paint a tile you have to set the four tile flags and update it neithbours as you can watch in this picture:
We’re evaluating using full 3D or 2D tiles. The last two days of July I worked on an isometric map tile editor and tested a known program called Tiled… but I don’t like it because it doesn’t store tile elevation, so I decided to develop it…
As you can watch in the video, I store the tile elevation, that will allow me to position the tile in a 3D world, what’s really great!
It’s very soon yet and I’m testing the rendering methods… I´ve currently developed two renderers for 2D isometric tilesets, both 2D and 3D. The 2D renderer uses two triangles and the 3D renderer uses four to add depth to the sprite… though it needs much more improvements… Maybe I’ll have to work on them if we need to use some 2D isometric tilesets

At the moment, we’re using only 3d models…
That’s all folks…
Dungeon tileset comes from flare game. Isometric 64x64 tileset come from Open Game Art Warcraft 3 Tilesets




Yo, stumbled upon this page as I looked for wc3 tilesets for my own autotile implementation. I read about the wc3 format like you did and the thing that confused me was how the tiles were laid out. I realized that it was to make tile addition easier and I soon made my own “rulebook” of how they added based on their position in a 2d array.
After reading this only did I start to think of their position as binary numbers which makes things much easier. I don’t think you need to update the neighbors at all (unless you write to a different tile type) or use an array of flags. Just assign the tile values to an int, If you are adding tiles you can just use bitwise or, if you are subtracting do a bitwise and of the complement.
Hi, updating the neigbour tiles is needed for auto tiling… when you set a tile, you need to update the adjacent tiles to build the edges automatically.
And you are right.. you only need to use bitwise operations to build these indexes…
This is the struct where I store info about a tile:
I might be misunderstanding you. Are you sending painted information to a tile which then updates it’s neighbors? ( ex: send {1,2,4,8} to tile(x,y) then update 6 adjacent neighbors) If you are, my implementation just uses the “effective tile index”. I MSPainted a lovely picture should you be interested. http://i.imgur.com/3Tdwz.png
Either way whatever works works. Your editor is much more robust than mine, actually it’s pretty much what mine aspires to be. I’m just a dumb kid working on a project myself with practically no experience (I spent more time learning how to write a 60 line vertex fragment shader – just so I could layer the tiles in a shared atlas – than I spent writing the rudimentary tile system). At least I enjoy this type of work more than college.
We have a similar aproach, the results are the same, but our tiles have a different center.