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

Encounter Size and worldmap_global

Mithridates

Landlubber
In a number of threads, it is discussed how the encounters are too "heavy," even when they are light. For example, I just got a sail-ho message that there was a merchant with light escort. In truth, it was a fleet of four frigates two galleons, a pinnace, and two men-of-war or ships-of-the-line.

I don't want the encounters to be based on my character's skill, but the most common vessel in the game should be a barque or yacht. A merchant fleet might be composed of small merchants escorted, maybe, by a brig. If the stuff being transported is really important, then maybe a corvette will escort.

But this has all been said before. Each time, it seems people are directed to the worldmap_globals files. Could someone be more explicit with which lines need to be changed to lower the class of the ships? Thanks.
 
I'm afraid I haven't the slightest idea how to do this. But I agree it would be a good idea to do this. Another thing having to do with ship encounters that I really would like to see changed: Ships with the .nation attribute set should only be used by that particular nation. That would prevent us from seeing British navy ships with French flags.
 
yeah i agree... and besides this do you think it's possible to create a nationality type thing for only merchants?

basically what i'm saying is that not all merchants had an allegence to one country, many mechant vessels/companies flew there own colors. by doing this i'm wondering if we can make the country only use certain ships that are "merchant" vessels to cut down on the chance of seeing an armada of men-of-war ships.
 
After looking through the files, I think the problem may be related to allowing "non-follow" naval fleets. In an effort to represent that navies wouldn't allows chase pirates, someone gave the merchant or trade attribute to naval fleets. This may explain the sailho command. It may also explain 16 1st rates and frigates being described as a "rag tag." If that's rag tag, what's a squadron; a fleet?

Another solution, and I remember discussing this at great length with Nathan Kell, was to create an extensive and intricitate (and likewise extremely difficult to code) dynamic archipelago system. The idea was premised on the notion that whether trade ships reached their destination should have an impact on that game... likewise, prices would be reflective of the island's supply. This dynamic economy would then impact shipyards; you need supplies to build ships. Naval vessels would be dependent on other factors, but the idea was that they would be limited. If the player sunk a frigate, then that nation just lost a frigate, which means that frigate can't escort convoys, which means fewer convoys will get through, which means the demand will skyrocket for goods, and the islands may lose population, or be captured by the player or ai. Vessels that surrender could later show up in the service of the capturing nation. The best part would be that these events might be connected to the player's conversations with NPC's so that keeping track of rumors would be important.

The next phase would be to create dynamic characters which can be found, at times, in their home port or elsewhere and conversed with. These characters could then get better through their experiences and exploits. They would "remember" their interactions with the player (whether he treated them well after capture, etc). Likewise, perhaps certain privateers or naval captains might be hired or ordered to chase the player or other pirates down. Perhaps watch as the naval officers in your town move up in rank or ship class. This also means that you could spend months running or chasing the same ship all across the Archipelago, asking at the taverns for news since your last visit. The bartender would then recount who has recently visited the island and to which island they sailed to. The accuracy of these rumors would be dependent on the player's luck but mostly the player and target characters' reputation and renown. Afterall, not every pirate or ship is noticed or remembered. Likewise, if the player develops a reputation, it is more likely that privateers or pirates or enemy nations might be out to get him.

Finally, the last element would be an interface screen in which the player could view the top 10 captains for each nation and for the pirates (and of course, whether he was one).

Of course, --- and this is a huge of course --- this would be an amazing complex system. It could certainly not be coded at once, because it is too large. It would have to be created in smaller and more manageable phases (as most projects are). I understand that Sid Meier's Pirates has a similar system, but I'm not familiar with it. But the point is that there is precedent for such a dynamic system which not only makes the game unlimited in terms of replayability, but helps the player develop his character and watch the real world function around him. Sometimes the player would help shape events, sometimes just watch as larger events unfold around him.

That's the dream. Whether it will happen though, is up to us.

Its a shame NK isn't around anymore...
 
Nathan Kell's departure was one of the biggest losses to this community, along with Catalina's departure. I so wish to see them back one day. <img src="style_emoticons/<#EMO_DIR#>/sad.gif" style="vertical-align:middle" emoid=":(" border="0" alt="sad.gif" />

As for your ideas: That would be just plain brilliant. We are working on at least making the archipelago somewhat more dynamic. In Alpha 7 there is a function that should change nation's relations at random and enable towns to be captured at random. The player cannot influence these events though. Also I saw an unused BuildSettings toggle in Maximus' recent files:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->bool YOU_ARE_NOT_ALONE = false;
    // 0: Player has no opponents (Stock PotC)
    // 1: One opponent from each nation will be added (They will have skills, perks and experience, like main character. They will increase skills and gain experience automatically. They can capture ships and some colonies too. You must be quick in this world, or you will be last in heroes list.)<!--c2--></div><!--ec2-->
