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

Rethinking ships in POTC: new project?

iamthejarha

Landlubber
Various exchanges about current code and designs, and possibilities for the future with Kieron and others have given me a lot of ideas. Unfortunately, I'm not yet familiar enough with all the POTC code to implement this stuff <i>myself</i>, but I thought I'd throw them out here for everyone to mull over and see what's worth trying.

First of all, the ships themselves. The way build 11 is set up, ships of different nationalities have different stats, but not much else is dissimilar. All the ships and textures, with a few exceptions, are available to every nation. I'd like to see a bit more individuality amongst the various nations and their respective shipyards. To that aim, I rewrote my entire <span style='color:red'>Ships_init.c</span> file, allowing only certain nations access to certain ship textures, but I think it could be taken a step further, especially in the case of certain ships.

<b>Fleuts</b> are a Dutch product, and while I'll never claim to be a true study of maritime history, everything I've read so far has led me to believe that fleuts <i>were</i> used primarily by the Dutch, and weren't really copied by other nations. So why are "native" fleuts available at other shipyards? The fleut should be available only from the Dutch, and if it shows up in another nation's shipyard, it should--using Kieron's ship nationality icons--be of Dutch origin.

<b>`Men-of`-War</b> (`Man-of`-Wars?) should only be allowed to the three true "powers" of the Caribbean: England, France, and Spain. Portugal and Holland didn't really have extensive use of these ships, so why should we run across Dutch and Portugese fleets sailing upwards of `3-4` of these beasts? This can be extended to include battleships, as a `class-one` ship.

<b>Warships</b> and <b>Lineships</b>, simply put, need new names and classifications. Technically, only the battleships and MOWs would be true "`ships-of`-`the-line`," so the name of the `BP-based` ship is a misnomer. Being `class-two` ships, perhaps they can be classified as frigates, since the 'frigate' was actually a fairly broad classification for the time. The `in-game` frigate could be a "Light Frigate," the lineship a "Frigate," and the warship a "Heavy Frigate." I don't know about the true <i>accuracy</i> of such classifications, being that the `in-game` frigate has as many (or more, NK?) cannons as the lineship and warship, but it's a brainstorm waiting to happen.

<b>Galeoths</b>, from the searching I've done, never existed--or at least, were never called <i>galeoths.</i> The closest reference I've found to the ship named "galeoth" is the <i>galliot</i>, which was a very `similar-looking` ship of Dutch origin and use. As such, it should be available only <i>from</i> the Dutch.

<b>Caravels, Galleons</b> and <b>Pinnaces</b> are kind of funny cases. For the most part, I've come to gather that caravels and galleons (at least, the heavy galleons in the game) were sailed by the Spanish and Portugese, while the English and French built smaller galleons instead of the behemoths that Spain relied on. Meanwhile, the pinnace as built in the game doesn't match any description of a "pinnace" in historical terms. So, as a solution, make the `in-game` pinnace a <i>light galleon</i> made by the French and English, and increase its max cannon caliber to 24lbs, to compensate for its smaller number of cannons (24 guns vs. the Heavy Galleon's 38 guns).

In addition to these changes, the new ship ideas that jmv575 has been working on--creating new ships based on existing ship models--is something that I've been looking into as well. Because certain ship types are only available from certain nations, more ship types are a logical next step. <i>That</i> idea is still in its infancy, and I'm not sure if what I'm envisioning can be done with the current tools at my disposal (working entirely with existing model parts), but I intend to find out.

Now, I've seen requests for a <b>"paint shop"</b> in the shipyard. A <i>real</i> paint interface would be impossible, I think, but being able to buy new 'paintjobs' based on the models and textures <i>already in the game</i> should certainly be possible using an interface similar to Kieron's SelectSails interface. Prices can be set, different shipyards can have access only to certain textures for each ship type (thus creating the need to sail to certain islands to get a specific paintjob), etc. More new textures would be required to make the mod <i>extremely</i> useful, but it would be an interesting addition that could help individualize each player's game. In that vein, a new interface to buy <b>sails</b> from each shipwright should also be possible.

For some reason, I feel like I'm forgetting something, but these are some of the ideas that I've been obsessing over lately. Any feedback, corrections, expressions of (dis)interest, <b>help</b>, etc. would be wonderful. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/pirate2.gif" style="vertical-align:middle" emoid=":p:" border="0" alt="pirate2.gif" />
 
I've got an idea for individualizing ships even more, but it requires a level of code knowledge that I can't say I have. The <b>rand()</b> function natively returns a random number between 0 and whatever number you assign. Is there a way to get a random number between two defined numbers, like 8 and 13?
 
i'm in agreement that ships should be attributed to certain empires. and about the renaming of 'warships' and 'lineships'. (the only thing i'm not sure i agree with you about is who the 'true powers' are (in 1690, i reckon spain, <i>holland</i> and england were the powers, with the former in decline and the latter two on the rise).)

