World History Mod Conversation

Random event with the condition that the player has a certain civic. If we then set the likelihood to 100%, then it will happen when the civic is added to the player or at the start of the next turn depending on how the code is. If we set the likelihood to say 20%, then it will happen, but then the player can't be sure precisely which turn it will happen in. Maybe the change could be 1-5% * number of civics of a certain category owned by the player. Imagine drawing a horizontal line on the tech tree and say each line left of the line adds to the risk of a collapse. That will prevent the player from just avoiding the trigger tech for strategic reasons.

The random event should have a setting saying that it can only happen once, or once for each player or whatever.

These trigger conditions would be good to have in general.
In EventTriggerInfos.xml, you can specify a set of trigger conditions in the XML and if you set <iWeight>-1 that event will trigger immediately on meeting those conditions; if you set a positive value for <iWeight> then after meeting these conditions it become eligible to happen but you won't know precisely when. If you want to add more conditions that can further add for this chance to happen, you can add other triggers for the same event to accomplish this; and you can let all these triggers become obsolete once the event has happened, or happen only once for each player, or once globally, among many other possible settings. The triggers can involve Civics/Techs, or other criteria including numbers of certain Units, Buildings, Bonus resources, population, and number of certain tiles owned. It's really a cool and versatile system. :king: (see here for full documentation in the posts under Appendix B - Event Guide, although this page is only about base Civ4, and significant further advances to Events for Civ4Col have been made in TAC and RaR, though some additional Col-specific tags could be useful). You can use this to flexibly mod how certain techs and other conditions gradually build the probability of various major Events like a Dark Age, Renaissance, or Revolution.

There are already several different victory options moddable in VictoryInfos, including several domination and conquest-type ones that don't involve revolution, although more victory options are always interesting. I think civ splitting has been done in FfH or Fall Further (hasn't everything?:crazyeye:) where overseas colonies can form a breakaway republic so it may be worth looking at that, though this may not be worth all the performance and multiplayer issues this might cause as NG points out. I always thought culture city flipping just ended up being a pain in Civ4, but I guess it could give something useful for Culture/Prosperity to do.
 
Not sure I like the idea of Dark Ages. I mean is it really fun that your empire is forced to collapse? Since we already have the multiple invasions keeping player stressed whole time, and the rebellion/invasion is quite a dramatic event, especially if the invasion force is big enough. It can really lead to looong civil war, which necessary isn't as fun as it may sound. And imagine that you have many rebellions per game: whole game play just becomes endless civil war. Just saying that careful balancing is needed to that feature.

Instead of dark ages, I'd much rather have game concepts like stability and city/empire upkeep (or something similar), to make it hard to sustain large empire.

Even though events like great migrations and barbarian invasions can be interesting, I just don't like gameplay to be forced into certain outcomes.
 
There are already several different victory options moddable in VictoryInfos, including several domination and conquest-type ones that don't involve revolution, although more victory options are always interesting.
Do tell what victory conditions you want. They are set in XML and the check in DLL is strait forward meaning adding checks for additional settings is often almost as easy as writing them here. The first to gain X cities, the first to finish the tech tree, the first to clear 100 forests... we have lots of options, though not all of them make sense.

The one about finishing the tech tree is actually a good one. I would say it would more likely be coded as the first to gain all civics of a certain type.
 
Ok So this is FAR from finished, but here is my quick shot at the tech tree from Ancient to Medieval.

It contains about 50 New techs, plus modification to the medieval techs to fit with the overall plan and resources etc.

The Names are pretty boring right now, but I am more interested in completing the mechanics of the tree first, rather than worrying about the cosmetic finish, so names are more descriptive than interesting.

Also I need to add in a lot of 'organisational' techs as well as bonus, fealty, culture, science and faith techs. Also 'upgradey' techs for buildings and people, like taking cavemen, to plebs, to citizens, to serfs, to peasants, or something similar to this.

I also need to figure out how to do a 'dark ages' bit. What I would like is to disable certain bulidings and such for bulding purposes, so basically if you build them before the dark ages you get to keep them, but once you hit the dark ages you won't be able to build new ones of that type, you will have to wait for medieval technology to bring you back to it (something similar). As well as maybe somethings being destroyed or obseleted, as they can no longer be maintained as the knowledge is lost.

