[BTS] Evolution

ripple01

Emperor
Joined
Mar 7, 2006
Messages
1,254
Location
New York City
Evolution is a modding platform designed to give modders maximum potential and capabilities. The core of Evolution is a merge between 2 great Civ4 mods, RevolutionDCM and K-Mod: Far Beyond the Sword. I hope to develop it to include other modcomps/modder tools while maintaining the ability for additions to be switched on or off.

For a first release, I feel that Evolution is in a pretty good spot. There are a few bugs to be ironed out with regards to Revolutions (see my post in the SDK/Python forum), and I can't guarantee that all of the BUG options are functional. I have also not extensively tested the DCM options. However, based on my limited testing, the game should be playable by and large. I'm hoping that by releasing this to a wider audience, the community at large can assist me in fixing the few remaining bugs.


Download Link: http://forums.civfanatics.com/downloads.php?do=file&id=19739


Current Status: Beta


Known Bugs

None at the moment!
 
Changelog


Public Beta 11 (released 8/6/13)

Added Culturally Linked Starts 1.1.3 by Jean Elcard
Added back most of AD 2.3 code (internal change)
Added Platy Foriegn Advisor
Added glider1's Ranged Bombard fixes from RevDCM 3.0
Changed Advanced Diplomacy tech buttons to show only if AD option selected
Cloned UnitUpgradePriceModifier tag from Buildings to Civics
Updated Platy World Builder to 2.0.0
Updated K-Mod to 1.41


Public Beta 10 (released 5/24/13)

Fixed bug in CvTeam: processTech


Public Beta 9 (released 5/23/13)

Updated Advanced Diplomacy to 2.31 (fixes crash when loading saved game)


Public Beta 8 (released 5/9/13)

Added Platy World Builder by platyping
Added Advanced Cargo 1.1 by Thomas_SG, stolenrays
Added 3 new promotions increasing Accuracy for DCM Ranged Bombardment, old Accuracy promotion has been renamed Salvo
Fixed the BarbarianCiv and Revolution Python bugs (thanks, glider1!)
Fixed AIAutoplay bug where it would stop during Revolutions (code borrowed from Tholal's More Naval AI FFH2 modmod)
Updated K-Mod to 1.40
Updated Advanced Diplomacy to 2.3


Public Beta 7 (released 4/13/13)

Fixed mispellings of "siege" in RevDCM Text Files
Fixed Diplomacy tab in Options screen
Fixed "Concepts" Pedia screen; BtS Concepts now included as intended
Updated Dale's Combat Mod components to 2.4


Public Beta 6 (released 12/5/12)

Updated K-Mod to 1.38
Added Advanced Diplomacy 2.1 by Afforess, stolenrays


Public Beta 5 (released 10/22/12)

Updated K-Mod to 1.37
Fixed RevDCM text bugs (slave rebellion text, city distance rev civics,)


Public Beta 4 (released 8/29/12)

Updated K-Mod to 1.36


Public Beta 3 (released 8/11/12)

Fixed Pacifism error with support costs
Fixed diplo problems with AI cancelling deals


Public Beta 2 (released 8/3/12)

Updated K-Mod to 1.35
Corrected text placement issue with Project Help Tag


Public Beta 1 (released 7/30/12)

Merged RevolutionDCM 2.90 and K-Mod 1.34
Added Project Help Tag by The Lopez
Added improved Sevopedia screens by Xyth
 
Even though I'm not a fan of REV I have to D/L this because I want to see what K-Mod does to REV.

JosEPh
 
hey ripple, nice job! i played a few turns and it seems pretty solid thus far.
couple bugs:

every few turns i get (pythondbg log)
Code:
WARN : WidgetTypes.WIDGET_SET_PERCENT not found

(edit) i see you already know about the barbarianciv error, apols

a few like this in the xml log:
Code:
info type TRAIT_ENTERPRISING not found, Current XML file is: xml\GameInfo/CIV4EspionageMissionInfo.xml

also, the XmlDependencyTypes log has a bunch of missing leaders referenced.


keep up the good work!
 
Started a game as Boudica, looks good so far, merged in a couple of modcomps, will hopefully merge more.

BTW, what version of K-Mod did you use for the merge?
 
:goodjob:

What is this? "Project Help Tag"

There is this optional <HELP> tag for most XML files such as BuildingInfos or Traits, which allows you to display additional information.

For instance, for a wonder with python effects, you can use the HELP tag to display the python information to Humans, so they know what is the point of building it.

This tag, is however, not available to projects
 
There is this optional <HELP> tag for most XML files such as BuildingInfos or Traits, which allows you to display additional information.

For instance, for a wonder with python effects, you can use the HELP tag to display the python information to Humans, so they know what is the point of building it.

This tag, is however, not available to projects

Thanks!:)
 
