Capabilities for games that are highly procedural in nature?

I haven’t used UE4 before, and a question I haven’t quite settled for myself, which I’ve been thinking about for a future game idea I have, is; how well suited is UE4 to highly procedural games? I’m talking about the kinds of games where almost everything is heavily procedurally-generated, both from scratch and from modified baseline assets, with unused procedural assets being frequently unloaded as well to make way for new content as it is generated. Assume that all of these things are to be generated by an external server application that is not running the client engine, and the raw data streamed to clients on demand, to be constructed, cached, destroyed, modified, etc. by the game client. Examples of the sorts of things I’m talking about:

  • Terrain meshes, generated on a server and streamed to the client in real time, possibly containing a combination of voxels and polygon meshes (including dynamic level of detail and so forth)
  • Materials and textures, generated from scratch, and/or applied to a baseline with many parameters affecting output
  • Creature models and animations (again, heavily modified procedurally from base assets)
  • Sound effects to a degree
  • Weather, lighting, etc.

Let’s not worry about the feasibility of my idea, I’m just curious whether UE4 would fight me if I attempted to do the above (given the focus of the engine and tools on manually-created content), or if the API design and engine capabilities are flexible enough for this kind of thing.

Basically No Man’s Sky?

You can do it all in C++ so the real question is what is your skillset? Procedural materials can be done in the editor. Procedural spawning and arranging of meshes in blueprint. Procedural mesh creation in C++. Voxels, C++. Procedural access to landscape, C++.

Thanks for your reply. I’ve been programming a long time; C++ is not an issue.

A couple more questions:

  1. Is it possible to construct a material from scratch, completely procedurally?
  2. Can animation components (bones, keyframes, whatever) be defined from scratch in code and altered on the fly?
  3. If I wanted to get fancy, would it be relatively easy to bolt on an external static library, such as V8 for JS-based scripting by modders? Or other static libs? Etc.?
  4. How much reliance does the lighting system have on pre-baking? Obviously I ask because the type of procedural activity I’m talking about would make pre-baking unfeasible.

I’m thinking that your answer meant that everything can be constructed dynamically without using the editor, if desired. I am curious if, in your procedural travels, you’ve run up against any relevant limitations that are definitely noteworthy. Noteworthiness, of course, meaning that I’d have difficulty working around them.

Interesting links, thanks.