World History Mod Conversation

WOOH! Just finished the first pass of the Industrial Era Tech tree design!

Man that took a lot of wikipeding! Had to figure out when a lot of things first appeared on the seen to get the orders right. There will also be refinements and more details of stuff added later I think, also had to shift some stuff round more than once as I discovered dates and facts that I hadn't realised before.

Plastic was around in 1862... didn't know that! :D

Not looking forward to designing the modern era, I have 15 resources and 49 'outside' units..... I wasn't even trying to be particularly detailed!! :D
 
You will see what I mean if you take a look, I can add it in manually, but you seem to have a script for everything :D
One who knows how to use his head can save his legs, or in this case his fingers on the keyboard :lol:
Scripts are excellent for repetitive tasks and considering the yield script should be executed every time something is modified, then I figured it would be a good way to avoid bugs.

Another question, when you make a .dll, do you just use both mod yield files, or do you take one or the other depending on the mod?
Look at Yields.h and top of CvDefines.h
The compile flag is set in Makefile.settings
Code:
CUSTOM_CFLAGS = -D[COLOR="Red"]WORLD_HISTORY[/COLOR]
Presumably YOURMOD should be set here as well, but we will take that later. In fact it is part of the git guide why and how you should do that.

Will I have to have a seperate .dll from the M:C one in order for it to work, or can it just be included?
Each mod needs a DLL of its own. If we placed all yields in XML (possible), then we could share a single DLL file, but we would suffer a performance loss. So much of the code (especially the AI) works around yields meaning it speeds up a lot by knowing the yield indexes at compiletime.

I need to get on and register my VS2010 so I can start using it again...
It's a free signup. One has to wonder why it isn't unlocked by default. Feels like they are harvesting mail addresses or something, but they aren't spamming. In fact I don't think I ever had any other mail than my key.

If possible, would you be able to do the perl script magic you talked about in your previous post and send me a package of the results?
I need to update the script to do that. However starting Saturday everybody flooded me with new tasks :eek:
Col2071 broke, RaR broke shortly after I committed something there, there is an infinite loop in M:C (see bugs thread) and this. On top of that real life stuff stole my entire Sunday and I have a finished, yet uncommitted patch for RaR.

Progress: fixed col2071, identified the RaR bug (turned out it wasn't caused by my code) meaning I'm approaching the perl script. I haven't forgotten about it even though I haven't looked at it yet.

Man... My tech tree design sheet is starting to run out of space!
Running out of techs to place them in or graphical issue?
 
Hooray the first version (Units and Resources only version) of the full Tech tree Ancient to Modern is Done!!!!!!! PHEW!!! [pissed]:run:

Design only...

Oooooh Trade Wind!!! How you feeling? :p

Well, it has a lot work indeed. I've seen you have abandoned the classical techs from civilization and you have developed thechs to satisfy the productive aspect of colonization.

What I don't know is if it should be continued with the XML coding when more civics are about to come and when other features are to be implemented. Probably these new features could bring new ideas for the tech tree. Also arrows should be fixed to begin with.

If, for example, a nomad stage were to be implemented, it should be matched in the trech tree because there are not such references now.

What do you think?
 
No worries NIght, take ya time, and thanks for the response. :)

The Tech tree 'space' stuff was just my Excel planning sheet, I thought I had prepared PLENTY of space for stuff, but then I got to WW2 and all these units and it started to get 'cramped' :D

Oh TW the FULL full tech tree is a long way from finished! I have all the bonus, upgrade, 'science', economy, trade, culture, leadership, etc, etc. techs still to add!
Even so I think I am around 150 techs so far... haven't counted properly!

So far this is just the resources and units, the time consuming part is just adding in all these tech references and xy locations to civicinfos, but once they are in they can be moved around, added to, expanded, shifted and new techs placed in as well.

Yeah I still cannot figure out why the arrows are weird, they are fine in M:C and 2071, and looking at your code, I see nothi8ng wrong there either... I just don't get it!

I attached my slightly 'tweaked' version of your civicinfos file, I changed a few xy references and deleted the comment that made it buggy.

Merging the file with the M:C version is pretty easy, winmerge can do it nice and speedy! :D So when the new features arrive, it should be fairly easy to merge.

