Todo List to finish Branch "Plains" [OBSOLETE]

raystuttgart

Civ4Col Modder
Joined
Jan 24, 2011
Messages
9,637
Location
Stuttgart, Germany
Hi guys, to track and organize all open todos for the upcoming feature release I have started this thread.

However before we publish the actual feature branch, we will first publish an improvement release with bugfixes and other improvements.
(The odos for the improvement release will be organized in other threads or internally.)

-----

Comment on size of "Plains":
Spoiler :

"Plains" is massive, it is by far the biggest feature branch we ever created.
It is so full of new content and small improvements that I do not even want to try to repeat all the stuff that has been implemented into it.

To give you numbers: "Plains" already has about 350 commits.
Each of them is either a bug fix, improvement or something new added.
It basically contains all my finished to almost finished work of the last 6 months.
(Everything that is still just "under construction" is not contained.)

It e.g. adds about a dozen of small features like "Streams", "Massive amount of new gameplay conent on Ocean", "New Complex and Realistic Movement System", "Worker Boats being able to construct nets", "Immersive Scaling Mode", ...
(All of them done and working. The features themselves are technically not the issue anymore. Testing and Balancing may still be required though.)

The biggest issue "considering effort" that branch has:
It adds lots of new Terrains, Terrain Features, Ressources, ...
All of that stuff needs to be put into Maps and MapScripts.
Is that difficult? No, not really. But is is huge amount of tedious work.

----

TODOS:

Major Implementations:
1. finishing Health Overaul Implementation [DONE]
2. Pathfinding for new Movement Cost System

Improvements and Cleanups:
1. Code Refactoring of Traits for Performance and Stability (here) [IT IS GOOD AS IT IS FOR NOW]
2. Adding Traits and Foundign Fathres for old features missing them [DONE]

Maps and MapScripts
1. Adjusting MapScripts (using new Terrains, Terrain Features)
2. Adjusting Maps (using new Terrains, Terrain Features)
3. Adjusting MapScripts for new "Streams Feature"

Colopedia:
1. Colopedia Texts for new Terrains [DONE]
2. Colopedia Texts for new Terrain Features [DONE]
3. Colopedia Texts for new Ressources [DONE]


Graphical Improvements:
1. LSystem for new Bonus Ressources (to be considered in Improvements)
2. Missing Animations of Animals Alligator, Anaconda, Great White, Orca [Help request started]
2. Missing Animations of Animal Bonus Ressources [DONE]
3. 2nd Level improvement to "Salina" [DONE]

Other (to fully integrate new content into Gameplay):
1. Python Events for new Units, ...
2. Goody Events for new Units ...
3. Achievements for new Units ...

----

Summary:

Let us please try to finish that branch. It is already massive as it is.
Not only does it contain new gameplay it also contains uncounted improvements.
Then we can turn again to other concept as well.
 
Last edited:
Since I don't know where to post a bug, I'll put it here.

Bug description:
CTD

Cause:
Class: CvPlayerAI.cpp
Function: int CvPlayerAI::AI_getWaterDanger(CvPlot* pPlot, int iRange, bool bTestMoves, bool bDangerMap, bool bVisibleOnly) const

The pointer pPlot is sometimes null.

Provisional fix:
Since the return value of this function is the number of enemy units on the unit's path, it is safe (in my opinion) to return 0.

if ( NULL == pPlot)
{
return 0;
}

Attached is the save game:
Branch: origins/Plains (SHA-1: bb3ceecb01b0908a990c2a1fbba94df68dfe8cbb)
 

Attachments

  • John Printz n. Chr.-1529-Mai.ColonizationSave
    980.1 KB · Views: 25
Since I don't know where to post a bug, I'll put it here.
This is the perfect thread for it, since "Plains" is not yet published and still in development.
Thanks for reporting it. :thumbsup:

@Nightinggale:
This is the bug I told you about yesterday.
Please help getting this analyzed and fixed.

I am sure that the "workarund" of @Raubwuerger would prevent the CTD, but I would really like to know how it is possible that pPlot == Null?
(It may be the same reason we sometimes have CTDs in "develop". I have a feeling it may be related to "Large Rivers".)
 
Hi guys,

I am currently working on another small topic on my todo-list.

1. A lot of "features" in the game do not have Trait-Modifiers in XML / Founding Fathers
2. A lot of the Civilization Traits are a bit too weak considering others.

A few more XML tags, Traits, Founding Fathers will be added the next weeks.
A few of the "weaker Civilization Traits" will get a slight power upgrade.

