• 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!

High Priority Change way shared XP works

It could be that the balancing of gaining Sailing XP is wrong then.

Maybe @Hylie Pistof could give some more information on that? I think he does a lot of sailing around as well.

I should have added this in on the second difficulty level (not sure what name that now is, but i know it as 'Journeyman'?), so if Hylie is seeing very slow XP gain on Swashbuckler that might also be a big part of the problem in terms of trying to balance all this. Does the game difficulty really affect the XP gain so much? If so where in the code is this determined as maybe that needs to be looked at more closely.

Like i mentioned from game start you gain 8 levels (to your overall level) and about 6 in Sailing skill just from sailing to Jamaica in the first part of the game. One trip.

As a 'new' player to the game i obviously don't choose Swashbuckler, but then this HUGE XP gain in the first part of the game does effect the overall impression of the mod ('If this is balanced that badly, what about the rest of the game?' etc).

I've never found it satisfying at default settings in the build mod, probably since build 13, which is why i have these changes to slow XP gain down. It does mean you probably can't rush through the main quest line (certain enemies require higher levels), but except for testing the game i never do that anyway, preferring to just live and experience the game more.

Outside of the realism settings (and Open Sea Mod on) i do not know what the early game levelling is like, so these tweaks are really just for the broken (imho) current settings for those wanting the realism settings on, especially if using 3D direct Sailing.

As an aside, i also noticed that using the speed-up time controls does seem to effect the speed of XP gain, to the extent that any faster than x3 speed and you don't seem to gain XP at the same rate as the game speed increase. For example at x10 and x20 XP gain seemed about the same, even though the voyage time was decreased due to the extra speed.

Does that make sense, or maybe it just looked that way?
 
Does the game difficulty really affect the XP gain so much? If so where in the code is this determined as maybe that needs to be looked at more closely.
Possibly. Search PROGRAM\Characters\Leveling.c for GetDifficulty() to see where it has an effect (it is in a fair few spots).

As an aside, i also noticed that using the speed-up time controls does seem to effect the speed of XP gain, to the extent that any faster than x3 speed and you don't seem to gain XP at the same rate as the game speed increase. For example at x10 and x20 XP gain seemed about the same, even though the voyage time was decreased due to the extra speed.
At some point Hook had code in place to give you sailing XP only at 1x speed.
I can't remember now if I got rid of that or not.
 
You did get rid of that 1x code when you found out I was sailing everywhere in 1x speed and only checking the game occasionally to see how it was doing. :sparrow
 
For me, the problem is fundamental and won't be fixed by tweaking numbers. In the stock game, officers received no share of your XP gains unless you had the "Shared XP" perk. In Build Mod, until recently, they'd get a share of your XP gains anyway, and a larger share when you had the perk. The current system reverts all the way back to stock game behaviour and is actually worse, something I never thought could happen with a Build Mod, because not only do officers get no share of your XP gains unless you have the perk, but the perk is expensive and only available at level 10, which means I can't do what I did in stock game and take the perk almost immediately. Worse yet, officers only gain XP in those skills applicable to their assignments. So, for example, the "Standard" storyline:
Code:
       if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 1500); }
       else { AddPartyExp(pchar, 1500); }
If if you have the auto skill system enabled, will officers who don't have "Sneak" as an assignment-related skill earn anything? (Different storylines apply the XP to different skills - "Hornblower", for example, gives rewards of 2000 "Leadership" and 50 "Sneak".)

The last time I had a game in which officers definitely levelled up properly was in December - I've still got that installation, along with a succession of savegames from a whole play through "Hornblower", as those savegames plus the full set of maps which I collected during the game are useful when I want to look around a location while developing "Ardent". Most of the officers in "Hornblower" are supplied by the quest and leave and rejoin your party as dictated by the story, but I collected Artois Voysey fairly early on and he developed well enough.
 
Indeed it does seem that the "Shared XP" business does need some additional work.
But we need @Levis to do it and he has been very... uhm... silent again lately.
Which means that unless he decides to show up and sort it out properly, we have to make do with what we've got one way or another.

If the current system works as it should, officers SHOULD be gaining Shared XP right from game start on the skills that they contribute.
That seems fair enough, does it not? It is definitely an advantage over the stock game where they didn't get any at all.

It still isn't clear to me exactly HOW the current system does not work the way it is meant to.
When and where are officers not gaining the XP when they really should? We'd need very exact examples to look into.
Maybe also enable ALL the debug toggles at the top of PROGRAM\Characters\Leveling.c to provide more details on those examples.

