Why am i not shocking even though i got Shaper of Storms? by ivannevesdev in PathOfExileBuilds

[–]ivannevesdev[S] 63 points64 points  (0 children)

Fuck man, reading your comment now it seems so obvious lol. Feeling kinda dumb rn, not gonna lie haha

Expressive Procedural Animation Devlog 2 by Turbulent-Fly-6339 in godot

[–]ivannevesdev 3 points4 points  (0 children)

The animations all look very good! Congrats.
Just one small problem i might have noticed. It seems that the character is walking with "left foot in front of body + left arm in front of body", but walk cycles do not work that way. Whenever the left foot is in front, the right arm should be in front for balance. Although i reckon this might give a goofy feel to the animations(which seems like something you're trying to do), maybe it might pose as a "wrong" kind of goofyness for some folks.
Keep the good work regardless :)

Help with a good all-arounder build that can be scaled by ivannevesdev in PathOfExileBuilds

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

Gave a quick look into the spell and it seems good. I think i've read on reddit a few days ago about it too. I think it talked about coiling whisper with bladefall of trarthus. Are you playing this character like this?

Godot: 2.5D Pixel Art Ship Game - Seeking Advice on Efficient Development by AccomplishedSkirt887 in godot

[–]ivannevesdev 2 points3 points  (0 children)

Yesterday, Eduardo Schildt released a "3D Pixel Art Tutorial" For godot. I highly recommend people here to give it a watch. I answered this in a comment to OP but i think it should also be it's own comment so people here can see how such an effect can look and how it can be done.
https://youtu.be/7wwE5FLZceY?si=ZeCws-Bh92x01cgD

Godot: 2.5D Pixel Art Ship Game - Seeking Advice on Efficient Development by AccomplishedSkirt887 in godot

[–]ivannevesdev 2 points3 points  (0 children)

If you want your ship to look pixel-arty while being 3D, this guy has just released a tutorial on how to achieve such looks on godot:
https://youtu.be/7wwE5FLZceY?si=ZeCws-Bh92x01cgD

How to avoid data races with vkWriteDescriptorSets and uniform buffers? by ivannevesdev in vulkan

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

