UE5.8: Best way to fake an organic spreading creep/infection system?

Hey Guys, I’m a beginner (im getting better :D) solo dev working in UE5 and I’m trying to figure out the best way to fake an organic infection/creep system.

The idea is a dark wet fungal/liquid mass that spreads over terrain, connects puddles, and slowly corrupts the level.

Static mesh puddles look nice because they give real volume, bubbles, holes and tendrils, but large meshes don’t conform well to hills.

I created one Static mesh and made it spread but that obviously is just for draft and doesnt work on any hills or not flat surface.

Pure landscape material or decals follow the terrain better, but look too flat.

At first i thought about a fluid system but i guess that will break performance because the “creep (like in Starcraft)” should spread over the hole map at some point.

Important for the Vision:

The “Creep” has to be readable for Gameplay (Buffs, EnemySpawn, etc.). Not excatly but at least it should morph into a gigantic Biological Problem for the Player) Guess i will have to fake that.

It is a 3D Game so there has to be hight involved a static mesh or landscape won`t work :wink:

It should be “fake thinking”. (I guess not important for the task but i would show that just material won`t solve the problem… i think at least ^^)

=====================================

First Draft Idea learning one at a time…

Hybrid:
terrain/decal layer for broad coverage,
Nanite mesh pieces for volume/details,
connector/tendril meshes,
material reveal/WPO for fake growth, (faked animation)
Niagara for spores,
and HISM/instancing for performance.

The problem i have with this is that each of those system is a science on his own…

Does this sound like a sane UE5.8 approach, or am I missing something obvious?

The main thing I dont understand yet is the big surface layer.
How would you make the creep follow hills and uneven ground?
Would you use decals, RVT, landscape masks, PCG or is there maybe a much simpler way I dont see?

I dont expect someone to solve all my problems. But maybe you know something I dont think about for the first steps … i don`t want to fall into a rabbit hole.

Thank you guys. Love you

Have you ever made or used a landscape “automaterial” that puts snow on top of mountains and such? Could use something like that with a material parameters collection to control the height, allowable angle, and maybe center of the spread. Then have level blueprint or some actor dial up the values in the collection over time.

Or if using RVT, you could animate a creep mesh in the sky and render it to the RVT.

To make it less flat, you could enable nanite on the landscape and have the creep affect displacement. Could also sample the creep bits of auto material (or have rvt make a mask) and feed it to a grass sample node and make a vine/tentacle-y “grass” that grows there.

Thnk you for your input. I know that, that exists but that doesnt solve my “gameinpact”. Anyway i realized i have to check out a few systems and read me in ,maybe try a bit around. I will come back when i found a way to go,… for some reason, not a lot of games allready exists with that :grinning_face_with_smiling_eyes: and i realized why haha

Well, if you make infected areas grow a special “grass,” you could apply a physical material to the grass (or add a tag the static mesh) and run a looping timer event on player which does a sphere trace looking for phys mat or tag, then call a function if it returns a matching hit. Function could then apply damage/debuffs/whatever or set some other timer.

ETA, can’t really trace landscape grass reliably, but if you plug the mask that’s feeding Grass Output into a Landscape Physical Material Output node you could read the infection level from the ground with a trace. Just need to throw some contrast on it to make the danger zone pop.

I just threw a random noise texture at a landscape as a splat map/mask. and used it for grass, physical mat, and a lerp from brown to purple grids:

Looping event timer on player with sphere trace finds the thorns physmat in the mostly purple areas.

Danger zone looks like this in level viewport:

It doesn’t spread or anything, but there’s many ways to update a mask in a material.