[Religion and Revolution]: Winds and Storms

As Ray said its not possible to have 2 Features on a tile, so maybe you could limit Winds and Storm only to non-Feature tiles.

It would be possible if we would change massive amounts of sources.
But I explicitly don't want to do that. :nope:
Risks and efforts are much too high considering benefits.

I think it would be cool to eventually have some Storms possible on clear land tiles, since I think one of Robert's most interesting planned features is the ability to have a local temporary bonus or malus to tile yields.

Please, let us do "Winds and Storms" on water only.
Anything else will only bring us problems and efforts for very little benefits.
 
Hi guys,

please let us go back to a relatively simple concept like that.

Spoiler :

I have checked the following:

<iAppearance>0</iAppearance>
<iDisappearance>16</iDisappearance>
<iGrowth>20</iGrowth>

Spoiler :

All are related to a random with 10.000 (Ten-Thousand) as a base, so values should be considerably high to see an effect.

However, they are not designed to be used for something as dynamic as "Storms and Winds". :(

iAppearance is only used once at very first map generation.

iDisappearance and iGrowth however could be used as they are.


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

So ok, I suggest the following implementation:

1. We use a iAppearance for first creation of these features.

2. We also use iDisappearance and iGrowth.

We should stick to this formula:
* iAppearance + iGrowth = iDisappearance

3. Every round we randomly place again using iAppearance <--- Needs to be programmed
(hooking into void CvGame::doTurn() )

To have as little hardcoded as possible I would like to bring in a new XML-tag into Civ4Features.xml:

bGeneratedEveryRound

4. We check Pathfinding (Automization / AI) and adjust if necessary <--- Would need to be programmed
(Eventually not necessary, because Automization / AI might already handle this correct according to <iMovement>)

5. Damage of these features will be applied if passing through (not at end of turn.) <--- Needs to be programmed

6. Defensive Bonus / Malus as Robert suggests ;)

7. AI should be taught to properly repair its ships if damaged if it doesn't do already. <--- Would need to be programmed

8. "Storm and Wind" features only on Water. (Also no effects on production.)

9. Some promotions related to this feature.

Effected would be:

* Movement
* Damage
* Defense



So we would leave out:
Weather effects on land including Bonus / Malus on production.

Reasons are of technical nature.

@Robert:

Simply implement all parts you want to do. :thumsup:
(XML, Graphics, DLL)

Let me know which parts of DLL I should take care of (if you need my help at all).
 
Here, I've made a preliminary nif for a Hurricane if you'd like to use it :D

I'm still not totally pleased with the look of the eye part, maybe you could try merging it with some of your other storm graphics to see what you get?
 

Attachments

  • hurricane.zip
    134 KB · Views: 149
@Robert:

I have checked the weather effects you included.

Are these taken from the graphics KJ had created here ? :confused:

Another small thing:

Could the graphics for these, please be added here
...\Religion_and_Revolution\Assets\Art\terrain\features

instead of directly in
...\Religion_and_Revolution\Assets\Art


Otherwise I think it is fine to go with these 3. :thumbsup:
(Actually I really think these effects are enough.)

  • Favourable Wind
  • Unfavourable Wind
  • Storm
 
Hi...

I was going to post a message... I'm a little late as you can see. ;)
I was going to say this:

I've updated the SVN server. I've started the xml part.
I still need to add KJ graphics and yes I will change the folders. You're right...
I promise I'm doing as fast as I can... I'm still a little busy !
 
Hi everyone,

I've updated the SVN server... No wind and storm are generated dynamically. I've also added three promotions.
So all "six" parts seem to be done ! :D
So ok, I suggest the following implementation:

1. We use a iAppearance for first creation of these features.

2. We also use iDisappearance and iGrowth.

We should stick to this formula:
* iAppearance + iGrowth = iDisappearance

3. Every round we randomly place again using iAppearance <--- Needs to be programmed
(hooking into void CvGame::doTurn() )

To have as little hardcoded as possible I would like to bring in a new XML-tag into Civ4Features.xml:

bGeneratedEveryRound

4. We adjust Pathfinding (Automization / AI) <--- Needs to be programmed
(Eventually not necessary, because Automization / AI might already handle this correct according to <iMovement>)

5. Damage of these features will be applied if passing through (not only at end of turn.) <--- Needs to be programmed

