• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Fixed Leveling: Sudden Huge Amounts of XP Gained

Isn't that exactly the opposite of what the other people have been reporting? o_O
Which update version are you playing with?
Not quite the latest, since you were creating a new update while I was doing that. ;) 30th July installer, 9th August .7z update.

The game has always worked like that with few exceptions. :yes
Nevertheless, before the recent updates I could start as Hornblower, go into the Antigua cellar, get killed and have to reload a few times, and emerge with a couple of levels of Melee - not percent, levels. Then I'd have a fighting chance during boardings. And my level wouldn't go through the roof during the sea battle preceding the boarding.

So I'm working my way through "Hornblower" again to see what bugs have been caused by the latest update (already found one almost right at the start ;)) and after that the temptation to revert to the 17th July installer and 22nd July update, which was the last point at which skills worked properly, is becoming almost impossible to resist...
 
So I'm working my way through "Hornblower" again to see what bugs have been caused by the latest update (already found one almost right at the start ;)) and after that the temptation to revert to the 17th July installer and 22nd July update, which was the last point at which skills worked properly, is becoming almost impossible to resist...
If the worst comes to the worst, we can always revert the skill code back while keeping the new relations stuff.
But I would really prefer not having to do that. That being said, I really DO need that relations stuff thoroughly tested or we'll never get it completed. :facepalm
 
I think the largest difference is the starting level...
@Grey Roger could you make sure the co debugging in levelling.c is set to 2 and do a run in that cellar. After that please upload the compile.log
 
The settings seem to have changed; I'm now getting a more generous percentage increase during the cellar run. It's still not enough to get me a whole point in Melee but it's a lot further towards getting one, and the reason I'm not getting a full point is again perhaps due to the enemies being much weaker. So I don't leave with Melee 3, but I don't spend ages getting killed, reloading and eventually finishing off all the bandits. I can live with that. :)

The other side of the coin is still unaffected, though. Being in a naval battle gets me silly amounts of experience. After finishing what needed to be done at Antigua, I sailed to Guadeloupe for the first mission and was level 4 by the time I was ready to leave and head for Kingston. By the time I got to Kingston, having direct-sailed the whole way and fought a pair of small pirate ships, I was level 13. Most of the increase to level 13 came from the sea battle with the pirates before they surrendered - sailing around, scoring hits on them and getting hit by them all scored lots of points.

If I remember, I'll try the higher debugging level next time I play, which will probably be some time this evening.
 
Now I wonder.... Is the problem that certain skills give SO many points that you progress them stupidly fast and gain amazing amounts of level-ups?
Or is it that the XP required to reach the next levels is too low?
 
Now I wonder.... Is the problem that certain skills give SO many points that you progress them stupidly fast and gain amazing amounts of level-ups?
Or is it that the XP required to reach the next levels is too low?

The second thing. For example, to progress to level 6 you need 6000 XP points; to level 7, 7000... and so on.
 
The second thing. For example, to progress to level 6 you need 6000 XP points; to level 7, 7000... and so on.
@Levis, is this the relevant section in PROGRAM\Leveling.c?
Code:
int CalculateExperienceFromRank(int _Rank)
{
   if(_Rank < 1) return 0;
   /*int oldxp = CalculateExperienceFromRank((_Rank-1));
   float retVal = sqrt(makefloat(_Rank)) * 400.0 + makefloat(_Rank)*100.0;
   //int retVal = (MakeInt(1000 * pow(_Rank,2.3))/1000)*1000;
   return oldxp + makeint(retVal);*/
   return makeint(500*pow((_Rank-1),2)+500*(_Rank-1));
}
But that isn't linear, is it?

Or is it this section?
Code:
int CalculateSkillExperienceFromRank(int rank)
{
   //makeint(((CalculateExperienceFromRank(rank)-CalculateExperienceFromRank(rank-1))*SKILL_NEXT_XP_MULT) / ADD_SKILLPOINTS_PERLEVEL
   int maxexp = CalculateExperienceFromRank(makeint((10 * SKILL_MAX) / ADD_SKILLPOINTS_PERLEVEL)); //Take the XP needed for level all skillpoints are used
   //We got 10 skills each going to SKILL_MAX we need to know how !SKILL_MAX so use a forloop.
   int amskills = 0;
   for(int n = 1; n < SKILL_MAX; n++) {amskills += n;}
   return makeint((maxexp/10) / amskills * (rank-1));
}

While I can imagine a linear progression is simpler to work with, that does mean it is either too slow in the early game or too fast in the late game.
I'd imagine something along the lines where you need exponentially more XP for each next level-up and skill.

Of course then the character levels and skills no longer match up, because it'll take a while to get from fencing 9 to 10, which is much faster than from 1 to 2.
Personally I see no major issue with that. Level-up gives you ability points and HP, skill percentage gives you more skill points.
They don't need to be joined, do they?

Alternatively, how about balancing ONLY the XP gained for specific skills and then force a level-up for every two skills that you increase.
That does make it pretty much impossible to show "# XP points needed for next level" though.
But we could kick that out of the interface altogether and replace it with the nationality of the character instead.
 