First results:

New Founding Father
: Robert "King" Carter I
(uses new XML modifier for Traits --> iImprovementGrowthTimeModifier)



Trait "Imperialist" has gotten a small additional bonus.
(Slight rebalancing because I still feel it is one of the "weaker" Traits.)

 

Attachments

  • Civ4ScreenShot0000.JPG
    Civ4ScreenShot0000.JPG
    327.2 KB · Views: 642
  • Civ4ScreenShot0001.JPG
    Civ4ScreenShot0001.JPG
    410.8 KB · Views: 652
2 more Founding Fathres implemented:
Louis Jolliet and James Cook
(Both of them will help you find all those sweet Unique Goody Events.)


incl. 2 new Trait modifier

  • iGoodUniqueGoodyChanceModifierLand
  • iGoodUniqueGoodyChanceModifierWater

 

Attachments

  • Civ4ScreenShot0000.JPG
    Civ4ScreenShot0000.JPG
    394.7 KB · Views: 911
  • Civ4ScreenShot0001.JPG
    Civ4ScreenShot0001.JPG
    415.7 KB · Views: 907
if the number of points of politics and exploration is left the same as on the screen, then James Cook will be irrelevant. by the time that many points have been accumulated, most of the goodies will have already been collected.
 
if the number of points of politics and exploration is left the same as on the screen, then James Cook will be irrelevant. by the time that many points have been accumulated, most of the goodies will have already been collected.
That picture was taken before I had restructured the order of Founding Father.
(It is often easiest to first add them to the end and then start to shift him to the correct position.)

But you were generally correct and I had noticed as well. :thumbsup:
(He is now available much earlier.)

 

Attachments

  • Civ4ScreenShot0010.JPG
    Civ4ScreenShot0010.JPG
    226.4 KB · Views: 678
Two more new Founding Fathers. :)

1. Vasco da Gama: Grants you +25% Profit for sales in Africa.
2. Admiral William Penn: Grants you +25% Profit for sales in Port Royal.

Once you get them, Africa and Port Royal will become really interesting places to sell your stuff.

--------

New XML modifiers in Traits:
(Thus can be used for Nations, Leaders and Founding Fathers.)
  • iAfricaSellProfitModifierInPercent
  • iPortRoyalSellProfitModifierInPercent


 

Attachments

  • Civ4ScreenShot0008.JPG
    Civ4ScreenShot0008.JPG
    208.8 KB · Views: 679
  • Civ4ScreenShot0009.JPG
    Civ4ScreenShot0009.JPG
    229.9 KB · Views: 681
A few more new Trait modifiers. :)
(Available for Civs, Leaders and Founding Fathers.)

This time for LbD features considering "Unfree / Slaves".
(Normal "Learning by Doing" for becoming Specialist already existed.)
  • iLearningByDoingFreeModifier
  • iLearningByDoingRunawayModifier
  • iLearningByDoingRevoltModifier
Have ever been annoyed by slaves taking forever to become free?
Have you ever been annoyed by slaves running away or revolting?

If yes: Here are your heroes !
(Get them and that problem is soled.)



 

Attachments

  • Civ4ScreenShot0000.JPG
    Civ4ScreenShot0000.JPG
    261.9 KB · Views: 606
  • Civ4ScreenShot0002.JPG
    Civ4ScreenShot0002.JPG
    423.6 KB · Views: 609
  • Civ4ScreenShot0001.JPG
    Civ4ScreenShot0001.JPG
    425.3 KB · Views: 606
The new Founding Fathers/ modifiers here are a nice addon.

But by adding this to plains also adds more to compatibility difficulties: expanding vs. finishing.

When stuff which needs for maps fully finished I can adjust (RaR) America gigantic -> from november/ december looks like will have time for that.
 
Ok guys, today I completely overhauled and finished the Terrain Textures. (see here)
I simply had to find a compromise between "immersiveness / realism" and "gameplay / colour contrasts".

I am fully aware that there are thousand different tastes considering colouring, saturation, brightnesss, ... whatever.
However I tested this version ingame and it works nicely for gameplay and it is the best I can do as a beginner in graphical modding.

One more "todo" for the relase done. :)
 
Last edited:
... also adds more to compatibility difficulties: expanding vs. finishing ...
I am a "perfectionist" and it was annoying me as hell that we had forgotten or simply ignored to create Founding Fathres / trait modifiers for some of our features.
For me this is just "cleaning up" really old todos that I consider improvements (or even fixing sloppiness) for the quality of the mod.