:goodjob:

What is this? "Project Help Tag"


We are porting (take a look in our SVN). I think we (C2C/R:I) could have many/more projects in common.

Cool, you should talk to Koshling or AIAndy if you want to work with us on SDK things, they are in charge of that.
 
hey ripple, nice job! i played a few turns and it seems pretty solid thus far.
couple bugs:

every few turns i get (pythondbg log)
Code:
WARN : WidgetTypes.WIDGET_SET_PERCENT not found

(edit) i see you already know about the barbarianciv error, apols

a few like this in the xml log:
Code:
info type TRAIT_ENTERPRISING not found, Current XML file is: xml\GameInfo/CIV4EspionageMissionInfo.xml

also, the XmlDependencyTypes log has a bunch of missing leaders referenced.


keep up the good work!

This message (WidgetTypes.WIDGET_SET_PERCENT not found) is caused by the Min/Max Commerce Percent option on the BUG main options screen. I thought I had it defaulted to off. K-Mod has added a function by where you can Min/Max the Commerce buttons by simply right-clicking on them. If you disable the Min/Max Commerce Percent option the messages will go away.

I found the WidgetTypes.WIDGET_SET_PERCENT referenced in CvMainInterface.py, but I couldn't locate where it was defined. In RevDCM, it is defined in the SDK, but not in K-Mod. However, it works in K-Mod, so I just haven't figured it out yet.

I don't have a XmlDependencyTypes log generated when I run this mod. I'll look into the trait messages in the XML log. Thanks for reporting, keep it up!


Started a game as Boudica, looks good so far, merged in a couple of modcomps, will hopefully merge more.

BTW, what version of K-Mod did you use for the merge?

I used the latest version of both Revolution DCM (2.90) and K-Mod (1.34). I'll update the changelog to reflect this.
 
I found the WidgetTypes.WIDGET_SET_PERCENT referenced in CvMainInterface.py, but I couldn't locate where it was defined. In RevDCM, it is defined in the SDK, but not in K-Mod. However, it works in K-Mod, so I just haven't figured it out yet.

BugDll.py?

(edit) sorry i'm an idiot, the XmlDependencyTypes log unrelated to Evolution. sorry.

anyway played another bit and got some more python popups. same as usual ones but one slighty different one for BugEventManager:
Code:
File "BugEventManager", line 361, in _handleDefaultEvent
  File "Revolution", line 624, in onEndPlayerTurn
  File "Revolution", line 1064, in updatePlayerRevolution
  File "Revolution", line 2274, in checkForRevolution
  File "Revolution", line 3777, in pickRevolutionStyle
  File "Revolution", line 4850, in makeRevolutionDecision
  File "Revolution", line 5545, in processRevolution
RuntimeError: unidentifiable C++ exception
 
Cool, you should talk to Koshling or AIAndy if you want to work with us on SDK things, they are in charge of that.

Can you tell to Koshling and AIAndy to subscribe this thread? I know that Stolenrays have an interest too.

It seems to me it is clear that the K-mod code has to be different for large mods. For mods that use more types of units, etc ... need optimizations that Karadoc not does. Where would be better to post changes, perhaps a subforum of the K-mod, or here since RevDCM/K-mod (Evolution) will be used only by the larges until K-mod has no interest in this merge.
 
Can you tell to Koshling and AIAndy to subscribe this thread? I know that Stolenrays have an interest too.

It seems to me it is clear that the K-mod code has to be different for large mods. For mods that use more types of units, etc ... need optimizations that Karadoc not does. Where would be better to post changes, perhaps a subforum of the K-mod, or here since RevDCM/K-mod (Evolution) will be used only by the larges until K-mod has no interest in this merge.

Ok, I am now aware of this thread (thanks ls612 for pointing it out).

