RTS Max Landscape and Units

Hi there!

I’m going to say sorry in advance in case this is a bit of a noobish question, or if it has been answered before. :stuck_out_tongue:
I’m moving over from Unity and custom engines, and I just want to know what Unreal can do.

This is for an RTS, and I’m just wondering: What is the largest single map size the Unreal Engine can support, and how many units can it display on screen firing projectiles?

Basically, the dream goal is 10,000 x 10,000 km Map maximum, with potentially 120,000 units on the field, with control of units and camera on a 1.8m (human sized) level, and with said units firing projectiles.

I know, it sounds crazy, which is why I thought I would ask. :rolleyes: It is understandable that the actual numbers will be far smaller, but that’s the ideal maximum.
An acceptable drop would be to 1000 x 1000km Map Maximum, with 12,000 units on field, with control of units and camera on a 1.8m level, and with said units firing projectiles.

Can Unreal Engine 4 be used for such large maps, with so many units, all firing projectiles?
Is there any way to add in the functionality?

They showcased a 16k by 16k map (Kite Demo) as a large landscape. You can’t have a 1000k map out of the box.

Use World Composition and you can make it al bid as you want.

It’s more of a matter of what the engine can be pushed to achieve.
Can it handle, even with excessive tweaking or modification, running such large maps with that number of units?

I don’t suppose you could elaborate? I merely found a few things on importing real-world maps.

If you have the ability to modify the engine towards your needs yes you can create really large worlds.
Look at Star Citizen for example, they heavily modified cryengine for that.
The problem with world composition Devfo Studios mentioned is only the tiles near you would be visible and the rest of the landscape would be hidden. You’d be seeing nothing of your large landscape when you look at a far distance.

An odd thought struck me when I saw this post… Rather than, say, a 1000x1000km map, could you maybe do a 10x10km map and downscale all your units by .01 to overcome the limits by pretending the map is bigger than it is?

Might not be viable, but whatever :slight_smile:

That’s a good workaround but you should also know landscape has 1 vertex per meter, and if you scaled everything down the terrain would look so much blocky. But still a good suggestion. Depends on the game itself really :slight_smile:

I was actually thinking something along the same lines as Reborn, or possibly by redefining the values of the Unreal Unit (I guess the max from origin is 500k?), although I had heard that caused issues later on with Physx. Also, it supposedly resulted in less fine controls for smaller units, which was why I specified minimum unit heights at 2m. If I could leave a FP Camera option in the game, that would rock.
I know I am asking a lot, but it is nice to know that with enough work I could get where I eventually want to go.

As for the world composition issue, that results in an even bigger issue since I was aiming to use strategic zoom on the main camera, as in Supreme , Homeworld, or Sins of a Solar Empire’s ability to scroll out and view the whole map. Then again, I’d probably have it shift to a static image after a point.

First you have to ask yourself what are your minimum specs.

Then, when it comes to Landscapes, it’s not just a simple question of size, but size and sub divides. You can easily work with different scales if you need to.

Units, however, are a different thing. UE4, out of the box, doesn’t allow you to easily optimise AI on a tick by tick basis in the behaviour tree. Instead, you have to divide them up over fractions of a second, making it impossible for them to perform well across a variety of framerates. Also, there isn’t any form of A* path searching, which will affect both the quality of paths and the performance.

Assuming you want to go up against AI opponents you will also want to investigate having an AI manager that deals with unit

It’s not just a case of saying “look at the World Composition”, because you’re going to be dealing with units, objects and path data that will need to be loaded all the time.

FC, are you thinking of something like the Total War series, but on a grander scale, so you can get the camera right up close into the action?

You need to find out what your tech budgets are first because even with mesh, landscape & AI LOD’ing, you’re still going to be hitting a performance wall sooner or later.

A. How you go to make a map of 10,000 x 10,000 km, you need to make all the earth or the 1/2, in 50 years probably end that.
B. For what you need a map of that sizes.
C. 120,000 units in a 10,000km its to low.
D. Impossible to handle 120,000 units in realtime with AI.
E. With that map you need minimum 1TB in the HDD.

More and more problems…

With 12,000 units if you make a good system probably you can work with that amount.

