[Religion and Revolution]: Pirates

raystuttgart

Civ4Col Modder
Joined
Jan 24, 2011
Messages
9,637
Location
Stuttgart, Germany
Since orlanth was already trying to create an event using Pirates, I was thinking a little bit about this. :)

Originally we were thinking of creating a concept similar to our ideas for Wild Animals.
(Using a "Spawning System".)

I suggest a technically easier to implement variant.
(By using existing system of Nations.)

Pirates as a Nation

A) Civilization with 2 possible Leaders and a Parent
B) Not Playable (too many Events, DLL-Diplo-Events, Texts, ... would need to be adjusted)
C) In every game by default, but deactivatable by a Game Option
D) Cannot be extinct (will respawn when last unit destroyed)
E) Will found cities but can produce only a few buildings and yields
F) Only "Bukaneer" and "Petty Criminals" as Colonists (no Specialists)
G) Bukaneer can take Military Professions and also work as Colonist in a few allowed professions
H) Will have a "European Harbor": Port Royal
I) Can build Cannons and 3 Ships (basically 3 sizes of Pirate Ships)
I) In Port Royal they can buy the units already mentioned
K) Ships will get Privateer UnitAI and be able to capture goods and other ships
L) Very aggressive AI (thus also hard to make and keep peace)
M) A few DLL-Diplo-Events
N) Will always burn down captured cities (and cannot capture them) <-- For technical reasons
O) Will always start with a Pirate Ship and one Bukaneer to found a city
P) Function getPiratePlayer() (CvGlobals) will always return that Player
Q) Also a Function isPirate() (CvPlayer) to easier identify

----------

Summary:

Basically Pirates will be like a stripped down "European Nation" that can do little more than attack the European Nations (or Natives).
(In their cities, they will be able to produce a few goods but nothing exiting.)

The idea is, that they will found a city and start building Pirate Ships (due to little other options).

A small DLL-Event could also create a Pirate Ship in their cities every x rounds.
(Adjustable in XML.)

They would be like a plague that you cannot completely get rid of.

Reasons for this approach:
  • It is technically realtively easy to implement and does not need a new "Spawning System".
  • Leaderheads would already exist.
  • Having them as a nation does allow some interesting DLL-Diplomay-Events

Reasons against this approach:
  • Maybe some people would not like to have them as a Nation for atmospherical reasons. (But they could deactivate them by the Game Option.)
  • Some graphics (CitySet, UnitArtStyles, ...) might be needed.
  • Maybe they will not 100% work as wanted ...
  • Historical data would need to be collected (Cities, Generals, Bios, ...)

@team:
Feedback ? :)
 
I've no objections to pirates as long as they are not a playable nation and can never found more than a handful of outposts, that cannot grow beyond a certain population size.
 
Since orlanth was already trying to create an event using Pirates, I was thinking a little bit about this.

Originally we were thinking of creating a concept similar to our ideas for Wild Animals.
(Using a "Spawning System".)

I suggest a technically easier to implement variant.
(By using existing system of Nations.)

Yes, those sound like good concepts. :think: I was actually expecting something even simpler/easier, where they could be a "dummy" civ like CIVILIZATION_BARBARIAN who could get ships occasionally by Events and have no other content. But letting them have a few settlements could be interesting too - you could invade a nearby Pirate settlement to stop them producing more ships near your trade lanes :cool:.

One other thing you could try is assign all Pirate-specific units to a new unitcombat type UNITCOMBAT_PIRATE. Then it would be quite easy to allow certain FFs, Promotions or Techs give a bonus in combat vs Pirates, or a bonus vs Animals.
 
I was actually expecting something even simpler/easier, where they could be a "dummy" civ like CIVILIZATION_BARBARIAN ...

Actually, what I am suggesting is pretty much the easiest implementation (from DLL perspecitve) I can think of to create a good and performant feature for Pirates.

Reason:
It is pretty much using the existing system of Civ/Player.

... who could get ships occasionally by Events and have no other content.

Such an event would also exist.
(It would from time to time generate additional Pirate Ships in the Pirate Cities.)

But letting them have a few settlements could be interesting too - you could invade a nearby Pirate settlement to stop them producing more ships near your trade lanes :cool:.