Worse yet, officers only gain XP in those skills applicable to their assignments. So, for example, the "Standard" storyline:
Code:
if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 1500); }
else { AddPartyExp(pchar, 1500); }
If if you have the auto skill system enabled, will officers who don't have "Sneak" as an assignment-related skill earn anything? (Different storylines apply the XP to different skills - "Hornblower", for example, gives rewards of 2000 "Leadership" and 50 "Sneak".)
How is that a problem? If XP isn't shared, why should they earn experience in skills that don't have anything to do with their jobs?
As far as I'm concerned, if they don't contribute Sneak and Shared XP isn't in effect, then why should they get any of it?
This logic makes complete sense to me. Provided that it works....
 
Indeed it does seem that the "Shared XP" business does need some additional work.
But we need @Levis to do it and he has been very... uhm... silent again lately.
Which means that unless he decides to show up and sort it out properly, we have to make do with what we've got one way or another.
I'd prefer simply to put it back the way it was. It worked.

It still isn't clear to me exactly HOW the current system does not work the way it is meant to.
When and where are officers not gaining the XP when they really should? We'd need very exact examples to look into.
Maybe also enable ALL the debug toggles at the top of PROGRAM\Characters\Leveling.c to provide more details on those examples.
During melee, for a start. Personal combat training ought to be standard to all types - anyone who isn't skilled in swordplay isn't going to survive the many thugs and highwaymen, and in reality would also be a sitting target if he ever went into Tortuga. The only way he'd get out of there alive is because the locals figure it's better to stun him and let him walk away, then if he's stupid enough to return they get to do it again. So a navigator, for example, won't know much about how to fire a ship's cannons but he'll certainly know how to fire a pistol.

How is that a problem? If XP isn't shared, why should they earn experience in skills that don't have anything to do with their jobs?
As far as I'm concerned, if they don't contribute Sneak and Shared XP isn't in effect, then why should they get any of it?
This logic makes complete sense to me. Provided that it works....
They ought to get something for being involved in the quest. But if the storyline has picked a certain skill because it apparently must, if auto skill is enabled, then officers who played their part in the quest but whose position doesn't match the skill picked by the storyline won't get anything.

If you want logic, then how about this: if the quest involved sneaking and they took part then they'll have learned some sneaking as a result. It doesn't matter, for example, if the officer who's just escaped from prison with me is a navigator, quartermaster or boatswain - he's done some sneaking to get out of prison so he's learned a bit about how to move quietly. What he won't do, of course, is then contribute that skill to the ship's pool as part of his job. But he should get to use it if a sneak check is required on him when he's again one of your shore party.
 
old code from MAXIMUS_Functions.c

Code:
//==================================
// Adjust experience for difficulty
//==================================
// If we aren't using Auto skill system there is no adjustment for difficulty, and all calls to AddPartyExp get double experience

float realExpFloat;

if(bAllies(_refCharacter))		// *** this includes main character ***
{
	realExpFloat = 1.0 * _exp * (1.0-((GetDifficulty()-1.0) / 6.0));	 // 1.0, 0.75, 0.5, 0.25//BB was 4.0 now 6.0
}
else
{
	// LDH - 02Apr09
	realExpFloat = 4.0/3.0 * _exp * (1.0-((GetDifficulty()-1.0) / 6.0)); // 1.33, 1.0, 0.67, 0.33//BB was 4.0 now 6.0
	if(CheckAttribute(_refCharacter,"chr_ai.type"))
	{
		if(_refCharacter.chr_ai.type != LAI_TYPE_BUILDING)
		{
			if(!CheckAttribute(_refCharacter,"resorted"))
			{
				if(CheckAttribute(_refCharacter, "perks.FreePoints") == true && sti(_refCharacter.perks.FreePoints)>0) // KK
				{
					ResortFreePerks(_refCharacter);
					_refCharacter.resorted = true;
				}
			}
		}
	}
}

int realExp;
realExp = makeint(realExpFloat);	// LDH 01Apr09


From Beta 4, Characters\Leveling.c

Code:
//Add a difficulty multiplier
float diffmult = 1.0-((GetDifficulty()-1.0) / 6.0); //Let's make it a bit less dependent on difficulty

So a while back i changed a / 4.0 value into a / 6.0 value when doing my late build 12.early build 13 XP gain blitz testing for my game, and in truth i don't really know if that change helped 'reduce' the impact of the games Difficulty setting on XP gain! So what do others think this code is doing and how best to make the games difficulty have less an effect on XP gain, as currently it seems the difference between a game on Journeyman and a game on Swashbuckler is too different in this aspect.

