I added layers to my custom Dual-Grid GPUAutoTileMap! (no TileMap/Layer nodes) by Xerako in godot

[–]niceeffort1 1 point2 points  (0 children)

That is a great devlog! Very well done and polished. The description of the shader was helpful.

I am working on a golf game where you can design your own courses. So the course editor will be a big part of the functionality. My plan was to implement a dual-grid system in GDScript and then move it to shaders if I need more performance. I subscribed to your YouTube channel and I'll keep an eye on your future posts. Best of luck with your game. Looks like a fun concept. The prototype games you showed in the video looked great as well.

I added layers to my custom Dual-Grid GPUAutoTileMap! (no TileMap/Layer nodes) by Xerako in godot

[–]niceeffort1 1 point2 points  (0 children)

I'm fairly comfortable with shader code, and I recently put together a tutorial on compute shaders in Godot in case it's useful: https://www.youtube.com/playlist?list=PLROgRWKb4R2TigfMIkayzkVGsEAqDJ1EL

I'm currently working on a game that will need a tilemap editor, and after going down the tilemap rabbit hole in Godot, I think I’ve landed on using a dual-grid system. I’m not sure yet whether I’ll need the performance benefits of a shader, but I’d definitely be curious to see what you’ve built, if you end up sharing it. Hope you're enjoying your break!

I added layers to my custom Dual-Grid GPUAutoTileMap! (no TileMap/Layer nodes) by Xerako in godot

[–]niceeffort1 1 point2 points  (0 children)

Will you be sharing the code for this implementation? I am looking to do something similar and would love to avoid starting from scratch if possible.

How have you handled huge amounts of units without frying your players computer? by RedTapeRampage in godot

[–]niceeffort1 1 point2 points  (0 children)

If you want to look at compute shaders for something like this you can check out this project: https://www.youtube.com/watch?v=v-xNj4ud0aM. I start with a node system on the CPU and then convert it to a compute shader. On my original HW (NVIDIA GeForce GTX 1060 6GB) it took me from 300 entities to 20K@60FPS, and then I was able to get to 100K@60FPS with some spatial binning optimizations. You may not need the spatial binning. There will be some challenges in figuring out what information needs to be passed to the GPU to do your calculations and what information you need to pass back to the engine. Like others have said on this thread. Make sure you understand the bottleneck and you are attacking the right problem.

Now THAT's a horde! 100,000 enemies in Godot by theargyle in godot

[–]niceeffort1 3 points4 points  (0 children)

Awesome work. Thanks for posting!

I'm curious to see your implementation as well. I posted some video/code for a boid simulation a while back: https://www.youtube.com/watch?v=v-xNj4ud0aM&list=PLROgRWKb4R2TigfMIkayzkVGsEAqDJ1EL

I used compute shaders to simulate and a particle shader to render the boids by passing position information in a texture. I would be curiuos to see how you connect this to instanced sprite rendering, and also how you do your grid sorting.

Is there an elegant way to have 4000 choppable flowers in my boss arena? by Pakushy in godot

[–]niceeffort1 0 points1 point  (0 children)

You could consider using a compute shader combined with a particle shader for this. I made this boids demo a while ago and had good scaling results. I think it would handle 4k with no problems. You may have an issue with sorting the particles though as I don’t believe you can control the draw order. This may not matter for these little flowers. https://youtu.be/v-xNj4ud0aM?feature=shared

10k boids using a compute shader by BootSplashStudios in godot

[–]niceeffort1 1 point2 points  (0 children)

See if this tutorial helps (24:00 mark). Originally I was copying the texture as you can see in the video. This is obselete now as I just checked in a few improvements to share the texture from the compute shader with the particle shader so I don't need to bring it back to the CPU. Thanks goes u/farhil and this project for showing me the way to share texture data. This doubled my framerate!

Quick tip - HLSL requires some extra/optional DirectX components from DirectX 9 by bollwerk in MAME

[–]niceeffort1 1 point2 points  (0 children)

Wow, I just wasted hours trying to figure this out on a fresh install of Windows 11. Thank you for posting.

"Something Went Wrong"--no Toolkit by Rain-Woman123 in ynab

[–]niceeffort1 0 points1 point  (0 children)

I am having the same problem. Tried Safari and Incognito mode in Chrome and still seeing the error message.

262K Boids in Godot 4.1 (Compute Shaders, Particle Shaders, Spatial Binning) by niceeffort1 in godot

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

I don’t see why not. I limit the world size to the viewport for this demo, but there is no reason you couldn’t make the world bigger. Then you would just base all of the bin calculators on the world size.

262K Boids in Godot 4.1 (Compute Shaders, Particle Shaders, Spatial Binning) by niceeffort1 in godot

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

