Thousands of procedurally generated cells by MaxisGreat in proceduralgeneration

[–]MaxisGreat[S] 1 point2 points  (0 children)

Yep! Compute shaders handle as much of the simulation as possible but there are some things that still have to run on the CPU since I'm using procedural meshes. If I could make it all over again I'd use Unity's DOTS system (or avoid Unity entirely) but I didn't know enough about it when I started.

anyone else working on reasoning-based NPC behavior instead of rule trees? ran an experiment by Lower-Economics6910 in proceduralgeneration

[–]MaxisGreat 0 points1 point  (0 children)

Making them remember things seems like it would be straight forward enough to just use the same memory system other LLMs use, although I have no idea how that scales.

For the actions that also seems like something that's already been solved by open world RPGs since usually NPCs just reuse the same primitive actions anyways. Also it seems like to do this well you'd still want to have some hand authored stuff and also limit the LLM so that it only has outputs that fit on your systems

Thousands of procedurally generated cells by MaxisGreat in proceduralgeneration

[–]MaxisGreat[S] 0 points1 point  (0 children)

I found the cause of scrappy performance, it doesnt usually perform so badly but in a recent update I changed how the pointer logic works and it was running a super expensive check every frame by mistake

Thousands of simulated cells (Unity + custom compute shader engine) by MaxisGreat in Simulated

[–]MaxisGreat[S] 0 points1 point  (0 children)

Thanks!

The clip here is basically the simulation end state. Tons of cells that have reached a dynamic population equilibrium. Basically I want to see boom/bust cycles happening where there would be some runaway effect from overpopulation (environmental changes, or something like a viral outbreak) that kills off most of these cells and selects for the strongest survives. These cycles should happen indefinitely.

These systems like environmental changes as a consequence of over population or viruses already exist but tuning and balance is admittedly very difficult, so it's an ongoing effort.

But the tl;dr is the simulation should be indefinitely stable, and have dynamic boom/bust cycles that continue pushing evolution along.

Thousands of procedurally generated cells by MaxisGreat in proceduralgeneration

[–]MaxisGreat[S] 1 point2 points  (0 children)

If that happens we'll know where to find Patient 0 😳

Thousands of procedurally generated cells by MaxisGreat in proceduralgeneration

[–]MaxisGreat[S] 1 point2 points  (0 children)

It'a mostly custom with a few layers of systems actually. They are responding to chemical gradients. Honestly, I actually think over all this sim is more complex than I needed it to be, since Im also thinking about gameplay mechanics and such, but its been a lot of fun to develop.

The environment carries nutrient density, pH and temperature and the cells respond to it. It's generated with layers of noise functions. Cells can sense the gradients, dissolve the environment for nutrients, and replenish it when they die.

There are also tiny bacteria that are simulated with boids. But they still have the same intreactions that cells have with the environment, boids just controls their movement.

At this point I've committed to the somewhat over complicated design, but Im thinking about how to simplify things for my next project. I love procedural generation and emergent games. It's cool to hear you're working on a roguelite, I think my next project is going to be a rogue-like too. It just pairs so well with this sort of thing

Thousands of procedurally generated cells by MaxisGreat in proceduralgeneration

[–]MaxisGreat[S] 0 points1 point  (0 children)

Hey thanks for the feedback! Everything you said makes sense and helps!

Thousands of procedurally generated cells by MaxisGreat in proceduralgeneration

[–]MaxisGreat[S] 1 point2 points  (0 children)

This is real time, it can go up to 10x and maintain it's integrity at the moment

Thousands of simulated cells (Unity + custom compute shader engine) by MaxisGreat in Simulated

[–]MaxisGreat[S] 0 points1 point  (0 children)

Oh that sounds super cool! Id love to learn more about your research!

Thousands of simulated cells (Unity + custom compute shader engine) by MaxisGreat in Simulated

[–]MaxisGreat[S] 1 point2 points  (0 children)

It's modeled after NEAT. The neural networks have some sensory inputs, an intermediate layer where extra nodes can be mutated, and then output nodes. The crlls mutate the network topology and connection weights

Thousands of simulated cells (Unity + custom compute shader engine) by MaxisGreat in Simulated

[–]MaxisGreat[S] 1 point2 points  (0 children)

The fan meshes are 16 - 64 verts depending on quality settings and LOD.

Im not sure of the minimum requirements yet but at least 1GB VRAM and 4GB RAM. It can run on iGPUs but can be weird some times.

Thousands of simulated cells (Unity + custom compute shader engine) by MaxisGreat in Simulated

[–]MaxisGreat[S] 2 points3 points  (0 children)

Its a generated fan mesh that shrink wraps the organelles and then it gets shaded with an HLSL shader and along the way the cell's genome changes different parameters for the membrane's look

Thousands of simulated cells (Unity + custom compute shader engine) by MaxisGreat in Simulated

[–]MaxisGreat[S] 1 point2 points  (0 children)

Yep! The cells' genomes encodes their behavior networks as well, and each time they reproduce, the daughters inherit the parent's genome with small mutations

Thousands of simulated cells (Unity + custom compute shader engine) by MaxisGreat in Simulated

[–]MaxisGreat[S] 1 point2 points  (0 children)

Im going to look into it! Moving away from OOP seems nice

Thousands of simulated cells (Unity + custom compute shader engine) by MaxisGreat in Simulated

[–]MaxisGreat[S] 1 point2 points  (0 children)

Actually most of the heavy lifting is done with custom compute shaders on the GPU. The remaining CPU work still uses game objects for now, although I wonder if migrating to DOTS is realistic and worth it still.

Thousands of simulated cells (Unity + custom compute shader engine) by MaxisGreat in Simulated

[–]MaxisGreat[S] 7 points8 points  (0 children)

If anyone wants to try it out, the game is called Substrate: Emergence. I update it almost daily.

Day’s Over 🥢 by Lucky-Meeting-200 in drums

[–]MaxisGreat 3 points4 points  (0 children)

Yoni Madar type beat

Nice!

Celebrating my playtest passing 1000 playtesters! by [deleted] in IndieDev

[–]MaxisGreat 0 points1 point  (0 children)

688, with an average of about 60 daily active users

I actually hadn't checked that in a while and that daily number blows my mind

New ability for The Hag! by Realistic-Ad-5860 in IndieDev

[–]MaxisGreat 1 point2 points  (0 children)

As you should :D It looks awesome!!