--------------------

I'd prefer simply to put it back the way it was. It worked.

Sadly i agree :( the more i play even Beta 3.1 (let alone Beta 3.4 and Beta 4 where some of the biggest changes have taken place in this respect), the more it is looking like my personal rebuild of the Build Mod is going to have to be based on my Beta 1 Patch 7 version, as just more (noticeable) stuff worked in that one!!!

It must be very frustrating. Anyway something feels 'off' in Beta 3.4 and 4 in relation to how XP is working, too restricted and too generous at the same time, too uncontrollable by the players choices perhaps?

Edit: And to be clear here, i'm not saying the old method was perfect, but it felt smoother in general, and maybe the new code is close to being a much better system, i just don't know how close and am not sure if getting it working is a better/easier aim than simply using the old system for XP?
 
Last edited:
I'd prefer simply to put it back the way it was. It worked.
To what date? December 2015? If so, please post the files you refer to.
Or all the way to Beta 3.4 state? That may be the most reliable solution, but also extremely nasty AND time-consuming.
Plus it would be reverting progress by a year.

During melee, for a start. Personal combat training ought to be standard to all types - anyone who isn't skilled in swordplay isn't going to survive the many thugs and highwaymen, and in reality would also be a sitting target if he ever went into Tortuga. The only way he'd get out of there alive is because the locals figure it's better to stun him and let him walk away, then if he's stupid enough to return they get to do it again. So a navigator, for example, won't know much about how to fire a ship's cannons but he'll certainly know how to fire a pistol.
You mentioned that your one "fighter" officer tye DID get Fencing XP the way you wanted him to, right?
That turned out to be somewhat unintentional, because the "fighter" type "contributes the Fencing skill".

It is easy enough to turn that around and have ALL officer types "contribute their Fencing skill".
So if it is just Fencing that is the issue, that may be easily addressed.

They ought to get something for being involved in the quest. But if the storyline has picked a certain skill because it apparently must, if auto skill is enabled, then officers who played their part in the quest but whose position doesn't match the skill picked by the storyline won't get anything.

If you want logic, then how about this: if the quest involved sneaking and they took part then they'll have learned some sneaking as a result. It doesn't matter, for example, if the officer who's just escaped from prison with me is a navigator, quartermaster or boatswain - he's done some sneaking to get out of prison so he's learned a bit about how to move quietly. What he won't do, of course, is then contribute that skill to the ship's pool as part of his job. But he should get to use it if a sneak check is required on him when he's again one of your shore party.
In other words: Quests should bypass the "Shared XP" check? So eventually we'll get more exceptions to the rule than situations where the rule actually applies.
Which begs the question: Whatever is the purpose of "Shared XP" if not to share XP? o_O

As a simpler solution, once the "NO Shared XP" situation is confirmed to do what we'd expect (eg. officers gain XP in Fencing and ONLY the skills they contribute),
it is again a simple enough change to remove or reduce the rank requirement on that ability so people who want it can get it sooner.
Certainly a "rank requirement" is really very arbitrary, so I see no problem with tweaking that.

Long story short, there are two simple improvements I can think of:
1. Make ALL officer types "contribute Fencing"
2. Reduce the rank requirement for getting "Shared XP"

Sadly i agree :( the more i play even Beta 3.1 (let alone Beta 3.4 and Beta 4 where some of the biggest changes have taken place in this respect), the more it is looking like my personal rebuild of the Build Mod is going to have to be based on my Beta 1 Patch 7 version, as just more (noticeable) stuff worked in that one!!!

It must be very frustrating. Anyway something feels 'off' in Beta 3.4 and 4 in relation to how XP is working, too restricted and too generous at the same time, too uncontrollable by the players choices perhaps?

Edit: And to be clear here, i'm not saying the old method was perfect, but it felt smoother in general, and maybe the new code is close to being a much better system, i just don't know how close and am not sure if getting it working is a better/easier aim than simply using the old system for XP?
There are a couple of things we can do and I've been trying to decide what would be best for a good few months now.
Still don't have an answer, because there IS no good answer. But these are the options:
1. Make simple tweaks to the current Beta 4 system to make it behave closer to what we'd like to see.
2. Wait until @Levis makes some better tweaks: this depends on him showing up again to do it, which he DID promise, but is still a big IF.
3. Release Beta 4 as-is so at least we can gain feedback: @Talisman, @Armada, @Thagarr and @Hylie Pistof have all been encouraging me to do that, but I don't want to unless Levelling is at least serviceable.
4. Revert ALL Levelling-related code to Beta 3.3 state: this is a huge job, no fun whatsoever, but will at least return us to a "stable" state.
IF this is to be done, I REALLY don't want to have to do it by myself. So this rests on a secondary question: If you think this is the best option, would you be willing to help?
Also, be aware that I have little time and energy to spare for such a huge project, so it WILL probably take a long time.
5. I get enough of all of this and halt my development prior to the Beta 4 public release for an undetermined length of time.

So there you have it.... :shrug
 
To what date? December 2015? If so, please post the files you refer to.
Or all the way to Beta 3.4 state? That may be the most reliable solution, but also extremely nasty AND time-consuming.
Plus it would be reverting progress by a year.
Certainly not all the way to Beta 3.4! In general I like Beta 4 and want, to the best of my limited ability, to help it continue to evolve. It's just this levelling thing...

I'll need to check again and see which December version I have on the game PC. There might be a more recent version which doesn't have the problem; the reason that December version is still installed is because of the savegames which go with it. Apart from the obvious "Leveling.c", which other files should I look for?

You mentioned that your one "fighter" officer tye DID get Fencing XP the way you wanted him to, right?
That turned out to be somewhat unintentional, because the "fighter" type "contributes the Fencing skill".
The fighter type does gain Fencing XP. I'm not sure how anyone can contribute it; it's only used by the character when he's personally in combat, isn't it? It's not like Gunnery, which contributes to a general ship's pool.

In other words: Quests should bypass the "Shared XP" check? So eventually we'll get more exceptions to the rule than situations where the rule actually applies.
Which begs the question: Whatever is the purpose of "Shared XP" if not to share XP? o_O
The way it worked earlier is that the perk (rename it if you like) increased the share of XP. I've no idea what the percentages really were, but as an example, perhaps they get 15% of your XP gain without the perk and 25% with it.

As a simpler solution, once the "NO Shared XP" situation is confirmed to do what we'd expect (eg. officers gain XP in Fencing and ONLY the skills they contribute),
And once again we part company, for that's not how I would like to see it. Officers in your active party should gain a share of whatever XP you gain - it doesn't matter what their shipboard duty is, right here they're joining in whatever you're doing and learning from it. That way storyline writers don't need to care about what sort of officers the player may or may not have in the shore party when writing the code to allocate XP. Otherwise we'll need to change all the storylines to allocate some XP to all skills so all types of officer can get something for helping complete a quest, or helping with whatever else you're doing ashore.

Long story short, there are two simple improvements I can think of:
1. Make ALL officer types "contribute Fencing"
2. Reduce the rank requirement for getting "Shared XP"
That can help a bit. (I already know how to edit "perks_init.c" to knock out the rank requirement in my own install, but haven't done it in the current one as I want to be sure that "Ardent" is playable with a default set-up.)

There are a couple of things we can do and I've been trying to decide what would be best for a good few months now.
Still don't have an answer, because there IS no good answer. But these are the options:
1. Make simple tweaks to the current Beta 4 system to make it behave closer to what we'd like to see.
2. Wait until @Levis makes some better tweaks: this depends on him showing up again to do it, which he DID promise, but is still a big IF.
3. Release Beta 4 as-is so at least we can gain feedback: @Talisman, @Armada, @Thagarr and @Hylie Pistof have all been encouraging me to do that, but I don't want to unless Levelling is at least serviceable.
4. Revert ALL Levelling-related code to Beta 3.3 state: this is a huge job, no fun whatsoever, but will at least return us to a "stable" state.
IF this is to be done, I REALLY don't want to have to do it by myself. So this rests on a secondary question: If you think this is the best option, would you be willing to help?
Also, be aware that I have little time and energy to spare for such a huge project, so it WILL probably take a long time.
5. I get enough of all of this and halt my development prior to the Beta 4 public release for an undetermined length of time.
4: Reverting to 3.3 is overkill. Perhaps to 3.4, which was regarded as suitable for release. ;) More seriously, unless something else is seriously broken, reverting levelling to an earlier version of Beta 4 ought to be sufficient. When was the new system of restricting it introduced? I can try to help with reverting and rebuilding if the net result is a more enjoyable game, especially if it's my whinging which is the reason for the reverting!
 
Certainly not all the way to Beta 3.4! In general I like Beta 4 and want, to the best of my limited ability, to help it continue to evolve. It's just this levelling thing...
My thoughts exactly! :cheeky

I'll need to check again and see which December version I have on the game PC. There might be a more recent version which doesn't have the problem; the reason that December version is still installed is because of the savegames which go with it. Apart from the obvious "Leveling.c", which other files should I look for?
Just upload the files you've got and I'll put it on my To-Do list to see about reverting just Levelling to that point.


The fighter type does gain Fencing XP. I'm not sure how anyone can contribute it; it's only used by the character when he's personally in combat, isn't it? It's not like Gunnery, which contributes to a general ship's pool.
They shouldn't be able to contribute it. The fact that the fighter "fake does" is unintentional.
But if it DOES have the desired effect on how he gains XP, then that might give us a clue for a potential solution.

And once again we part company, for that's not how I would like to see it. Officers in your active party should gain a share of whatever XP you gain - it doesn't matter what their shipboard duty is, right here they're joining in whatever you're doing and learning from it. That way storyline writers don't need to care about what sort of officers the player may or may not have in the shore party when writing the code to allocate XP. Otherwise we'll need to change all the storylines to allocate some XP to all skills so all types of officer can get something for helping complete a quest, or helping with whatever else you're doing ashore.
I reckon that is up to the player to take care of; not necessarily the storyline writers.
The XP given by the story doesn't need to cover ALL officer XP, does it? It is more a bonus than anything else.
If you need your officers to gain XP on stuff the storyline doesn't cover for a specific mission, then just make them gain that XP outside the story.

That may not work very well for extremely linear storylines though.
But anything that also supports Free Play should be OK, no?

That can help a bit. (I already know how to edit "perks_init.c" to knock out the rank requirement in my own install, but haven't done it in the current one as I want to be sure that "Ardent" is playable with a default set-up.)
Once we've determined that "No Shared XP" works as we'd expect, I'd be quite happy to change the default setup afterwards.

4: Reverting to 3.3 is overkill. Perhaps to 3.4, which was regarded as suitable for release. ;) More seriously, unless something else is seriously broken, reverting levelling to an earlier version of Beta 4 ought to be sufficient. When was the new system of restricting it introduced? I can try to help with reverting and rebuilding if the net result is a more enjoyable game, especially if it's my whinging which is the reason for the reverting!
Between Beta 3.4 and Beta 4, the Levelling system has been basically 100% overhauled. Beta 3.3 and Beta 3.4 are near-identical.
So reverting to 3.3 or to 3.4 doesn't make much of any difference. Either of the two means "huge reversion".

For Shared XP, it isn't specifically that it has been deliberately restricted. That was just a side-effect of the complete rewrite.
That is specifically why @Levis has been putting in extra work to re-introduce it.
Originally it was meant to be a simple "No Shared XP" if you don't have the perk, and "do get Shared XP" if you do have it.
Based on your comments, we figured it might make sense to share XP even without the perk for contributed skills.
So that was added as extra bonus.

The question shouldn't be: Why do officers not get Shared XP now if you don't have the perk? The question should be: Why DID they before?
Because I have NO clue on that and, to me, that sounds completely unintentional.
Might have been conveniently unintentional. But unintentional all the same.
 
I don't know the intricacies of the current levelling system but reading the threads I get the impression that there ought to be at least two strands and maybe it's the interaction of those two elements that gives rise to uncertainty/disagreement as to what ought to happen.

For me you have some "officers" who are allocated specific posts, contribute relevant skills and should , overtime, improve their skills in those areas. In fact since they concentrate on their job and practice whilst you do many things they ought to gain skills in their relevant areas faster than you ever can. So in a direct sail from A to B with no other interaction you should gain a small amount of the relevant sailing skills but your appointed officers take the lion's share, if you don't have appointed officers you get more of the missed skill specific XP because you did more work. The actual amounts up for tweaking after more feedback.

However you also have your shore/boarding party. Depending who you pick you are effectivelt distracting them from their "job" (some may still be using relevant skills) to come and support you. So whilst on your party they should not be gaining their core skills but whatever the experience the gameplay leads to. This will often be melee but could also have commerce, sneak and other elements. As argued elsewhere they are in the party therefore should be gaining the same types of experience, but if generally onlookers perhaps at a lesser level. I think the conceptual problem is that in some way they are gaining from YOUR experience (by calling it shared) rather from their own participation. If you have the shared XP perk then (perhaps) you have taken them under your wing and are ensuring they get maximum gain from the experience (in whatever skill is relevant).

There are also officers you don't appoint to a post or your shore party - what of them in skill gaining - should they remain as first encountered or in what skills should they improve if any?

So how to enable this in game.

I would see @Grey Roger 's description of previously XP slightly shared and being enhanced by shared XP as correct for the shore/boarding party. This may be in practice easiest enabled by giving a fraction of what you earn (back to that "shared" thing again) regardless of what skill it is - but only for the party. I guess looking back should show how it did it even if unintentional. However the main skill they need for a shore party/boarding is melee so just making that "contributory" and thereby capable of enhancement may be a work round for now.

The concept of only contributing skills being enhanced for non party members stands as correct for other appointed posts.

So from where we appear to be (solely from reading the threads) I think the two "improvements" would help.
Long story short, there are two simple improvements I can think of:
1. Make ALL officer types "contribute Fencing"
2. Reduce the rank requirement for getting "Shared XP"
I would put the rank required for shared XP as a define in internal settings such that it is easily adjusted for those that wish.

In addition (if not too difficult to arrange) any linkage between post related contributing skills and XP gain should be suspended for members of the shore/boarding party.

As this seems to be the main sticking point holding a public release of Beta 4 I am also willing to assist if it would be useful.
 
As far as I can tell, the main concern is with the "yes/no Shared XP without actually having the Shared XP perk" situation.
Everything else seems to be, if not ideal, at least reasonable and may be rebalanced by changing some numbers here and there.

That doesn't seem like reason enough to completely undo the 100% rewrite that @Levis did over the past 6+ months.
But since he apparently isn't quite around lately either, it would be nice if somebody could pick up where he left off.

The two suggestions that I mentioned should probably be two-minute fixes and are a pretty safe bet.
Though I don't want to decrease the rank requirement until AFTER we determined that "without ability" it also works reasonably.

So that means right now the following things are to be done:
1. Check if "officers gaining XP without having the Shared XP ability" works as intended (eg. they gain XP only in those skills they contribute)
2. Check if "officers gaining XP WITH the Shared XP ability" works as intended (eg. they gain some XP in all skills)
3. Check if the rate of XP gain in case #1 exceeds that of the player; if not, then a mulitplier of sorts needs to be added somewhere
4. Assuming that gaining Fencing XP works as desired already for "fighters" but not other officer types, change the officer_init.c(?) file to have ALL officer types "contribute" Fencing
Alternatively, introduce "Fencing" as an exception in the "XP gaining code" (it already is in those spots that I rewrote for the "performance in 3D sailing mode rewrite", so there is a precendent for that)
5. See what other changes need to be made

For me you have some "officers" who are allocated specific posts, contribute relevant skills and should , overtime, improve their skills in those areas. In fact since they concentrate on their job and practice whilst you do many things they ought to gain skills in their relevant areas faster than you ever can.
Agreed. I think the bold part isn't actually in place just yet, but I'd definitely like to see that added too. :yes

So in a direct sail from A to B with no other interaction you should gain a small amount of the relevant sailing skills but your appointed officers take the lion's share, if you don't have appointed officers you get more of the missed skill specific XP because you did more work. The actual amounts up for tweaking after more feedback.
Dividing the XP gained over the number of officers contributing does complicate it a bit.
I have no objections to that, but that does sound like something ideally @Levis should handle himself.

However you also have your shore/boarding party. Depending who you pick you are effectivelt distracting them from their "job" (some may still be using relevant skills) to come and support you. So whilst on your party they should not be gaining their core skills but whatever the experience the gameplay leads to.
Though at sea they SHOULD still gain their job stuff. I also don't see "shore party" as being a "distraction", simply because doing so would introduce a need for more micro-management.
So I figure putting an officer in the shore party should not, in any way, decrease the XP they get.

There are also officers you don't appoint to a post or your shore party - what of them in skill gaining - should they remain as first encountered or in what skills should they improve if any?
Completely unassigned officers should basically get nothing. Unless you've got Shared XP, when they might get a bit of everything.

I would put the rank required for shared XP as a define in internal settings such that it is easily adjusted for those that wish.
We could do that, if truly required. Though I'd prefer to change it to a number that is reasonable in general.
As I mentioned, I have no objections to reducing that value. But only once we confirmed that the "No Shared XP" situation works as expected.

With adding toggles, it is all too easy to go overboard as it can be difficult to know where to draw the limit.
Anyway, that is a separate concern altogether.

As this seems to be the main sticking point holding a public release of Beta 4 I am also willing to assist if it would be useful.
You're a hero, did you know that? :bow

If you would be up for it, there is one thing that could end up helping a LOT:
Use WinMerge to compare the file from Feature Request - Tweaks Required to levelling | PiratesAhoy! with the one currently in the main mod.
Pretty much all differences should be ones that deal with "Shared XP", so that should hopefully point you in the right direction.
Maybe by looking at that, you can think of any changes to that logic that would help. :cheers
 
I also am completely up for helping in getting the old (more functional) Beta 3.3/3.4 code back into Beta 4. Here's the problem, i think i'd need a pretty detailed roadmap of what files i need to look at, and that would fall on the shoulders of Pieter (or Levi, or other coders very familiar with all the code for this).

But yeah i can do monkey work no problem, just give me directions.

As an example i tried to get the perk changes in Beta 3.3 (with the additional extra ability point spends to 'gate' access too early) to run in Beta 1 Patch 7. The game crashed as soon as i hit the 'Ability' bar in the char menu. So that is the problem i will face in these kind of tasks. I had copied code from two files that i thought would be enough, but lack of familiarity with all the code changes meant i obviously had not got something extra i needed (i even put the 64Forbidden folder in the right place!).

So yeah, i can and will help for sure as i don't want to see a semi-working system that used to work ok be the basis of a beta 4 release. Show we where exactly and what files and i will get to work (i'll start by looking at that thread you gave for pedrwyth to check) :yes
 
Though at sea they SHOULD still gain their job stuff. I also don't see "shore party" as being a "distraction", simply because doing so would introduce a need for more micro-management.
So I figure putting an officer in the shore party should not, in any way, decrease the XP they get.
Yes thought of the micro management problem for at sea when unless boarding they are presumably doing their job but when ashore as part of the party they are not, perhaps just a check of whether at sea (and not abordage) or not could deal with that. Is XP allocated just through time passing ie do ship officers get XP when in port (on shore leave) and you are off on some quest on land - no reply required since code crawling should reveal that . Wasn't sure how XP functions but as I do as you request below will presumably get more of an idea!!
Completely unassigned officers should basically get nothing. Unless you've got Shared XP, when they might get a bit of everything.
That's sort of what I thought/hoped
If you would be up for it, there is one thing that could end up helping a LOT:
Use WinMerge to compare the file from Feature Request - Tweaks Required to levelling | PiratesAhoy! with the one currently in the main mod.
Pretty much all differences should be ones that deal with "Shared XP", so that should hopefully point you in the right direction.
Maybe by looking at that, you can think of any changes to that logic that would help.
No problem (hopefully)
 
Having seen these discussion on the current XP system..........it seems too complex now with the changes since i last played/helped mod back in Beta 1. I don't think it should be a perfect reflection of real life, more of an approximation based on what we know the game (PotC) can do?

Anyway, time to read that other thread :)
 
