Jump to content
  • Advertisement
Sign in to follow this  
  • entries
    10
  • comments
    10
  • views
    934

Unreal 4 - Procedural Terrain (GIS)

Sign in to follow this  
i3di

913 views

Saturday, January 27th, 2018, I began the procedural terrain generator development in Unreal 4.  With over 1000 terrain and architectural textures processed, I thought it best to begin getting something people could see.  The procedural terrain plots vectors in a database that can be used to create topographic 2D maps and generate procedural terrain in the world engine for Unreal 4.  The vector database can also be used in other programming languages for other programmers wanting to create procedural terrain not necessarily in Unreal 4.  The vector database is compatible with G.I.S. (Geographic Information Systems) and will feature a pipeline to convert from Natural Earth SRTM database to the Vector Database compatible with game worlds that utilize 1 unit = 1 centimeter.  The reason for the G.I.S. compatibility is for future projects that utilize our Earth as the playing field.  The procedural terrain generator will feature an importer for G.I.S. or generate an entire planet in a compact vector database with many topographic options.  Being a solo developer I am estimating 3 months of development, and probably another couple in ironing out bugs and will be looking for Unreal 4 Beta Testers to give the plugin and Blueprints a test drive.


Sign in to follow this  


5 Comments


Recommended Comments

Are you allocating 3 months of development just for the procedural terrain generation itself, or for the whole game project?

Within UE4, you can import a gray scale image to create height data for a landscape topography. The texture X/Y coordinates correspond to landscape X/Y coordinates, and the grayscale value corresponds to the Z coordinate. Since the image is in gray scale, you don't need to store the RGB color channels, so you can represent each pixel with a single byte value. That means much smaller file sizes, or much larger map sizes :) The nice thing about grayscale images is that you can open them in an image editor and view/edit the landscape. Is this how you're doing your vector data files?

I'm also curious to know what sorts of procedural elements your landscape supports. I mean, you could just apply a tweaked perlin noise function to generate a grayscale image and import that into a landscape as contour data and call it "procedural" but it wouldn't be very impressive or useful. What would be amazing is if you could procedurally create erosion effects from rain, canyons carved out by rivers, and mountains created by land being smashed together. I could see that taking a long time but also being really valuable for environment artists.

Share this comment


Link to comment
i3di

Posted (edited)

For smaller scale, less detailed with less options, yes, you can go with grayscale.  However, the objective here is to be able to not only generate a fantasy planet, but be able to provide all the options of things like google earth, zoom in maps, topological data, plus be able to import from SRTM databases using Geographical Information Systems our of entire planet, generate maps and whole environments.

So the solution is not grayscale, but what is called a 2D Vector Database.  This is what is used in SRTM, Satellite and real time GPS functionality.  Look up SRTM and Natural Earth.  Being able to duplicate any location on the planet plus a fantasy world with all the details of google earth or many GPS systems just for your fantasy world doesn't work with grayscales.  Now the benefits to a Vector Database is not only the ability to use real world maps for upcoming projects as we want to establish I3DI as a simulation company, particularly our much larger project IMCS or Interactive Military Combat Simulator which will begin once we hit a landmark budget and is due to begin in four years.  You also have the ability to generate 2D in game maps on the fly with bathymetry, geographical data, elevation down to 1 meter resolutions, forestry information, and detailed city information.

So, we have decided to produce a very complex procedural generator that does it all in design time and run time called "World Max".  Now these databases are larger than grayscale packed maps, but not so much that it is unrealistic.  The benefits are huge, and you will be able to have a detailed world the size of earth or larger in a nicely compact database and no longer need pre-drawn map images but maps in game generated on the fly by latitude and longitude grids. You also will have accurate terrain information and be able to allocate specific terrain by coordinates, including forestry regions, environmental regions etc.

The main reasons it does not work is because of the difference in resolution between SRTM databases and Unreal 4 resolutions, the actual math conversions have to be done between the SRTM databases and Unreal 4 engine.

Edited by i3di

Share this comment


Link to comment

Perlin noise is just one of many algorithms I will be employing.  But, yes, for generation purposes, erosion, is one factor.  Erosion will be done by time and generally erosion is caused by water over long periods so you will be able to select the element and direction, whether rain, rivers, oceans and the amount of time in days, weeks, months or years the erosion occurs.  You will also have terrain layering, this is basically what you see in stratus where you have lines in the ground like rings in trees.  Grayscale can not emulate proficiently the layering necessary to make good terrain consisting of various elements that get exposed and the distribution of special rock formations or resource information.  Now, you could take grayscale and then have a vector database to assign that grayscale a specific terrain feature like marble, limestone, but you still have to plot where to assign this specific material and the coordinate extents.  Terrain is not necessarily textured just by elevation so you will be able to assign specific materials to specific geographical coordinates. 

Share this comment


Link to comment

Okay, I think I have a rough idea on what you're doing. Is this ultimately going to be a military simulation used by the US military or foreign militaries?

I'm assuming US. Do you have a contract already? Have you gotten funding? What branch of service are you targeting? What unit types are going to be your customer? What classification network are you going to deploy to? (niprnet, centrix, siprnet, jwics, etc) Have you looked at competing products which already overlay high res satellite imagery with elevation data from GIS databases? Can your app connect to a map server such as GCCS? Are there going to be any licensing/EULA restrictions you need to be aware of with UE4 in regards to military use? If this is ultimately going to be used for military use, information security is going to be important at your org, and you'll have to be very careful about technology export controls and arms export controls. Most of what you build won't be shareable online, especially if it becomes a part of a classified system. Do you have any military personnel as subject matter experts to help you design the app?

If you're going the military route and using real life map data, why are you also doing procedurally generated fantasy world maps? That sounds kind of like a distraction from the main mission.

Share this comment


Link to comment

Yes, the main mission is to be like Jane's Combat Simulations was, back in the day.  However, it takes time to get to that point.  So we are using the creations as modular components to sell and raise more capital.  So assets are being sold in mass on iClone CC2, iClone CC7 starting about the 26th of February,  This is a complete package of armor, clothing for every base model.  We are doing the animations next, every animation in a puppet for any fantasy RPG you could imagine.  We are then decimating and converting them into one massive Fantasy Character Package for Unreal  4 market.  Part of the project is our premier procedural terrain generator, which is a huge volume of work.  It will come out in about 6 months, be compatible with SRTM and Natural Earth databases.  The objective is to create all the components for simulations in a fantasy game then on completion use the money from sales and marketing to begin creating combat simulations.

Our simulator will be very much unlike anything you have seen.  We are covering all branches of the military, air force, army, navy, marines.  You will join a server and take the place of one of simulated characters on the server according to your rank.  We plan on doing F-16E, FA-18, Interactive Naval Vessels, Humvees, Tanks, the works over a long period of time.  Our first plan is to get people hooked on early day sailing vessel as you will be able to select an era, then we will add a industrial area, and a modern day era.  So you will get the full range of simulation experience. 

Edited by i3di

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!