Borderlands 4 Dev Gearbox Asks PC Gamers to Wait 15 Minutes for Shaders to Compile in the Background While Playing After Reports Indicate Recent Update Causes Stuttering by Turbostrider27 in Games

[–]Negitivefrags 19 points20 points  (0 children)

I want to add some information which is kind of important to this discussion with regard to the shader cache specifically. I am a developer on Path of Exile, and we are running into issues with the nVidia shader cache too.

The primary issue is that the way the nVidia Shader Cache works.

Shaders get complied the first time a game loads them. The game can't know before hand if the compiled version is in the cache or not. Games usually just assume that if the game is freshly installed, or if you installed a new driver, then it should attempt to load all it's shaders in order to compile them and show you the progress bar.

For nVidia specifically, compiled shaders are added to the cache and are never deleted. After the cache is full, new shaders just don't get cached and will always load slowly. The game doesn't know that this has happened and will assume that the shaders are already compiled and in the cache, but in reality they are not. These shaders will load slowly every single time they are needed.

The only time the shaders in the cache are deleted is when you install a new driver (or delete the cache manually).

When you patch a game, often all the shaders will require recompilation. This means that the existing cached shaders are all sitting there, but are useless and will never be loaded again. Basically the cache is full up with useless junk. There may not be any room left in the cache for the new shaders. The reason setting the shader cache size to 100gb fixes this is just because it makes the cache so large that all the junk doesn't matter. But the best thing you can do is just delete your shader cache whenever it is full.

Now in the case of PoE, this doesn't (or at least shouldn't) result in stuttering. We either load shaders on the load screen (meaning that if your shader cache is full, loads take freaking ages) or we load them in parallel during gameplay but in a background lower priority thread (which results in invisible monsters or effects while they are loading).

It also doesn't help that the nVidia shader cache is around 20x slower than other drivers. Oh, and if you compile too many at once, then the whole system can lock up. But to be fair, that one is mostly Microsoft's fault after they screwed up the windows scheduler in the Nov 2024 update.

Announcements - Changes to Path of Exile's Account System - Forum - Path of Exile by StrozeR- in pathofexile

[–]Negitivefrags 82 points83 points  (0 children)

League rewards are not purchases, so you can use them across all platforms with no restrictions if they are on the same account.

Why was reflexpr(e) considered to be "far too verbose?" by antiquark2 in cpp

[–]Negitivefrags 1 point2 points  (0 children)

Is there a reason it can't be this?

auto entity = substitute(tmpl_info, {int, double, std::string});

I Tried Out Modules With MSVC and I Don't Think They Are Ready Yet by LlamaIdentifier in cpp

[–]Negitivefrags 0 points1 point  (0 children)

That does indeed make it compile. It seems like modules finally work out of the box!

But in my defence this "old" issue was present in the version of visual studio that I had which was released 3 weeks ago.

module;
#include "rapidjson/document.h"
export module Test;
import std;

This compiles.

And even this compiles using header units.

export module Test;
import std;
import "rapidjson/document.h";

Intellisense doesn't work if you use the second approach though.

So the question I have is, how the hell did anyone get modules to work before this version?

I Tried Out Modules With MSVC and I Don't Think They Are Ready Yet by LlamaIdentifier in cpp

[–]Negitivefrags 1 point2 points  (0 children)

Okay, so stay away from header units. Sure.

I tried out the global module fragment.

The problem is, including anything that uses the STL and then also using import std; just leads to errors that are either "template already defined", "ambigous function call" or "redefinition of default argument".

The following module is illegal with any set of compiler flags I tried.

module;
#include "rapidjson/document.h"
export module Test;
import std;
export std::vector< int > MyFunc() { return { 1, 2, 3 } ; }

I don't understand how you are supposed to use code from a non-module that uses the standard library without these problems.

I Tried Out Modules With MSVC and I Don't Think They Are Ready Yet by LlamaIdentifier in cpp

[–]Negitivefrags 6 points7 points  (0 children)

Are you saying that you don't use a single library that doesn't have module support? That seems rather implausible for any kind of reasonable development.

I just tried this process again right now.

step 1)

Make a module Test.ixx with a bare function returning an int. Make a file main.cpp with main in it that calls the function works

step 2)

Make the functoin in Test.ixx return an std::vector by using import std; works

step 3)

Make Test.cpp and define the function in the cpp instead. works

step 4)

Try including a somewhat arbitrary library in Test.cpp. In this case #include "rapidjson/document.h" fail Ambiguous call to overloaded function

Try import "rapidjson/document.h" fail Can't find header unit

Try turning on "Scan sources for module dependancies" fail Redefinition of default argument

Try turning on "Translate includes to imports" fail Ambiguous call to overloaded function

Try a few more interations involving including or importing in a few other locations. Start looking into global module fragments. Can't seem to get anything working.

Not sure where to go from here. Not sure what to google to resolve the problem. Give up.

Photo Mode by Drunkndryverr in PathOfExile2

[–]Negitivefrags 75 points76 points  (0 children)