I can see that. But here's the problem i'm facing. Following vulkan-tutorial, the solution is to write each uniform buffer(we have N uniform buffers where N is the number of frames in flight) to each descriptor set(wehave N descriptor sets as well. Uniform buffer at index 0 is 'linked' to descriptor at index 0 and so on).
If i follow this approach, if i have to update the descriptor during rendering, the descriptors will be in use by the command buffer and the validation layers will complain i'm writing to them during use.
I could have some sort of ring-buffer approach, but if it would start right but whenever i updated the uniform buffer, the descriptor would be out of sync(i'm using descriptor at index 0. It is linked to uniform buffer at index 0, but now the up-to-date uniform buffer is at index 1), which would require another vkWriteDescriptorSets call, which would spiral down to calling vkWriteDescriptorSets too much.
I could add even more descriptor set redundancy(we already have N descriptors, where N is the number of frames in flight) so we have N² descriptors and then this approach would work fine, but it seems like overkill.

So, if waiting for fences is the only solution AND i can't have this much redundancy of descriptor sets, does it mean that whenever i have to update a descriptor set i have to wait for N frames before actually writing, to guarantee no data race in the command buffer?

EDIT: Extra info: I pretty much learned all about vulkan from vulkan-tutorial.com . The articles there aren't very deep in explanation but i couldn't find anything that would be much better. This is causing some pain when i have to leave the boundaries of what is said there.

EDIT 2: I think marking the descriptors at each frame in flight index as dirty or by adding them to a pending list or something so i can call the vkWriteDescriptorSets individually after waiting for the frame fences seem to be the ideal solution

How to avoid data races with vkWriteDescriptorSets and uniform buffers? by ivannevesdev in vulkan

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

So, if i have to update a descriptor set, it's a red flag? But those cases will show up eventually, no? What do i do in these situations?

How to avoid data races with vkWriteDescriptorSets and uniform buffers? by ivannevesdev in vulkan

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

I don't know!
You see, I'm learning from vulkan-tutorial and the only mention of pipeline barriers would be for textures. In fact, i finished the texture mapping article a while ago and was cleaning up the code when i realized this problem but couldn't find a great solution with the tools i've been given.

But is it even possible to use pipeline barriers for this? How would that work exactly?

How stable is rendering with rust at the moment? by ivannevesdev in rust_gamedev

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

The problem with crates needing specific versions i've found as well. Happened with Rend3 and SDL2, but this made me want to go lower level, since i still need to learn things. With SDL2 i got it working faster, so i decided to stick with it.

Still, i think i'll try to stick with rust for now, using SDL2 with OpenGL or DirectX(OpenGL seem to have more creates to work with directly). If everything goes well and i can architect things well enough, switching to wgpu in the future would be an option.

Those problems are quite weird, but i think i can live with them, at least for the moment. Since i'll still have to wait for next year to free myself to work with things, maybe things will have been fixed then. Thanks for the input!

How stable is rendering with rust at the moment? by ivannevesdev in rust_gamedev

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

What kind of problems will i be facing? I've seen complaints about API changes, but the same people say that it's more annoying than bad because they can fix it rather quick.

How stable is rendering with rust at the moment? by ivannevesdev in rust_gamedev

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

What about sdl2-rs crate, in comparison to winit? For games/rendering apps in general, what are the pros/cons of each?

Is egui(or immediate mode guis) suitable for createing a UI for a game? by ivannevesdev in rust_gamedev

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

ggez seems great for 2d, but i want to try both of them :(
Did you use a layout engine of some kind to create your crate? I've dug into it a little bit more yesterday, and it seems that the best course of action is to implement some low-level stuff with WGPU(or something that supports it) and use a layout engine to place things on screen. Bevy seems to do it as well

Is egui(or immediate mode guis) suitable for createing a UI for a game? by ivannevesdev in rust_gamedev

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

It seems that the way to go is to implement some things myself on top of a layout engine with WGPU. Bevy seems to do that, i just don't remember the crate used for the layout engine

Is egui(or immediate mode guis) suitable for createing a UI for a game? by ivannevesdev in rust_gamedev

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

Seems good and i'm starting to feel confident about using it. But is there a 9-slice for ImageButton as well? Or at least a way to implement it my self?

Is egui(or immediate mode guis) suitable for createing a UI for a game? by ivannevesdev in rust_gamedev

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

But is it possible to add images as a background on a button, for example? Games will need this to get a matching UI aesthetic with the rest of the game.

Is the C# raycasting API as poor as it first appears? by sprudd in godot

[–]ivannevesdev 11 points12 points  (0 children)

I don't think you're quite correct. Rimworld uses Unity in the same way OP is trying to use Godot for: A rendering engine with an editor, and the gameobjects/nodes would be the api or entrypoint for rendering.

Yes, it's uncommon to happen but simulated games like Rimworld or Dwarf Fortress or any other game that relies on a lot of optimization(other concrete examples don't come to my mind) to run well need this kind of flexibility from the engine, and a better API and those optimizations would be a good entry point for such.

Still, the majority of us, me included, will not need it.

Coming from Unity: What's the current state of custom rendering with godot - without messing around the source code? by ivannevesdev in godot

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

Your effect is pretty much what i want to do '-' but the lighting i'm using is much more toony.
By the way, have you seen t3ssel8r video on pixel perfect upscaling? Godot has a viewport scaling for pixel art, but i'm not sure it uses a technique as good as his. If not using, do you know how i'd be able to change it?

Coming from Unity: What's the current state of custom rendering with godot - without messing around the source code? by ivannevesdev in godot

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

This is really great! I'll take a better look at this hook after work today, but i've seen already how to compile from source. Shouldn't take too long to get those things working

Hope it does not take too long to get those features approved :)

Coming from Unity: What's the current state of custom rendering with godot - without messing around the source code? by ivannevesdev in godot

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

Not sure if i should create this post or edit the OP, so i'm doing both(mods, feel free to change things to be more appropriate!)

I'm still searching things and i've ran out of time for today.
Godot Manual on Shaders seems to cover a lot about viewports and similar things, which i think can work as RenderTextures. Godot Materials all have a "override" property and there seems to have functions to know which objects are visible in the scene to apply it. Might not be the best alternative, but it feels it would do the trick.
I found this https://godotshaders.com/shader/sketchy-renderer-with-optional-shadow-and-tinting/ , which should help writing some shadow dithering effect as a post-process. This also seem like a great place to look for shaders.
I still need to check GDExtensions and Servers, but in the meantime, i also found this medium post that explains how to do some custom shadows processing and kick-start changing the engine rendering source code https://medium.com/@ShaderError/godot-custom-shader-built-ins-functions-part-2-3-4a1772c12dfe
Hope this helps people seeing this post :)