the paint shop is a good idea, and certainly doable. the only problem is that each ship model in the game would need a good few textures to make it worthwhile, so you're looking at quadrupling or quintupling the number of ship textures there are, which would be a hyowge download... not to mention the amount of work it would be to create those textures!
 
<!--`QuoteBegin-iamthejarha`+--><div class='quotetop'>QUOTE(iamthejarha)</div><div class='quotemain'><!--QuoteEBegin-->The <b>rand()</b> function natively returns a random number between 0 and whatever number you assign.  Is there a way to get a random number between two defined numbers, like 8 and 13?[/quote]

Digging back to my old Basic programming days... for that example I`d generate a random number between `0-5` and add 8, resulting in `8-13`

Something like rand(difference) + first number offset
 
I love the reclassification idea - that alone would be TRULY appreciated by me. I've had so many times that I've CURSED the classifications, when looking at remote enemy ships I'm about to trounce. They're just not right.

Love the idea of the light galleon - you are on it when you say that the English were in smaller galleons while the Spanish used the heavy galleons.

<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" /> Which reminds me, someone was doing the Golden Hinde, I think JackSparrowJr? Wonder how that's coming... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/keith.gif" style="vertical-align:middle" emoid=":keith" border="0" alt="keith.gif" />
 
<!--`QuoteBegin-Kieron`+--><div class='quotetop'>QUOTE(Kieron)</div><div class='quotemain'><!--QuoteEBegin-->i'm in agreement that ships should be attributed to certain empires. and about the renaming of 'warships' and 'lineships'. (the only thing i'm not sure i agree with you about is who the 'true powers' are (in 1690, i reckon spain, holland  and england were the powers, with the former in decline and the latter two on the rise).)[/quote]
See, I <i>told</i> you I wasn't a devoted student of maritime history. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" /> Actually, I based that from information I got off one of the numerous websites I've been perusing lately, <a href="http://www.geocities.com/captcutlass/" target="_blank">Brethren of the Coast</a>. This is the description of the `Man-of`-War on the site:
<!--`QuoteBegin-Brethren` of the Coast+--><div class='quotetop'>QUOTE(Brethren of the Coast)</div><div class='quotemain'><!--QuoteEBegin-->These ships were the "`heavy-guns`" of the fleet. They resembled galleons in design, but sported heavy `fire-power` with an average of 65 guns. It was not uncommon to have over 100 guns. They were around 1,000 tons and had 3 masts, which were `square-rigged`, except for a lateen sail on her `aft-mast`. <b>Only the three major `sea-powers` of the time (Spain, England, and France) had an extensive use of these ships.</b> (emphasis mine)[/quote]
Of course, "of the time" is rather vague, so if Spain, England and Holland were the powers of <i>this</i> time, I appreciate the correction. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />
<!--`QuoteBegin-Kieron`+--><div class='quotetop'>QUOTE(Kieron)</div><div class='quotemain'><!--QuoteEBegin-->the paint shop is a good idea, and certainly doable. the only problem is that each ship model in the game would need a good few textures to make it worthwhile, so you're looking at quadrupling or quintupling the number of ship textures there are, which would be a hyowge download... not to mention the amount of work it would be to create those textures![/quote]
Very true, and I've been thinking about that. Batch files are useful for copying and renaming files, right? What if a batch file (or something similar) was written that would copy .gm files from one model directory and insert them into another model directory, then rename them to work with the new model? That way, you'd really only need two "full" copies of each ship's model folder--for the rest, you'd just need the folder and the main GM file (which would be necessary for the `hard-coded` texture info). Not sure how it'd work with an installer, but I'm positive it could be done somehow, and it would save a lot on file size when you start adding in a lot of new ships.

<!--`QuoteBegin-Taurondin`+--><div class='quotetop'>QUOTE(Taurondin)</div><div class='quotemain'><!--QuoteEBegin-->Digging back to my old Basic programming days... for that example I`d generate a random number between `0-5` and add 8, resulting in `8-13`

