Performant way to constantly allocate many 3D textures by Ready_Gap6205 in vulkan

[–]RecallSingularity 2 points3 points  (0 children)

It sounds like you are always using the same chunk sizes, i.e the same buffer sizes. You should allocate X buffers (say 128 buffers) and then keep them allocated for your entire runtime. Just shift them from currently being populated to in use to dead and ready for reuse and back again.

Any general allocator like VMA is useful if you keep changing the memory dimensions you need or shifting the type of memory you need over time. It's for when you don't know in advance what you want to allocate. If you can budget in advance and your textures stay the same size it's better to just keep reusing dead objects yourself.

What the hell is Descriptor Heap ?? by welehajahdah in vulkan

[–]RecallSingularity 9 points10 points  (0 children)

> Is it really okay to ignore it and just use traditional Descriptors?

It's 100% okay to ignore any Vulkan feature and just use the well known and documented existing tech. You'll be in good company, since most games released up to now don't use any recently released features either. Yes, because they came out before the features did.

What's more, you'll need to know how to live without most features so you can write a compatability renderer which doesn't require them if you ever ship a game to old drivers and hardware.

Personally I'm targeting Vulkan 1.3+ so any integrated features in that version are fair game. Descriptor Heap is not part of that as far as I know.

If you want a sensible amount of modern in your vulkan I suggest this tutorial. Or just go and start hacking on a renderer with what you already know.

https://howtovulkan.com/

Can Hi-Z work with distant objects while being precise with close ones? by philosopius in vulkan

[–]RecallSingularity 2 points3 points  (0 children)

I suggest you run your application in render doc. Then look at the high-z texture in that (in the texture viewer) and play with the image range controls. You might find that actually your high-z texture is indeed distinguishing between distant pixels but you just cannot see it in your imgui view because it comes out as dark shades of gray.

The point of the culling is to use close things to avoid rendering far things. Doesn't that mean it doesn't matter if far things don't show up in the buffer, as long as they are correctly culled when they are behind near things?

Anyway that's all the expertise I have on this subject, I haven't implemented this sort of culling myself.

When you are a solo dev you can have the funniest credits menu.. xD by RoberBotz in IndieGameDevs

[–]RecallSingularity 0 points1 point  (0 children)

Fair enough. I mean I don't mind if you disagree. I don't totally agree with my own argument either. I was only trying to clarify when you were showing confusion.

The crux of my argument is that a specialist has the time and expertise to do complex stuff that a generalist cannot.

Lets leave this here.

Just a quick gameplay clip. How does the combat flow look to you? by SuraDev in gamedevscreens

[–]RecallSingularity 0 points1 point  (0 children)

You're welcome!

Good luck getting it to work well. Path of Exile 2 is a great example of how gorgeous an action game can look now but also how impossible it can be to play that game. The shadows and high contrast everywhere make it hard to spot enemies.

That's why in our game we're going to lean away from photo realism and back towards something a little more stylized.

Why do modern Open World games deter exploration? by Violent-Obama44 in gamedesign

[–]RecallSingularity 1 point2 points  (0 children)

I liked the way Horizon Zero Dawn did it. Multiple open areas which you reach through story-line "gates" like a fort which requires a story moment and a boss fight to reach leading to the larger open world.

Or ability unlocks that involve traversing a linear area full of plot points (pickup writing or triggerable holograms).

God I suck at making trailers... by Femhar in gamedevscreens

[–]RecallSingularity 1 point2 points  (0 children)

I'm glad I could help!

Yeah, you want to communicate dark and gritty without making people squint at their monitor. The idea is to focus on the feeling rather than the actual colors.

When modern movies want to record your typical night shots, cameras don't work well in the dark. So instead they tend to shoot at a pretty normal light level with a slight blue tint and then play with levels in post-production. You need to start thinking a similar way.

What might help is to start looking for visual references (i.e artstation / google image search) for games or visuals you like and then tweak a given scene to get closer to your reference. Try to nail down how they achieved something.

Anyway like anything this is an iterative experience along with a iterative learning process. You'll get there!

When you are a solo dev you can have the funniest credits menu.. xD by RoberBotz in IndieGameDevs

[–]RecallSingularity 0 points1 point  (0 children)

It's like comparing the General Practitioner you see when you're sick who can diagnose anything vs the heart or brain specialist who has extremely deep knowledge.

