Working Outside of Map Bounds to Create a 60kmx60km Mega Map?

#1
Hi everyone,

I know there has been some discussion in past of people trying to work around the 8kmx8km map size limit. For me, I was hoping to have huge chunks of forest that the player has to navigate through by roads or hiking, and I think having this huge sense of scale is crucial to making the game feel realistic and immersive.

I've been experimenting with just placing large objects of exported sattelite height data and then using raycasting to procedurally place vegetation. So far this suprisingly seems to work! I have noticed one bug, when I spawn outside of map bounds my weapon disappears, but when I toggle 3rd person and back 1st person I can see it again. Otherwise, the flowgraph scripts that I use to place objects and control AI seem to work just fine. I've actually decided not to use the AI Navigation maps also so I don't need those anyways.

I wasn't sure if this is a viable option and I should continue to just place objects outside of the map bounds? Or, am I in for a nightmare of potential issues and shouldn't continue using this method?
FYI I have only tested this in game editor, I haven't exported the game yet.

Pics below hopefully better show the scale of what I'm hoping to achieve. Thanks for any advice!

Yellow Border= 8kmx8km Normal Map size, Green border = Extended map size outside of bounds
Image
Physics and raycasting to place objects seem to be working OK
Image

Re: Working Outside of Map Bounds to Create a 60kmx60km Mega Map?

#2
Hi dinoboy,
Over the years I've developed a simulator based on CE3 which effectively creates a map the size of the world.
Earlier versions were more limited, with maps hundreds of kilometers across.
Terrain was built from brushes roughly 20 km across, using shuttle SRTM terrain height data and satellite images.
I use a very useful program called Universal Maps Downloader to download satellite images for a specified location. It's free for low resolution images
but requires a 50 dollar licence for usable resolutions.
Terrain is built from smaller terrain grids placed together - this is essential as Cry Engine can't display brushes more than 10km or so across.

It started as a flight simulator but I now refer to it as a "simulator", because it has full support for these vehicle types: aircraft, ships, trains, ground vehicles (e.g. cars and tanks) and spacecraft.
The spaceflight system effectively expands the map size to the entire solar system.

The simulator now has a system I call the "world system" - the map is effectively the size of the world. You could fly a 747 from Heathrow in the UK to the US - assuming you didn't die from boredom as you navigate the Atlantic!
It is completely real-world. It uses landclass data to decide which kind of terrain to display. Terrain is built from terrain grids (brushes) sized 14km * 7km (near the maximum size CE3 can display - my tests suggest CE5 can display grids only about half the size).
There are four kinds of objects:
1. Autogen, which can place tens of thousands of objects according to the landclass data - useful for objects such as trees and buildings.
2. Group file objects. This allows detailed local scenes to be built e.g. a fishing village or a city. The code then loads the objects in-game, again depending on the landclass data.
3. Roads. Roads automatically have road traffic.
4. Rail tracks. Fully functional trains are randomly spawned on rail tracks.
5. AI vehicles. For example, if the scenery grid includes an airport it can have any number of AI aircraft which will taxi, take off and land again. The AI vehicle saved game files can create complex scenarios including aerial or tank battles.

With standard settings, the terrain forms a square 140km across. But, crucially, it is dynamic. As you move along, any terrain grids that fall behind you are deleted. Free grids are then placed ahead of you as required. The result is that you are always surrounded by a 170km square of terrain (and objects) irrespective of where you are going.

Cry Engine uses low precision floating point for many applications, so, as you move away from the origin your view may start to shake, particularly if you're in a vehicle. At 100km from the origin the shaking may be very bad (at least in CE3, I'm not sure about CE5). The simulator world system solves this problem, because it keeps the player location no more than 5km from the Sandbox origin.
When the player moves more than 5km from the origin *everything* in the map is moved back. Amazingly, this is essentially invisible, you can only tell when a jump has occurred by watching the diagnostics.

The terrain can be generic or real-world. Just in front of the Harvard you can see the runway of Lukla Airport in the Himalayas - probably the most dangerous airport in the world!

The simulator runs on Cry Engine 3. It's pretty easy to install and use CE3. Currently I have no plans to update it for CE5, as CE5 has serious problems.
If you're interested I'd be delighted to discuss it in more detail.
Best regards,
Chris
Attachments
ScreenShot3993.jpg
ScreenShot3993.jpg (655.58 KiB) Viewed 2535 times
ScreenShot3913.jpg
ScreenShot3913.jpg (516.02 KiB) Viewed 2535 times
ScreenShot3863.jpg
ScreenShot3863.jpg (465.53 KiB) Viewed 2535 times

Re: Working Outside of Map Bounds to Create a 60kmx60km Mega Map?

#4
Hi dinoboy,
Nice to hear from you, even after so long (only joking!).

Yes, I'm still developing the simulator and I've made a lot of progress since last we spoke.
It covers the entire planet. The main database is a high resolution bitmap which is a map of the earth. Each pixel represents a 14km * 7km terrain grid, and the colour index gives the landclass for that grid. For example values of 50,51,52.... are "green fields", 80,81,82... are towns and 90,91,92... are cities. Values of 100 and above are reserved for specific scenery areas (not generic). For example landclass 100 is Heathrow Airport.
I used global data lists that list all cities and airports in the world and wrote code to generate the bitmap image from that.
For example, if the landclass for a terrain grid is 50, the code looks up the data files for type 50, most importantly the terrain grid brush model for 50 (size 14km * 7km). If there are other asset files for type 50 the code will load those too. For example, if there is a road data file it will load the road and also it will load the landclass file that defines the objects that will be placed along the road. The code will also load AI ground vehicles that will drive along the road.

"I've been experimenting with just placing large objects of exported sattelite height data and then using raycasting to procedurally place vegetation."
I use the sme method. When placing brush objects, effects and vehicles I use the Lua raycast command to get the terrain height at that point.

I've recently greatly improved the city environment - but it still needs lots of work. In the screenshot the roads, kerbs, pavements, traffic lights, buildings and vehicles are all loaded by the code. As you drive along objects that fall behind are deleted and new objects created ahead. This allows roads to be very long. The longest roads I use are up to 100km long, but they could be much longer. I think driving fast cars is probably the most fun part of the simulator! Incidentally, the simulator has an editor which can be used to create and edit roads and railtracks.

If you have any more questions or comments, please let me know. I'll see if I can put up a short demo video in the next couple of days.
All the best,
Chris
Attachments
ScreenShot4059.jpg
ScreenShot4059.jpg (352.84 KiB) Viewed 1055 times
ScreenShot4073.jpg
ScreenShot4073.jpg (399.5 KiB) Viewed 1055 times
ScreenShot4064.jpg
ScreenShot4064.jpg (601.63 KiB) Viewed 1055 times

Who is online

Users browsing this forum: No registered users and 6 guests