---------

Sometimes details like this need to be taken care of for a Release as well to ensure the quality of the mod.
At least from time to time a "true modder" should check his mod and figure out necessary improvements and take care of them.
If that means it another year to finish "Plains" so be it, but I will deliver quality or nothing at all.

---------

Summary:

A quality mod simply means taking care of 1000 details as well.
It is not just all about the "big flashing features" themselves.

You also need to fully integrate them seemlessly and take care of other details.
I will thus work of every single detail on my list until I feel it is all "ready to release".
 
Last edited:
By the way:
I also need to take care of this here and will thus put it on the list.
(It is a code refactoring of Traits to improve stability and performance.)
 
If that means it another year to finish "Plains" so be it
A quality mod simply means taking care of 1000 details as well.

Yeah the more and more which gets into makes the longer time it is out.
Becames a "waiting for release".

Before misunderstood:
I like the new Founding Fathers/ traits very much.
This is more like about the "release process"/ include more people instead just waiting for releases.

All of that is "simple beginners modding"
The modifiers are not, but the some new FF for example yes. As do a few hundred small details.
Which can be done by many in case there is a stable completed release (of systems).
Off course if you wish to include a 1000 details that cost MANY time. Versus: when details filled by 50 people. Makes it much more smooth/ quick.

Right now the process is for releases:
- changing fundations (existing features/ basics): makes hard to join if there are many changes/ re-definition of existing
- constant expansion before complete planned ones
So do not be surprised if people just waiting. And waiting.

What if?
If you/ team concentrates to do stuff what commoners cannot do?
And by providing that others can do the expansions themselves.

Like - with examples:
Example 1:
Make like a 100 new modifiers and detailed informations about them (while only a few used as examples).
Then with a release folks can use that to create many new FF, civ traits, etc, etc...WHICH can get into the next release.
Right now a few new modifiers created -> but get used instantly. So what community does? Waits for the release of the completed part. Nothing to do because new stuff is already used.
So folks are waiting and lie back to get a full blown ready to use mod.

