I’m working on a flight simulator type game that takes place on a large island. The island is about 55 kilometers wide. Using the default world_max, I’m assuming that using world composition this will mean about 11 levels across. I think I understand the mechanics of getting this together, but I am at a loss on certain aspects of this project. First off, my island has already been designed, and I have a 8192x8192 heightmap. I’m not sure that this is going to be enough detail, though. The nature of the game is low flying, so the terrain will often be very close as the player zips through canyons and between trees.Higher altitudes will also be possible, though, so visibility of the entire island will be required. So I guess I’m curious how to assemble this island in the editor. Also, I’m not sure how water will work. With such a huge area, would a plane with a water material suffice, or am I going to have to get more creative? I’d like the water to look good when close, but still perform well. The player should be able to swim in the ocean, as well. I know that’s as simple as a swimming volume, but I wanted to be sure it was known that proximity to everything will be as if the game was a third person action game, not a typical flight sim.
In order to make a large open world game like this, you need to take into account all of the variables you want to be strong and apparent. This in turn send the visual message to the player you desire in order to create strong immersive environment and game. If you already have your map built then that is great, but keep in mind building your iterations with a map of this size will take a very long time unless you can split it up into sections.
The first thing you want to tackle is the textures and materials you want your island to have. For example, rocks, sand, grass, etc. The next part is filling your environment with foliage like trees, bushes, and other meshes. For the grass that will be seen when you are on the ground, you will not need to render these foliage meshes when in the air. The most important thing in your case would be to have Level Of Details for every material so when you are far away from the object it is not trying to render your assets with full resolution textures. This will save your graphics and overall processing so it can be allocated elsewhere.
As for the water, you will also want to have Levels of Detail (LOD’s), if your island will be surrounded by a plane. I actually wrote a tutorial and posted it on the Wiki on how to create a Water Shader which has also has the actual material editor set-up pasted into a notepad document. There is also a Swimmable Water Volume tutorial linked at the bottom. This should give you enough information to get started with creating your open world. Keep in mind, it takes large teams to optimize something like this and usually starting small and expanding on your core concepts can yield better results.
Water Shader Tutorial
Swimmable Water Volume
Those are all great tips, but they’re focused a little farther in the process than I meant. Foliage and materials, while time consuming, are pretty easy. My focus is mainly on how to assemble the terrain geometry. Should I use a seperate heightmap for each level of the world composition all connected like tiles? If so, what’s a good resolution? Is there a good program for automatically spitting out tiles for a generated heightmap? Won’t there have to be a large low resolution terrain actor in the persistent level so that terrain in unloaded levels doesn’t just disappear? If that’s how it’s done, what issues will I run into with seams between the low resolution persistent terrain and the more detailed level terrain? I’m sure there’s other issues I’ll run into that will get me to scratching my head, but these are the big ones right now. Sorry about all the questions, but having a world composition based game where all levels are potentially visible at once in some way is much more complicated to me than simply hiding levels in interiors or more restrictive landscapes.
Hello again ,
This is going to one of those things where you will need to do some trial and error to see what works best for you. You are definitely on the right track by using the World Composition and the LOD’s in order to optimize each tile. As for the seems issue, this is where you would need to experiment. You will be able to hide or reduce these seems by having your LOD’s stream in at the proper distance so your transitions are smooth.
Since this is something I have not personally attempted to create, I am unsure of the exact things you need to do, and what you will experience while creating this larger world using World Composition. To help nudge you a bit further forward here is some documentation on World Composition.
World Composition User Guide
If you are still working on this project, you may want to look at my one thread that deals with large world setup, fps in game-play and resolution of landscapes tiles. I had to workout the optimum combination to get my large 80km x 60km world to work well.