Or just put skills back the way they were, when they actually worked properly. ;)

Where were skills handled before? Which files do I need to retrieve from earlier versions to get skills back to the earlier system? Perhaps if everyone wants to use the new system I can put them back into my own installation, preferably without having to revert entirely to the older version of the game. ("InternalSettings.h" is one - using "WinMerge" to compare the current version with an older one shows that several lines to do with customising skills have disappeared.) Alternatively, if I can see how levels were calculated originally then perhaps I can suggest tweaks to the new system to make it behave more like the old system.

Of course then the character levels and skills no longer match up, because it'll take a while to get from fencing 9 to 10, which is much faster than from 1 to 2.
Personally I see no major issue with that.
I do. If your level is going up like a rocket while your Melee skill is going up like a snail, and if random enemies are generated based on your level, then they're likely to have significantly higher Melee skill than you as well as higher HP.
 
Or just put skills back the way they were, when they actually worked properly. ;)
Unfortunately as much as it may have appeared to work properly, it was pretty much a mess with related code scattered everywhere.
I don't know which files were affected, but it is quite a lot and especially CharacterUtilite.c contains stuff for the nations relations AND the skills.
Only way to revert it would be to WinMerge with the version where it wasn't included yet: http://www.piratesahoy.net/build/b14_beta3_installer_internal.exe

I do. If your level is going up like a rocket while your Melee skill is going up like a snail, and if random enemies are generated based on your level, then they're likely to have significantly higher Melee skill than you as well as higher HP.
Higher HP? Perhaps based on difficulty, but levels are supposed to be sort-of similar.
But I can imagine a situation where you do a lot of trading in the early game rather than fencing, gaining Commerce skill and level-ups quite fast at the beginning.
By then you'll have a "high" rank from the commerce skill level-ups, but still a low fencing skill.
However, because each skill would increase slower for higher skill levels, you would be able to catch up on your fencing (which, of course, would also gain you levels).
On the other hand, if you focus on fencing first (which, I think, people often did in the Standard Storyline tutorial anyway), you'd pretty much get a head start on your enemies.
So I'm still not sure I see the problem.

All depends on @Levis, I suppose; I'm not sure what is and isn't easily possible with the new system.
 
Unfortunately as much as it may have appeared to work properly, it was pretty much a mess with related code scattered everywhere.
So it worked properly, it just didn't look very pretty from a programmer's point of view. Now it looks pretty from a programmer's point of view but doesn't work.
I don't know which files were affected, but it is quite a lot and especially CharacterUtilite.c contains stuff for the nations relations AND the skills.
Only way to revert it would be to WinMerge with the version where it wasn't included yet: http://www.piratesahoy.net/build/b14_beta3_installer_internal.exe
I don't need to go back that far. With plenty of spare hard drive space at the moment, I've got all the 3.5 installers and updates so I can revert back to pretty well anywhere in the history of Beta 3.5. Hence my plan to go back to the 17th July installer and 31st July zip, which was the last version before this happened. That's what I'll need to WinMerge with the new version, but it would help if I had some idea of which files to go for.

Higher HP? Perhaps based on difficulty, but levels are supposed to be sort-of similar.
But I can imagine a situation where you do a lot of trading in the early game rather than fencing, gaining Commerce skill and level-ups quite fast at the beginning.
By then you'll have a "high" rank from the commerce skill level-ups, but still a low fencing skill.
However, because each skill would increase slower for higher skill levels, you would be able to catch up on your fencing (which, of course, would also gain you levels).
On the other hand, if you focus on fencing first (which, I think, people often did in the Standard Storyline tutorial anyway), you'd pretty much get a head start on your enemies.
So I'm still not sure I see the problem.
Load up that savegame I supplied in the thread about flags and relations, find a pirate group and attack it, and try duelling the ship's captain. Then you'll see the problem. ;) And I'm one of those who focusses on fencing first, which is why about the first thing I do after the briefing with Sir Hew Dalrymple is to visit the cellar, and every other dungeon anywhere I visit thereafter. (The next mission is to go to Bridgetown Naval HQ, collect a couple of officers and return to Charlestown. The trip from Naval HQ to port will involve a slight detour to the Barbados cave. :D)
 
I'm still about 3 1/2 years into this game and am at level 112 and 1265 HP. I never had too much trouble fighting right from the start, but did start slowly and never had to fight a Captain.
 
So it worked properly, it just didn't look very pretty from a programmer's point of view. Now it looks pretty from a programmer's point of view but doesn't work.
Pretty much. It did also have some incompatibility with the level-up cheat, but that was of course not all that serious.
Anyway, I've still got high hopes that the new system can be further finished so it'll work better and cleaner than the old system ever did.
But as with many things, it has to get worse before it gets better. :facepalm

