BIG map

How would one go about making a big map that would take roughly 40 minutes for a character to fully walk from side to side. I just need a few pointers on what to adjust my settings to and what not.

First Off, LOD everything,

Another point could be do not show distant objects.
And if you use texture with pixmaps in DDS format, you could get better performance showing very distant objects

@BluePrintRandom How would one LOD something? Thanks :slight_smile:

@Lokky Thanks for the tips :slight_smile:

if your area is larger than 10.000 units, expect some inacurracies with object positions. Very noticable wobbling of moving objects starts at 100.000 units. http://youtu.be/9F5WMJAt_C4?t=1m40s

LOD is in 2.70 test builds

also, does scale down the objects make sense if anything past 10,000 units moves?

just shrink it all?

First off, think about why you want a big map.

Blender game engine has limits, and within those limits you can make some great games, but if you try to do too much it can get slow and buggy. Also what are you going to fill the map with? Making art assets takes up about 50% of my time, but I use optimized work flows and a few helpers such as scripts to help speed things up. But still I wouldn’t want to try building a map that takes 40 minutes to walk across. It’d take years to model (even low poly and single texture) enough stuff to make every one of those 40 minutes interesting.

On the other hand large maps are possible, and with a large team of designers you could fill them up with interesting stuff or if your game mechanics are interesting enough or the fast pace of play means that you’re moving too fast to notice, just a few trees boulders and houses would be enough to make it look like a real place but it’ll be difficult to get a good frame rate if it’s too big.

So then the first thing to do is to think of ways to make the game run smoothly. Splitting the map up in to areas can help, like in the early GTA games. If not, you could try cutting up the ground mesh into squares so blender can crop from view squares which are behind the player, or which are too far away to be seen. Using Level of Detail as Blueprint Random suggested would be good. I think the newer versions of Blender have a kind of LOD built in, but if not, there are several LOD scripts available on the forums. In my mech game (http://www.youtube.com/watch?v=gZponhwAMR0) I just prerendered images of every tree, rock and building and had them display on a flat plane set to billboard when more than 300m away, you really couldn’t tell the difference. Also my mechs were modeled at two different levels of detail, one at 300 polys and one at 1000 polys and I switched the meshes when far away. Blender has lots of ways of making itself run faster, take a look around the forums, and you’ll find some info.

Looking at your other posts on the forum I noticed you are making a temple run type game. In that case another thing you might do is model the game as “paths” where the player is kept to a single route through the terrain. In that case instead of a 40x40KM grid you could imagine your path as a 40x1km path. For an example look at the early “road rash” games http://www.youtube.com/watch?v=UoH8x1mjW8o http://www.youtube.com/watch?v=xxeKDAPgPKE where the levels were really long but narrow with a sky box showing the background details. On the videos you can also see the LOD technique I was talking about. When a tree is far away it is just a picture, then when it gets close it is replaced by a model. Road Rash 3d was one of the first games to do this.

Anyway, whatever size of map you choose, I wish you luck.

Scaling does not help. The issue is the floating point values for the object posiitons. When you scale down by 10, you need 10 times more accurate position values and thus your limit is 10 times smaller.
You can circumvent with merhods like terrain chunks or cells like bethesda games or other open world games do it.

Yes, most “run type” games have a bunch of road sections which are added to your path as you continue. When you get to the end of one section another one is added further down the road and one youve already passed is removed. So only two or three sections might be present at any one time.

May first though:

  • add a default plane (size of 2x2)
  • place the character in the middle (0,0,0)
  • let the character walk with a speed of 0.0004166 (1.5BU/hour = 0.025BU/min = 0.0004166/sec )

:smiley:

The others are right … split the area into several junks. Then show the current junk only. LOD will help.

Something i noticed while playing “The Last Of Us” (PS3). The playing area (In some parts of the game) was lower than the preceding. So the player had to jump down a retaining wall, for example, (or climb down stairs, or, walk down a steep hillside, whatever) to get to the next playing area etc. So that when the player looked behind him, he could only see the retaining wall, (or whatever) and some larger objects like buildings, etc. So everything that could not be seen behind the player could be removed by add object - end object. I use a plane with a collision sensor to send a message to remove the objects that can’t be seen. But it gets complicated fast. And the player can’t go back.

I seriously laughed just because it was all like "Make a default plane and make a little guy 0,0,0 and let the little guy run around xD

If you want a really big map procedual generation is the way to go. But it’s a difficult thing to do at first. You’ll need a lot of scripting to get it to work well.