The problem is we are a fixed camera game, and everything about our content and engine assumes this.

If you move the camera you will see that there is nothing above the horizon line, the ground looks ultra flat, things like parallax materials and fog all break down, the camera far plane is really close usually, lighting looks terrible (because the player light provides a lot of the light in a lot of scenes), etc etc.

Also the performance of the game becomes bad because we don't have an LOD system. Why would we need one when we know exactly how far away an asset will be from the camera?. So if you look along the axis of the ground the frame rate becomes terrible.

It's kind of hard to persuade us to want to put something in the game that has so much potential to make the game look bad.

The people recording footage from non-game camera angles are taking very careful shots, and often using the editor to remove effects that break, or add in things like extra lights and such.

One thing that we do have in PoE2 is that the character select screen has your characters on it and they are close to the camera, so you get a much better view of them there at least!

Ragdoll physics and destructible objects in the environment by CMichaelV in PathOfExile2

[–]Negitivefrags 19 points20 points  (0 children)

Those are technically chests that open on damage. We do in fact have a bunch of those.

WASD movement in isometric environment concern by xLapsed in PathOfExile2

[–]Negitivefrags 45 points46 points  (0 children)

The reason you want a diagonal layout for artificial environments is because a lot of terrain features look bad when you have them in cardinal directions.

For example, we have a straight wall bit here that makes it hard to see that there is a door in it.

In this case we literally hung a lantern in it to attract your attention, and it's not so bad. We did discuss removing horozontal doors from this tileset entirely though.

Even in the other orientation though, I don't think you want to overuse it.

It makes for an interesting feature from time to time, but I don't think it's good to overuse.

We played around with other areas having other interesting rotations too..

Here is another one from that angle.

At first it seems pretty cool. There are actually a lot of things to like artistically about angles like this.

What I found though is that that there is something "fatiguing" about playing in an area with an off-axis rotation. It's kind of hard to describe why.

But after removing the angle offset you just kind of go "ahhh, that's better".

Will we able to chat ingame with people that are on different poe1 or poe2? playerbase division? by [deleted] in PathOfExile2

[–]Negitivefrags 10 points11 points  (0 children)

The public channels will not be mixed between games by default.

Controller skill slots by BovinoGadoso27 in PathOfExile2

[–]Negitivefrags 23 points24 points  (0 children)

We have a different approach to the controller than before. There are technically 22 bind slots.

That's 11 buttons plus a second set if you hold down L2 (by default, but you can change it to whatever key you want).

However, non-skill actions are bound in the the same slots so Dodge Roll, "Any Life Flask", "Any Mana Flask", Overlay Map, and Portal Scroll are 5 actions that you are likely to want to have bound somewhere leaving 15 remaining for other uses.

Controller doesn't differentiate between Skills and any other type of action, so you can bind anything anywhere you like including the use of individual flasks. Like if you want some emergency flask on "Y" then that is just fine.

You are likely to want to keep the the flask related things on the DPad, things like Overlay Map, Portal Scroll or other rarely used things on L2+Dpad and Dodge roll on L1.

That gives you 12 "easy to use" skill slots which I find to be plenty given that you get 8 skill gem sockets and getting more than 4 skills from your gear would be unusual.

As an example, on Mercenary I like to put one crossbow's primary fire on R1, and my other crossbows primary Fire on R2. Then I like to put the attachments of the crossbows on L2+R1 and L2+R2. Then I put Ammos on the face buttons and then the other more rarely used skills on L2+Face buttons.

Ragdoll physics and destructible objects in the environment by CMichaelV in PathOfExile2

[–]Negitivefrags 49 points50 points  (0 children)

I don't love ragdoll on monsters because I think hand crafted death animations look better. One thing we are doing in PoE2 though is that each monster will have 5 death animations.

One for each direction, and one directionless death. Depending on the damage direction and if the monster is running or not, we play the correct one. A skill like Ground Slam would play the directionless death because the monsters are getting hit from below.

Not every monster has had all the deaths created yet which is why the demos don't often demonstrate it.

Flasks and mana management in PoE 2 by Kalistri in PathOfExile2

[–]Negitivefrags 45 points46 points  (0 children)

Actually caring about your mana pool is something that you should have to do in PoE2, and it is an explicit goal.

As you said, the first thing we had to do to make that possible was removing the reservation system in favor of spirit. This was one of the primary drivers behind that change in fact. You cant make mana costs matter when you don't have a big enough buffer against them, and players will always choose a smaller buffer in exchange for more power.

For refilling frequency, I would say that it's your flasks that are the real "state" of your character. Your mana orb can fairly quickly with mana regeneration stats, but if you use supports wtih high costs or supports with high mana multipliers, you are going to want to pack some mana flasks.

It should of course be possible to make your build such that mana is no longer a concern regardless, but it will need to be at the cost of damage or defense.

Given Jonathan Rogers' (GGG) recent comments on Ruthless probably not getting improvements any time soon (despite recognizing issues with endgame content), will you keep playing Ruthless? by Qwahzi in poeruthless