Something like rand(difference) + first number offset[/quote]
Excellent! I had an idea using that type of randomization that would dynamically alter the speed and turning rate of every ship in each shipyard. The original idea was to do it in <span style='color:red'>Ships_init.c</span>. Here's how I think it could work:

First, you have to determine by how much each ship's stat would fluctuate. For testing, we'll say 3 for speed and 5 for turnrate, then add in a few lines like so:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->void SetViewShipData(int shipType, int shipCost)

{

    ref shref = GetShipByType(shipType);

    // new code -->

    shref.SpeedRate = rand(3) + shref.SpeedRate;

    shref.TurnRate = rand(5) + shref.TurnRate;

    // new code <--

    GameInterface.strings.ShipClass = sti(shref.Class);

    GameInterface.strings.HullPoints = sti(shref.HP);

    GameInterface.strings.Speed = FloatToString(stf(shref.SpeedRate),2);

    GameInterface.strings.Maneuver = FloatToString(stf(shref.TurnRate),2);

    GameInterface.strings.Capacity = sti(shref.Capacity);

    GameInterface.strings.MaxCrew = sti(shref.MaxCrew);

    GameInterface.strings.MinCrew = sti(shref.MinCrew);

    GameInterface.strings.CannonsQuantity = sti(shref.CannonsQuantity);

    GameInterface.strings.MaxCaliber = sti(shref.MaxCaliber);

    GameInterface.strings.ShipCost = MakeMoneyShow(shipCost,MONEY_SIGN,MONEY_DELIVER); // NK

    ...<!--c2--></div><!--ec2-->
Doing it this way would require two other things: first, the SpeedRate and TurnRate set in <span style='color:red'>Ships_init.c</span> would need similar lines added in order to keep your starting ship from having the minimum speed/turn rates for its type. Granted, I've never tested this and have barely worked it out in my own head, so I'm not sure this would even work at all, but it's a start, right?

(Now that I think about it, this might be more difficult than I originally thought, since I didn't factor in the creation of random ships for sea encounters and such. Perhaps the code can be added into those situations as well, or globalized somehow <i>outside</i> of the main init file. Hmm...)

<!--`QuoteBegin-CatalinaThePirate`+--><div class='quotetop'>QUOTE(CatalinaThePirate)</div><div class='quotemain'><!--QuoteEBegin-->I love the reclassification idea - that alone would be TRULY appreciated by me. I've had so many times that I've CURSED the classifications, when looking at remote enemy ships I'm about to trounce. They're just not right.

Love the idea of the light galleon - you are on it when you say that the English were in smaller galleons while the Spanish used the heavy galleons.[/quote]
Thanks! The presence of the pinnace in particular has always bugged me--I grew up on Pirates! Gold, and in every pirates game I've ever played, the pinnace was always the <i>smallest</i> ship, not one of the larger ships! It would also give the other nations a `galleon-type` ship that isn't as large as the 'heavy' Spanish galleon, thus keeping a little more `in-line` with history. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/pirate2.gif" style="vertical-align:middle" emoid=":p:" border="0" alt="pirate2.gif" />
 
<!--`QuoteBegin-iamthejarha`+--><div class='quotetop'>QUOTE(iamthejarha)</div><div class='quotemain'><!--QuoteEBegin-->See, I <i>told</i> you I wasn't a devoted student of maritime history.  ;)  [/quote]

neither am i, really, you could be right <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/happy.gif" style="vertical-align:middle" emoid="^_^" border="0" alt="happy.gif" />
 
<!--`QuoteBegin-iamthejarha`+--><div class='quotetop'>QUOTE(iamthejarha)</div><div class='quotemain'><!--QuoteEBegin-->Very true, and I've been thinking about that.  Batch files are useful for copying and renaming files, right?  What if a batch file (or something similar) was written that would copy .gm files from one model directory and insert them into another model directory, then rename them to work with the new model?  That way, you'd really only need two "full" copies of each ship's model folder--for the rest, you'd just need the folder and the main GM file (which would be necessary for the `hard-coded` texture info).  Not sure how it'd work with an installer, but I'm positive it could be done somehow, and it would save a lot on file size when you start adding in a lot of new ships.[/quote]

yes, batch files (or an installer program) can be used to automate operations like copying and renaming files. the gm files have to be `hex-edited` to use a new texture, though; i suppose a program could be written to automate that. but that's `by-the`-by; the problem lies in the textures, not the models. you wouldn't be able to get a program to automate creating new textures <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/happy.gif" style="vertical-align:middle" emoid="^_^" border="0" alt="happy.gif" />
 
From my scratchy recollections of AP Euro, and my more recent reading (it was <i>1633</i>, an AH, but I assume the facts weren't _that_ wrong) and my memories of the history section of the P!G manual, the Netherlands was just as much a great _naval_ power as Britain or Spain (not that Britain was _that_ much of one to begin with). At least in _that_ era; as the century drew to a close their (and Spain's) power waned and Britain's and France's waxed.

The `Anglo-Dutch` wars and all that; I remember a DBQ on an exam about that. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />

(Gads, I may even still have my essay on them <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" /> )

Re: WS/LS. The reason I called them that was in homage to Sea Dogs, which had the warship and lineship as ships midway between corvettes/frigates and MoW/battleships. A whole separate class actually.

But I agree they're completely ahistorical. I mean, they're _all_ warships after all...

Re: Galliots, as I said earlier I assume it was a Russian->English translation problem (see also Galeon {sic}).

Re: Pinnace. IIRC someone said the ingame pinnace was, in fact, a spitting image of the <i>Golden Hind</i>. So calling her a fast (or light, or Northern European) galleon would be a good move IMO.

If anything, I'd call the _tartana_ the pinnace...but maybe that's a _bit_ small.
Maybe a `lateen-rigged` lugger or barque/yacht?

Regarding changing files.
A good patching utility should be able to handle that; like the things, um, people use to modify certain programs' executables.

Heh, I had to use one to set up a EAW aircraft edit to make models more visible.

So basically you write the batch file to:
Copy model files over
Invoke patcher on the new copies of the GMs

I believe the A&M mod does this.

And, in perspective, new textures aren't that bad. I mean, the _totality_ of ship textures that we have now (including all the new ship textures) is, solid rar'd, only ~10MB. If the whole shebang is broken up into 10MB chunks for the dialup people, it's not so bad. (Frex, the A&M mod is ~60mb...)


Now, on to the code.

First, I hate to give you bad news, but the code you pasted in will only change what's _displayed_, not what the actual stats are. Because those are copied directly from the shipstypes[] entry in AIShip's update function each second.

I can't recall whether this has been discussed here before, but I too have been thinking about this issue. But ironically going the other way; i.e., _removing_ `nation-specificity` from ships_init, so it's generated at runtime (so there are fewer entries to make in s_i).

This is also because the `nation-specific` stats reflect IMO as much the _crew_ of the nation as the shipbuilding; i.e. though the RN had poorer ships it had much finer crews.
---


So, here are my ideas in no particular order:
To enable runtime `stat-changing`:
In AIShip, when grabbing the stats, check to see if local stats are defined. I.e.,
in void Ship_UpdateParameters()
We have rCharacter, which is the captain of the ship which we're updating (ships are never handled directly, they're handled as parts of the character whose ship it is).
We have ref rShip which is the ship entry in ShipsTypes[] with the ID given by rCharacter.Ship.Type, and arCharShip, which is just an aref to rCharacter.Ship

Right now we get max speed just from rShip
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->float    fMaxSpeedZ = stf(rShip.SpeedRate);<!--c2--></div><!--ec2-->

But now we could do:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->float    fMaxSpeedZ = stf(rShip.SpeedRate);

if(CheckAttribute(arCharShip,"SpeedRate")) fMaxSpeedZ = stf(arCharShip.SpeedRate);<!--c2--></div><!--ec2-->
after at some point setting char.ship.SpeedRate to some float (presumably _based_ on ShipsTypes[ship].SpeedRate).

And the same for other properties.

These would be generated on assign ship to fantom if it's a fantom (i.e. SetUpShip, which is also used increasingly for quests we've made), and in Character inits for quest characters' ships.
---

Now, in terms of separating _textures_ (or more rightly, the model itself) from ship type.

The function we need concern ourself with is void Ship_Add2Sea(...) in AIShip.c, and specifically the last line:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->SendMessage(&AISea, "liaa", AI_MESSAGE_ADD_SHIP, &Characters[iCharacterIndex], &Characters[iCharacterIndex], &ShipsTypes[iShipType]);<!--c2--></div><!--ec2-->

What we need then to do I think (and I don't know if this will work since it's being passed with a &) is create a _temporary_ ship object with the stats we want and pass _that_, and then delete it, rather than passing something from shipstypes.

Let me back up.

First, let's look at a ship definition, Frigate1_0
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->makeref(refShip,ShipsTypes[n]);

    n++;

    refShip.Name      = "Frigate1";

    refShip.Nation      = ENGLAND;

    refShip.id    = refShip.Name + "_" + refShip.Nation;<!--c2--></div><!--ec2-->

Let's add alternate model folders to it (and note I'm keeping *.name, though redundant, just to be safe).
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->makeref(refShip,ShipsTypes[n]);

    n++;

    refShip.Name      = "Frigate1";

    refShip.Model0      = "Frigate1";

    refShip.Model1      = "Frigate2";

    refShip.Model2      = "Frigate1_Nelson";

    refShip.Model3      = "FrigateSomethingElse";

    refShip.ModelsQty  = 4;

    refShip.Nation      = ENGLAND;

    refShip.id    = refShip.Name + "_" + refShip.Nation;<!--c2--></div><!--ec2-->

