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

Limiting ships to certain nations

Hell yeah! <img src="style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
 
I am not sure what you mean by "additional thoughts". The specific shiptypes and what nations they should belong to have already been discussed in this thread, but not very thoroughly and I could add some thoughts, but my guess is, you´re looking for a coders input on how to implement the Shiptype.chance.x thing?
 
I think I know how to put it in code-wise. But I would like some thoughts on how users would actually like to use it. What would you think would be simple to use and would work well? After all: There's no point in me making complicated code if nobody knows how to use it. <img src="style_emoticons/<#EMO_DIR#>/rolleyes.gif" style="vertical-align:middle" emoid=":rolleyes:" border="0" alt="rolleyes.gif" />

I was also thinking about making ships gradually appear and disappear, so that the chance of a certain ship appearing is based on the appearance year, the disappearance year and the current year. But that might be getting a bit too complicated... <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />
 
RefShip.Chance.ENGLAND = 75, RefShip.Chance.Pirate = 10 etc etc seems pretty easy to me, if these stats can be put in the Ships_Init.c file for each ship.

Would setting the ship´s apperance as a boolean work, if you set checked it by calculating each ship´s parameter once a year? You could achieve the on/off parameter by comparing the ship´s appearence according to history as a parameter reference, say AppTimeline or whatever, to a parameter containing the actual year.

if (RefShip.AppTimeline =< ActualYear OR RefShip.AppTimeline => ActualYear) {
RefShip.Chance = 0;
}
else {
RefShip.Chance = 1;
}

Dont think the hierachy of the classes mess up this way. However, the chance of making a fool of myself in this case is pretty big, as it most likely COULD be done much more simple or SHOULD be done totally different <img src="style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />
 
I was thinking this:<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->if(CheckAttribute(rShip,"chance."+iNation))
{
    int tmp = "chance." + iNation;
    if(sti(rShip.(tmp) < rand(100))) { continue; }
}<!--c2--></div><!--ec2-->
The function where this is used will select a random ship. If <i>continue</i> is called, this ship is not used. So if the ship has a set chance of 100, then it will never be smaller than a random number ranging from 0 to 100. Thus continue will not be called, thus the ship <i>will</i> be used. If the chance is set lower, the ship might or might not be used.

As for the yearly influence: Ideally the ships should appear and disappear according to the <a href="http://en.wikipedia.org/wiki/Normal_distribution" target="_blank">normal distribution</a>. I know this is possible somehow. Hook used this for the cannon fire code so that depending on your cannon skill, you will be more likely to hit, but big misses can also still occur, though less frequenty. Also if the appearance and disappearance years are rather close, then the normal distribution will be quite narrow, making the ship quickly more common. If only I knew how to use that ingame... <img src="style_emoticons/<#EMO_DIR#>/rolleyes.gif" style="vertical-align:middle" emoid=":rolleyes:" border="0" alt="rolleyes.gif" />
 
Of course your way is much more distiguished <img src="style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
Erhm..I understand your code, actually..Although I really can´t help you more on the refShip.Chance.Nation, but maybe we need to set up a year(chance) array for each ship, although time-, space- and memory-consuming for both us and the users?


BTW: Maybe I miss the target bigtime here, but aren´t we closing in on being able to indexing the ships -> the ability to give each ship a unique ID ("Hmm. Did´nt I just sink the barque "Perle" twice this evening?") -> dynamic ship economy for each country (i.e. England had more ships than Holland) ?
 
<!--quoteo(post=225278:date=Dec 10 2007, 09:25 PM:name=PeterWillemoes)--><div class='quotetop'>QUOTE(PeterWillemoes @ Dec 10 2007, 09:25 PM) [snapback]225278[/snapback]</div><div class='quotemain'><!--quotec-->BTW: Maybe I miss the target bigtime here, but aren´t we closing in on being able to indexing the ships -> the ability to give each ship a unique ID ("Hmm. Did´nt I just sink the barque "Perle" twice this evening?") -> dynamic ship economy for each country (i.e. England had more ships than Holland) ?<!--QuoteEnd--></div><!--QuoteEEnd-->That goes a bit far for my limited abilities. I'd already be happy if we could at least give each nation a distinctive ship-usage. <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />
 
You´re right. Lets leave it there and go for the agreed. This one is important for the mod and will mean huge progress if you can do it.
 
In fact, at the hight of the Nethelands, we had more ships then England, France and Spain combined!
But you are right.
 