The fun part is when my yield content is in I will have to go back to compiling my own .dll when M:C releases new features..

VS2010 registartion is being a pain, it wants to one of these 'protect your account' things where I have to give them a phone number or alternate email, except when I give them said alternat email they don't send me the code!! and unlike most it won't leet me skip it!!! AAAAH! :D
 

Attachments

I just had an idea about tech x,y placement. We add a new x and y variable, except these are relative to RequiredInvention. If they are different from 0 (the default), then it looks up RequiredInvention and calculate the placement based on this. The result will be that we will get blocks of techs where moving one will make the others move to ensure they stay the same compared to each other. I think that should make modifications easier once the tech tree is set up. Right now adding another column in the middle will be a pain, not to mention adding one to the far left.
 
If possible, would you be able to do the perl script magic you talked about in your previous post and send me a package of the results?
You didn't even try to compile this. The enum didn't use C++ syntax, which the script assumes. I had to fix a number of mistakes for the script to even accept your files.

However you gave me a very broad sample of mistakes the script now checks for and provides useful error messages for.

I didn't look at your CyEnumsInterface.cpp at all because that one is now completely autogenerated. Whenever the script runs, everything between #if defined (MEDIEVAL_TECH) and #endif will be replaced with whatever suits the header files.

You really should get your compiler up and running and install perl. It will be quite useful for you if you can use the scripts yourself.
 

Attachments

Yeah I did ask you to take a look at it to see if I had made any mistakes, as I have never touched these files before :D, plus I know how much you like fixing things!! :p And of course I wanted to provide you with an excellent example of what not to do so you could create an auto fixer :D

yeah VS2010 is annoying me at the minute, I have tried several times to get it to register, but it won't send the code to the email address I provide... So I am gong to have to try another email to see if it works.. what is annoying is this isn't even the registration code but a 'backup address' code.... grrrr!!

Thanks for this though, now I need to learn what else I need to do with yields to see how much I can explode it! :D

hopefully I can get VS working soon so I can compile this!
 
Ok got VS working!

now...

I think I have established that I need to change the following files:

Yieldinfos.xml

Also adding the text strings, but that at least won't break the game.

Do I need to change any where else? (not including gamefont graphics)

Do I need to make this list in xml the same order as they are in the SDK?
 
Do I need to make this list in xml the same order as they are in the SDK?
Yes. The majority of the yield info is in XML. The idea behind having the yields in the DLL too is to know the index of each yield at compiletime. As a result getting the index for say food takes 0-1 cycles while getting it from XML info takes likely 3-4 digits of cycles. Multiply this by the huge number of times yields are accessed and you will be able to tell the difference while playing.

Other XML files suffers from the same issue, but the DLL will not need specific ones like with yields meaning the problem isn't severe. In fact there aren't any references to say grassland like there is to quite a number of yields.
 
Do you think it would be possible to add a scroll bar to the Yields Bar?

In City Screen and Trade Screens?
Not with the current design :(

However if you run out of room you may consider if it is wise to have that many yields available at once. I don't think 200 yields will provide twice as good gameplay as 100 yields. Remember that you can disable yields with civics meaning you will not have all of them at once. I do plan to not draw the unallowed yields eventually. The domestic advisor hides uninvented stuff, but that doesn't really help here.
 
yeah, by the end of the game I have 8 yields (I think) that are no longer used. Out of 80. (not including the 'non solid' yields like faith.) it is basically tools, weapons and armour made of obsolete materials.

So by your estimate I am still quite conservative! :D

The thing is because the game will be so much longer, I have to keep things 'developing' so that the player has new things to reach for with each era.

otherwise you will be done by classical age with not much else to do...building wise
 
Hmmm... I keep getting this error, but I don't understand why, I haven't touched the Gold...

Could the error just be too many yields?

Spoiler :

Assert Failed

File: CvXMLLoadUtilitySet.cpp
Line: 593
Expression: NUM_YIELD_TYPES == GC.XMLlength
Message: XML read error. "" is used more than once

Assert Failed

File: CvXMLLoadUtilitySet.cpp
Line: 593
Expression: NUM_YIELD_TYPES == GC.XMLlength
Message: XML read error. "YIELD_GOLD" is used more than once


I am assuming it is appearing as gold simply because gold is the last one on the list..
 
Back
Top Bottom