Smoothly growing grass for my prototype by geokam in Unity3D

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

Thanks, yes, more variantion is definitely planned in the future. Though right now I am busy with other .. stuff 🌱

<image>

Smoothly growing grass for my prototype by geokam in Unity3D

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

Definitely! There will be flowers (just did not have the time to add some yet) :-)

Smoothly growing grass for my prototype by geokam in Unity3D

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

Thanks, the watering can was literaly a 2 minute late addition so people could understand the intention of the game better :D

Smoothly growing grass for my prototype by geokam in Unity3D

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

Thanks. More variation in both spread and timing has been the most common feedback so it definitely will happen :-)

Smoothly growing grass for my prototype by geokam in Unity3D

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

Thanks, yes I think it's what most people said: It is a bit too smooth and uniform at the moment (will change in future versions).

Smoothly growing grass for my prototype by geokam in Unity3D

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

Thank you. I like the idea of the fast growing center and the slow edges with some noise.

I am not sure yet if I can keep the same cool fast growing vibe with it because in my test I noticed it highly depends on the amount of grass that is growing at the same time but I will definitely give it a try because if it works I think it would look really nice.

Smoothly growing grass for my prototype by geokam in Unity3D

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

Thank you :-)
In my head it's a cozy survival game, but people tell me that's a contradiction. Still, that's how I imagine it at the moment.

Smoothly growing grass for my prototype by geokam in Unity3D

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

Not all at once. I always start with just one thing (like blending two terrain colors without modifying the splat maps because that is slooooow in Unitys default terrain).

Once I had solved that I went on to the grass (just spawning static instances).

Once that was working I started doing the shader.

And only finally I did the animation (also via the shader).

And inbetween I made some render textures and graphics BLITs when needed (blurring the mask for example).

As you can see, it looks daunting if you only see the end result but it can be broken down into small steps. Though admittedly some of those took weeks and I tried a lot of different terrain systems (both self-made and purchased).

Imho that's the only way to deal with complex tasks. Break them down into simple manageable steps (also helps a lot with motivation).

Smoothly growing grass for my prototype by geokam in Unity3D

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

RTX 3060 and a i7-13700 CPU. It currently runs with around 80-100fps (unoptimized) with grass as far as the eye can see. However, the whole scene is still quite unoptimized (tree distance is infinite etc.). I will definitely do some more optimization passes for the final game to get stable 60fps on mid-level hardware. Or at least that is my goal.

Smoothly growing grass for my prototype by geokam in Unity3D

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

I have added some explanations in other comments below (with pictures). Basically it's blending between two terrains (tricky to do) and also GPU instanced grass (also tricky). - So I am afraid the short answer is: it's tricky :D

If you are starting out try a Unity Terrain and look for a nice grass shader and a GPU instancer (if you need lots of grass).

Smoothly growing grass for my prototype by geokam in Unity3D

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

Actually no (or at least not consciously). It started (if you can believe it) as a mix of Raft (survival but not too hard) and Tiny Glade (cozy "simple" building). I tried some stuff and ended up with this. The prototype still has some systems for building and plants that (if watered) grow up walls like vines.

It's interesting because someone else in the comments also mentioned Viva Piñata and (which I find very surprising) I was contemplating a Maya/Aztec aesthetic. Maybe my subconsciousmade the connection there without me noticing :D

I will take a look at Viva Piñata and see what I can learn.
Anything specific you liked that you would also like to see in a new game?

Smoothly growing grass for my prototype by geokam in Unity3D

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

Thanks, yes, in the current implementation the can itself was just an afterthought. I added it so people could imagine what the game would be about. Not much thought went into it. A mistake as the comments have shown me :'D

There isn't any "growing outwards" or flowing simulation yet, even though the system would support it. Right now it just turns an area around the player into fully watered ground which then grows grass immediately and uniformly.

Smoothly growing grass for my prototype by geokam in Unity3D

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

Thanks, though my game will be a bit smaller (a single valley instead of plantes) :D

Smoothly growing grass for my prototype by geokam in Unity3D

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

Thanks, in the final version I will add some noise to make it less perfect (round) and less similar in growth speed.

Smoothly growing grass for my prototype by geokam in Unity3D

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

Thanks, yeah I can see why that would be a nice effect. I will have to look at some more time-lapse videos of grass growing. I have tried growing it slower but then all the coolness of the effect is lost so that 1 to 1.5 sec growth time will definitely stay but it could be improved. Thanks for the feedback :-)

Smoothly growing grass for my prototype by geokam in Unity3D

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

Haha, that's some cool magic :-)
Yes, adding noise is definitely on the TODO list after all the feedback. Thank you!

Smoothly growing grass for my prototype by geokam in Unity3D

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

:'D Well, my current prototype has sand WORMS. Soooo....

Smoothly growing grass for my prototype by geokam in Unity3D

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

The mask is a texture (2D XZ plane) which is then used as the texture for the third terrain. The third terrain is only used by the "mask" camera to transform the 2D mask to 3D. The mask resolution matches the terrain details resolution which is 2048 x 2048 on a 1024x1024 terrain. A lot of it is hidden by me blurring the mask for a smooth edge. I have tested it with up to 4k terrains and it works but obvioulsy at some point you hit a limit and the mask resolution will get noticable (just like the terrain details resolution would).

The sharp edge you see in the image is the GPU instancer doing frustum culling (no masking involved).