I also am completely up for helping in getting the old (more functional) Beta 3.3/3.4 code back into Beta 4. Here's the problem, i think i'd need a pretty detailed roadmap of what files i need to look at, and that would fall on the shoulders of Pieter (or Levi, or other coders very familiar with all the code for this).
Because Beta 3.3/3.4 is VASTLY different from Beta 4, there is virtually no compatibility to speak of where Levelling is concerned.
For now, I think the general consensus is that we should try to stick to the Beta 4 code and see if we can get that to behave more reasonably with minimal effort.

That doesn't help you anything though. BUT assuming that we cannot get Beta 4 OK, eventually we may have no choice but to revert back.
If we do need to do that, I'll probably revert to either Beta 3.3 or Beta 3.1 (ideally 3.3, of course).
If you could figure out if Beta 3.3 is good enough by your reckoning (stability-wise; not balancing-wise), that would be valuable information at least.

As an example i tried to get the perk changes in Beta 3.3 (with the additional extra ability point spends to 'gate' access too early) to run in Beta 1 Patch 7. The game crashed as soon as i hit the 'Ability' bar in the char menu. So that is the problem i will face in these kind of tasks. I had copied code from two files that i thought would be enough, but lack of familiarity with all the code changes meant i obviously had not got something extra i needed (i even put the 64Forbidden folder in the right place!).
That in and of itself already affects a whole bunch of files. I couldn't tell you which ones without spending substantial time finding the answer. :(

