Jump to content

Large Map Streaming?


Wysardry
 Share

Recommended Posts

As large maps can suffer from floating point accuracy problems, are there any plans to add some sort of streaming system to terrain maps, where the world origin is reset to zero when the player enters a new section/zone, as in Unreal Engine 4?

CryEngine was also going to have a similar feature added (called segmented worlds), but I'm not sure if that ever happened for public releases.

Populating such large areas should be much easier - even for smaller teams - with Leadwerk's procedural vegetation system.

  • Upvote 1
Link to comment
Share on other sites

I think the main reason this hasn't been considered is nobody has produced a game needing anything close to this. 4096 map is really huge in size. Often times developers can split up their game maps into different maps without sacraficing game play.

Filling content for large maps requires a ton of time.

Link to comment
Share on other sites

18 minutes ago, martyj said:

I think the main reason this hasn't been considered is nobody has produced a game needing anything close to this. 4096 map is really huge in size. Often times developers can split up their game maps into different maps without sacraficing game play.

Filling content for large maps requires a ton of time.

Unless your game is multiplayer where the users fill it out for you. This is such a double edged sword. Since Le doesn't do this nobody is going to try. With the trend for online survival games in huge procedural worlds where players build structures these kinds of questions are going to keep coming and be more relevant over time.

Link to comment
Share on other sites

It really depends on the type of game you are making whether the current map size limit would be big enough or if you would need to fill every square metre with hand placed content.

If the player had access to fast transport - such as a car racing or flight sim game - they may be able to cross even an 8km wide map quite quickly, yet they might not expect areas away from the main road or flight path to be filled with interesting stuff. For these types of games, loading screens would be a distraction.

It's also possible that the purpose of the game is for the player to place interesting content in undeveloped areas, such as with games like Transport Tycoon (with a more realistic scale). In that type of game, this engine's procedural tree and rock placement would drastically reduce the development time and memory footprint.

There are quite a few third party tools for creating huge terrains (some planet sized) and/or generating procedural content, so there must be an interest in making larger games. The main reason we don't hear of many being attempted is that so few lower priced game engines can handle them.

Link to comment
Share on other sites

The map size isn't the only factor here. Many linear games use streaming, and those map sizes aren't huge. I've had issues in the past with performance after filling out a 2k map with a decent amount of unique entities. Of course, the terrain itself plays a role, and I've seen a few topics complaining about memory issues with 4k maps. Unless those get solved, having maps that are 16k, 32k, etc., won't make a difference in increasing the number of open-world/larger games in Leadwerks.

It largely depends on how many unique objects you have close to each other, and that includes the terrain since the terrain is a totally unique object (you can't "instance" tiles of the terrain). It also helps with loading screens (so you can do while loading your game, such as play a startup animation or allow the player to play a mini-game or something).

Link to comment
Share on other sites

Yes, level streaming could also benefit those creating maps within the current size limits.

Splitting a 4k by 4k map into 16 chunks of 1k would reduce the memory and processing requirements whilst playing the game, plus it would allow several people to work on different parts of the map at the same time during development.

Map streaming would also allow for sizes and shapes of map that aren't currently available. For example, using 1k "chunks" you could have a 3k by 3k map, or even create non-square maps, such as 4k by 2k.

It would also make it easier to create expansion packs that don't seem "tagged on".

Link to comment
Share on other sites

The main reason I have not done this is that it would introduce a ton of new restrictions.  Objects that are linked to other objects would disappear and it would be a data management nightmare.  The use of shared pointers in Leadwerks 5 *might* simplify this a bit but it is still complicated.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

I'm not sure of the details of how UE4 handles objects in different map chunks, but I do know that there is a default or master level that always stays in memory regardless of the load state of any others. Maybe they store object data there?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...