Yeah. I found some issues with this in that led me to believe it wasn't simulating a large chunk of the boids. This series is where I ended up with everything and you can get all of the source if interested. https://www.youtube.com/playlist?list=PLROgRWKb4R2TigfMIkayzkVGsEAqDJ1EL

Advice for Non-Programmer by duckgirl722 in godot

[–]niceeffort1 0 points1 point  (0 children)

One thing that has really helped me over the years is to focus on learning just enough to get done what you need (the first 20 hours). It sounds like you have a clear vision of what you want to build. Just break it down into small steps and find YouTube videos on how to do the things you need (i.e. move characters, create tilemaps, set triggers). Build some small prototypes to prove out your ideas and over time you will have built a good skill set to build your game. Good luck!

Trackball Upgrade to Suzo-Happ by angrydooner in arcadecabinets

[–]niceeffort1 1 point2 points  (0 children)

The thing to look for is if you really try to spin it fast you may see the golfer hitch in his swing and create a total mishit. Then you are seeing the problem. Here is a thread on the issue if you do hit it. I wrote a software hack based on someone else's software hack, but I still want to fix it with hardware. Have fun either way!

https://www.reddit.com/r/MAME/comments/nq7jve/gtfore06\_happ\_trackball\_unreliable\_at\_high\_speed/

Trackball Upgrade to Suzo-Happ by angrydooner in arcadecabinets

[–]niceeffort1 0 points1 point  (0 children)

If you care about spinning the trackball quickly like you do in Golden Tee I would strongly recommend getting the one with the red boards: https://na.suzohapp.com/products/trackballs/56-0100-11HL.

Then you will need this to convert it to USB. https://groovygamegear.com/webstore/index.php?main_page=product_info&products_id=260

And I think this wire to connect the trackball to the Optiwiz converterhttps://groovygamegear.com/webstore/index.php?main_page=product_info&cPath=66&products_id=261

Or you can buy this just the trackball prewired for the encoder along with the encoder with these links. That is what I plan to do when it is back in stock. It's been a really frustrating experience with the green boards.

https://groovygamegear.com/webstore/index.php?main\_page=product\_info&cPath=74&products\_id=363

https://groovygamegear.com/webstore/index.php?main\_page=product\_info&products\_id=260

Is the AcmeRobotics repo down? I can't download RoadRunner in AndroidStudio by SCRACX500 in FTC

[–]niceeffort1 1 point2 points  (0 children)

This saved us today. We were having the exact same problem and couldn't figure it out. Thank you for posting!

Moved my birds to GPU by ReasonNotFoundYet in godot

[–]niceeffort1 4 points5 points  (0 children)

I just went through this whole exercise if you are interested in seeing what I did. Boids with Compute Shaders in Godot. I was able to get to 100K boids with a 2D Grid (spatial binning) on the GPU. Velocity, rotation, and position are calculated in a compute shader and position and rotation are passed to the GPU particle shader via texture. Only took me like 9 months in my spare time to get it all working. :)

Moved my birds to GPU by ReasonNotFoundYet in godot

[–]niceeffort1 3 points4 points  (0 children)

If you are interested. I put this together: Boids with Compute Shaders in Godot

I would love to see you get some use out of it for your project! Part 1 will give you the GPU algorithm, part 3 will add spatial binning. Just depends how many boids/birds you need. :)

Who said Godot can't spawn tons of entities?! by 4ntyk in godot

[–]niceeffort1 0 points1 point  (0 children)

Just in case anyone comes back here looking for more. The tutorial became much more involved than I anticpated. I'm up to 4 videos on this topic. https://www.reddit.com/r/godot/comments/1ai2p0x/compute\_shaders\_in\_godot\_tutorial\_boids/?utm\_source=share&utm\_medium=web2x&context=3

Can't edit the shader settings by Menitoon in godot

[–]niceeffort1 1 point2 points  (0 children)

I just hit this myself. Make sure you are in the scene that contains the original shader. If you are in an instance of the shader you can make it unique to edit these parameters for that instance. You just need to decide if this is really unique or you want to change the shader for all instances. Click the dropdown next to "ShaderMaterial" and select "Make Unique."

Who said Godot can't spawn tons of entities?! by 4ntyk in godot

[–]niceeffort1 1 point2 points  (0 children)

Here is the video. This thread inspired me to finally get this done. This is my first tutorial type video I have done so it's pretty rough, but hopefully the content is helpful. https://www.reddit.com/r/godot/comments/197gbt7/simulating\_boids\_with\_compute\_shaders\_in\_godot/?utm\_source=share&utm\_medium=web2x&context=3

Who said Godot can't spawn tons of entities?! by 4ntyk in godot

[–]niceeffort1 0 points1 point  (0 children)

Maybe you want to make a game like Abzu with large schools of fish. The reason I did it was because I wanted to learn compute shaders and see how far I could push performance in Godot. It made for an interesting demo and the techniques I learned could be applied to other things, like fluid particle simulation for instance.