Yes thought of the micro management problem for at sea when unless boarding they are presumably doing their job but when ashore as part of the party they are not, perhaps just a check of whether at sea (and not abordage) or not could deal with that.
I see no problem with having no shore/sea check at all and simply always doing the same.

Taking your officers ashore with you might be a "distraction". But in the end, they just end up being RIGHT THERE when you conduct trading.
So if anything, they should get MORE XP; definitely not less. That is extra fine-tuning though and doesn't seem crucial to me at the moment.

Is XP allocated just through time passing ie do ship officers get XP when in port (on shore leave) and you are off on some quest on land - no reply required since code crawling should reveal that . Wasn't sure how XP functions but as I do as you request below will presumably get more of an idea!!
Simple version:
There are calls to AddXP all throughout the code, either directly or often indirectly through some of these other functions:
Code:
int AddCharacterExpChar(ref chref, string expName, int _exp) {return makeint(AddXP(chref, expName, _exp, XP_GROUP_OFFIC));}
int AddCharacterExp(ref chref,int _exp) { return makeint(AddXP(chref, "", _exp, XP_GROUP_OFFIC)); }
void Ship_AddCharacterExpChar(ref rCharacter, string expName, int iExpQuantity) { AddXP(rCharacter, expName, iExpQuantity, XP_GROUP_OFFIC); }
int AddCharacterExpNSChar(ref chref, string expName, int _exp) { return makeint(AddXP(chref, expName, _exp, XP_GROUP_PLAYER)); }
int AddCharacterExpNS(ref chref,int _exp) { return makeint(AddXP(chref, "", _exp, XP_GROUP_OFFIC)); }
void AddPartyExpChar(ref chref, string expName, int _exp) { AddXP(chref, expName, _exp, XP_GROUP_PARTY); }
void AddPartyExp(ref chref, int _exp) { AddXP(chref, "", _exp, XP_GROUP_PARTY); }
void AddExpAndShow(ref chref, int _exp)
{
   AddXP(chref, "", _exp, XP_GROUP_OFFIC);
   LogIt("+" + _exp + XI_ConvertString("add experience"));
}