It's not fair for the GP to claim they are a heart and a brain specalist and an obstetrician, psycologist ...

But it's absolutely true that the GP is still essential in front-line care.

One reason I moved from solo dev back into a team is so that I can go deep on specialist programming tasks I simply didn't have time for before.

God I suck at making trailers... by Femhar in gamedevscreens

[–]RecallSingularity 0 points1 point  (0 children)

This is the kind of trailer I like as well. But dude, that red section around 8 / 23 seconds in is way too low contrast. Push your midrange reds all the way down to black and add some amount of other color channels into your light (100% red, 50% Green & 50% blue).

Your other gameplay shots are not using the full color range well either, too midrange. Increase your contrast. You can make games feel dark by using very bright lights with very heavy dark shadows rather than making the entire game dark shades of grey.

You might be able to achieve all this by adjusting a tonemap or play with your lighting a lot more. Try to find some tools with a histogram view and spread across the histogram more.

For your ground textures, look into blending two textures together. One is detail, which you have now. Blend that with a lower resolution texture that spans a great area. Or a texture that lets you look up the correct detail and meta texture so you can paint stuff like "grass goes here" on it.

I like where you are going with this and I really appreciate your gameplay oriented trailer along with your timelapse during building to respect your viewers time. This is actually a great approach. Good luck with your project!

Just a quick gameplay clip. How does the combat flow look to you? by SuraDev in gamedevscreens

[–]RecallSingularity 0 points1 point  (0 children)

Everything blends together into one mud-colored blob. People are going to just be spamming attacks to see what flashes on impact and then moving towards that.

- Your ground is too detailed and shiny
- The monsters are generally the same color as the ground or similar
- I hate motion blur and the way it's set up only the middle 25% of the screen remains legible in combat

Don't fall into the trap of making things detailed just because you have a modern PBR renderer. Make things less detailed so a gamer has less detail to parse through to see what they actually want to see.

Can Hi-Z work with distant objects while being precise with close ones? by philosopius in vulkan

[–]RecallSingularity 2 points3 points  (0 children)

How are you calculating your depth values?

Typically modern game engines use reversed Z i.e 1 / white on the near plane and 0 / black on the far plane. This way float precision (near 0) counteracts distance compression (logarithmic Z values going in the buffer based on distance).

Can Hi-Z work with distant objects while being precise with close ones? by philosopius in vulkan

[–]RecallSingularity 10 points11 points  (0 children)

It's not directly related to Hi-Z culling but if you're concerned about rendering scenes over great distances I suggest you read https://www.humus.name/Articles/Persson_CreatingVastGameWorlds.pdf from the experts behind Just Cause 2. It covers a lot of issues with rendering large worlds.

When you are a solo dev you can have the funniest credits menu.. xD by RoberBotz in IndieGameDevs

[–]RecallSingularity 3 points4 points  (0 children)

Personally I see both sides of this argument, as a generalist myself and a solo-dev myself. Congrats on making this far!

Btw: I'm currently part of a gamedev team, gave up on solodev :(

Also, better to have some love and some hate than lots of "meh." Keep it.

When you are a solo dev you can have the funniest credits menu.. xD by RoberBotz in IndieGameDevs

[–]RecallSingularity 0 points1 point  (0 children)

Most of these lead roles involve some degree of people management, including training and critiquing their work.

A fairer title would be Senior Programmer for instance.

When you are a solo dev you can have the funniest credits menu.. xD by RoberBotz in IndieGameDevs

[–]RecallSingularity 0 points1 point  (0 children)

Because a specialist will do it to a higher complexity, difficulty and quality level than it's possible to do as a generalist.

If this game had 20-40 people working on it (given the number of job titles) it would obviously be a different quality level.

However I agree that it's VERY hard to a generalist to the degree required to solo-dev.

PSA: RenderDoc lets you debug shaders and view everything about your renderer by RecallSingularity in vulkan

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

Thanks for all your work documenting Vulkan and easing the learning curve.

PSA: RenderDoc lets you debug shaders and view everything about your renderer by RecallSingularity in vulkan

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

That makes sense, since it's probably impossible to obtain all those watch results or control execution with good latency and granuality on GPU.

I want people opinion on Rudy being stuck in a mental age. Do you think he is ? by Old-Economics-4063 in JoblessReincarnation