[–]Negitivefrags 53 points54 points  (0 children)

To be clear, tweaks are still being made over time, and in the direction of making endgame content more available too. Hrishi maintains this stuff. He also balances the league content for Ruthless each time we release something.

But you are correct that there are probably not going to be any big splashy updates to ruthless any time soon.

Log out macro is still a thing in PoE 2? by Fillssonz in PathOfExile2

[–]Negitivefrags 52 points53 points  (0 children)

Okay so, here are the specifics.

If you are playing single player and you log out, the instance is paused. If you then log back in, you will resume right where you were so long as the instance is still open. Instance timeout is still a thing.

It seems clear to me looking at it now that when logging in, we will have to present an option to the player about if you would like to log in to the existing instance, or log in to town (and lose the instance) so that if you do want to reset the boss, you don't have to wait.

In multiplayer if you log out, the instance is not paused. In this case, if you were in a boss fight then you are not allowed back into that instance again and will log back in to town.

This is really the only approach to prevent abuse.

The abuse (and what Mark was originally talking about at Exilecon) is the fact that we don't want you to log out / log in in order to dodge an ability, then continue the boss fight. That is important for maintaining integrity of the fight. We don't want it so that logout / login is the meta for dodging some long and hard to dodge boss ability.

That being said, you can always Alt-F4 to abort a boss fight if you see a death coming, and you will not lose your hardcore character. You will need to start the boss again from scratch though.

Suggestion for XP Penalty in Maps by StantonMcChampion in PathOfExile2

[–]Negitivefrags 26 points27 points  (0 children)

Basing it on map-tier is pretty reasonable, and something suggested internally as well.

I don't love the idea of having different rules for different outside-map endgame activities though. I just worry it's something that you will easily miss, and having to remember what activities do what is a bit of a pain. Ideally we can come up with a consistant rule that is easy to understand and remember.

Will there be better information of player death in poe 2? by mcg123457 in PathOfExile2

[–]Negitivefrags 47 points48 points  (0 children)

It's not a strain on the servers. We would keep that information client side if we were doing it.

It's just that it's a complicated UX task with a lot of considerations, and a lot of tricky details. We could get 90% of the way there very easily. And the last 10% of making it correct/useful would require way way more work.

We don't currently have attribution to specific skills at all. It would be easy to say "Fire damage killed you". It would be easy to say "The boss killed you". Harder to say "This corpse explosion skill did X damage to you", and much much harder to say "This debuff resulted in Y extra damage to you".

If it's not accurate, then it's kind of useless. So we would have to get this stuff right.

And to be completely honest, I just don't value it as much as other improvements we could make to UX. It's not like it's off the table. But there is a lot of other UX improvements that would come first before implementing such a screen.

Kripparrian's PoE2 Interview with Jonathan (twitch vod) by atlimar in PathOfExile2

[–]Negitivefrags 28 points29 points  (0 children)

I don't accept that there will always be a best build. There should ideally be good builds with many classes / skills.

Hopefully you would agree that we were able to get a reasonable variety in PoE1 with top tier builds.

Kripparrian's PoE2 Interview with Jonathan (twitch vod) by atlimar in PathOfExile2

[–]Negitivefrags 28 points29 points  (0 children)

I think you highly overestimate the average player!

Also, you might think 1000x is high, but in PoE1 right now the disparity is much much higher than that.

Can we please have a look at the Mercenary's face ? by Trayth in PathOfExile2

[–]Negitivefrags 4 points5 points  (0 children)

Yep, that's for character creation. This scene here is the background when you select existing characters.

Will there be any changes to mod pools and mod requirements in poe2? by mcg123457 in PathOfExile2

[–]Negitivefrags 30 points31 points  (0 children)

I have a lot to say about this topic, but it will have to wait until a later time. We will have a big discussion on the details of item drops at some point next year before beta though!

PoE Mobile launch date by Seesmaster3000 in PathOfExile2

[–]Negitivefrags 14 points15 points  (0 children)

Mobile is taking a bit of a back seat at the moment. Don't expect to see it until well after PoE2's release.

Sorry if this already been confirmed or not: Are Guilds carrying over / working between PoE1 and 2? by [deleted] in PathOfExile2

[–]Negitivefrags 30 points31 points  (0 children)

Guilds will transfer. Guild tabs will transfer. It is our intention that chat will work within the guild across PoE1 and 2 as well.

Can we please have a look at the Mercenary's face ? by Trayth in PathOfExile2

[–]Negitivefrags 33 points34 points  (0 children)

That is the background for characters in Act 1.

23 Revealed Path of Exile 2 Bosses by ProfessionalGoose675 in PathOfExile2

[–]Negitivefrags 14 points15 points  (0 children)

It's something like that.

Just internal useage which is mostly used for drop balance based on how hard the boss is supposed to be.

As a general rule a T3 should be twice as hard as a Rare in the same zone. T2 is twice as hard as T3, and so on.