Jump to content

Seems like XP balance is out of whack


Recommended Posts

The problem isn't that there's too much XP from X, the problem is that it takes too little XP to level. And at this point it would be much easier for Obsidian to change the latter than the former.

^yeah, that. From the standpoint of my personal tastes, Once you get to 10th level, the advancement slow down should begin. The amount of experience needed to get to 11th level should be something significantly more than it currently is. Like....close to the total amount that was needed to get up to Level 10 in the first place. Edited by Stun
Link to comment
Share on other sites

The problem isn't that there's too much XP from X, the problem is that it takes too little XP to level. And at this point it would be much easier for Obsidian to change the latter than the former.

 

And make it possible to be even lower level at the end game?

 

Seriously, there needs to be some big gatekeeper encounters before the player reaches the point of no return. Those spirit encounters need to be tweaked up in difficulty, big time, if people are getting through them at level seven without realizing they're making a huge mistake.

  • Like 1

Curious about the subraces in Pillars of Eternity? Check out 

Link to comment
Share on other sites

 

Don't get the "just don't do the side quests, no one is forcing you" people. So you would only do them if you were forced to? Why play the game at all then? No one is forcing you. 

 

That nonsense aside, after a cursory examination of the game's files, it seems all of the quests are stored in xml in data\quests folder. But they only have an "experience level" and "experience weight" values, the former being (mostly?) single digit numbers. So i guess they should be multiplied by something in order to get total experience, while the latter obviously point to how much of the experience you get in each quests stage. So after some testing to determine the multipliers i guess its possible to determine total maximum quest experience by parsing all these files. 

The exp tables themselves seem to be somewhere in unity assets or dll's, so some unity thingie or visual studio would be needed to modify them. Hoped they would be in xml as well. :(

 

Yeah, it looks like the quest files are referencing some id values to determine how much experience should be awarded. I'm trying to figure out exactly where the exp tables are; if it's something that can be modified in VS then that would make it a lot easier.

 

A good start would be linking the different quest files to their in-game counterparts. From there, you could start playing with the "ExperienceType" and "ExperienceLevel" values. Or, just create a script that ensures that no quest outside of the crit_path has an ExperienceLevel greater than some number.

 

So i asked one knowledgeable dude, and apparently there is no xp table. But there is a formula located in PillarsOfEternity_Data\Managed\Assembly-CSharp.dll in CharacterStats class ExperienceNeededForNextLevel method. It is : ((currentLevel * (currentLevel + 1)) * 500). Also the guys that made iemod already made some framework to change that kind of stuff https://bitbucket.org/Bester/poe-modding-framework

A shame its not in xml, i'm not sure i'm up to getting visual studio with all the additional stuff required just to change this. Also i wouldn't be surprised if its very easy to f something up with that decompiling stuff...

  • Like 1
Link to comment
Share on other sites

 

 

Don't get the "just don't do the side quests, no one is forcing you" people. So you would only do them if you were forced to? Why play the game at all then? No one is forcing you. 

 

That nonsense aside, after a cursory examination of the game's files, it seems all of the quests are stored in xml in data\quests folder. But they only have an "experience level" and "experience weight" values, the former being (mostly?) single digit numbers. So i guess they should be multiplied by something in order to get total experience, while the latter obviously point to how much of the experience you get in each quests stage. So after some testing to determine the multipliers i guess its possible to determine total maximum quest experience by parsing all these files. 

The exp tables themselves seem to be somewhere in unity assets or dll's, so some unity thingie or visual studio would be needed to modify them. Hoped they would be in xml as well. :(

 

Yeah, it looks like the quest files are referencing some id values to determine how much experience should be awarded. I'm trying to figure out exactly where the exp tables are; if it's something that can be modified in VS then that would make it a lot easier.

 

A good start would be linking the different quest files to their in-game counterparts. From there, you could start playing with the "ExperienceType" and "ExperienceLevel" values. Or, just create a script that ensures that no quest outside of the crit_path has an ExperienceLevel greater than some number.

 