For example, there would be such a call when you conduct business transactions at the merchants.
If that is called, then Commerce XP is added to the player and all relevant officers; by default only those officers who contribute their Commerce skill.

There is no "steady stream of XP" that is added based on passed time.
Basically, if you don't do anything that would gain XP for a skill, then nobody in your party will gain XP in that skill.

A partial exception is Sailing, because you gain that through Sailing (of course ;) ) and that is something that is continuous.
The longer you sail around in 3D Sailing Mode, the more Sailing XP you get.
By consequence, using DirectSail gives more Sailing XP than using WorldMap does.

Does that make sense so far?

That's sort of what I thought/hoped
I do not know for 100% sure that it actually works like that in the game. But it should.

No problem (hopefully)
:bow :bow

Having seen these discussion on the current XP system..........it seems too complex now with the changes since i last played/helped mod back in Beta 1. I don't think it should be a perfect reflection of real life, more of an approximation based on what we know the game (PotC) can do?
It indeed IS quite complex. Especially because the same system now applies equally to ALL characters in the game.

I definitely agree that simplifications are OK. :onya
 
Well that didn't last long! Got a CTD (runtime error notice pop-up, an error.log and the system.log both mention memory errors (interface.c; line 1586 no memory & Leak: Bad memory address line 0 size 143 etc).

