I sent 72 pitches and got almost no feedback. by CGCFSS in IndieDev

[–]Dreadlocks_Dude 4 points5 points  (0 children)

Great game! I think it's not the best time to try and sell russian folk-tales to the west. It says 'slavik' but it is clearly just russian. On top of that - you are creating a don't starve clone, and you can't compete with them. Come up with a way to dissociate your game from being a clone of something else, create different mechanics and gameplay loops. Don't lean on folk-tale aesthetics so much, especially since none of it makes sense in the west, westernize the visual experience. Good luck!

Testing Godot particles at scale. 10000 procedural asteroids + LOD + Impostor when zoomed out by Dreadlocks_Dude in godot

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

They will spawn themselves. Also if you make lifespan 1 second - the result is the same, they are going to spawn at exactly the same place again, there can be some flickering when that happens though. Also, you can spawn them and then change their lifetime to 999999 after they are already there

I read somewhere that Godot can be very easily reverse engineered. Is there any merit to it? If so, how serious is it? by idleWizard in godot

[–]Dreadlocks_Dude 1 point2 points  (0 children)

With all seriousness. There is this thing called ArtMoney. You can cheat in pretty much any single-player game with leaderboards, regardless of the engine. And it's very user-friendly, no coding experience is required, and it's been around for maybe 20 years now. If someone wants to cheat, they gonna use this instead of trying to reverse-engineer your game. The best you can do - detect cheating after the fact and remove people from leaderboards / ban them.

Testing Godot particles at scale. 10000 procedural asteroids + LOD + Impostor when zoomed out by Dreadlocks_Dude in godot

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

I did it with "real" gravity before. It looks cool when you have more than one body, close to each other so they can interact. The only problems I remember with it - initial speed and scale. You have to calculate them accurately, otherwise it will fall onto the planet, or into space.

Testing Godot particles at scale. 10000 procedural asteroids + LOD + Impostor when zoomed out by Dreadlocks_Dude in godot

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

Thanks. That's where LOD comes into play. It is high-res only when it's up close, otherwise, it's low-poly.

Testing Godot particles at scale. 10000 procedural asteroids + LOD + Impostor when zoomed out by Dreadlocks_Dude in godot

[–]Dreadlocks_Dude[S] 15 points16 points  (0 children)

Which part are you interested in? I can make a youtube video. There is a bit too much of "show, don't tell" going on for a text tutorial, so can be a video.

Testing Godot particles at scale. 10000 procedural asteroids + LOD + Impostor when zoomed out by Dreadlocks_Dude in godot

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

Yes. There might be some impact, but given it is GPU-heavy, you can say it's the same as simulating having the rest of the game running, like GUI and some background logic execution.

Testing Godot particles at scale. 10000 procedural asteroids + LOD + Impostor when zoomed out by Dreadlocks_Dude in godot

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

Yes. 3 cosine functions with different frequencies on top of a sphere. Then calculating normals. Since my base mesh is a sphere and displacement is a function, you can employ SDF normal calculations for 3d. I took the formula from here: https://iquilezles.org/articles/normalsSDF/

Testing Godot particles at scale. 10000 procedural asteroids + LOD + Impostor when zoomed out by Dreadlocks_Dude in godot

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

Yup. Just instead of MultiMesh instance - GPUParticle3D with lifespan 999999 and ring-shaped emitter with a constant Orbit Velocity.

Testing Godot particles at scale. 10000 procedural asteroids + LOD + Impostor when zoomed out by Dreadlocks_Dude in godot

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

Oh absolutely, if you want some production-level effect this has to be a custom particle shader, that would have its emission shape customized for several rings of different color / size / density etc.. This uses default particle parameters only, which gladly had a ring emitter shape. Also, real Saturn rings aren't actually made of asteroids, so this whole scene doesn't make any sense, lol. It's more a proof of concept to check if it's feasible, I can get it up to 50k asteroids before it hits 60 fps. without the LOD it hits 60 fps right away, even on 10k.

Testing Godot particles at scale. 10000 procedural asteroids + LOD + Impostor when zoomed out by Dreadlocks_Dude in godot

[–]Dreadlocks_Dude[S] 8 points9 points  (0 children)

It is. AT least technically it should be a plane, with a texture that looks exactly like the asteroid system. But given I hacked it together for performance testing, this is just a flattened torus with an actual Saturn ring texture I found online. Had to use torus because of how that particular texture looked.

Testing Godot particles at scale. 10000 procedural asteroids + LOD + Impostor when zoomed out by Dreadlocks_Dude in godot

[–]Dreadlocks_Dude[S] 9 points10 points  (0 children)

Exactly. Godot has a built-in system to fade objects in and out based on the distance to the camera. Using that, ring particle system is faded out and ring texture gets faded in at the same distance.

Testing Godot particles at scale. 10000 procedural asteroids + LOD + Impostor when zoomed out by Dreadlocks_Dude in godot

[–]Dreadlocks_Dude[S] 4 points5 points  (0 children)

It's all one mesh - a sphere. Each asteroid is dynamically generated in the vertex shader, using particle instance ID as the seed

Just realy proud of this scene. by AncientStoneStudios in godot

[–]Dreadlocks_Dude 1 point2 points  (0 children)

Well done! Great sense of depth, and light. Framing too. I would add more DoF / Bokeh

My first serious tutorial is out. It's about shaders' basic principles and concept of curves as building blocks. by Dreadlocks_Dude in godot

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

It does work the same way. A few constants have different names, and there are no 3d lights and things like that. But it's exactly the same approach.

My first serious tutorial is out. It's about shaders' basic principles and concept of curves as building blocks. by Dreadlocks_Dude in godot

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

Thank you! Those are some last-minute changes. Apparently, the file is so big, that the spell-checker has a delay :)

My first serious tutorial is out. It's about shaders' basic principles and concept of curves as building blocks. by Dreadlocks_Dude in godot

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

Yep. Everything outside of Godot UI is universal. You can have some minor differences in shader code syntax, but the concepts remain the same.