FF 0.43 Bug Thread

Running Korinna with Patch F. Right now, can't seem to be able to get Korinna the Red Lady or the Black one, or Themoc either, despite having the requirements listed in the civilopedia. WTH? There is no indication in the civilopedia that they should just appear when the conditions are right, or whether they should be built.

If Korinna is your leader, you won't have her as your hero. Instead, at Strength of Will you'll be able to build the Risen Emperor.
 
Alright, I now understand this -- I strongly suggest the civilopedia be updated to clearly show which buildings, units, or heroes can or cannot be built, depending on which of Scion leader is in play. That's not player-intuitive, it's not explicit in the game, and it needs to be improved.
 
Alright, I now understand this -- I strongly suggest the civilopedia be updated to clearly show which buildings, units, or heroes can or cannot be built, depending on which of Scion leader is in play. That's not player-intuitive, it's not explicit in the game, and it needs to be improved.

Whilst the civilopedia does need updating, it's hard to do it whilst features are still being played with.

Well not "hard", it would just become an annoyance, and the civilopedia would possibly contain incorrect information. I'd rather take no information over wrong information. :P
 
It is only things like this which are "outside of the norm" which are hard to document. Everything else is designed to automatically self-document. But Scions is the only case where it is LEADER and not CIVILIZATION which restricts you from various things.
 
It is only things like this which are "outside of the norm" which are hard to document. Everything else is designed to automatically self-document. But Scions is the only case where it is LEADER and not CIVILIZATION which restricts you from various things.

Yep - I've tried all along to keep the descriptions current, and it's mostly self-organizing. TRAIT is used rather than Leader, since it's available in the building files.

Organized = Korrina only. Imperial Cenotaph and the Vacant Mausoleum - the building required for the R.E. hero, are Organized-only.

Agnostic = R.E. only. TotGift is Agnostic only. All of the Scion state-religion buildings require the TotG.

Who gets which hero is in the Leader descriptions. It can be added to the unit descriptions too. (But I like the present terseness of the R.E.'s entry quite a bit. ;) )
 
Found a Python error. This one renders the game unplayable. Is there an easy fix for this one??

Traceback (most recent call last):

File "CvSpellInterface", line 21, in canCast

File "<string>", line 0, in ?

NameError: name 'reqSlaveTrade' is not defined
ERR: Python function canCast failed, module CvSpellInterface
 
Any info or advice on the memory allocation errors? I've had them come up on every game so far... :( Btw, tons of memory, great video card, etc.
 
Find the line in SpellInfos that says reqslavetrade and just delete the entire line. Shouldn't be needed at all anymore.

For the MAFs, no advice. Civ does funny things with how it uses memory, making some high end machines have issues while low end ones are fine.
 
Seems that Brigit can take the Headless promotion (FF 043, patch F)...:rolleyes:

And the result of an earlier conversation with Tarquelne (still playing the same game):

Interesting issue with upgrading Korrina to Black Lady... For some reason the game didn't replace the Alive promotion with Undead... I'll miss Cannibalize and Implacable for her but as long as I get Undying (hopefully it depends on DotE and not Red Lady status) I'll cope...;)

Red Lady, I'm afraid. :) Trying getter her wounded and parking her in a Haunted Land tile. Or having a Redactor give her the Gift. The Red Lady is specifically barred from the spell, Black Lady isn't.

I got a Redactor and attempted to cast Grant Gift on Korinna the Living Black Lady. No joy. She's still alive. :cry: I've even turned her into a Haunt and back and still she lives...

EDIT: That was when she was at the bottom of the map after releasing Brigit. When I brought her back to my civ, I tried again, turning her into a Haunt in a Haunted Land square. The Haunt kept the Alive promotion but when I turned her back again she had lost the Alive and Defender of the Empire promotions (but had not gained Undead). I cast Grant Gift on her again and FINALLY Korinna is undead as the Emperor intended! :D
 

Attachments

  • Brigit_WTF.jpg
    Brigit_WTF.jpg
    335 KB · Views: 132
Seems that Brigit can take the Headless promotion (FF 043, patch F)...:rolleyes:

I've made Headless operate via a whitelist, so that and future issues of the same sort can be avoided.

I've also fixed a few Scion build issues involving Farms and Cottages.

I'm leaving the newly-made undead HL sicknesses alone for now. It'll be easy to fix via a new feature later and, mostly, I like it. :)

Fixing the artstyle issues with units turning undead will take awhile.

I cast Grant Gift on her again and FINALLY Korinna is undead as the Emperor intended! :D