That happened right at the start on my second save, pretty sure it is not related to that new Leveling.c file Pieter posted up thread that i was testing, and more my issues running Beta 4 under XP :(

@Pieter, yeah it sounds like it is going to be easier to get Beta 4 Leveling fixed, rather than make sure all the old files from Beta 3.3/3.4 work.

hmmm i could run some Beta 3.4 games and report back on the general leveling issues in that build. The main issue with 3.4 is the micro-stutter, but using Hylie's tips (MSI afterburner) to cap fps i get rid of much of that. Well it also has the CTD in direct sail issue, but i can simply avoid that as much as possible.
 
Last edited:
Well that didn't last long! Got a CTD (runtime error notice pop-up, an error.log and the system.log both mention memory errors (interface.c; line 1586 no memory & Leak: Bad memory address line 0 size 143 etc).
The only thing I can think of is to delete the file named "options" from your main game folder and remove all savegames you don't need.
Maybe that helps. Though most likely not. :facepalm

That happened right at the start on my second save, pretty sure it is not related to that new Leveling.c file Pieter posted up thread that i was testing. :(
Technically old file. It just has some stuff reverted to the state from a month ago.
 
That does sound like a problem with not enough memory as the game does have memory leaks, and they don't seem to show up in any monitoring hardware I know of.
 
Back
Top