I'd consider making this optional. They had a mod that did something like this in Red Baron 3D, it would cycle in different models (and skins!) for the aircraft by squadron over time. It was very, very cool too! But, and this may be a weak argument, I kinda like seeing the huge variety of vessels in PoTC as it is. It's exciting having a potential for a number of ships to actually pop up when you lay your spyglass in on them. On the other hand, this could just be a function of my not knowing tall ships as well as aircraft - it doesn't really wreck my suspension of disbelief to see a schooner and a galleon out there together even if my brain knows they were sailing in utterly different eras. Heck, I'm fighting skeletons. How realistic is that?

Pieter, you talked about the desire for variety in duelling, changing things up so it stayed interesting and got less repetitious. I tend to feel the same way about the variety of vessels in PoTC. Along with character models/skins that's really a huge draw - "What kind of vessel am I going to find today?!" New toy syndrome, I guess.

YMMV.
 
The variation by year might be overdoing it. If players run so long that they would actually see the older ships being phased out, that would likely be the very severe exception. Odds are that, even if it wasn't the latest military prototype in Europe, the older ships were still around and even new ones being built for some time.

As for the ship types, that could really be useful ... even if two nations were using the same type of ships, they were probably decorated very differently. By making them two models and assigning them by country, it gives a lot more look and feel to the ship types.
 
For the years, I am still for periods. Buccaneer (1600-1650) Pirate (1650-1730) Privateer (1730-1780) Napoleonic (1780-18- ) So you don't have a caravel (1570) sailing along with a Napoleonic frigate <img src="style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />
 
<!--quoteo(post=228323:date=Dec 29 2007, 05:29 PM:name=Thomas the Terror)--><div class='quotetop'>QUOTE(Thomas the Terror @ Dec 29 2007, 05:29 PM) [snapback]228323[/snapback]</div><div class='quotemain'><!--quotec-->For the years, I am still for periods. Buccaneer (1600-1650) Pirate (1650-1730) Privateer (1730-1780) Napoleonic (1780-18- ) So you don't have a caravel (1570) sailing along with a Napoleonic frigate <img src="style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" /><!--QuoteEnd--></div><!--QuoteEEnd-->

What year are we assuming this to be starting? Because I doubt many players are going to go for 200 years of game time ... so one or the other of those shouldn't be there to begin with.

Then again, a lot of the modern commercial air fleets are more than 40 years old. Some of the old DC-3 series are still flying cargo in South America, and they're at least 80 years old. Maybe a ship that was 50 years completely out of date would not be a surprise then either, especially if it was retired as a government craft and picked up privately.

Anyway, It seems a lot of work to code phasing something out like that.
 
I, at least, want to have different nations using different ships. That's the most important thing for me. As for the appearance and disappearance by year, there's several routes we could go:
1) Actually have realistic appearance and disappearance years. Advantage: Realistic. Disadvantage: Players don't play for 200 years, so will most likely not encounter a lot of ships. You should be able to select your starting year in the Choose Character interface.
2) Condensed time frame: All ships appear and disappear within a much shorter timeframe. Advantage: Players would actually notice the appearing and disappearing. Disadvantage: Unrealistic.
3) Always having a small chance for "anachronistic" ships. This way, anachronistic ships *could* appear, but are very uncommon.

The main reason for adding the influence of appearance and disappearance years is for those players who don't want to have certain anachronistic ships in their game. I know that Petros, for example, prefers a 1600's time setting with galleons and no corvettes, frigates, battleships, manowars, etc. However, what we <i>could</i> do is only use appearance years. So when you set your starting year to 1600's, you get only 1600's ships, but when you set your starting year to 1800, you get all ships. For this, perhaps we could also make it so that ships appear over a short period of time and disappear over a much longer period. So that by the 1800's, 1600's ships would be much less common than they were in the 1600's, but you could still encounter them on occasion.

Things might be getting a bit complicated though. <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />
 
How about a setting option in the character screen? You choose early, mid, or late period (or "undetermined period" to see them all) when you create the character, and it runs the appropriate script for ship selection in that period.

Advantage: You get some control over what stuff is out there. There is some element of realism.

Disadvantage: If you do play long enough that you would start seeing major tech changes, they don't happen... unless you want to build a toggle for that, in which case they would happen all at once.
 
There's option 4 then. <img src="style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />

I suppose that actual appearing and disappearing isn't really viable, because it would occur over too long a time period for the player to notice. Ergo: Too much effort, too little return. So then it'd be time periods like Thomas the Terror and Ron Losey suggest with the additional option to just have all ships at once.
 
I think that's both easiest and best. Just set up seperate folders and encounters for each era and let a player pick. The cycling aircraft models and squadron skins in RB3D actually took place in just a few years so the rare pilot who lived and flew long enough could, quite conceivably, encounter these changes over time. With the technology of tall ships in the Caribbean that seems both less realistic and less practical. Let folks pick an era and go to town with the option for all ships to appear. Everyone wins.
 
Back
Top