6. Defensive Bonus / Malus as Robert suggests ;)
What's left to be done:
1. Xml balancing. For now storms may cause many damage and some might find there are too many or too few storm/wind plots...
2. Check AI behaviour. I've prevented AI to heal on storm plots, of course. But who knows, I could have forgot something...
3. What about promotions? For now we only get bonuses on favorable winds with the Sea Explorer promotion. But how do we get such a promotion. At first I thought that unlocking them with inventions was the best idea... But for now we don't have such inventions.
Should I grant every ship this promotion, or only trade ships (who aren't supposed to get easily experience points...) or none at all?
 
3. What about promotions? For now we only get bonuses on favorable winds with the Sea Explorer promotion. But how do we get such a promotion. At first I thought that unlocking them with inventions was the best idea... But for now we don't have such inventions.
Should I grant every ship this promotion, or only trade ships (who aren't supposed to get easily experience points...) or none at all?

Let us give that promotion with a Founding Father. :thumbsup:
(I don't think it is essential for balancing that all Players can get it during a single game.)

We will add Founding Fathers anyways in Release 1.
(That is necessary to have proper balancing for the new Productionlines.
Otherwise the old productionlines would be stronger.)
 
To go with the Wind and Storm features developed by Robert, I've uploaded some stormy sound effects recorded by ERH and RHumphries from freesound.org that I remixed in Audacity, along with soundscapes XML files so they can play when a Wind / Storm is nearby in game. Batten down the hatches mateys! :p
 
@team:

I just found a big problem in balancing of Wind and Storms.

It is simply the way these tags are interpeted.
(I will focus on iAppearance and iDisappearance and ignore iGrowth for simpler explanation.)

iAppearance

This tag is related to all Plots, where the feature is valid.
In this case all Ocean plots.

iDisappearance

This tag is related to all Features of that Type already placed.
In this case all our Wind and Storm features already on map.

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

So let us imagine the following Numbers:
(And take a look at only one of our 3 Wind and Storm Features.)

Ocean Plots: 1000
iAppearance: 10 %
iDisappearance: 10 %

Round 1:

0 Storms from previous round
0 Storms deleted
100 Storms placed

------
Total: 100 Storms

Round 2:

100 Storms from previous round
10 Storms deleted
90 new Storms placed (because less free plots available)

------
Total: 180 Storms

Round 3:

180 Storms from previous round
18 Storms deleted
82 Storms placed (because less free plots available)

------
Total: 254 Storms

....

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

So if we generate new Storms every round and only delete a few of them, we will slowly but surely reach a max amount of Storms of:

Max_Storms = Ocean_Plots * (100 - iDisappearance)
(This is an approximation.)

In this example, we would have 90% of all ocean plots full of Storm in the end.

And we additionally also have iGrowth !

And I was talkint only about 1 Wind and Storm feature.
But we have 3 of them !!

So I guess you get the problem here. :)

Also see Screenshots.
(By the way, the amount of Storms is generated is much smaller than in the version currently in SVN.
Still the result was first shocking until I checked the source code.)

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

But this Problem can be solved:

We really delete all Storms every round (before generating new ones).
(Just as I wanted to do in the beginning.)

Thus we will really have a constant amount of these features throughout the game.

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

Edit:

New balancing uploaded to SVN.
Problem solved.
 

Attachments

  • Civ4ScreenShot0000.JPG
    Civ4ScreenShot0000.JPG
    106.1 KB · Views: 144
  • Civ4ScreenShot0001.JPG
    Civ4ScreenShot0001.JPG
    104.5 KB · Views: 141
  • Civ4ScreenShot0002.JPG
    Civ4ScreenShot0002.JPG
    106.1 KB · Views: 199
Please make an option to disable or remove entirely the Wind and Storms addition. As it is, there is far too much lag inbetween turns ( vanilla is barely 2 seconds, this nearly 10. )
 
Please make an option to disable or remove entirely the Wind and Storms addition. As it is, there is far too much lag inbetween turns ( vanilla is barely 2 seconds, this nearly 10. )

It is not only Winds and Storms that is causing longer turns.
(We have several pretty complex features.)

But we are working on performance. :thumbsup:
 
I just found a big problem in balancing of Wind and Storms.

It is simply the way these tags are interpeted.
(I will focus on iAppearance and iDisappearance and ignore iGrowth for simpler explanation.)
Ups, I thought that was intentional in your mod... and supposed you already had some mechanism in the DLL to avoid excessive number of the feature. So I didn't say anything.

It is not only Winds and Storms that is causing longer turns.
(We have several pretty complex features.)
I think you can easily create an alternative system in DLL to place storms which should be more efficient.

Also revise the Achieve part, is not only that the XML infos is not optimized (but you can left it as it is if you don't want to create your own system but the code in doAchieves() can be improved much more.

The achieve Advisor code should be revised too. There is unnecessary duplicate initialization of variables, calculation of many things that should be done only once, and a big number of variables that are being initialized only when drawing the screen instead of _init_ (that means it's done every time the window is updated!).
 
Ups, I thought that was intentional in your mod... and supposed you already had some mechanism in the DLL to avoid excessive number of the feature. So I didn't say anything.

This is already handled. :)
(It was corrected long before our release. See "Edit" of the post you are quoting.)

No excessive number of that feature appear anymore. :thumbsup:
(The feature works as it should.)

I think you can easily create an alternative system in DLL to place storms which should be more efficient.

Maybe, but until now we used the given XML system.
Of course there are several modifications in DLL.

The feature itself is not really problematic.
But we simply have a lot of complex features, that need computations.
(That sums up a bit.)
 
Alright, fair enough. My computer just seems to not like the feature is all.
 
In playing with Audacity recently, I've added a few custom sounds that can be heard when you sail onto Robert's Wind and Storm features.. let me know what u think! ;)

Great. :thumbsup:

@Robert:
Could you check this evening ?
(Or did you already do ?)
 
Top Bottom