Not sure if this is a bug, but this is happening to me:
I don't know how to describe it but I think a clump of goblins spawned in one place and start spawning bushes behind themselves while they run around? Is this intended?
Not a bug per se, I uploaded a new version to fix some framerate problems another commenter was having and this - spawning bushes around an entity - was what I was experimenting with at the time (as a prototype for how elementals might work). I should probably have set the game world to a more 'normal' state before uploading!
Good to know that the game is functioning as intended.
As for everything else: performance-wise, the game runs very well on my machine (I have a 1060, i7 for reference). I never had any significant performance dips no matter how much wind and fire I spammed.
Overall, this is a pretty cool tech demo and I'm interested in seeing where you'll take this concept.
Good to hear! Optimizing this thing is a bit weird (lots of GPU crosstalk). (It's actually constantly simulating all of the tiles representing wind and fire for the whole island, which means performance is constant w.r.t. those things...) Thanks for playing! I hope to have a gameplay demo for next DD :)
Love the progress. The wind is very pretty and fun to play with.
When I hold and drag the fire, it seems like my cursor on the ground jumps in an unattractive way and the flames come in 'spurts'. It looks like the fps is really suffering but it stays consistent at ~30 so it's just something about how the flames come in and how the cursor changes.
Hm. The jumping is part of an attempted optimization that's less noticeable at 60fps (batching world-driven changes to the sim and only uploading them to the GPU every few frames), but when limiting my own FPS to 30 it becomes obvious and ugly. It looks like I'll have to replace that with something better, thanks for pointing it out!
No, the default is 60! If your PC is beefy then it running at 30 is probably a bug... Are you on Windows?
If you run and press 'g', that'll show the profiler. This is what it looks like for me (running generally at a comfortable 60fps)... It could be a problem in the vsync implementatio of the graphics libraries I'm using.
Thanks for mentioning this, I'm seeing it on my windows machine as well.
I think I see the problem. To maintain 60FPS, the game sleeps for the remainder. At least on my windows machine, when it does this, it sometimes sleeps for way too long (even though the requested sleep time is correct). This is what's behind it being at 30FPS on your machine. Very strange, I'll have to put in a better system.
Yep, just sticking a while(time not right){} loop at the end fixed it! I've uploaded a new version with the improved performance (it feels a lot better at a solid 60FPS than 30!), plus one or two other little things I added over the weekend. Thanks for the help, friendly lain-anon :)
It's a tech demo of a game where you're a wizard interacting with the world via fluid dynamics! Drag the air to blow it around, add heat, burn grass and bushes (and yourself, if you're not careful!)
If you download it, please tell me if and how well it ran on your machine. The fluid dynamics are a bit resource-intensive! You can get performance info with 't' and 'g.'.
You have a character now.
WASD to move him around
LEFT CLICK to add heat into the world
RIGHT CLICK + drag to blow air around
Heat hurts you as well. (No health bar yet, I'll try to add that by the end of the weekend...)
The goblins walk towards and away from you, but they're not very clever (they get stuck on the walls) and they can't hurt you yet. You can blow them (and yourself) around with wind, though! Or burn them to death (you monster...)
'r' regenerates the map
'z' generates a flat plain
'f' reverses the flow of time for fluids (sort of).
in general, most of the arrow keys do something debug-y.
Comments
Not sure if this is a bug, but this is happening to me:
I don't know how to describe it but I think a clump of goblins spawned in one place and start spawning bushes behind themselves while they run around? Is this intended?
Not a bug per se, I uploaded a new version to fix some framerate problems another commenter was having and this - spawning bushes around an entity - was what I was experimenting with at the time (as a prototype for how elementals might work). I should probably have set the game world to a more 'normal' state before uploading!
Good to know that the game is functioning as intended.
As for everything else: performance-wise, the game runs very well on my machine (I have a 1060, i7 for reference). I never had any significant performance dips no matter how much wind and fire I spammed.
Overall, this is a pretty cool tech demo and I'm interested in seeing where you'll take this concept.
Good to hear! Optimizing this thing is a bit weird (lots of GPU crosstalk).
(It's actually constantly simulating all of the tiles representing wind and fire for the whole island, which means performance is constant w.r.t. those things...)
Thanks for playing! I hope to have a gameplay demo for next DD :)
Love the progress. The wind is very pretty and fun to play with.
When I hold and drag the fire, it seems like my cursor on the ground jumps in an unattractive way and the flames come in 'spurts'. It looks like the fps is really suffering but it stays consistent at ~30 so it's just something about how the flames come in and how the cursor changes.
A respawn button would be good.
Looking forward to more!
Thanks for playing :)
Hm. The jumping is part of an attempted optimization that's less noticeable at 60fps (batching world-driven changes to the sim and only uploading them to the GPU every few frames), but when limiting my own FPS to 30 it becomes obvious and ugly. It looks like I'll have to replace that with something better, thanks for pointing it out!
do you know why my fps was limited to 30? I have a pretty beefy PC, is 30 the default?
No, the default is 60! If your PC is beefy then it running at 30 is probably a bug... Are you on Windows?
If you run and press 'g', that'll show the profiler. This is what it looks like for me (running generally at a comfortable 60fps)... It could be a problem in the vsync implementatio of the graphics libraries I'm using.
ya I'm on Windows, it sits around 32 fps
Thanks for mentioning this, I'm seeing it on my windows machine as well.
I think I see the problem. To maintain 60FPS, the game sleeps for the remainder. At least on my windows machine, when it does this, it sometimes sleeps for way too long (even though the requested sleep time is correct). This is what's behind it being at 30FPS on your machine. Very strange, I'll have to put in a better system.
Out of curiousity I looked at the raylib source to see what they do. This looks like a pretty sensible implementation that fixes what you're hitting. Seems like Sleep() is pretty off: https://github.com/raysan5/raylib/blob/master/src/rcore.c#L4954
Yep, just sticking a while(time not right){} loop at the end fixed it! I've uploaded a new version with the improved performance (it feels a lot better at a solid 60FPS than 30!), plus one or two other little things I added over the weekend. Thanks for the help, friendly lain-anon :)
No issues with performance on a 1660. Though for some reason there's an errant red triangle that appeared. Physics are cool.
Haha, the red triangle's just a test triangle I forgot to remove!
Thanks for giving it a go. Your rig's a lot better than mine!
The fluid dynamics are quite cool to play with. Glad to see you this demo day.
Glad you find them fun - that means it's time to build interesting things out of them!
It's a tech demo of a game where you're a wizard interacting with the world via fluid dynamics! Drag the air to blow it around, add heat, burn grass and bushes (and yourself, if you're not careful!)
If you download it, please tell me if and how well it ran on your machine. The fluid dynamics are a bit resource-intensive! You can get performance info with 't' and 'g.'.
You have a character now.
WASD to move him around
LEFT CLICK to add heat into the world
RIGHT CLICK + drag to blow air around
Heat hurts you as well. (No health bar yet, I'll try to add that by the end of the weekend...)
The goblins walk towards and away from you, but they're not very clever (they get stuck on the walls) and they can't hurt you yet. You can blow them (and yourself) around with wind, though! Or burn them to death (you monster...)
'r' regenerates the map
'z' generates a flat plain
'f' reverses the flow of time for fluids (sort of).
in general, most of the arrow keys do something debug-y.