A lesson in rabbit holes and time management

Wow, I'm exhausted, as always! I'm happy to be done and I'm pretty happy with the result, too.

ld53.png

I learned several things this go around but the biggest takeaway was to be more self-aware when I'm going into rabbit holes and try to time-box work on certain features.

I spent the entire first 24 hours not touching code and just working on assets and visual components. I don't know how to model trees, so I decided to follow a tutorial in implementing a procedural tree generator in blender. The results are decent looking:

1.PNG

But the graph is a bit of a nightmare...

2.PNG

The tutorial is here: https://www.youtube.com/watch?v=WLym7frkpKM

In the end, i only generated 4 trees and a bush to use for the game. So while it was a great experience learning more about Blender geometry nodes, it was definitely a huge rabbit hole time sink.

I also spent way too long on the grass! Initially I tried a typical approach of quads and a simple drawn grass texture. But I didn't like the result of this as grass was too sparse, and increasing the density resulted in poor performance:

3.PNG

After a few other attempts, I ended up settling on a GPU instanced solution, based off of the code here: https://github.com/utkaka/unity-gpu-instanced-grass

The strategy is to bake the grass blade positions before runtime by raycasting all over the scene and saving ground contact positions into a giant array. This array is chunked up into multiple renderers which send the positions to the GPU in a ComputeBuffer, they don't need to change during runtime. The shader has a simple noise-based wind effect on it.

4.PNG

And the result is....Cool looking, but nothing like grass. It looks like weird tentacles!

Another rabbit hole, I learned a lot about various ways of rendering grass, and I got it to run smoothly, but it was absolutely over time-budget since it wasn't critical to the final game.

In the end, I ended up taking an extra day to finish the game and get it submitted to the jam category: https://ldjam.com/events/ludum-dare/53/skypost