Now, above the SendMessage we add this:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->object tempship;

CopyAttributes(&tempship, &ShipsTypes[iShipType]);

string model = "Model" + rand(sti(tempship.ModelsQty));

tempship.name = tempship.(model);

SendMessage(&AISea, "liaa", AI_MESSAGE_ADD_SHIP, &Characters[iCharacterIndex], &Characters[iCharacterIndex], &tempship);<!--c2--></div><!--ec2-->


When I get a sec I'll test this.
 
Oh, here's another idea:
Have POTC autogenerate the stats for `nation-specific` ships after init'ing the base ships in ships_init.
Unless the ship has extra attributes to tell POTC to skip this (i.e. the fleut).

That way if you change the base speed of something, all ships tied to it update.
And no need for 6x as many entries...
 
<!--`QuoteBegin-NathanKell`+--><div class='quotetop'>QUOTE(NathanKell)</div><div class='quotemain'><!--QuoteEBegin-->And no need for 6x as many entries...[/quote] <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" /> YES!!! I hate overly verbose code... Drags everything down. VERY worthwhile project, methinks! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" />
 
<!--`QuoteBegin-NathanKell`+--><div class='quotetop'>QUOTE(NathanKell)</div><div class='quotemain'><!--QuoteEBegin-->Oh, here's another idea:
Have POTC autogenerate the stats for `nation-specific` ships after init'ing the base ships in ships_init.
Unless the ship has extra attributes to tell POTC to skip this (i.e. the fleut).

