The world isn’t flat, it’s square, part 2October 18th, 2007 by admin
Well, I’m stumped. After what seems like days of pondering, I can’t think of a way to create the illusion of a massive world using one square terrain. Sure, the terrain might look fantastic when you’re near the middle of it; the problem arises when you approach the edge. What looks like a vast mountain range head-on just looks silly from the side.
- Use a truly huge terrain. This option is quite attractive, but I pause because, while there seems to be no upper limit to the size of terrains Unity will let you try to create, there is certainly a limit to how large a terrain most computers will handle without choking (I’ve hung Unity more than once by trying to create too large a terrain). It is therefore a requirement to divide things up into sections.
- Hide the edges of the terrain. One obvious way to do this is with water. Indeed, islands are probably the ideal use of square terrains. But I’m not creating a group of islands Myst style, I’m creating continents. Another option is the inverse of islands: valleys. If each area of the world is surrounded by impassable cliffs, the player will never see the edges. That might work, but what if you discover some lofty perch that lets you see for miles? You would see the edge of the world, and beyond that, nothing. It would be very disconcerting.
- Build a backdrop. Hiding the edges might work, but a world full of squarish islands and valleys isn’t very appealing to me. Besides, how can you let the player travel between areas without letting them approach some sort of boundary? Another option, then, is to acknowledge the edge of the map and just use a flat image that looks like it carries on into a new area. The illusion might be convincing enough for the player to go with it. Final Fantasy XII uses a technique like this to divide many of its zones. Unfortunately, I’m not confident in my ability to paint a backdrop that gives the necessary sense of depth.
- Something in between. Or I could use some mixture of the first two options. I could hide the edges by building a terrain that is considerably larger than what I need for an area but not so big that it would slow things down. Then I could focus the action of that area near the middle of the terrain, and the functional boundary between zones could exist some distance away from the terrain’s actual edge. This could certainly work, but it seems like an inefficient use of the computer’s memory and, frankly, like a waste of space.
That’s a lot of words to say that I don’t know what to do. If anyone has ideas, please let me know.
Part of the trouble, of course, is that I’m trying to force a tool to do something it wasn’t really built to do. Probably I should take a step back and come up with a creative solution that will work within the boundaries I’ve got, instead of trying to explore the edges all the time.