Example 2:
The health overhaul. -> long awaited by me
Jet there are missing basics (fundations/ system), like the XML tags (and all programming behind that) for terrains/ features/ bonuses, etc...
Quite sure there are dozens of people who can do all the details if system (backgrund programming) provided.Sure I can do all the time consuming details/ balancing if system is ready to use. Tiny details don`t need to consume the resources (time/ attention) of programmers.
->
With that can be done more expansion and more people can join instead of waiting.
->
But I bet that will not happen (system wihout details). But when released there will be all the details filled in.

By other words:
Create tools/ systems instead of perfectionist features.
Details/ balancing (with all "personal tastes") can do by many.
Systems/ programming: only a handful people capable to do.

By the way eliminates all the time wasting/ personal taste/ balancing arguments.
Nothing to argue about something which is not there. When the "how to use it" (the system) determined by the ones who spend time to implement that.

So with an example:
Release X: just the tags/ system for health overhaul.
-> folks do like a 12 different health overhaul system with that. Means: 12 or more people join modding/ completes a feature.
Release X+1: The best one/ a mix of best ones parts are released as a part of mainmod.

But for this (to get more people on board/ include the wider community into modding) NEEDS to stop the current thinking which is:
Want to implement something -> "how to do it".
And change to:
Create a system -> folks determine: "how to use it".
That way much more can implemented and by more people.
 
Last edited:
Create tools/ systems instead of perfectionist features.
No sorry, that is not how I mod. If I start implementation of a feature I create it 100%.
I am a "game designer" by heart and thus I create full gameplay or a "ready to play mod".

... stable completed release ...
Sorry but we may simply have different understandings there.
For me a "completed release" is not a collection of tools, it is a fully implemented, balanced and playable quality mod.

So what community does?
It could learn how to mod and then join the mod team and create a totally different feature or create graphics or fix a bug or create an UI improvement or write top quality pedia texts or ...
For XML balancing I have never asked for help and never will ask for help, because that is done in minutes - not even worth talking about.

----

Thus 3 simple options:

1. Create a feature, improvement, bugfix ... totally of your own and when you are done share it.
2. Join the team and work on open task as suggested above which help us modders to speed up.
3. Otherwise wait until we are done with what we are working on - which may simply take its time.

----

What if? ...
What you simply do not seem to understand is that I am a player as well. :)
I create a mod mostly because I want to play it which also means that I need to fully implement the features.

Details/ balancing (with all "personal tastes") can do by many.
No they can not because then we start arguing endlessly again which personal taste will be core mod or not because something needs to be implemented.
Thus I rather create a full implementation that I consider balanced, give you the mod with it and then you can change it if you like.

But when released there will be all the details filled in.
Exactly, because otherwise it will be bad quality and probably not even playable. Untested, unbalanced and probably even severely bugged.
And I would have 10 times more trouble and effort explaining and discussing the balancing for the core mod, than simply implementing it myself.

----

Summary:

As long as you are not a programmer or a graphical modder or a exceptionally good text writer or a exceptionally good map maker you are currently no help for my work.
Modding is about skilled labour not about mass labour. The only people that help are "wizards" that know what they do, "mokeys" only make a mess and distract the "wizards".

We are willing to take "apprentices" that one day become "wizards" as well. Meaning we will teach you computer game development.
But for qualifiying as an "apprentice" you really need to know much much more than just XML and also show motivation and perseverance required to invest all that effort to learn.

Once you are skilled enough and really motivated to take full responsibility for a bigger task from beginning to end, we talk again.
Otherwise you would definitely cause more effort and trouble than you might support. It is a negative equation then.

----

Sorry, but I want this to stay a "quality mod" that players can play as it is. Not just a tool box.
Meaning the people that contribute to it first need to get skilled to really deliver quality (incl. all necessary details) themselves.

Otherwise there is really not much you can support us with other than discussions here in the forum.
(Because otherwise it would cause too much trouble and mess. We could simply not let you touch our development branches.)
 
Last edited:
To keep this discussion short:
  • Whenever I notice something needs to improved or fixed I try to do so.
  • Whenever I notice that something is missing or badly balanced I add it or rebalance it.
You guys may not alway understand why I do that or not even consider it important.
But for me that small stuff is still important and I try to take care of it whenever I notice it because otherwise it gets forgotten.

It is small details like that, that make a mod special and not just the big features. :)
(Events, Founding Fathers, Achievements, ... are all relevant for atmospheric game play as well.)
 
@Nightinggale
Could you please help to check this CTD?

Is it enough just adapt the fix of @Raubwürger?
(It probably does not hurt anyways to do it? But maybe we should first analyze deeper.)

Or is it necessary to dig deeper to find the actual root cause?
(I heavily suspect that it is related to "Large Rivers" somehow.)

Thanks a lot in advance. :hug:
 
@raystuttgart

Oks - no changes there.
Jet then that is no surprise there are just a few who even consider joining- contribute - modding this game at all. :dunno:
 
3. 2nd Level improvement to "Salina" [DONE]
This small todo is now done and scrateched off the list. :)

Thanks to @Zeta Nexus who created the graphis for "Large Salina" by modifiying original Salina graphics.
Credits as well to @hrochland as original creator of the graphics for "Salina".

Edit:
On the screenshots the "Pillage Gold" is not correct.
It has been corrected though in a commit 2 minutes ago.



 

Attachments

  • Civ4ScreenShot0000.JPG
    Civ4ScreenShot0000.JPG
    142.1 KB · Views: 574
  • Civ4ScreenShot0002.JPG
    Civ4ScreenShot0002.JPG
    154.3 KB · Views: 577
  • Civ4ScreenShot0001.JPG
    Civ4ScreenShot0001.JPG
    153.3 KB · Views: 574
Last edited:
Since I don't know where to post a bug, I'll put it here.

Bug description:
CTD

Cause:
Class: CvPlayerAI.cpp
Function: int CvPlayerAI::AI_getWaterDanger(CvPlot* pPlot, int iRange, bool bTestMoves, bool bDangerMap, bool bVisibleOnly) const

The pointer pPlot is sometimes null.

Provisional fix:
Since the return value of this function is the number of enemy units on the unit's path, it is safe (in my opinion) to return 0.

if ( NULL == pPlot)
{
return 0;
}

Attached is the save game:
Branch: origins/Plains (SHA-1: bb3ceecb01b0908a990c2a1fbba94df68dfe8cbb)
I decided to dig deeper into this one and found the bug in the call stack. Negative movement points left caused some code to call AI_getWaterDanger with the 25th plot in a path containing 24 plots, hence the NULL plot. I fixed this bug where it occurred rather than where it crashed as that is just a sumptom of the bug, not the direct cause.
 
Top Bottom