:)
 
Still experiencing significant processing slowdown circa Turn 400 and beyond. Anything in the works to improve game performance?

I did some profiling on python last few nights:

This is how it starts:
Code:
GAME TURN 1 TIME Thu Dec 18 02:23:51 2008 DIFF 79.528908 TOTAL 79.528908

         4913 function calls in 0.270 CPU seconds

   Ordered by: internal time
   List reduced from 124 to 10 due to restriction <10>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.127    0.127    0.127    0.127 CustomFunctions:738(doFFTurn)
        1    0.076    0.076    0.076    0.076 CustomFunctions:621(doHellTerrain)
        1    0.026    0.026    0.026    0.026 Popup:39(setHeaderString)
        1    0.005    0.005    0.005    0.005 Popup:18(launch)
      144    0.005    0.000    0.005    0.000 :0(setprofile)
       12    0.004    0.000    0.005    0.000 CvAdvisorUtils:166(endTurnFeats)
       12    0.004    0.000    0.006    0.000 CustomFunctions:1468(warScript)
       55    0.002    0.000    0.220    0.004 profile:0(<function real_onEvent at 0x17584EF0>)
        1    0.002    0.002    0.002    0.002 CvSomniumInterface:1257(doTurn)
       45    0.002    0.000    0.039    0.001 profile:0(<function real_onEvent at 0x31AD4330>)

And this is how it finished (by a crash):

Code:
GAME TURN 584 TIME Thu Dec 18 07:35:29 2008 DIFF 130.000000 TOTAL 18778.414063

         3957335 function calls in 444.445 CPU seconds

   Ordered by: internal time
   List reduced from 280 to 10 due to restriction <10>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      583  257.554    0.442  267.431    0.459 CustomFunctions:621(doHellTerrain)
      580   71.724    0.124   71.784    0.124 CustomFunctions:738(doFFTurn)
   146486   71.301    0.000   71.301    0.000 :0(setprofile)
  2083946    7.698    0.000    7.698    0.000 :0(range)
       30    6.402    0.213   68.537    2.285 CvEventManager:1013(onProjectBuilt)
     6665    3.887    0.001    5.244    0.001 CustomFunctions:1468(warScript)
    35847    3.297    0.000    3.753    0.000 CvEventManager:2327(onCityDoTurn)
    56028    2.874    0.000  141.872    0.003 profile:0(<function real_onEvent at 0x17584F70>)
    54536    2.779    0.000  153.217    0.003 profile:0(<function real_onEvent at 0x17584F30>)
   146486    1.578    0.000  431.622    0.003 CvCustomEventManager:130(handleEvent)

This is a huge map (see attached gamesave).
At turn 584 each turn is about 130 seconds.
The total run time is 18778 seconds out of which the python spend 444 seconds which is surprising small.

The bottleneck is definately not in python ^^

I will profile the C++ library later and post my results.

If you want to reproduce this the following are attached:

  • initial gamesave, if it crashes just create your own with the specific options you want to try, mine only have raging barb activated.
  • CivilizationIV.rar file containing the CivilizationIV.ini
  • CvEventInterface.rar contain one modified CvEventInterface.py python file to be put in your asset directory to call the profiler.
  • PythonDbg.rar contain the log of my run

How to do:
  1. Put all the files in the right place.
  2. Start the game by double click the savegame
  3. Press ctrl+shift z to start automatic turn
  4. Leave in until it dies or finishes

The results are in My Documents\My Games\Beyond the Sword\Logs\PythonDbg.log
 

Attachments

So what precisely do the numbers mean then? Between turns is 130 seconds precisely, and python is eating up 444.445 seconds of CPU time. So how much of the between turn time is python then? It is obviously including some during turn functions in the equation. Unless that 444 is for the entire duration of the game, in which case it is TINY (under 1 second average per turn)

Is the 18778 seconds the time for you to do a single turn, or the time for the game to get up to this point using AutoPlay? 1 hour seems pretty hefty if it is just for the single turn, but really quick if playing manually to get to turn 584.


Maybe run it for a turn where you don't do anything? Just as soon as your turn starts, hit SHIFT+ENTER to see between turns only?

Anyway, very useful looking tool. Will be nice to know precisely what each function costs us so I can figure out which items need to be moved to the DLL and devise shortcut mechanics to avoid entering some of the larger functional loops. Is there a way to figure out precisely what function things like profile:0(<function real_onEvent at 0x17584F30>) would be?
 
Back
Top Bottom