Anyway, the tree is pretty rough, I have not done costs, or filled out all of their info, like tech connects or requirements.

Basically they all need finishing and refining.

But it is Progress!

The Tech Tree looks good to me.
I'd like to help with the XML stuff too. Tech tree or units/civilizations. Is there anything I could do? I ask so we don't do overlapping work.
Only thing I can't do is creating/converting graphics...
 
The Tech Tree looks good to me.
I'd like to help with the XML stuff too. Tech tree or units/civilizations. Is there anything I could do? I ask so we don't do overlapping work.
Only thing I can't do is creating/converting graphics...
If both of you wants to actually write in XML, then we really should make a branch for world history XML. We can't use the multivation branch for that as we need one, which isn't intended to be merged back into master.
 
Do tell what victory conditions you want. They are set in XML and the check in DLL is strait forward meaning adding checks for additional settings is often almost as easy as writing them here. The first to gain X cities, the first to finish the tech tree, the first to clear 100 forests... we have lots of options, though not all of them make sense.

The one about finishing the tech tree is actually a good one. I would say it would more likely be coded as the first to gain all civics of a certain type.
M:C has a tag <bIndustrialization> which I think may not do anything currently, but was originally intended to check when someone reached a threshold for x total units of a Yield produced over the course of the game. If this could be made into two moddable <Yield> and <iThreshold> tags instead of a bool, it could be used to mod victory conditions based on any yield (ie could use total science, crosses, gold, or a combination of material yields).

There are several tags for Culture which may have been deactivated in Civ4Col:
<CityCulture>NONE</CityCulture>
<iNumCultureCities>0</iNumCultureCities>
<iTotalCultureRatio>0</iTotalCultureRatio>
Now that YIELD_CULTURE (Prosperity) is back in M:C, maybe these could be reactivated which would allow you to mod victory conditions such as having 10 megacities reaching the Legendary level of Prosperity, or have your empire represent a certain percent of the global total Culture/Prosperity using <iTotalCultureRatio>. If Prosperity is gradually earned by successfully fulfilling your citizen's demands over a long period (and the mechanism you'd suggested earlier of high Prosperity attracting raiders as a balancing mechanism, who could then ravage local Prosperity if not defeated); then reaching high levels would be quite a challenging/fulfilling game goal for those more interesting in careful economic management than revolution.

Lastly a very simple one that could nevertheless be really flexible for modding is to let a VictoryInfos tag check if a given Event had triggered. You could mod almost any conditions you could want into an Event Trigger, making it possible for XML modders to use extremely customizable victory conditions without needing to rework DLL.

In BuildingClassInfos there are a whole bunch of victory tags that I think were originally used in Civ4 for Spaceship Victory (completing x "building" modules of each type); I'm not sure if these are still active but it might be even simpler just to use an event trigger check for # of buildings like above.

I agree the idea about a Tech (or Civic) victory is a good one too. (I guess this could also be done with an event trigger if desired, which triggers on discovering a "final" tech requiring several others.)
 
Hey Fullerene,

I would definately appreciate your help with the XML, when it omes time. I hate doing it but I always force myself too!

Right now I am just in a pure planning stage, trying to get everything laid out and organised so that when it comes time to code it in (and I have figured out the Col code, and when the M:C mod stabilises (by that i mean all the features we have been seeing are in)) it will get put in much quicker and easier as it will just be working through the blueprint, adding, adding, adding.

I am still a fairly long way away from this right now, at the moment I have just finished putting in the resource and unit renaissance techs in my plan, but the whole tech tree still needs all of the 'extra' techs for the concepts like faith and organisation. Plus 2 more eras still to add to the tech tree. Suffice to say, still a lot to plan, haven't even started 'mathing out' stuff like tech costs, which will depend on yield quantities for research buildings, etc.

As to the 'Dark Age' event, I feel like we need something to force a destabilising at the death of enpire, otherwise a player could conceivably be the only competition left in their game at the end of the classical era. If they want to keep their success, they will have to prepare and fight for it, avoiding the mistakes of the romans (bad emperors, over spendng, disasterous military campaigns, etc.) This event will only hit hard at places where 'lack of organisation and preparation' exist.