So i asked one knowledgeable dude, and apparently there is no xp table. But there is a formula located in PillarsOfEternity_Data\Managed\Assembly-CSharp.dll in CharacterStats class ExperienceNeededForNextLevel method. It is : ((currentLevel * (currentLevel + 1)) * 500). Also the guys that made iemod already made some framework to change that kind of stuff https://bitbucket.org/Bester/poe-modding-framework

A shame its not in xml, i'm not sure i'm up to getting visual studio with all the additional stuff required just to change this. Also i wouldn't be surprised if its very easy to f something up with that decompiling stuff...

 

 

It's a shame that they didn't make the game easier to mod in general.  I love when game designers make the files easily accessible and you can just tweak the values in a text editor.  PoE's data all seems to be buried deep within proprietary files.

Link to comment
Share on other sites

 

 

Don't get the "just don't do the side quests, no one is forcing you" people. So you would only do them if you were forced to? Why play the game at all then? No one is forcing you. 

 

That nonsense aside, after a cursory examination of the game's files, it seems all of the quests are stored in xml in data\quests folder. But they only have an "experience level" and "experience weight" values, the former being (mostly?) single digit numbers. So i guess they should be multiplied by something in order to get total experience, while the latter obviously point to how much of the experience you get in each quests stage. So after some testing to determine the multipliers i guess its possible to determine total maximum quest experience by parsing all these files. 

The exp tables themselves seem to be somewhere in unity assets or dll's, so some unity thingie or visual studio would be needed to modify them. Hoped they would be in xml as well. :(

 

Yeah, it looks like the quest files are referencing some id values to determine how much experience should be awarded. I'm trying to figure out exactly where the exp tables are; if it's something that can be modified in VS then that would make it a lot easier.

 

A good start would be linking the different quest files to their in-game counterparts. From there, you could start playing with the "ExperienceType" and "ExperienceLevel" values. Or, just create a script that ensures that no quest outside of the crit_path has an ExperienceLevel greater than some number.

 

So i asked one knowledgeable dude, and apparently there is no xp table. But there is a formula located in PillarsOfEternity_Data\Managed\Assembly-CSharp.dll in CharacterStats class ExperienceNeededForNextLevel method. It is : ((currentLevel * (currentLevel + 1)) * 500). Also the guys that made iemod already made some framework to change that kind of stuff https://bitbucket.org/Bester/poe-modding-framework

A shame its not in xml, i'm not sure i'm up to getting visual studio with all the additional stuff required just to change this. Also i wouldn't be surprised if its very easy to f something up with that decompiling stuff...

 

 

Yeah, it's a shame that it's a hard-coded formula in the dll, especially since it sounded like the game would be mod-friendly. Decompiling probably won't be an option, hopefully something comes up that makes it easier. Just looking at the formula though, you can see why levels are so easy to gain.

 

Many thanks though, I'll definitely give this a look.

Edited by View619
Link to comment
Share on other sites

 

Yeah, it's a shame that it's a hard-coded formula in the dll, especially since it sounded like the game would be mod-friendly. Decompiling probably won't be an option, hopefully something comes up that makes it easier. Just looking at the formula though, you can see why levels are so easy to gain.

 

Many thanks though, I'll definitely give this a look.

 

 

Eh, disassembly + hexedits is always an option.  It was how we modded back in the day... X-Com (original game) and D2 come to mind.  Had to dissassemble the exe, understand how the code worked, then make room for code edits by optimizing the assembly by hand (the fun part) because you can't change the exe file size.  

 

A dll wouldn't be any different, so it's possible.  Should it be so hard these days.  No, probably not.  One of the things that pissed me off early on about modding X-Com (2014 version) was how ridiculously close it was to doing the above.  But, we also had to get around their encryption, so that was yet another hoop to jump through.

 

Hand-optimzing assembly code is so far removed from the average gamer's experience that it looks like wizardry. ;)

Edited by Daemonjax
  • Like 1
