- Home /
Terrain Size best practices and some sizing questions
Hello,
I am currently making a terrain/map and I am aiming at having the map around 80 km squared. I had originally placed multiple terrains of 20,000 by 20,000. After doing some research into height maps and so on I saw that unity usually places terrains at a default of 2000 by 2000.
I understand scaling and I am working on the premise of 1 unity unit = 1 meter. To achieve this, by my wonky maths I would need around 40 x 2000 by 2000 tiles to make a map of 80 Km squared. I am grouping these to an empty game object to keep it neat. I know that I don't want much bigger due to floating point errors.
As I keep adding these tiles I am thinking 'is this the best way to be doing this?' and spent some time researching to no conclusive answer.
I am making one large height-map in an external art program and then slicing that up and refining the individual height-maps before importing. I am going to use stitchscape to sort out the seams. But I am now realizing how long doing this all 40 times may take. I am happy to do so if that's the answer but I would like some advice.
My questions are really, is it okay to use terrains with a terrain width and length of 20,000? Or is it better to have 40 x 2000 by 2000 tiles and use those? Are there any best practices I should look at or know in this instance?
I aim for the game to be open world, I don't need very high resolution because the art style I'd like works around that and there's no very fast method of travel that I have planned yet. I'd really appreciate any advice.
Thank you for your time!
Could you elaborate on the floating point errors and when it becomes a problem? Thank you
Answer by TheWookie82 · Jun 22, 2017 at 03:14 PM
I have the same question. I am running into fps issues on a terrain the size of 14,000 x 14,000, the grass seems to be droping the fps to 10fps LOL
I am also looking for an answer to this! @TheWookie82... you might be able to resolve your grass issue by messing with some of the detail settings if you haven't already tried that.
@Vojoux did you ever find an answer? I'm just starting on a large open world map, and I'd love to know what you figured out or if you chose one method over the other/how it went.
Answer by footballhono52 · Oct 28, 2017 at 11:19 PM
I'm not an expert on this but have some guidance for this issue. A map size as large as 20,000 x 20,000 would most likely have to be broken up into seperate tiles. As @TheWookie82 pointed out rendering just the grass across the whole terrain has significantly reduced performance and then adding more objects just makes it worse. There are 2 solutions to this in my opinion: Tile based rendering and object based rendering
Tile based rendering you have all your objects placed on a tile and when your player gets close enough to that tile, you enable rendering of that tile and disable the furthest away active tile. This would require you to stitch seams and spend a lot of time designing each tile. But with the method, you could theoretically create a map of any size as only portions are being shown at a time.
Object based rendering would have you create 1 terrain of 20,000x20,000 and create layers of detail that would be tiled and placed ontop of the terrain. So your realistic textures and distortion would be a seperate tile layer on top of your terrain. This works in the same fashion as tile based rendering as you would increase the level of detail the closer you get. Same goes for objects, you could place static objects or define dynamic content only in specific locations of the terrain and render them the closer they get. The only limitation with this method is at some point there would be a limit of the size of the terrain. You'd have to test how different graphics cards handle this, how big of memory you need ect to define your "depth of vision" to render the objects.
So overall I would say the tile based rendering method is the easiest as you'll run into less problems the more you add