If the player has a small empire, well maintained and guarded, then they will pretty much sail through the cataclysm.
If they have over extended, unevenly fostered loyalty, or not prepared their military to an appropriate level, they will get ground back down to a small empire. It is really to provide a real kick in the teeth to hardcore, expansionist players, so that if they survive, they can truly claim themselves to be better than the Emperors of Rome, and can proudly strut around their home in a bed sheet with leaves on their head! Leading humanity as one force, marching into a golden age of never before seen glory!
 
I have had a quiet day today and I have started doing this: (see jpg below)
attachment.php

This was to check if I could start modding the tech tree. In fact, thanks to the clear instructions left by Kailric (I guess) within CIV4CivicInfos.xml, this monkey work can be done even by me.

My idea is to start including Lib.spi&#8217;t&#8217;s tech tree, so I started with the first two and moved the medieval technologies ten positions to the right.

I know that Lib.spi&#8217;t&#8217;s tech tree design is not completed yet, and other forum members offered their help on this.

So I would like to know if coding a first version of Lib.spi&#8217;t&#8217;s tech tree could be useful for the project (taking into account future changes in Lib.spi&#8217;t&#8217;s tech tree), if this is monkey work and it can&#8217;t be done with functions, and also if Lib.spi&#8217;t&#8217;s or somebody else prefers me to hold up for some more time or assign or share the task with more people.

I never deny my lowest monkey abilities and my enthusiasm for the project.
 

Attachments

  • lib.spi't's tree.jpg
    lib.spi't's tree.jpg
    96.9 KB · Views: 151
So I would like to know if coding a first version of Lib.spi’t’s tech tree could be useful for the project (taking into account future changes in Lib.spi’t’s tech tree), if this is monkey work and it can’t be done with functions, and also if Lib.spi’t’s or somebody else prefers me to hold up for some more time or assign or share the task with more people.
Maybe it is a good idea to start now and maybe it isn't. I will not be the judge of that, but I will say that you should use git from the very start if you start to actually write something in XML you want to keep.

If it is too early to do XML editing, then I know orlanth still has to do the tech tree XML for colonization 2071, which he has yet to write. Maybe he wouldn't mind to have a monkey around and it could be training for when it's for real with this mod. You will need a github account for committing your changes though.

Actually we could make a branch for you to modify techs in and then merge it back in once it's done. That way you will have the comfort that it you mess up, nothing is broken. That might not be such a bad idea for somebody with little/no experience.
 
Nice one Trade Winds!

As to the hub stuff, I leave that up to you to decide TW, I still can't wrap my head around it cause my head is too wrecked for learning a completely new system (tried and failed and increased head ache for my efforts :D)

I am all for anyone doing XML jobs for me :D (I hate doing anything in the code :D)

It would also be really helpful, seeing it in 'tech tree' mode, as right now my spreadsheet is just making do, then as it is in we can see what needs moving around and what is missing, (like all the bonus stuff).

One thing I will say, is that the techs that 'introduce' a new resource or profession, won't introduce the 'expert' (like what you have with shepherding) although this is not a big deal, as that part of the code can just get cut/paste to where it will eventually be, generally speaking 'experts' will be one of those bonus things that i haven't added yet. I am also contemplating 'sub and uber' experts (bit like the journey man stuff) so as you go through the ages some professions will get better and better (maybe) as well as buildings improving, and some professions being needed to run certain buildings. (this is all a thought for later though)

As for tech connects, some I have done, and some I haven't. If I haven't done them, feel free to make up a connection, as again changing these is much easier than adding them from scratch (Tweaking is SO much easier :D)

At the end of the Classical era, (if you get there) add a tech called dark ages, that needs all classical 'end' techs and is the need for all 'start' medieval techs.

Costs is another thing I haven't even started to work out, again feel free to just make these up, as they can be tweaked when we have it 'mathed out'.

Some things have other needs already planned, feel free to add these when you ssee them, again this is something I plan to make universal (more or less) I just haven't sat and worked it all out for all of them.

I guess if you have started this I better get back to planning the other end of the tree :D I took a break for a few days cause I was exhausted, I got thorugh the 'basics' of the renaissance and was just starting to square my shoulders to tackle the Imperial Age.
 
Maybe a good start would be to just set up techs and dependencies. Create a civic which doesn't do anything (no new units or anything) and then add type and description. Copy paste this a lot of times to add all techs and then set up which techs depends on which techs. This will create the tech tree without worrying about the effects of each tech as this can be added later.