That way if you change the base speed of something, all ships tied to it update.
And no need for 6x as many entries...[/quote]

That sounds like a great idea, although I wouldn't quite know where to start. Something similar to the code you've set up for changing best/closest `point-of`-sail based on rigtype?

RE: the random speed fluctuation idea, I've been giving it a lot of thought, and I'm not sure it'd be worth the trouble. I mean, of course different ships were faster or slower, even ships of the same type, but was there really <i>that</i> much difference between them? If the random factor was only a knot or less, it wouldn't really be worth it, and the `5-knot` difference that I used in my example is too unrealistic. So, that idea's benched for the moment while I work on this other stuff.

Nathan, if you can give me somewhere to start on this idea (ship stat autogeneration), I'd be glad to start hashing out the code straightaway.
 
well, just an idea - you would need to find every instance in the code where the <b>ShipsTypes[...]</b> array is accessed, and replace with a function of your own devising, like maybe GetShipTypeData(ref char, string ShipType, string DataType). the function that you write would: look up the ship entry in the ShipsTypes array; modify the data according to the nation; modify the data according to any random irregularities the player's specific ship has (these could maybe be decided on buying the ship, or perhaps if for example a mast falls, the ship is never quite the same again - they could be saved as properties in pchar.ship.); and return it. that way there would just be one basic entry in ships_init for all five nations, plus it would allow for little individual variations.