Link to comment
Share on other sites

I found the hexcode change for modifying the experience requirement per level formula.


 


I'll share instructions in a couple minutes.


 


EDIT:


 


1. Go to your game folder: ...\Pillars of Eternity\PillarsOfEternity_Data\Managed


2. make a backup copy of Assembly-CSharp.dll


3. open the original Assembly-CSharp.dll in your favorite hex editor (I like HxD found here: http://mh-nexus.de/e...hp?product=HxD)


4. Search for the following hex code:


 


6F AC 02 00 0A 12 02 28 AD 02 00 0A 3A B1 FF FF FF DD 0C 00 00 00 08 8C 7E 00 00 1B 6F 1A 00 00 0A DC 2A 00 41 1C 00 00 02 00 00 00 29 00 00 00 59 00 00 00 82 00 00 00 0C 00 00 00 00 00 00 00 32 02 02 17 58 5A 20 F4 01 00 00 5A 2A 00 00 00 32 02 17 59 02 5A 20 


 


5. The hex code immediately following the above should look like:


 


F4 01 00 00 5A 2A 00 00 00 13 30 07 00 14 00 00 00 48 00 00 11 02 6F 12 00 00 2B 0A 06 6F 57 07 00 06 03 28 08 00 00 0A 2A 13 30 07 00 27 00 00 00 00 00 00 00 02 28 04 00 00 0A 39 0C 00 00 00 02 6F 0C 00 00 0A 28 DB 06 00 06 2A 72 B9 1F 00 70 28 42 00 00 0A 72 A1 1F

 

Note1: You're only interested in changing the underlined hex code above.

Note2: Alternatively, you can search for and find the FOURTH instance of F4 01 00 00 (starting from the top of the file).

Note3: This is at hex location 2D707 for me.

 

6. Change the F4 01 00 00 (which is a little-endian 32-bit integer for 500) to whatever you want (use a programming calculator -- the one that comes with windows works fine for this)

 

For example, changing it to E8 03 00 00 (which is the integer 1000 in little-endian) will double the xp required per level.

 

 

 

Notes:  

 

1) I use IE mod, which replaces Assembly-CSharp.dll, so this may or may not work for you if not using the IE mod.

2) I'm on Windows, so this may or may not work for you on linux and/or mac.

3) The change isn't retro-active -- it only affects experience needed for your next level.  A full restart would be required if you want to see how this affects gameplay.

4) XP formula is: ((currentLevel * (currentLevel + 1)) * 500)

Edited by Daemonjax
  • Like 3
Link to comment
Share on other sites

The location changed in the 1.03.530 version of the IE mod, but it's still FOURTH instance of F4 01 00 00:

 

07 6F F2 02 00 0A 26 38 0D 00 00 00 02 7B 0C 05 00 04 07 09 6F F3 02 00 0A 12 02 28 F4 02 00 0A 3A B1 FF FF FF DD 0C 00 00 00 08 8C 7F 00 00 1B 6F 1A 00 00 0A DC 2A 00 41 1C 00 00 02 00 00 00 29 00 00 00 59 00 00 00 82 00 00 00 0C 00 00 00 00 00 00 00 32 02 02 17 58 5A 20 F4 01 00 00 5A 2A 00 00 00 32 02 17 59 02 5A 20

F4 01 00 00

5A 2A 00 00 00 13 30 07 00 14 00 00 00 48 00 00 11 02 6F 12 00 00 2B 0A 06 6F 58 07 00 06 03 28 08 00 00 0A 2A 13 30 07 00 27 00 00 00 00 00 00 00 02 28 04 00 00 0A 39 0C 00 00 00 02 6F 0C 00 00 0A 28 DC 06 00 06 2A 72 B9 1F 00 70 28 42 00 00 0A 72 A1 1F 00 70 2A 00 13 30 0D 00 45 00 00 00

 

... at hex location 2D88B.

Link to comment
Share on other sites

