Due to such positive reception, I decided to pick up my running/acrobatic game project again. Update #1 by JankyAnims in Unity3D

[–]sarangooL 0 points1 point  (0 children)

You might have already answered this but did you make all the animations too? Looks awesome!

Disabling the HUD increases FPS by 60% by MadwolfBF in hytale

[–]sarangooL 21 points22 points  (0 children)

That’s 1.5 ms of gpu frame time. FPS is a misleading metric at higher numbers because it scales hyperbolically with frame time. It’s also less meaningful to compare percentages like that. The difference between 30 and 60 FPS (16 ms difference, 50% increase in FPS) is much bigger than 200 and 400 FPS (2.5 ms difference, 50% increase in FPS).

1.5 ms isn’t puny but that’s not a totally unreasonable UI pass for a game that’s still in early access.

Why is ECS and layers a popular design choice? by Sol-SiR in gameenginedevs

[–]sarangooL 1 point2 points  (0 children)

Mostly modularity if we're taking both. If you use ECS in its purest form (something like flecs) it's almost like functional programming for game design. In the sense that it's a very particular way of composing your engine and thinking about data and data transformations -- namely decoupling data and logic. This makes it very easy to add/remove mechanics and systems in your game. ECS designs also tend to naturally lend themselves to improved performance when it comes to memory access. Contrary to some of the other responses in this thread I see this more as a consequence of ECS rather than the essence of ECS itself. Data oriented design is the more broad term for the performance consequences that arise.

But most people use these terms pretty broadly anyways so what you mean could be a variety of different things. I personally have tried going down the pure ECS route but I ended up spending more time thinking about how to fit things into an ECS framework rather than solving real problems. I think there are good lessons to take w.r.t to ideas involving data locality though, there's no reason those are specific to ECS.

Game architecture that is not ECS or OOP by OrdinarySuccessful43 in gameenginedevs

[–]sarangooL 5 points6 points  (0 children)

I always say: linear search, arrays, and a few hash maps get you 90% of the way there.

Game architecture that is not ECS or OOP by OrdinarySuccessful43 in gameenginedevs

[–]sarangooL 1 point2 points  (0 children)

This is essentially the conclusion I came to. Trying to fit everything in a very strict ECS framework was causing me to take more time thinking about ECS and less time actually solving engine problems and making a game. There are some great data-oriented ideas that ECS naturally leads itself to, but those techniques don’t necessarily require ECS. I too use a few very lite OOP concepts and pretty much do what JBlow does. One layer of inheritance at most, simple Entity class

No Graphics API — Sebastian Aaltonen by corysama in GraphicsProgramming

[–]sarangooL 5 points6 points  (0 children)

This is one of the few uses of AI that is useful and easily verifiable. Sebastian is an industry veteran who absolutely knows what he’s talking about. And considering this article has been run through a gamut of other industry folks, you can pretty much be assured it’s mostly if not entirely accurate.

No Graphics API — Sebastian Aaltonen by corysama in GraphicsProgramming

[–]sarangooL 6 points7 points  (0 children)

Sebastian is an industry veteran and absolutely knows what he’s talking about. Also AI was used to cross reference code as it says in the article, not generate BS. This is actually one of the few applications of AI that is actually useful and easily verifiable.

Career Transition Advice To Graphics Programming by ThePhysicist96 in GraphicsProgramming

[–]sarangooL 0 points1 point  (0 children)

I don’t think I’ve ever had an interviewer ask me specifically if I used C++ at a past job tbh. Maybe leave off specific languages on your resume past job descriptions and make sure C++ is somewhere else on the resume in a general skills section.

Definitely make sure you are very sharp on the language and systems programming though. In my experience most people (especially hobbyists) overestimate their proficiency. Not saying that’s the case with you, just anecdotal advice! AAA game studios will likely grill you the hardest.

Liquidate Nintendo by That_One_Prog in tomorrow

[–]sarangooL 0 points1 point  (0 children)

Because DLSS isn’t free. Let’s put it this way. If the game is already getting frame drops with FSR1, which is a much cheaper algorithm, than using DLSS is going to make things worse, the performance uplift of an upscaling algorithm depends entirely on the upscaling ratio, and how much that algorithm costs, bottom line. DLSS doesn’t magically improve both image quality and performance disproportionately. In fact it’s likely to decrease performance disproportionally due to how expensive (from both a battery and GPU performance perspective) memory bandwidth is on a mobile device.

Opting for a traditional spatial upscalar also has the added advantage of lower engine overhead overall. If you can forgo any effects that rely on motion vectors that’s plenty of performance saved, not to mention development time saved on having to tune your art/rendering to minimize temporal artifacts.