and we can keep the existing system of naming ships (shiptypename + "_" + nation), and 'decode' that using the strcut function).

hmmm... i will have to rewrite ship berthing if you do all that <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_eek.gif" style="vertical-align:middle" emoid=":shock:" border="0" alt="icon_eek.gif" />
 
Am running out the door. Post to follow when I get back. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
EDIT: Um, long post. It'll get here eventually, I have to write the code first. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/diomed.gif" style="vertical-align:middle" emoid=":dio" border="0" alt="diomed.gif" />
 
Okay, as I said in another post, I'm having the devil of a time with my new apartment and school, and don't have ready access to the internet (long story short, my place is being condmened by the city as uninhabitable). Tomorrow or the next day, however, I will be able to sit down and write out detailed and historically accurate uses for ALL the ships in the game. A lot of people have remarked on their passing knowledge of Maritime history. I don't mean to gloat, or boast, but this is something that to me is not passing. So much so, that my senior honors thesis is on the Sociological Evolution of Piracy in Great Britain.... sorta... long story, can't explain here. Regardless, once I get my housing situation locked down I will put together a catolgue of information on all of the `in-game` ships. What you do with that will be up to you, but at least you'll have the information at your disposal.

Quick response:

The pinnace is not the Golden Hind... no way. Also, 1690 would have a very strong but declining Spanish Empire. The empire wasn't growing so many people say it was dead... not true. It was still the biggest and was holding fast. The Portuguese and the Dutch were tied for second place... with the Dutch in a much better position than the Portuguese (they would soon be over taken). Britian and France were growing in strength globally, but the Caribbean still wasn't their area. Regarding wars... You have a huge major war between the Dutch and the French with the British allied with Holland (afterall, their king was Dutch). The Spanish were present, and were more closely tied with France than Holland through Catholicism, but even then, Spain and France are mortal and historical enemies. You can hardly picture a more volatile period or location than the Caribbean in 1690.

Regarding the ships, the ingame frigate IS a heavy frigate. The Corvette, is not a corvette but a regular frigate. Corvette is the French term for a light frigate... so definetly less than 30 guns.,, more commonly around 18 or 20.

The Warship and Lineship are what would have been known, in 1690, as `Men-of`-war.

As I said, I will post a huge explanation of it all. Just give me some time to get my apartment and legal issues aligned, and then I can sit down and write it out properly.

Best,

JMV

PS, this is going to be a great mod. The game needs this.
 
<b>jmv,</b> I think the assertion came from the fact that the Golden Hind <i>does</i> look more like the pinnace than any other ship in the game, including the galleon. Compare a shot of the `in-game` Pinnace1 against a drawing of the Golden Hind:

<img src="http://goheels.sytes.net/potc/pinnace1.jpg" border="0" class="linked-image" />
<img src="http://goheels.sytes.net/potc/hind.jpg" border="0" class="linked-image" />

RE: Ship classifications (war/lineships, frigates), the existence of the huge battleships and `men-of`-war already in the game tends to throw off truly historical perspective, unless we gave them names like "`3rd-Rate` `Man-of`-War", "`2nd-Rate`...", etc.

