4

If I Google for "seamless tile" I can find many great answers to create a single image that will seamlessly tile with itself. GIMP even has a filter that will automatically make an image seamless in 1 click, and it works surprisingly well.

But for my game, I would like not only 1 image to tile with itself. But I would like to have different variations of that tile, so the whole texture looks less boring. I want, for example, 10 different grass textures, 10 different dirt textures. Not only should grass01 tile seamlessly with grass01. But grass01 should tile seamlessly with grass02 and dirt08.

One great example of a game that does this is Starcraft. Even the original Starcraft from 1998 has this system where they have multiple grass textures that all seamlessly tile with each other. How do they do that?

VIBrunazo
  • 240
  • 1
  • 5
  • 2
    Isn't this question a duplicate of this one?: http://gamedev.stackexchange.com/questions/26152/how-can-i-design-good-continuous-seamless-tiles?rq=1 – House Aug 06 '14 at 18:48
  • No, I read that one before. But it's about single tiled images. I'm asking specifically about more than 1. And that one is more of a subjective artistic question of "how to make them look good". I'm asking a more technical question of "how do I actually make it work". – VIBrunazo Aug 06 '14 at 18:51
  • How to make it actually work, without concern for making it look good is very simple: Make all the edges of the tiles the same. Maybe you can be a bit more clear it exactly what you want. Since the way to do this well is a lot of hard work from artists. Or, as the other answers suggest, automatic blending. – House Aug 06 '14 at 18:52
  • But how to make all edges the same without leaving seams? – VIBrunazo Aug 06 '14 at 18:54
  • Seams are worrying about making it look good :) – House Aug 06 '14 at 19:02
  • Semantics :P Specifically about the other question. It's more about how to make each tile (for single tiles) look artistically good, assuming you already got past the seams problem. My question is how to get past the seams problem in the first place. And for multiple tiles, not a single one. – VIBrunazo Aug 06 '14 at 19:06
  • OK, I'm just not sure what the difference is between "the seams problem" and the question asked in the other post. Please update your question to include details as to exactly what problem you're trying to solve. Otherwise I'd still argue this is the same as the other question (since the other question is not really about one tile). Have you read through the other answers? Not just the accepted one. – House Aug 06 '14 at 19:16
  • 1
    You should have a look at Wang tiles, metioned for example here. But I have to agree this IS a duplicate, cant imagine anyone didnt ask this before. – wondra Aug 06 '14 at 19:25
  • Wang tiles are a great solution, thanks for that! (You should post that as an answer, this was exactly what I was looking for) If there's a duplicate, please point me to one, I certainly spent a lot of time searching. Because the question Byte56 pointed is certainly very different (about single tiles, not about multiples). – VIBrunazo Aug 06 '14 at 20:50
  • I once used the following approach: I created the floor with random connecting gras tiles. On top of them i shaded dirt, rocky gras, sandy gras and so on. I determined which of them will be shaded with a simplex noise. I generated a 2d noise-heightmap for the area i wanted to shade and on the hight i decied weather it get shaded with what and how high the opacity will be. The "looks natural" effect comes with simplex noise – Ello Aug 07 '14 at 14:31

1 Answers1

6

Basically, I think what you do is first of all create a tile for each of your terrain types that seamlessly tiles with itself. As you said there are many tutorials available on how to do this.

Once you have those tiles, you can draw variants as well as transitions between different types of terrain by modifying copies of them. The only thing you need to make sure to avoid is changing the borders of the image, since you need those to seamlessly connect to neighbouring tiles.

Of course, when you're drawing transition tiles, you may start with a tile that has half of it filled with each type of terrain and then you need to make it look good. In this process you'll often end up modifying the edges a bit anyway where the terrains meet up. However, transition tiles are quite specific cases so you only need to make sure these sides still connect seamlessly to only a handful of other tiles.

  • 2
    I accepted this answer as it's very useful. But for future reference, on the comments to the question, wondra pointed to an even better solution using Wang Tiles. The advantage of Wang Tiles over the solution posted by Thorbjørn, is that Wang Tiles will have varying edges instead of repeating them. Looking it up I found this article by the devs of Path of Exile that explains how to make the textures: http://www.pathofexile.com/forum/view-thread/55091 – VIBrunazo Aug 07 '14 at 01:35