Sorry for the late reply! Thank you for the help. I’ve been trying to tackle the issue, but have been working on smaller scale projects to get used to everything.

Pretty much. It was inspired by the combat of the original Rome:Total War, the up-close camera of its sequel, and the Strategic Zoom and scale of the Supreme and Homeworld Series. I was hoping to combine them into a single functional form on a far more massive scale. I know it would be a performance hog, but the hope was that it could at least have the potential to grow with hardware, much like Total Annihilation has managed to do.

I understand it will most likely come down to trickery, but the hope was that Unreal could manage this task.

120000 / (10000km)^2 = 0.0012 units per square kilometer. Pretty empty map.

you can have only a few hundred animated 3d human characters currently on screen, billboard lods could help a lot… but the built in navmesh pathfinder is not for RTS, it eats up too much performance, so you need to implement (in C++) your own pathfinding and AI system, featuring many optimizations (like the above mentioned lodded AI and unit behaviour). I mean RTS game making results in a lot of fun :smiley:
there is a game out there with seamless overview map and battles (called as Hegemony?), but it uses its own custom engine, similarly to nearly all RTS games… so better not to dream of thousands of individually acting soldiers made with blueprints :slight_smile:

Just because you can go virtually infinite in terms of world-size, doesn’t mean you should. I imagine a lot of your level will be procedurally generated, because I know nobody with a budget or a team of people that can decorate an area that big with assets.

Planet EARTH is 12,742 km in diameter. I mean… do you REALLY need that kind of space? I’d build my own engine if I was serious about doing this. I’d probably also check myself in to get my head examined as well :wink:

This just isn’t true. I haven’t touched a single line of the engine code and I’ve made landscapes up to 400km x 400km.
There was nothing stopping me from having something much larger either. Using tiled worlds you can make a map as big as your pc can handle.

Doesn’t UE4 use A*? It’s the most optimal way of path finding and used for RTSs all over the place. Kuju used A* to have 60-100+ characters moving around simultaneously in Battalion Wars on the Gamecube and those counts went higher for its sequel and off-shot Aragon’s Quest on the Wii.

The problem is that it comes across as a straight up implementation of A* and lacking many optimizations, and even mufti-threading.

However, Rama has been working on something for a long time now, although it’s not clear if it’s going to be released in some form to the public. You can read up more about it here

@Jimmy_Jazz: A* is just the method of doing the search in the graph. the graph can be a navmesh or a tile grid, or a hex grid, arbitrary shaped areas, really whatever…

in case of RTS, it is usually a good decision to use a hierarchical pathfinder, i.e. use a low res. map data (where each node is a small area) for long search, and use the tile level path search only in small distances, because pathfinding is costy when you need a lot to do in each frame.

the UE4 navmesh pathfinder is not optimal for RTS at all. why? just start to make an RTS AI. evaluate areas and larger regions, those all requires further data what you can easily get from a hierarchical pathfinder, then AI and pathfinder can work together efficiently, e.g. by using influence maps… (sorry I have to leave now, but I can make a longer description if anybody interested)

HA* is an example of the kind of optimization that I was referring to. There’a a great article on AA* too here:

https://aigamedev.com/open/tutorials/clearance-based-pathfinding/

I was reading about a great alternative to A* earlier this year but I cannot remember the name of it or find the link :frowning:

However, I think we’ve got our terminology mixed up, which is common where many devs have their own bespoke terms for common techniques. Where I’ve worked the A* has been the path finder whilst a direct path follower handles short range movement. I’ve used graphs of grids of both a fixed size and ones that can dynamically change their resolution to match collision in relevant tiles, as well as Epic’s navmesh.

You could use Blueprints to split your map into zones, if your levels have enough bottlenecks to create entrance and exit points into each zone.

UE4’s problem isn’t simple about the size of an area. Size on its own is meaningless, it’s the resolution. If you’re willing to have a low resolution per meter squared, you can have large area. You need to make that call based on your unit & obsticle sizes as well as your world size.

Next up are characters. If you’re willing to get dirty with BP and BTs then you can spread your move orders out over time / multiple frames, rather than have them firing simultaneously and causing hitches.

Together they’re not going to get you the next Total War, but maybe a great RTS on the same scope as C&C or CoH.