C2C SVN Changelog

Just pushed to SVN (5517):
  • Multi-threaded profiler support
  • Multi-threaded city production choice

See blog post for details (one is written, on is waiting to be written but will be in the next day or so): http://c2cdev.blogspot.com
 
Thanks for this. It is slower but it makes writing new stuff much easier.

Yes, its slower which is why it should never be utilized for anything but final check runs before updating to the SVN. I'll be keeping it updated on any code revision as well.
 
Updates

- Improved hawk graphic by God-Emperor.
- Natural Wonders updates
- Movies moved into core so wonder movies don't stop playing in game.
- new building Wonder of Nature to get the main yields from the feature
- new improvement Marine Preserve for sea Natural Wonders
- some natural Wonders now have base yield modifiers.​

Edit I also put in a slightly improved UI screen for trade. It looks ugly at the moment but it does show all(?) the resources you have for sale.
 
Updates

-Throwing Line Unit stat revision

-Fix for some units, such as Canine Workers gaining promos they shouldn't

-Fix for Commanders not being able to get promos they should

-Adapted the ignoreterraindamage tag on promos so it can be applied through commanders via commander promos
 
This was true here, too. But after I tried multiple times it finally worked. Trying once more and it failed again, so there definitely is a server issue with Sourceforge.

No need to use https and no password for non-modders.

Correct, i didn't get my nap in before i wrote before:sleep::blush::old:
 
Multi-threaded city production choice

What is performance increase on test save (turn time)?
It is very interesting to know how much time we saved now thanks to that.
 
What is performance increase on test save (turn time)?
It is very interesting to know how much time we saved now thanks to that.

Not much yet (like 10 seconds on 200), but so far it's more a proof-of-concept usage of a new framework to support parallelization, which I plan to spread the usage of. Right now it parallelizes ONLY the actual choice of what to build next (not the building of it, or any other aspect of city turn processing), which was only ever about 24 seconds worth in the test save I've been using.

Once any teething troubles are sorted out, spreading the usage to cover building production, unit tendering, city worked tile choice, etc. should be fairly easy. The same framework (which is intended to be very generic) can also be applies to aspects of unit movement, so ultimately I think we should see a good minute or so out of the 200 seconds.

Practically an upper limit is likely somewhere around a doubling of overall speed if this were taken to the limit (which it never will be due to complexity). After that there is too much irreducible serialization required without a total rewrite of the entire underpinnings of Civ.
 
Practically an upper limit is likely somewhere around a doubling of overall speed

1 Even when you use 4 threads or even 8 instead of 1?
2 How many threads you plpan to use? (2,4,8)
 
1 Even when you use 4 threads or even 8 instead of 1?
2 How many threads you plpan to use? (2,4,8)

Number of threads is irrelevant for limit cases. It's called Amdahl's law (see http://en.wikipedia.org/wiki/Amdahl's_law). The issue is that the design of the code at a fundamental level requires all sorts of serialization points, and the amount of code that has to be run serially probably amount to around half the current turn time, so no matter how many ways the rest is split up (even if we could do it with 100% efficiency) you'd be left with that half. A total clean re-implementation (see 'possible future directions' thread a la AXXXE) would start from design that was much more parallelizable at its base level, but the weight of historical code bears down on us as a Civ IV mod, and that limits what can be achieved in that context.

What's in the SVN currently is set to 2 threads for now, but the number is actually defined in a global define (in the XML) so is easily changed. Once teething troubles are addressed I will likely increase the default the mod ships with to 4. If you want to try more the global define is NUM_CITY_PIPELINE_THREADS, and it's in assets/xml/A_new_dawn_GlobalDefines.xml (near the end). On my machine it scales fine to 4, but I have not tried more (I have a fairly old non-hyper-threaded quad here).

Note - when I say the limit is perhaps around doubling speed, I mean purely from parallelization. That doesn't mean that OTHER optimizations cannot apply multiplicatively to that, just that the gains from multithreading are only going to be at best somewhere around factor-of-2
 
If you want to try more the global define is NUM_CITY_PIPELINE_THREADS, and it's in assets/xml/A_new_dawn_GlobalDefines.xml (near the end). On my machine it scales fine to 4, but I have not tried more (I have a fairly old non-hyper-threaded quad here).

So for real HARD testing, since i have a brand NEW PC with the best rating, 7.9/8.0 average, what is the limit you need tested for now? Then what is the highest for now?
 
Just pushed to SVN (5526):
  • Fixed multiple production not working for the human player
 
Update
Added TAG_ANARCHY to check for anarchy on a city or player object in a boolean expression (with the Is tag).
 
Updates

- Fix text displayed for sea Animals (was the same as for animals). Also removed a few duplicate definitions for hunter, and animal texts.
- Change TECH_MINE-WARFARE to TECH_MINE_WARFARE - @Hydro this includes some stuff in your Tower module. May cause some problems for existing games that have passed that point.
- Natural Wonder Shark Bay now spawns sharks.
 
Back
Top Bottom