C2C has a ton of optimizations for scaling (in map size, unit count, building count, etc.) due to the nature of the mod (they were absolutely necessary with 1000+ buildings, 1000 or so units, 600+ techs, and map sizes considerably larger than anything base BtS provided). It also has a lot of added mechanics (property system noteably) and AI work, some of which is fairly fundamental (e.g. - contracting system whereby some entity in need of units of certain characteristics can put out a tender, which may be responded to by an appropriate city building them and sending them there, or by otherwise unoccupied existing units responding - currently used by all city unit requirements rather than building them directly, and for getting timely escorts for workers/settlers, but shortly to be used to more proactively build attack formations also).

I'd live for us to pool, but the codebases are so very divergent at this point I'm not sure how we'd go about it. However, I'm very much open to suggestions...
 
I'd live for us to pool, but the codebases are so very divergent at this point I'm not sure how we'd go about it. However, I'm very much open to suggestions...

I would like to see something similar as is happening in CIV5, some mods came together to write a kind of base code. In R:I also have a lot of optimizations, which I'm sure are not in the K-mod or C2C ... suggestions are welcome ... may divide by file ... I do not know ...
 
Ripple, are you going to update K-mod component of your mod to version 1.35 anytime soon? I'm not implying that you should update every time, after Karadoc uploads a new version, but I think changes which were introduced in 1.35 are very important especially in the context of revolutions.
 
I would like to see something similar as is happening in CIV5, some mods came together to write a kind of base code. In R:I also have a lot of optimizations, which I'm sure are not in the K-mod or C2C ... suggestions are welcome ... may divide by file ... I do not know ...

A good starting point (though not a trivial effort!) might be for each of us to make a list of new features, new mechanics/components, and performance optimizations (ideally separate lists, though some things may cross the boundaries a little) from base (base for us was ROM/AND, so I can't speak reliably for what that has over BtS base, though obviously there is a lot there).

Once we have those lists we may have a better idea where there is synergy, or a need to rationalise between a choice of up to 3 (C2C, K-mod, R/I) ways of changing the item concerned. I should be able to complie such a list by trawling the SVN rev notes for C2C (all 3300 revs so far!), but it's not a small task.

BTW - side project (haha!!) that I have been wanting to do for a while is to make AIs pluggable (as a dynamically loaded SEPARATE DLL) wherein each AI civ can potentially have a different one. The idea is to get an efficient (multiplayer really isn't) platform to compare different AIs/versions of an AI in a competative environment. I think this can be done by making a cleaner split between the non-AI and AI files for entities that have them (CvCity/CvCityAI, CvUnit/CvUnitAI, etc) beginning with making the AI interface pure virtual as an interface layer and the concrete AIs subclasses of that. Once that is done different concrete classes can be instantiated using a factory in CvPlayer (which would probably be driven by registry settings or something to map from player to AI provider).

That would allow us to evaluate how different AI builds perform in various test circumstances (games saved as scenarios for example).
 
BugDll.py?

(edit) sorry i'm an idiot, the XmlDependencyTypes log unrelated to Evolution. sorry.

anyway played another bit and got some more python popups. same as usual ones but one slighty different one for BugEventManager:
Code:
File "BugEventManager", line 361, in _handleDefaultEvent
  File "Revolution", line 624, in onEndPlayerTurn
  File "Revolution", line 1064, in updatePlayerRevolution
  File "Revolution", line 2274, in checkForRevolution
  File "Revolution", line 3777, in pickRevolutionStyle
  File "Revolution", line 4850, in makeRevolutionDecision
  File "Revolution", line 5545, in processRevolution
RuntimeError: unidentifiable C++ exception

Yes, this is the other of the 2 errors affecting Revolutions I detailed in my post in the SDK/Python forum. Really hoping someone with more knowhow than me can step up to help us fix these errors and get this truly playable.

Ripple, are you going to update K-mod component of your mod to version 1.35 anytime soon? I'm not implying that you should update every time, after Karadoc uploads a new version, but I think changes which were introduced in 1.35 are very important especially in the context of revolutions.

Public Beta 2 has just been uploaded, the main addition being K-Mod is updated to 1.35. :)

I have some more thoughts about the other issues raised in this thread regarding combining efforts and what not, but am in a time crunch right now, and will post more when I have a free sec.
 
Top Bottom