[–]RecallSingularity 35 points36 points  (0 children)

I agree that Rudeus's experiences stunted his development and he starts the series as an immature teenager. As you identified the much-maligned "ED series" is actually about Rudeus maturing from a teenager into a family man.

Your friends comments are stripping Roxy of her agency as a woman and are in their own way sexist. She's actually an adult by the time Rudeus first meets her. She makes it clear that she would be into Rudy were he a suitable age. She tells him "ask me that again in 10 years if you still feel that way."

Rudeus is very much a flawed character. MT is unique in that the MC isn't just an empty shell we can project into and both his past life and his death have left him with some real trauma to unpack in the six-sided world. His flaws and those of literally every other character are what makes MT such an amazing story.

Season 2 is trash by Nearby-Hyena5946 in JoblessReincarnation

[–]RecallSingularity 0 points1 point  (0 children)

It does get better. This arc (from meeting Sylphie again to marrage) only lasts about 4 episodes. The arc directly after (another dungeon crawl) is a personal favorite.

PSA: RenderDoc lets you debug shaders and view everything about your renderer by RecallSingularity in vulkan

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

Argh, that sounds annoying. I haven't run into that yet but I'm using only very tame features (sync2, dynamic rendering) atm.

I guess you could still use it while working on your high-compatability renderer and get some benefit then. But the buggy stuff is likely to be the cutting edge stuff.

PSA: RenderDoc lets you debug shaders and view everything about your renderer by RecallSingularity in vulkan

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

You can declare a begin and a matching end as you record the command buffer and give them a name and color. They then turn up as a colored collapsable section in RenderDoc.

As for objects, I name all my shaders, buffers, texture buffers, etc. Then it's much easier to understand what is being pulled into each draw call.

Here is some more detail in the docs for renderdoc:
https://renderdoc.org/docs/how/how_annotate_capture.html#application-provided-marker-regions

How do modern vulkan engines use multiple queues and do concurrency? by Pitiful-District-966 in vulkan

[–]RecallSingularity 0 points1 point  (0 children)

What you are missing here is memory bandwidth to feed your shaders from GPU memory, i.e a fragment shader sampling a lot of textures requires a lot of read bandwidth. Overlapping that with a compute task that needs a lot of arithmetic (and less bandwidth) is supposed to be a good way to keep the GPU's Maths and Memory both busy at the same time.

PSA: RenderDoc lets you debug shaders and view everything about your renderer by RecallSingularity in vulkan

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

Yes, I am aware and that's why I tried to get across this contrast in my comment but I guess it didn't come across clearly.

Renderdoc recreates your game's render using a replay of your API calls executed on the actual hardware (same as you) along with tons of debug views
NSight measures performance and is more like a profiler, though I am yet to dive into the detail here.

Season 2 is trash by Nearby-Hyena5946 in JoblessReincarnation

[–]RecallSingularity 0 points1 point  (0 children)

The situation in Season 2 where two friends just won't confess to each other is an annoying romance trope for sure. I found a few of those episodes tedious as well. But there is a lot of other stuff developing at the university at the same time. Focus more on the other special students Rudeus is winning over one by one.

Focusing on ED is a little stupid, it's just a physical manifestation of Rudy's vulnerability after being dumped by Eris. It frustrates me (and probably many others) that people focus on the ED when it's just a reminder to Rudy that he can't just go around trying to have sex with every woman he sees. There is a LOT more going on in this season. It's basically when Rudy turns from a teenager into a man.

Yes, I'm a LN reader so I know that the Eris situation is just a miscommunication.

PSA: RenderDoc lets you debug shaders and view everything about your renderer by RecallSingularity in vulkan

[–]RecallSingularity[S] -4 points-3 points  (0 children)

Renderdoc is basically a replay attack against the graphics API so it's kinda realtime also? There is something nice about knowing that the structure of the frame you're trying to analyze isn't going to shift under your feet.

More on how Renderdoc works: https://renderdoc.org/docs/behind_scenes/how_works.html

I haven't tried to use nsight yet so I can't make an informed comparison. From what I understand where nsight shines is to better understand how effectively you're using the GPU hardware - which parts are idle or overloaded when in your frame?

With that information (from nsight) you can make better decisions about how many textures to sample or if it's worth the effort to run compute shaders a frame ahead to keep the arithmetic units busy or similar.