I hope Josh is looking into this. Stuff like this is arguably more detrimental to many more users than some of the bugs they are fixing, and should probably be prioritised. Can we get a confirmation that it's being looked into at least?

Link to comment
Share on other sites

 

I found the hexcode change for modifying the experience requirement per level formula.

 

I'll share instructions in a couple minutes.

 

EDIT:

 

1. Go to your game folder: ...\Pillars of Eternity\PillarsOfEternity_Data\Managed

2. make a backup copy of Assembly-CSharp.dll

3. open the original Assembly-CSharp.dll in your favorite hex editor (I like HxD found here: http://mh-nexus.de/e...hp?product=HxD)

4. Search for the following hex code:

 

6F AC 02 00 0A 12 02 28 AD 02 00 0A 3A B1 FF FF FF DD 0C 00 00 00 08 8C 7E 00 00 1B 6F 1A 00 00 0A DC 2A 00 41 1C 00 00 02 00 00 00 29 00 00 00 59 00 00 00 82 00 00 00 0C 00 00 00 00 00 00 00 32 02 02 17 58 5A 20 F4 01 00 00 5A 2A 00 00 00 32 02 17 59 02 5A 20 

 

5. The hex code immediately following the above should look like:

 

F4 01 00 00 5A 2A 00 00 00 13 30 07 00 14 00 00 00 48 00 00 11 02 6F 12 00 00 2B 0A 06 6F 57 07 00 06 03 28 08 00 00 0A 2A 13 30 07 00 27 00 00 00 00 00 00 00 02 28 04 00 00 0A 39 0C 00 00 00 02 6F 0C 00 00 0A 28 DB 06 00 06 2A 72 B9 1F 00 70 28 42 00 00 0A 72 A1 1F
 
Note1: You're only interested in changing the underlined hex code above.
Note2: Alternatively, you can search for and find the FOURTH instance of F4 01 00 00 (starting from the top of the file).
Note3: This is at hex location 2D707 for me.
 
6. Change the F4 01 00 00 (which is a little-endian 32-bit integer for 500) to whatever you want (use a programming calculator -- the one that comes with windows works fine for this)
 
For example, changing it to E8 03 00 00 (which is the integer 1000 in little-endian) will double the xp required per level.
 
 
 
Notes:  
 
1) I use IE mod, which replaces Assembly-CSharp.dll, so this may or may not work for you if not using the IE mod.
2) I'm on Windows, so this may or may not work for you on linux and/or mac.
3) The change isn't retro-active -- it only affects experience needed for your next level.  A full restart would be required if you want to see how this affects gameplay.
4) XP formula is: ((currentLevel * (currentLevel + 1)) * 500)

 

Wow, thanks! Looks like i can finally go past the beginning of act two now. :) Gonna try it out in the evening. As for not being retro-active, i imagine respecing characters with ie mod console or something and getting lvlups again should do it.

Link to comment
Share on other sites

 

 

I found the hexcode change for modifying the experience requirement per level formula.

 

Wow, thanks! Looks like i can finally go past the beginning of act two now. :) Gonna try it out in the evening. As for not being retro-active, i imagine respecing characters with ie mod console or something and getting lvlups again should do it.

 

 

Yeah, I imagine that would work fine.

Link to comment
Share on other sites

Ooh smart combo, was thinking I'd need to restart as my party is already pushing 10 but I'll try that first.

 

Edit: What are you guys thinking for numbers?  Gonna try double and see how that goes?

Yea, thats what i was thinking. No way to tell without trying it out first though. I think i'll change it to triple numbers if i'll be close to levelcap, or if i'll be like above level 9 at the start of 3rd act.

Link to comment
Share on other sites

For now, yes. It can only multiply the current XP required for each level by a factor. Perhaps in the future it will be discovered how to change the formula entirely. :D

 

I'd repeat my caution in the dedicated thread for this mod though: Making changes to the XP thresholds A) without knowing exactly how much XP is available in the game and how it is distributed and B) without waiting for patch 1.05, where some XP tuning is likely to happen may not be the best idea. It's a single player game though, so whatever floats your boat. :)