The required code for this is not in the modpack though. Looks to be a work in progress mod of Maximus'.

Nathan did once make a fleets mod that would have ships sailing actual trade routes. Unfortunately this meant no more ships on the worldmap and it became virtually impossible to deliberately encounter ships anymore. Also the mod was never finished. But it was being worked on.

I think a lot of what you describe could be done partly through things like random quests. It would be nice to have lots of extended random quests with lots of variables. Those could make the a lot more interesting. Also I think it would be nice to give at least some characters actual personalities, especially characters like the player's officrs and crew. I would love to see more meaningful player/crew interaction.
 
don't sounds like some REALLY nice stuff! wouldn't it be possibly to have the trade route ships and have a bunch of random other ships sailing around at the same time? like a combination of the traderoutes and the current situation?
 
<!--quoteo(post=216261:date=Oct 1 2007, 01:38 PM:name=Pieter Boelen)--><div class='quotetop'>QUOTE(Pieter Boelen @ Oct 1 2007, 01:38 PM) [snapback]216261[/snapback]</div><div class='quotemain'><!--quotec-->Nathan Kell's departure was one of the biggest losses to this community, along with Catalina's departure. I so wish to see them back one day. <img src="style_emoticons/<#EMO_DIR#>/sad.gif" style="vertical-align:middle" emoid=":(" border="0" alt="sad.gif" /><!--QuoteEnd--></div><!--QuoteEEnd-->
How many modders did PA used to have?
 
Lots. I think when I joined we had Nathan Kell, Catalina the Pirate, CouchcaptainCharles, Petros, Alan Smithee, and several others I do not remember right now. At some points we might have as much as five coders working all at once. Perhaps even more, because I didn't join until Build 12 was finished.
 
I was talking about when I joined the community. Captain Augast joined much later.
 
Hi!

New here, just got the game a couple of weeks ago.
I picked it up just because of the build mod..

Well, it's great fun, apart from being sunken all the time by a 'rag-tag' bunch of pirates...
So I had a look at the mod source. The problem doesn't seem to be in worldmap_globals.c, but in encounters.c.

In the function FindEncounter the array iTypes has a comment 'MUST BE MAX_ENCOUNTER_TYPES*10!'.
However the array is initialized with the lines
SetArraySize(&iTypes, ENCOUNTERS_QUANTITY*10); and
for(i = 0; i < ENCOUNTERS_QUANTITY*10; i++) iTypes = -1;

So I changed those according to the comment above and it seems to work, although I have tested it only briefly.

Hope this helps.
-merirosvo

ETA: The mod version I have is 13 final, btw.
 
Welcome to the forum! Could you elaborate a bit on what you changed exactly? And how you changed it?
 
<!--quoteo(post=220716:date=Nov 9 2007, 03:59 PM:name=Pieter Boelen)--><div class='quotetop'>QUOTE(Pieter Boelen @ Nov 9 2007, 03:59 PM) [snapback]220716[/snapback]</div><div class='quotemain'><!--quotec-->Welcome to the forum! Could you elaborate a bit on what you changed exactly? And how you changed it?<!--QuoteEnd--></div><!--QuoteEEnd-->

Cheers for the welcome!
In program\encounters\encounters.c the function FindEncounter starts like this:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->// NK new one function 05-05-11
int FindEncounter(int type, int nat)
{
    int iTypes[2]; // MUST BE MAX_ENCOUNTER_TYPES*10!
    int i;
    SetArraySize(&iTypes, ENCOUNTERS_QUANTITY*10);
    for(i = 0; i < ENCOUNTERS_QUANTITY*10; i++) iTypes = -1;
    int iNumTypes = 0;
        .
        .
        .<!--c2--></div><!--ec2-->

So as the comment after the iTypes declaration says, the array size should be set to MAX_ENCOUNTER_TYPES*10, but it's actually initialized to encounters quantity. I'm not sure why, and there might be a good reason for it.
But when I changed ENCOUNTERS_QUANTITY*10 to MAX_ENCOUNTER_TYPES*10 the encounters became a bit more like expected.
 
If I look at Encounters_init.c, I see ENCOUNTERS_QUANTITY being referred to. Judging by the code, for each encounter, the ENCOUNTERS_QUANTITY number should be increased by 1 for each intialized encounter. MAX_ENCOUNTER_TYPES = 32 as defined in Encounters.h. If you really notice a difference in the generated encounters, I think there might be something wrong here. Unfortunately I don't really understand this code. <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />
If it says "int iTypes[2]; // MUST BE MAX_ENCOUNTER_TYPES*10!", why doesn't the code look like "int iTypes[MAX_ENCOUNTER_TYPES*10];"? <img src="style_emoticons/<#EMO_DIR#>/wacko.gif" style="vertical-align:middle" emoid=":wacko:" border="0" alt="wacko.gif" />
 
Back
Top