That is part of the idea. :)
If you want to stop them from attacking your trade routes, you will need to search and destroy the outost near to your colonies.

One other thing you could try is assign all Pirate-specific units to a new unitcombat type UNITCOMBAT_PIRATE. Then it would be quite easy to allow certain FFs, Promotions or Techs give a bonus in combat vs Pirates, or a bonus vs Animals.

We will see. :dunno:
Maybe we won't need a new UnitCombatType.
We can probably do most things with UnitClassTypes.
 
Pirates as a Nation
I completely don't see the point in that.

H) Will have a "European Harbor": Port Royal
Where is the point in that if the human player won't be able to ever enter that port?

L) Very aggressive AI (thus also hard to make and keep peace)
Under the assumption that peace will be possible (even, if very difficult to maintain) you will have to create a possibility to identify "friendly" and "hostile" (=Privateers) pirates.

Furthermore, as the "Pirate Nation" per definition is hostile to all nations it will be fought by all nations, too. Which in turn either means that they won't have a chance, or that they have to become REALLY strong.
The idea is, that they will found a city and start building Pirate Ships (due to little other options).

A small DLL-Event could also create a Pirate Ship in their cities every x rounds.
(Adjustable in XML.)

They would be like a plague that you cannot completely get rid of.
As far as I see it you could reach the same gameplay options with creating some "pirate ships" per event every now and then.
Reasons for this approach:
  • It is technically realtively easy to implement and does not need a new "Spawning System".
  • Leaderheads would already exist.
  • Having them as a nation does allow some interesting DLL-Diplomay-Events
The only interesting gameplay option seems to be the diplomacy. Which can be replaced by events, too. Much less hassle.
Reasons against this approach:
  • Maybe some people would not like to have them as a Nation for atmospherical reasons. (But they could deactivate them by the Game Option.)
  • Some graphics (CitySet, UnitArtStyles, ...) might be needed.
    [*]Maybe they will not 100% work as wanted ...
  • Historical data would need to be collected (Cities, Generals, Bios, ...)
The most important part has been highlighted by me.

In addition, you will need all the other things like graphics, styles and whatnotever.
But it will cost you development time and later in the game it will cost you computing power.
Creating some "pirate events" seems to be a much quicker, less costly and less error-prone option.

As stated above, the benefit seems to be rather low in comparison to the gameplay options you will gain.
 
I completely don't see the point in that.

Don't worry.
We will create a good feature. :thumbsup:

I really do believe that the concept I have described is generally the best way to implement Pirates.
(Most of all because of technical reasons.)

1. Implementation efforts and risks are relatively low, because we will use existing systems and won't need to create a "New Spawning System" and new UnitAIs.

We would need Civ and Player anyways. It is just the question how we would use them.
Staying close to the way the game usually handles Civs/Players is the best we can do from a technical perspective.
(When knowing the DLL, you will understand what I am talking about.)

2. It does offer a lot of potential for interesting DLL-Diplomacy-Events.

3. It also does fit together with other concepts like "Multiple Europe Harbours".

4. It does allow the player to do something against the threat of Pirates by destroying their cities.

Edit:

But let us see, what the rest of the team thinks. :dunno:
 
Has someone considered how the barbarian system works in CIV?

Ray, I don't really think your approach will make the player feel they are pirates... while your system is obviously the one to follow, there are still some things to add there. We have to answer these questions:

1) Should pirates appear during the entire game?
2) How should pirate cities/unit appear?
3) Best method: several pirate cities spread around the map with a small amount of units or just a few cities with more units?

At least, reading your words you don't make those point clear. Probably you already considered them if you plan to do exactly this:
They would be like a plague that you cannot completely get rid of.

Note your system -at this moment- considers the pirate nation with a semi-fixed power, once you defeat pirates they become really weak instead of make the player feel that you can not defeat pirates but minimize their presence them in an area.

That was the concept in CIV; the more you explores and the more land you maintain under your control, the smaller barbarian appearance was. You could not make them disappear, but only minimize their presence. There are some minor differences, but in COL that just translate into pirate units also spawning in sea and other minor events.
 