Link to comment
Share on other sites

Here's my plan for a new playthrough:

 

Hard using a 50% increase (EE 02 00 00) in required xp (which is actually equivalent to a 33% reduction to all exp received).

 

...And this time I'm not going to rush to get the companions to avoid their crap choices.  Whatever they choose by the time I get them, they get...  And because I'll be leveling more slowly, they shouldn't be too bad off. 

 

Actually sounds like fun!

Edited by Daemonjax
  • Like 1
Link to comment
Share on other sites

I've earned 1000XP (!) just by locks and traps (50% of them, the rest triggered) when doing Raedric's Hold. What's the quest completion XP? 3000 or so? That's a 33% boost right there.

 

I don't think I've seen beastiary give such big a boost to XP, though if I'm mistaken feel free to point it out to me original.gif

Not from just the Raedric's hold quest specifically, since the majority of the enemies you can fight in that quest are people... and People-killing in this game doesn't give XP.

 

But when you take the game as a whole, there's no comparison. You get a Sh*t ton more kill XP than lock/trap xp. ( Which was something that was pointed out to you in your silly straw man thread, as you might recall)

Link to comment
Share on other sites

 

... and People-killing in this game doesn't give XP.

 

... which I appreciate a lot, for RP reasons alone.

 

 

The difference between Beastiary XP and trap XP:

While the former is a compromise towards the pro-combat-xp-crowd, nobody and I mean literally nobody ever asked for trap XP in the first place... This is something the devs and devs alone insisted on having.

Edited by Zwiebelchen
  • Like 3
Link to comment
Share on other sites

 

 

... and People-killing in this game doesn't give XP.

 

... which I appreciate a lot, for RP reasons alone.

 

 

The difference between Beastiary XP and trap XP:

While the former is a compromise towards the pro-combat-xp-crowd, nobody and I mean literally nobody ever asked for trap XP in the first place... This is something the devs and devs alone insisted on having.

 

 

Which ties into my belief that Obsidian never seems to have understood the argument between Goal-Oriented Experience and Murderhobo Experience to begin with. They seem to just have seen people requesting X or Y and been like "Eh, whatever" and then do their best to appease both, without really making a call based on the arguments.

  • Like 2

t50aJUd.jpg

Link to comment
Share on other sites

 

 

 

... and People-killing in this game doesn't give XP.

 

... which I appreciate a lot, for RP reasons alone.

 

 

The difference between Beastiary XP and trap XP:

While the former is a compromise towards the pro-combat-xp-crowd, nobody and I mean literally nobody ever asked for trap XP in the first place... This is something the devs and devs alone insisted on having.

 

 

Which ties into my belief that Obsidian never seems to have understood the argument between Goal-Oriented Experience and Murderhobo Experience to begin with. They seem to just have seen people requesting X or Y and been like "Eh, whatever" and then do their best to appease both, without really making a call based on the arguments.

 

 

Why? Beastiary XP is a great mechanic. It allows me to skip some fights that I already figured out anyway without missing much, but still incentivizes me to at least check out the content once or twice (I regard battles as content). There is no point in battle repetition. Dragon Age was incredibly terrible because of this, forcing the same battles onto the player over and over and over.

 

It's great that PoE allows me to skip some battles without making fighting utterly pointless at the same time.

Edited by Zwiebelchen
  • Like 3
Link to comment
Share on other sites

I think the worst thing of DA:O is the extremely limited opposition, Darkspawn, More Darkspawn, Even More Darkspawn. That's easy to get tired from. PoE already has a lot more variation in that regard, and enemies do work differently than just being "Elite Darkspawn, more HP lol". Which combats combat-fatique more than any XP addition can.

 

Crappy combat with XP is still crap you don't want to do, good combat without XP is still good and you do it for fun. Fun doesn't need a freakin' carrot.

 