Once the tech tree is build, it can be viewed even before setting up x,y. Read more here: http://forums.civfanatics.com/showpost.php?p=13053429&postcount=473
I really should get around to write a guide for setting up perl and graphviz...

We can worry about setting up the ingame tech tree once we actually have a tech tree and are fairly sure no techs will be added/removed or moved to a new location in the tech tree.

Guide to start XML editing: sign up on github and send a PM to me with the account name. I will then make a branch and assign write permission to the account(s). There is a git guide on the wiki, but it's written fairly fast. If somebody feels like improving it, then feel free ;)
 
All right. Noted Nightinggale and Lib.spi&#8217;t.

Tweaking is SO much easier :D
I agree. For that reason, I will include the basic structure of your tree in the CIV4CivicInfos.xml file. But I will focus on the basic info you have in your chart. I won&#8217;t deal with the connections or the amount of yield needed yet, as this is something we can decide later.

I will say that you should use git from the very start if you start to actually write something in XML you want to keep.
I&#8217;ll work on an off-line computer, and as far as the changes are done on just one file, I won&#8217;t care using github for the first while. But once the file is completed with all Lib.spi&#8217;t techs, I will work on-line, create an account in github and send Nittingale a PM previous the merging and sharing.

If I understand it well, graphviz is used to plan changes on a techtree, but it needs conections to create tech branches. I need to work the other way round, first having the basic structure in Lib.spi&#8217;t plan and we can decide conections.

I&#8217;m not as much into Colonization 2071 as in M:C or WHM, so to change project I would need some threads re-reading first.

Well, I&#8217;ll go on it. I expect it is as simple as you recommend me to do and as simple as I did the first two.
 
Yeah that's cool.

Eventually my hope is do something similar as my plans with FTTW is to try and get everything into 'streams' such as a military line, economy, industry or whatever, but in some places it got a bit lost, but I will fix that eventually with the full tree hopefully. (Or my brain will explode which ever comes first!)

Here is the latest version of my plan, it has renaissance stuff and the start of the imperial, but my head hurts to much to work on it anymore for a little while.
 

Attachments

I’ll work on an off-line computer, and as far as the changes are done on just one file, I won’t care using github for the first while. But once the file is completed with all Lib.spi’t techs, I will work on-line, create an account in github and send Nittingale a PM previous the merging and sharing.
One huge benefit in git (compared to svn) is that it clones the server. This mean it copies all the data you will need and then it works offline. In fact you only need a net connection when uploading or downloading changes. In fact you can commit multiple times locally while being offline and then upload (push) the changes once you are able. This works well for a rarely online computer, but not for an always offline one.

However as you said it's just one file. It isn't critical to use git, but it would likely still be a good idea.

If I understand it well, graphviz is used to plan changes on a techtree, but it needs conections to create tech branches. I need to work the other way round, first having the basic structure in Lib.spi’t plan and we can decide conections.
The perl script reads the XML file and transfers it into a graphviz input file. This mean graphviz will draw the techs and their dependencies based on what you entered in XML, not what you planned. Part of the idea here is that it will make it easier to spot if you entered wrong dependencies.
 
At the end of the Classical era, (if you get there) add a tech called dark ages, that needs all classical 'end' techs and is the need for all 'start' medieval techs.

At the moment there is a limit to two required techs and one "or" tech, so basically there can only be two "end techs", if there is need for more let me know and we can mod in changes. Also, for asthetic reasons I made the M:C tech tree fit on one horizontal screen but it will adjust vertically as well.
 
if there is need for more let me know and we can mod in changes.
I have already though about that issue. Lib.spi´t ends the Classical Age with three techs, two about warfare units and another about people privileges. I plan to converge the two warfare techs into one related to something about pre-invasion, and then the pre-invasion one and the privileges converge into dark ages.

I am eleven techs far to finish the classical age, and my main issues so far are lots of new yields, units and buildings included in the tree that don’t exist and the fact that the arrows are not pointing as are told. I may be doing something wrong. I prefer to show you the whole picture when I finish it. Also, some techs unlock buildings that are given for free when founding cities, so I can’t implement these buildings into the tree because the game crashes when founding the cities.

By the way, Lib.spi’t, on your second version of your tech tree and resources, I regret you have abandon the idea of different yields for different continents. It makes things easier though.
 
Back
Top Bottom