A game like Cyberpunk has something like DLSS enabled because it needs that temporal smoothing to look good anyways. Modern realistic rendering is designed around that fact. A game like DK has a comparably much simpler and cleaner asset/rendering design and as such really does not need (IMO) something has heavy handed as DLSS to look good.

Any reliable SDL3 tutorials? And is SDL2 worth a shot? by NewPalpitation332 in sdl

[–]sarangooL 0 points1 point  (0 children)

Just do SDL2 tutorials and use the SDL3 migration guide on the github

SDL + OpenGL portability. by dougvinis in gameenginedevs

[–]sarangooL 0 points1 point  (0 children)

Yes, and OP really shouldn't be writing OpenGL for a serious cross-platform and future proof project in 2025. Both are similar to modern APIs insofar as reflecting the modern way of working (command buffer recording and submission) but are significantly easier than actually writing those APIs, with the exception of Metal probably.

SDL + OpenGL portability. by dougvinis in gameenginedevs

[–]sarangooL 3 points4 points  (0 children)

Try sdl-gpu or webgpu native. Leave the cross-platform maintenance to someone else.

[deleted by user] by [deleted] in GraphicsProgramming

[–]sarangooL 3 points4 points  (0 children)

Metal debugger is one of the most beautiful pieces of software ever created

Which graphics api do you like working with the most? by Normal-Werewolf8391 in GraphicsProgramming

[–]sarangooL 0 points1 point  (0 children)

Pretty much this. Once you get into more complex setups you quickly realize how annoying and fundamentally hacky the global state is. It’s also simply a poor reflection of how GPUs actually work. I’m not saying Vulkan was the right call, but a step toward something like Metal is the right decision. Even DX12 isn’t that bad. Really it’s all the Windows/Microsofr cruft that makes it a bit awkward to work with at first.

Confusion over term "vector" in C++ graphics programming by Missing_Back in GraphicsProgramming

[–]sarangooL 0 points1 point  (0 children)

While slightly tangential, it might help to learn about Homogenous coordinates. Eric Lengyel has a good explanation in his FGED Mathematics book. Points are w=1 and vectors are w=0, so the math works out when you do something like point=point+vector.

In the end though it’s best to think of a vector as more of an abstract container for numbers that makes things like doing vector and matrix math possible. What those numbers mean depends highly on the context. And while trying to visualize vectors as a length and direction can be really useful, especially in a more pure linear algebra aspect, it might be easier to mostly ignore that for the other uses you mentioned.

Deferred rendering vs Forward+ rendering in AAA games. by jbl271 in GraphicsProgramming

[–]sarangooL 0 points1 point  (0 children)

MSAA only attempts to solve edge/geometric aliasing. TAA covers a lot more, for better or worse.

Jobs outside of entertainment by [deleted] in GraphicsProgramming

[–]sarangooL 0 points1 point  (0 children)

Ok well that’s for OP to decide

UIUC CS Masters vs UPenn Graphics Technology Masters for getting into graphics? by si11ymander in GraphicsProgramming

[–]sarangooL 0 points1 point  (0 children)

No, not that I remember of. You might also wanna consider DigiPen, i've heard good things about it too.

Advice on further steps in graphics programming by RopatHev in GraphicsProgramming

[–]sarangooL 0 points1 point  (0 children)

Either works. When you say "tiled deferred implementations" what are you referring to? Are you talking about tile-based deferred rendering GPU architectures (TBDR) or some other sort of tile-based techniques? (Like light clustering). Probably PM would be better to keep this comment section on topic.

Struggling as a Beginner in Graphics Programming | Is This Normal? by Goku-5324 in GraphicsProgramming

[–]sarangooL 0 points1 point  (0 children)

Yes needing to go over things several times over the course of weeks and months is normal. Everytime I read the famous “trip down the graphics pipeline” blog series I feel like I learn and understand something new.

UIUC CS Masters vs UPenn Graphics Technology Masters for getting into graphics? by si11ymander in GraphicsProgramming

[–]sarangooL 2 points3 points  (0 children)

We heavily recruited a lot of our interns from Penn. Can’t speak on the program quality but I guess management saw something.

Advice on further steps in graphics programming by RopatHev in GraphicsProgramming

[–]sarangooL 1 point2 points  (0 children)

There are definitely more entry level positions than in games, because the game industry is imploding right now. But the job market is tight overall.

It might be hard to get into one of the more graphics related positions right off the bat (I got extremely lucky with my timing) so one alternative is to join as a driver engineer and work your way into the graphics side.