I am looking for the best way way to develop grid based levels for an RTS game. The levels would be symmetrical and Starcraft 2 level sized. Here’s a rough sketch as a style reference.
World Partition looks great for large environments but is it really the best option for smaller top down grid based levels?
The World Partition would work perfectly fine in your case. It all depends on the needs you have for the environment. If it has any terrain, I would go for the World Partition. You can read more about it here to decide: World Partition in Unreal Engine | Unreal Engine 5.0 Documentation
For a StarCraft-sized level, you don’t need any kind of partition – the entire level will fit fine in memory.
In fact, you likely will HAVE to fit the entire level in memory, at least in some form, to deliver proper RTS gameplay, because players will right-click the mini map and expect units to navigate to whatever spot that is, anywhere on the level.
Anyway – world partition is about loading/unloading far-away pieces. There are no far-away pieces in an RTS like StarCraft.
How should I go about building the level then?
That depends. Does this need to be in one solid piece? Or is this some sort of terrain or set of blocks… In either case, I would suggest using a program like blender/Maya/etc to create blocks or your map in it’s entirety that you can scale as appropriate and snap to the grid for easy placement of other objects later.
If there are any other variables that may change how this would need to be done let us know and we can suggest a solution for you!
The terrain would not be dynamic. Anything changing would be individual actors such as a flag that changes player colors when captured. Things like that.
I would probably make very large sections and snap them together, and place individual static mesh actors to fill it in. The terrain is structured with very specific boundaries like in starcraft; as opposed to something like Supreme Commander where units can more or less go anywhere you want.
Would Unreal allow me to paint directly onto the mesh like Substance 3D Painter does? I could see it being a big pain jumping back and forth because of rendering discrepancies between programs.
Unreal lets you “vertex paint” on static meshes, and then your shader will have to decide what “vertex painting” turns into – it’s frequently used for variation maps, damage, wetness, and such.
You could just build the entire level geometry in Maya or Blender, and bake/export geometry and textures from there, if that’s the flow you prefer. (I’d probably slice it into chunks along natural seams, not bake a full kilometer-scale static mesh, though!)
If the capabilities of the Unreal Terrain system are good enough, you could use that. The diagonal walls would probably be trouble because they’d probably turn jaggy, especially if they’re steep, though. Sometimes, they can be hidden with detail meshes.
A little bit of experimentation based on what your preferred workflow would be seems like it could give the answer that best suits your case!
Excellent! I’ll take a swing at building the terrain with blender and then using Substance 3D Painter to bake and throw on some preliminary textures.
This is all a great help. I really appreciate all of y’alls time.