I don't need to go back that far. With plenty of spare hard drive space at the moment, I've got all the 3.5 installers and updates so I can revert back to pretty well anywhere in the history of Beta 3.5. Hence my plan to go back to the 17th July installer and 31st July zip, which was the last version before this happened. That's what I'll need to WinMerge with the new version, but it would help if I had some idea of which files to go for.
You can have a look at the content of the "Levis Stuff" file, which probably gives you a good clue.

Load up that savegame I supplied in the thread about flags and relations, find a pirate group and attack it, and try duelling the ship's captain. Then you'll see the problem. ;) And I'm one of those who focusses on fencing first, which is why about the first thing I do after the briefing with Sir Hew Dalrymple is to visit the cellar, and every other dungeon anywhere I visit thereafter. (The next mission is to go to Bridgetown Naval HQ, collect a couple of officers and return to Charlestown. The trip from Naval HQ to port will involve a slight detour to the Barbados cave. :D)
I'm not saying it isn't broken now. In fact, I don't know because I didn't focus on that in all the testing I've done.
Clearly there is still some further work to be done and it isn't quite balanced in its current state. :(
 
@Grey Roger i don't know where you get your information. Every character is subject to the same rules, so if a random character is created he will probably be about the same skill as you are if you focussed on fencing and if he is the same level.

@Pieter Boelen the progression is sort of lineair cause it was set up in a way the xp isnt flushed. So each level you need to substract what was needed for the previous level.

I think I will go back to an system where you need the same xp for each skill progression because else it doesn't work right with the old skill system I remembered later. Although that would mean everything should be lineair.
I will think a bit more about it. I still hope people will post the compile logs so I can actually see amounts of xp gained by actions....
 
@Pieter Boelen those functions are the ones you need yes. The amounts of xp needed where determined without the multipliers in place so I think the co needed for levelling up should be multiplied by 5 or so. And the multiplier melee mulplier should be set to 10 or so.
Search for "fencing" in the leveling.c and you'll see the function for it.
 
@Grey Roger i don't know where you get your information. Every character is subject to the same rules, so if a random character is created he will probably be about the same skill as you are if you focussed on fencing and if he is the same level.
Where I get my information is from a pirate captain who kills me with one or two swipes. Or another enemy captain in a previous game before the most recent update who had somewhere around 1500 HP, which is a lot more than I've ever had. Random basic enemies, e.g. dungeon denizens and enemy crew, are indeed probably about the same as me. Or at least, not so far ahead of me that they can take me out with one swipe. Not often, anyway.
 
Yeah captains might be a bit to high. Could you do something for me while I'm still away?
Use the highest debug level, when encountering an captain use the dialog option show skills and make a screenshot. Please post 2 or 3 and also the tier ship they have. Also please let me know what you should think they should be.
I think I'm going to have captains at also your level (unless they sail higher tier ships) and add some officers to them to boost theire skill and perks. Maybe for build 15 I can make those officers show up on the boarding decks.
 
If regular enemy crew are about your level then the captain should be higher. Just maybe not quite so high.

The other problem with tying everyone else's level to yours is one which I've encountered in paper-and-dice role-playing games as well, which is that if the game-master (GM for short) does that then there's no point levelling up - everyone else in the world levels up at the same time so you're no better off. Perhaps crew and captain level should be tied to ship tier instead? In most games you start off with a small ship and work your way up to something bigger, so should they. Which means if you encounter a little sloop, it ought to be a relatively inexperienced crew just starting out. A bigger ship such as a brig or sloop of war would be run by a more experienced crew, the reason being they've been successful and earned that ship.
 
I do think the captain of a ship should have the skills that a player would need to command that ship too.
Which means higher tier ships would require higher level captains.

For enemy crew, isn't their level based on the number of crew on your side versus the number of crew on the enemy's side?

Ideally, I figure NPC levels shouldn't be so linked to player level because there is nosensible realistic reason for that.
To match, all weapons should be available from the start and it should be the price that prevents the player from getting better ones, rather than an arbitrary "minlevel".
But to make it even more logical, there shouldn't be that much difference from using a different sword because what matters most is the hand that wields it.
All of that would make for quite some massive shake-ups to many basic game systems though.
That makes all of that wishes for Build 15.
 
For enemy crew, isn't their level based on the number of crew on your side versus the number of crew on the enemy's side?
That plus the ships' crews' morale, which means a 3rd rate Bellona ought to have no trouble boarding a sloop, especially after unloading a few broadsides of grapeshot into it.

Ideally, I figure NPC levels shouldn't be so linked to player level because there is nosensible realistic reason for that.
To match, all weapons should be available from the start and it should be the price that prevents the player from getting better ones, rather than an arbitrary "minlevel".
But to make it even more logical, there shouldn't be that much difference from using a different sword because what matters most is the hand that wields it.
All of that would make for quite some massive shake-ups to many basic game systems though.
And going that far would take some of the fun out of the game. Anyway, a well-made weapon constructed from superior steel ought to have an advantage over a basic weapon. But skill counts for more, which is why even now a Melee 10 character with a simple sabre can probably defeat a Melee 1 character with a swept-hilt rapier.
 
Back
Top