@ Stun; Not really. Got about 800XP from Elder Lions in a certain Maw, which accounted to like 2-3 traps... there are 12 traps in that den. This repeats in all dungeons where traps are common, which is based on the fact that mine and lockpick XP itself is a horribly idea.

 

Can't look me in the eye and honestly believe forgo-ing a key since "level 10 lock" lockpicking is better is any kind of gamedesign or roleplaying a developer WANTS to instigate.

Sad fact though, it's true for PoE.

  • Like 3

^

 

 

I agree that that is such a stupid idiotic pathetic garbage hateful retarded scumbag evil satanic nazi like term ever created. At least top 5.

 

TSLRCM Official Forum || TSLRCM Moddb || My other KOTOR2 mods || TSLRCM (English version) on Steam || [M4-78EP on Steam

Formerly known as BattleWookiee/BattleCookiee

Link to comment
Share on other sites

Here's my plan for a new playthrough:

 

Hard using a 50% increase (EE 02 00 00) in required xp (which is actually equivalent to a 33% reduction to all exp received).

 

...And this time I'm not going to rush to get the companions to avoid their crap choices.  Whatever they choose by the time I get them, they get...  And because I'll be leveling more slowly, they shouldn't be too bad off. 

 

Actually sounds like fun!

 

Let us know your thoughts once you've gotten far enough? It would be interesting to hear how that changes overall difficulty and level progression.

 

I'll wait until 1.05 to see if the devs have managed to implement any solutions.

Edited by View619
  • Like 1
Link to comment
Share on other sites

 

Which ties into my belief that Obsidian never seems to have understood the argument between Goal-Oriented Experience and Murderhobo Experience to begin with. They seem to just have seen people requesting X or Y and been like "Eh, whatever" and then do their best to appease both, without really making a call based on the arguments.

 

Why? Beastiary XP is a great mechanic. It allows me to skip some fights that I already figured out anyway without missing much, but still incentivizes me to at least check out the content once or twice (I regard battles as content). There is no point in battle repetition. Dragon Age was incredibly terrible because of this, forcing the same battles onto the player over and over and over.

 

It's great that PoE allows me to skip some battles without making fighting utterly pointless at the same time.

 

 

Because it completely misses the point of Goal-Oriented Experience, the point being that it is intended to incentivise the seeking of solutions and allow the developers the freedom to design a wealth of different scenarios that can be solved in any number of ways, whether it's talking, sneaking, murdering, stealing, completely avoiding area X and instead skip to area Y because of reasons A, B, C, or anything in between.

 

The fact that it would make the balancing of experience much easier is really just gravy, and something players can largely ignore, but is probably valuable from the POV of the developers. Clearly they have a hard time balancing experience anyway, after all.

 

Bestiary Experience is de facto Murderhobo Experience, except it's capped after a certain number of kills. And the fact that they compromised on this issue indicates that they wanted to appease both parties, and the fact that they still included Trap and Lockpicking Experience indicates that they never understood on what basis people argued for Goal-Oriented Experience to begin with, because you've essentially transferred the issue of murderhoboing as the most default solution and applied it to traps and locks.

 

For example, it is now in your best interest to not pick up keys. Why? Because you want to lockpick the doors, not use the keys. It is also in your best interest to return to traps you have previously found, yet been unable to remove - there's a ton of experience waiting for you in the first dungeon of the game, alone. And forget about finding alternative solutions, walking around the trap, or even throw one of your party members at it to spring it, that would just be crazy talk, and you'd lose out on experience.

 

Had they understood the issue, they would either have disregarded Bestiary Experience and just opted for Murderhobo Experience - because why not? - or they would've not included Bestiary, Trap or Lockpicking experience at all, and left the decisions as to seeking the solution to the given scenario up to the player.

 

Now, as I have mentioned before, there are other issues at play here, such as loot (why wouldn't you murder everything just for the loot when you can, anyway? It's not like you're limited in what you can carry), but that really just reinforces my belief that the whole thing is sorta half-assed.

Edited by Luckmann

t50aJUd.jpg

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...