I had another idea for pirate events.. if it's possible to make a python eventtrigger check your score relative to other players, could make an Event where some more pirates are attracted by your wealth & can start to harass you when you're getting too far ahead of everyone else - kind of an automatic balancing to prevent one player from getting so far ahead or behind that the game loses interest :king:
 
Orlanth said:
I had another idea for pirate events.. if it's possible to make a python eventtrigger check your score relative to other players, could make an Event where some more pirates are attracted by your wealth & can start to harass you when you're getting too far ahead of everyone else - kind of an automatic balancing to prevent one player from getting so far ahead or behind that the game loses interest
That sounds very much like punishing the player for good and successful playing.
Not to mention that experience tells us how easily players can outmanoeuvre such mechanics.

A remark to the idea of "pirate nation": The bigger the map, the more "pirate cities" will be needed and will have to be evenly spread across the map. This raises the question of how they will deal with the natives?
If the "pirate cities" will not be spread evenly across the map, this will cause some problems with your starting location. Typically, the equatorial areas are less desirable since you have good chances to start in an area covered with jungles. This will slow down your progress (less food, massive chopping needed) and in general, puts you in danger to be surrounded by other European nations. Additionally, now you have bigger chances to be near the pirates.
On the other hand, since per definition pirates will be fought by all nations this will give you some protection against them.
If you would start somewhere in the north or in the south, you have good chances to meet less Europeans and therefore to have the chance to expand better. Being near the pirates now can cause problems since they will automatically concentrate just on you.
Finding the right balance for these different options seems to be quite a task.

And I've even not mentioned the fact that pirates may cause a real problem for the AI when you are playing on maps with many island.
 
Ray, I don't really think your approach will make the player feel they are pirates ...

My main focus considering this concept was have it realizable it with relatively low efforts and risks of bugs. :)

... while your system is obviously the one to follow, there are still some things to add there.

But I agree, it is not perfect. :thumbsup:

1) Should pirates appear during the entire game?

What do you mean exactly ?
Should they not appear at the beginning or let them be extinct at the end of the game ?

2) How should pirate cities/unit appear?

That is explained in my concept.
It would be the usual "Spawning of Nations" or "Respawning when Extinct".

3) Best method: several pirate cities spread around the map with a small amount of units or just a few cities with more units?

That is a concept with much more effort than what I considered.
But yes, it is probably better. :thumbsup:

Note your system -at this moment- considers the pirate nation with a semi-fixed power, once you defeat pirates they become really weak instead of make the player feel that you can not defeat pirates but minimize their presence them in an area.

That was the concept in CIV; the more you explores and the more land you maintain under your control, the smaller barbarian appearance was. You could not make them disappear, but only minimize their presence. There are some minor differences, but in COL that just translate into pirate units also spawning in sea and other minor events.

Well as I said, I wanted to make an implementation that was relatively easy to implement but definitely not perfect.

But I guess you are right. :thumbsup:
The concept / feature should be more complex.
(So I cannot implement it currently due to lack of time.)

I will again focus on more important things like finishing the Founding Fathers and Improving Performance. :thumbsup:
(And leave this feature to others with more time to implement it in a better way.)
 
I would rather have something that's straightforward and possible to implement relatively quickly without errors, otherwise the reality is that we will never get any of these features actually accomplished at all without more modders getting involved. The danger of adding more complications is that it makes it more likely that nothing like this will actually get completed and playable.. :(

If its possible to get the playerid for the existing CIVILIZATION_BARBARIAN using python, maybe I can just implement some events that can at least create hostile Pirate units controlled by a neutral player.
 
If its possible to get the playerid for the existing CIVILIZATION_BARBARIAN using python, maybe I can just implement some events that can at least create hostile Pirate units controlled by a neutral player.

As I said, this is not possible currently.

There is no Player for that.
(The Civilization alone won't help.)
 
In regards to that, the JAnimals mod has code for adding a barbarian player.

The problem is not that it could not be done or we would not know how to do it. :)

Once we implement Pirates (and Wild Animals) this problem will be solved. :thumbsup:
(Currently however these features simply do not exist.)
 
I really like this idea. :goodjob:
We could call their port "Port Royal" of course, but that would mean we could not visit Port Royal... What a pity. But that isn't important, since it is only a name. And we could change this. ;)