The history of the nations in the Caribbean sounds great. I really had no idea the Portugese and Dutch had such strong presences in the area. By 1690, I thought the English and French had much stronger presences than earlier in history. A question, though: were the Dutch and Portugese still primarily trading nations then, or did they have a strong naval presence as well?

The one thing about my assertion that England, France, and Spain should be the only nations allowed to have MOWs/Battleships is that France <i>has</i> to be allowed a battleship (for the capture of Oxbay), and England <i>has</i> to be allowed a MOW (for the Silehard fight near the end). Allowing only certain nations to have such huge ships was a balancing idea--all five nations didn't have equal navies, so why should they all have the same ships, you know?

I'm extremely interested to hear more from you about this, and I'm terribly sorry to hear about your current situation. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/sad.gif" style="vertical-align:middle" emoid=":(" border="0" alt="sad.gif" /> Hope you get everything back in order soon, mate!
 
I can't see the pictures you have, but looking at the blueprints I have the Pinnace doesn't look close enough to actually be the Golden Hind. You are certainly correct in saying that the Pinnace is the closest to the Golden Hind. The ingame galleon is definitely a Spanish Galleon.

I would say that the Pinnace looks more like a French or Dutch `man-o`-war from around 1630. I'll write much more later.

Thanks for your words of support about the apartment. I spoke with a lawyer this morning, I believe it will work out. I'll get all my money back. However, if I can't find a new location (unlikely this late in the game), I'll be back in University housing I'm afraid.
 
I've been working on making new ships based on the existing models, and while doing some research, I ran across something interesting. According to <a href="http://infa.abo.fi/~fredrik/sships/" target="_blank">http://infa.abo.fi/~fredrik/sships/</a>, the POTC version of a sloop is actually a <i>cutter</i>, due to the multiple jibs on the bowsprit. A proper sloop should only have <i>one</i> jib. Is this entirely accurate?

Based on that information, I replaced the sloop bowsprit with a galeoth bowsprit, and while it's a bit large, it's actually a pretty good fit--much better than the lugger jib, at least. I was thinking about turning the `in-game` sloop into a cutter, then recreating the sloop with the single jib. Because the sloop is the only `one-mast` ship in the game (other than the tartane), replacing the hull becomes a problem, as jmv already discovered with his `lugger-based` cutter.
 
<!--`QuoteBegin-Rico`+--><div class='quotetop'>QUOTE(Rico)</div><div class='quotemain'><!--QuoteEBegin-->Well, I think it's a very good idea changing the classes of the ships, but what will we do with the pictures of them? Aren't the class numbers "in the picture"? Or are the numbers separate images? <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />[/quote]

easy to edit that <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/happy.gif" style="vertical-align:middle" emoid="^_^" border="0" alt="happy.gif" />


i hope everything goes well with your flat vs. the beaurocracy, jmv! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_eek.gif" style="vertical-align:middle" emoid=":shock:" border="0" alt="icon_eek.gif" /> is your flat uninhabitable, or are they just being beaurocratic?
 
Bah, thought I already posted this. It responds to stuff back on the first page.

Oh, I don't mean to go _that_ far, just generate the other nation types automatically at the _end_ of ships_init from a base so they _are_ in shipstypes[]. Otherwise, yeah, that'd be too much overhead.

Though, heh, I already rewrote GetShipByType _once_, so twice won't be so bad. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_eek.gif" style="vertical-align:middle" emoid=":shock:" border="0" alt="icon_eek.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" /> {I _think_ I know how it works now, more or less).

What I mean whenever say speedrate is checked, it's overwritten if there's a local property.

Wait a tic--this'd make things _way_ simpler...
Just do _full_ copy of attributes from ShipsTypes[shipidx] to char.ship.
Then no need to access ShipsTypes at _all_.
Which, while it'll take more memory because there'd be x duplicates of ships floating around in char properties, should be faster because there'd be no lookup into shipstypes needed.
But I haven't really thought that through, just popped into my head.

What I meant _before_ was check for local (i.e. char.ship.* instead of shipstypes[].*) speed, turn, etc. properties, whenever those properties are checked. Just a little extra code after a grep for "speedrate" and "turnrate" and...
 
Back
Top