I'll vote for whatever is the easiest. :king:
I guess the easiest way to program this is to minimize hardcore DLL unit generations. So, and this is only a question, what would happen if we simply considered pirates as a player?
I mean, they have starting units (a pirate ship, a colonist and a soldier) like Europeans. They can found cities (like Europeans) but they produce units only in their cities (like natives and unlike Europeans). We wouldn't need any Europe screen or whatsoever... Wouldn't that be easier? Or, would we have AI issues? Again, I'm just asking!

Another question... This may be stupid, but let's see. If we're going to generate wild animals, shouldn't we generate pirates at the same time? Shouldn't the barbarian player "control" animals and pirates? Again, I'm just asking...
 
... but that would mean we could not visit Port Royal...

No it would not necessarily mean that.
One of my ideas was that under certain conditions you could acquire the right to visit other "European Harbours".
(e.g. acquiring that right by Diplomacy / Trade)

I guess the easiest way to program this is to minimize hardcore DLL unit generations.

It is about several aspects like efforts, performance, game play, ...

So, and this is only a question, what would happen if we simply considered pirates as a player?

We would need a Player anyways.
The important point is how we use it.

We wouldn't need any Europe screen or whatsoever... Wouldn't that be easier? Or, would we have AI issues? Again, I'm just asking!

If we implement them similar to a European Nation it is easier to give them a "Europe Harbour".
But since they are not playable, nobody would see this for now.

Shouldn't the barbarian player "control" animals and pirates? Again, I'm just asking...

No, they should have separated Players.

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

We have 3 choices basically:

1. Implementation of Pirates as "stripped down European Player".
2. Generating Pirates similar to Wild Animals (but with a separate Player)
3. A Mixture of 1. and 2.

My Opinion:

The best solution considering gameplay would probably be 3..
This would simply give the most possibilities and a challenging feature.

However, 3. will cost us more efforts and will have a stronger effect on performance than 1. .

We could do it like this:

First we implement 1. and see how it behaves / feels.
Then later on we add 2. to it (so we will have 3.), if we feel it is needed.
 
Pardon if this is for modders only.
I really like the idea of a pirate civ. I imaging it could be a great feature. I would like to revive this threat and suggest some extra ideas/ changes to the above:

i) I would suggest that the pirates spawn with a large city (like natives not Europeans) with a fort/ fortress, some garrisons and appropriate soldiers and around 6 large ships - some slow (move 3 or 4) with str. 7. Large maps will have more than one pirate civ.
ii) If they have a tendency to spawn on (North/ south) capes, that would balance the game so that these areas aren't more attractive than equator.
iii) They can make amphibious raids like natives on coastal cities and plunder gold. That is the largest ships carry these raiders.
I don&#8217;t believe it would be hard to mod the AI Europeans not to attack them too aggressively.
iv) They will be at always war unless you pay tribute (could not be depending on your treasury) that can be worth paying since they are semi strong. With tribute you get a limited peace where you can trade in their port and buy from an appropriate selection of privateers, smuggling ships, guns and their loot with a scrolling menu like in &#8220;the European dock&#8221;.
v) Most European leaders will often try to bribe them. You can bribe them to break a peace with another European power.
In my opinion pirates should threat natives as natives treat each other (pretty much ignore)
Pirate civ. Can also buy ships and soldiers from their own special &#8220;Europe menu&#8221; with the gold it earns from black trade, raids and destroying ships. (Pirates demand rum, beer, gold, silver, luxury goods at high prices and nothing else so they are worth trading with even though it strengthens the pirates.
vi) You can no longer buy privateers in Europe. Maybe you cannot produce them in your docks either.

Possible buildings: All levels of docks, Tavern, saloon, defensive structures.

With these features cooperating with the pirates could be a viable strategy so it would add another dimension to the game.

Hard to implement suggestions:
Runaways (criminals, slaves, servants) have a tendency to flee to the pirates becoming buccaneers there. (The runaway disappear after x turns and the pirates get a free unit),
They can spawn- buy a new city if they obtain say, 3000 gold.

I would like to help testing/ make research for the pirate civ. if implemented.
 
Top Bottom