• Civilization 7 has been announced. For more info please check the forum here .

World History Mod Conversation

And if someone has save files of late game in the Medieval Mod... I would have some use for them.

Just in case you didn't know you can actually "fast forward" a game to anytime period. In the Hints section of the Pedia it says...

In Cheat Mode press V for AI autoplay 1 turn, Ctrl V for 25 turns, Alt V for 100, Shift Alt V Max turns before Revolution. Press V again to End Autoplay
 
I would suggest that you first of all add the yields themselves (XML, DLL and graphics) before changing the screens (MainInterface, Europe Screen, Advisor Screens).
It will be much easier that way to get your screens looking nicely.
 
ah brilliant!

@ ray

Yeah I was just on a fact finding mission this time to see how they did it, for the first 'expansion' I will probably need to double what medi has, and then after that triple it.

I am just in the first stages of thinking about undertaking it, so I wanted to know how difficult it might be.

ah pants... now my RaR seems to crash on map loading...
 
Just in case you didn't know you can actually "fast forward" a game to anytime period. In the Hints section of the Pedia it says...

In Cheat Mode press V for AI autoplay 1 turn, Ctrl V for 25 turns, Alt V for 100, Shift Alt V Max turns before Revolution. Press V again to End Autoplay

Thanks, I was just going to ask what are those references to AI Autoplay in the code.

About the Rural/Urban Concept.
Well, this is all just some sort of semantics... Political opposition is just as fine explanation of rebellions.

And just for clarification, some terms that might confuce readers of this thread:
Spoiler :

king = pope = rebels

and

revolution = conquest = rebellion



----

So far I have achieved:
-Winning revolution doesn't end the game.
-Bad relations to pope can starts revolution. ( if relations are -1 the chance of revolt is 1%, if relations are -10, the chance is 10% etc.)
-But player can still call the revolution if fealty is over 50%
- After revolution relations to Pope are reset( I called pope.AI_reset()... I'm not sure this is best way to go...)

Some issues that exists:
-The rebellion forces resetting after they are beaten, I'm still not sure they recover, I need to run more tests.
-When you lose to the rebels(pope) you lose the game, fine... But when AI loses it gets taken over by the king player... not so fine.
-Rebels should not invade by sailing with ships from trade route areas.

These problems gave me an idea: What if there are no rebel army coming out of nowhere, instead some of your cities/populations turn to rebels. This could solve some issues at once. I also read that kailric is going to have every unit a individual fealty system in his mod. Might work well with this idea, the low fealty units would be the rebels.

Still, when AI loses to the rebels, the AI's power should be re-established I think. The king/pope player can't play the game properly.

----

During my test I got whole bunch of assert failures. Sometimes the game crashes, not every game but sometimes... Not sure if it's my code causing these or what. I can't get debug config to compile:mad:
 
Well, this is all just some sort of semantics... Political opposition is just as fine explanation of rebellions.

Yeah my main point about this really was keeping the Fealty system intact.


So far I have achieved:
-Winning revolution doesn't end the game. [Nice!]
-Bad relations to pope can starts revolution. ( if relations are -1 the chance of revolt is 1%, if relations are -10, the chance is 10% etc.) [Awesome!]
-But player can still call the revolution if fealty is over 50% [Get in!]
- After revolution relations to Pope are reset( I called pope.AI_reset()... I'm not sure this is best way to go...)[Yeah boy!]

Some issues that exists:
-The rebellion forces resetting after they are beaten, I'm still not sure they recover, I need to run more tests. (yeah I think we need to add more 'Recruitment Factors' for the rebel force, so it builds up more quickly..)
-When you lose to the rebels(pope) you lose the game, fine... But when AI loses it gets taken over by the king player... not so fine. (strange?!?)

Spoiler :
-Rebels should not invade by sailing with ships from trade route areas.

These problems gave me an idea: What if there are no rebel army coming out of nowhere, instead some of your cities/populations turn to rebels. This could solve some issues at once. I also read that kailric is going to have every unit a individual fealty system in his mod. Might work well with this idea, the low fealty units would be the rebels.

Yeah I mentioned this in an earlier post, that if a town has say, less than 30% Fealty it flips on rebellion and you have to take it back. These then become the 'spawn point' of the rebels. This would help to create things like 'colonial rebellions' in the later game as well. The only thing we would need to do is have some kind of Plan B for spawning if all towns have 30%+ Fealty.

Still, when AI loses to the rebels, the AI's power should be re-established I think. The king/pope player can't play the game properly. (yeah perhaps we have a 'base level' of units that he gets straight away, or like I said above we increase the number of things that can trigger army growth, not just fealty, but perhaps wealth generation, or prosperity too.)


During my test I got whole bunch of assert failures. Sometimes the game crashes, not every game but sometimes... Not sure if it's my code causing these or what. I can't get debug config to compile:mad:

Perhaps it is connected with the Pope/King Switch, that maybe some code is trying to do a Pope thing but the Pope e is not there anymore?

The Medi guys seem to be having issues compiling their DLL at the minute too, I think they are talking about it in their Bug thread, maybe have a read of the last few posts there, might give you some hints whats wrong if you can't fix the compile?
 
Still, when AI loses to the rebels, the AI's power should be re-established I think. The king/pope player can't play the game properly. (yeah perhaps we have a 'base level' of units that he gets straight away, or like I said above we increase the number of things that can trigger army growth, not just fealty, but perhaps wealth generation, or prosperity too.)

I think you misunderstood this bit. What I meant is, say Franks AI loses all cities to Pope: now there is Pope AI in place of Frank playerAI. It doesn't work very well in scenario with multiple invasions.
 
Yeah I mentioned this in an earlier post, that if a town has say, less than 30% Fealty it flips on rebellion and you have to take it back. These then become the 'spawn point' of the rebels. This would help to create things like 'colonial rebellions' in the later game as well. The only thing we would need to do is have some kind of Plan B for spawning if all towns have 30%+ Fealty.

What I really meant to suggest is that there would be no spawning REF. It would be just your very own units turning against you.I don't like the idea of troops coming out of nowhere.
Of course then there should be rules made which units and cities turn rebels. For example the 30% fealty rule you suggested. I would however rather use probabilities than hardcoded values. Let's say that 30% fealty mean 70% chance of rebel. But if over 50% fealty, then chance of city to turn rebel is 0%. Or something like that. But this was just an example.
 
The only problem is that this might be player exploitable..

If rebellion is looming, send all your guys to loyalist cities, and then the rebels will have no troops so you can just take back everything without a fight..

the REF would essentially represent Mercs, Vassal Levies, etc. Organised together by your opponents to overthrow you.
 
What are you planning to do with the DLL? I wrote my input here: http://forums.civfanatics.com/showthread.php?p=12984370#post12984370

I was looking at how RaR did multiple lines of yields in their screens today, I sort of see it, but I now need to work out where it would need to go in the Meditradescreen-code to make it compatible..Also if there are other files that have it in too..
I already added this to M:C and I plan on extending it to start with one row and then switch into two rows once the player has invented too many yields to fit nicely on one row. However this task is temporally on hold.
 
So far our only change to DLL is so called multiple invasions.But I think Kailric was talking about adding similar feature to his mod so I think we can live with Medieval DLL quite a long time.
This mod also requires new yields. (Lib.Spi't, could you write down the list of yields you are going to have? Would be interesting to read.)
Also the three types of settlement (town/monastery/military outpost) system works for medieval age but for whole history it won't work very well. So there is some changes to be made.
That's what I can think right now.

Later on I'll have plans to add things like religions,nationalities,remove of king,possibly new trading system and possibly new research system.

But I think the first iteration of this mod can exist top of medieval DLL with minor changes.
 
The types of settlements can be easily skipped if it is unwanted. All professions found towns unless specified otherwise in the profession XML. Not specifying anything in XML will force all cities to be regular towns. Never calling the code for the other types of cities will give the same result as using a DLL with just one type of cities.

Later on I'll have plans to add things like religions,nationalities,remove of king,possibly new trading system and possibly new research system.
I see no reason why those can't be added to M:C.

Religions can be added in a way, which makes them exist if and only if they are added in XML. Possibly the same with nationalities.

Remove of king could be really interesting to have configurable on a per civ basis.

Everybody agrees that the current trading system in M:C is bad and will need improvement, redesign. All ideas are welcome. The goal is to control this with XML, allowing new trade systems, both domestic and export. I think vanilla trading will be preserved if the mod use the correct XML settings.

A new research system sounds interesting. Maybe we can work something out. Setting up a research system controlled by XML where you can pick system A, B or possibly some combo gives the flexibility in the DLL that we are aiming for.


It is important to remember that the idea isn't to make mods to follow M:C rules. The idea is to share as much code as possible and if just one mod needs new code, then that mod will get new code. Col2071 will need to get DOMAIN_SPACE at some point which mean at some point we (me?) will add
Code:
#ifdef COLONIZATION_2071
// space related code here
#endif
We decided that adding a few blocks of mod specific code is the way to go if needed. We have an idea on how to do this while still keeping the code clean and I think it would be better to write design strategies to the wiki. It's not like the wiki is really used yet.
Also we have gc.isMedievalConquest() and gc.isColonization2071() in python to make mod specific code if needed. This like the rest of the mod specific code is designed to add more mods with minimal coding. I don't think we used those in python yet, but they are available if needed.
 
Ok let me try and get caught up and respond :D

@Night I think you get my basic idea behind the Cooperative, by exchanging 'menial labour' and 'adv. labour' everyones mods can be moved forward together, and everyone gets an expanded 'powerbase'.

I did not see the 'multiple lines' stuff added to MC, is that in the available 'release' or just the hub version? I noticed that RaR does a new line of yields after 25 (I think) and MC has 27, so I didn't think it had the multiple lines code, and when I compared the 2 codes it did not appear to me to be there (of course that really means very little as I am thick!) If it is working SWEET!! One less job there!!

Spoiler :
So far our only change to DLL is so called multiple invasions.But I think Kailric was talking about adding similar feature to his mod so I think we can live with Medieval DLL quite a long time.
This mod also requires new yields. (Lib.Spi't, could you write down the list of yields you are going to have? Would be interesting to read.)
Also the three types of settlement (town/monastery/military outpost) system works for medieval age but for whole history it won't work very well. So there is some changes to be made.
That's what I can think right now.


Still very excited to see Multivasions living and breathing!!

Yes I am currently working on my Mk1 Mega Brainstorm, I have a list of yields and units, I just need to finish the basic unit requirements and then I will post up my first draft for any and all who are interested!

The different settlement types is a very interesting bit of code (that I hope to become more acquainted with.) I see the possibility for a lot of exciting stuff here (still working it out exactly) but you could have all kinds of 'initial founding types' throughout the eras spawned from different units, that then give specific bonuses. So you could 'as the eons pass' defound obselete city sites (like a monastery) and refound it as an industrial minig site (one any other of so many possibilities) But all that thinking is for further down the line.. 1 Step at a time!

Spoiler :
Later on I'll have plans to add things like religions,nationalities,remove of king,possibly new trading system and possibly new research system.


Most of these things are sort of already available, different religions would be cool, right now it is just 'religion' rather than any kind of differentiation, but multiple religions would be something that would fit well in MC and could be adapted to represent just about anyhting for any mod (Ideology, Political Faction, whatever.) So a potentially exciting code concept!

Not sure what you mean specifically by nationalities, but that does already exist with culture and the UU type stuff.. I await your expansion on this topic! :D

Removal of King: Cosmetic or Mechanic?

I actually really love what Kailric has done with the Tech System and Civics and everything in that file.. it is just properly clever, using that same game mechanic to achieve so many things that seem at a GUI level to be completely unrelated! (I almost felt a little cheated that it wasn't MORE complicated codewise :D)

Trading System: which part of it is currently 'not liked'? It would be great if the local market demand grew per person and more so with more affluent/specialist citizens, so that bigger towns 'absorb' more goods per turn than smaller ones (I don't know exactly how it works at the moment?) I love freighting stuff between trade screens though! I can talk more on this when I figure out exactly what it is doing at the moment! :D

The great thing about code is that it can be made to look and feel different at the gamer level, without actually changing the code from one mod to the next (just making some tweaks.) the Prime example is what Kailric did with the Civic Code, he blended a bunch of existing concepts and made them look like something completely new, using the FF points system etc.. I mean everytime I look at it i just think... "damn that was sneaky clever!"

We could even create 'Faction Specific' research trees, by giving the faction an unresearchable tech at the start that is the prerequisite for a whole line of stuff to follow. (just takes imagination and Xml copy/paste graft!) Again 1 step at a time!! :D

Also depending on what the properties of Domain Space are, that could be used to represent all kinds of stuff in all kinds of mods, just by editing the text and graphic, (just depends on what it actually would do before I could give an example)
 
Ok So my head hurts, so I decided to post up before I fully finished it, but there is already lots there, right now it is 27x3 'resource lines' as well as a list of units and what the would use.

Some stuff is a bit fudgey, but could be refined. One concept in my head is to have 'continental tiles sets' Euro/Africa/Middle East/Far East/America that will each have some specific special resources, to stimulate global trade.

At the moment it is:
Euro: maybe grapes..(not really thought about euro as it is a eurocentric game)
Africa: Ivory and Gems (Yes I know gems are everywhere, but think about the blood diamond trade, etc.)
M.E.: Herbs (processed to spices)
F.E.: Silk worms (processed to silk) and Jade
America: Sugar and Dye

There are a few resources that might be lacking, but I ran out of 'slots' in the 27x3 concept. One that I feel would be good is a late game 'Alcohol' made from combining all the prior alcohols in the game into one...

Also Plastics will be a bit fudgey, they will sort of arrive in the late industrial era but can only be produced in small amounts limiting there applcation early on. They sort of represent new 'wonder materials' of all kinds. Then in the modern era you would get to produce them in proper amounts.
 

Attachments

  • Col. Thoughts.rar
    14.5 KB · Views: 139
The point of the world history one is that actually the core code for it is almost completely there, the only thing that was really missing was the 'Multivasion' component which fullerene is now working on.
If world history ends up using the M:C DLL, then wouldn't it be an idea to code this new feature directly into M:C. Coding it elsewhere (vanilla?) and then move it into M:C is like coding it twice.

I propose making a new branch of M:C. This branch will be an identical copy on github where this new feature can be developed. Once it is complete it can be merged with the main branch and M:C will get the changes complete with commit history and everything. The good part about using a branch is that it is allowed to break the game doing development as the main branch will continue to work unaffected. Worst case scenario is that the branch development goes horribly wrong, in which case it isn't merged and M:C will remain unaffected. Because of this branching is often used for experimental features. Another bonus is that each commit will be visible to other people, which allows feedback during coding or even joined effort if needed.

What do you say? Should we make a branch for multiple invasion development?

A branch for world history XML development wouldn't be a bad idea either. Col2071 already exists like that in an M:C branch. Using a branch instead of a new project makes it easier to move commits from one mod to the other.

I did not see the 'multiple lines' stuff added to MC, is that in the available 'release' or just the hub version? I noticed that RaR does a new line of yields after 25 (I think) and MC has 27, so I didn't think it had the multiple lines code, and when I compared the 2 codes it did not appear to me to be there (of course that really means very little as I am thick!) If it is working SWEET!! One less job there!!
https://github.com/Nightinggale/Medieval_Tech/commit/8a02386134ba4f94052b1c96f743f23abe880655
It doesn't cut off at 25. It cuts off at (num_yields / 2, rounded up).

My plan is to only show the available yields. By available I mean those allowed by inventions. The concept of invention enabled yields is actually fairly simple.

Inventions have an int for each yield called AllowedYield (or something like that). If you do not enter anything in XML, then it's 0. Otherwise any int will do.

The game will then allow you access to a yield if the combined allowed score for all your inventions gives a positive score. If no inventions gives a positive score, then you can use it even with a combined score of 0 (food is an example of this).

One simple, yet powerful feature of this is negative scores. You can have a yield called Bows, where gunpowder gives it -1. Once you invent gunpowder, you will no longer be able to build bows anymore as the score is no longer positive. Multiple inventions can provide a negative score meaning the yield is rendered obsolete by any one of those.

This is important for yield planning as it mean you can have say 60 yields, but you can't have more than 50 different ones active at any one time.

The same concept with allowed score is used for units, professions etc.

Trading System: which part of it is currently 'not liked'? It would be great if the local market demand grew per person and more so with more affluent/specialist citizens, so that bigger towns 'absorb' more goods per turn than smaller ones (I don't know exactly how it works at the moment?) I love freighting stuff between trade screens though! I can talk more on this when I figure out exactly what it is doing at the moment! :D
You are talking about the new demand system, which isn't fully implemented yet. This is the goal and it still needs XML setup. Also I'm going to implement PlotGroups from Civ4, which will make the cities aware of neighboring cities connected by road.

What I stated isn't liked is the fact that you can invent a marketplace, build it and then you can sell unlimited amount of goods directly from your city. As this is the primary income you will have a really hard time until you get it. Once you have it, you will become really wealthy in no time to a game breaking wealth. This is a game breaking balance issue.

We could even create 'Faction Specific' research trees, by giving the faction an unresearchable tech at the start that is the prerequisite for a whole line of stuff to follow. (just takes imagination and Xml copy/paste graft!) Again 1 step at a time!! :D
I'm 99% sure that this is already possible with the current DLL.


Also depending on what the properties of Domain Space are, that could be used to represent all kinds of stuff in all kinds of mods, just by editing the text and graphic, (just depends on what it actually would do before I could give an example)
We currently have two domains. Colonists use DOMAIN_LAND and ships use DOMAIN_OCEAN. This tells them which plots they can move on. Adding DOMAIN_SPACE will allow ocean and ships on planets while spaceships can fly back to earth by moving on DOMAIN_SPACE. I'm not sure anybody else can make good use of that domain. Civ4 has DOMAIN_AIR, but I haven't investigated how that one work. However I think I know which units uses it and looking at their movement pattern ingame I have a rough idea of how it would most likely work. While copying this to domain to M:C is possible, it certainly isn't the next thing I'm going to do.
 
so there is a hard limit of 50 active yields? Does this include the 'abstract' yields, like religion, fealty, etc.?

what id the source of the limit of 50? This could require some replanning...

everything else you saids sounds awesome and makes life even easier for me in thinking about yield adds!-
 
If world history ends up using the M:C DLL, then wouldn't it be an idea to code this new feature directly into M:C. Coding it elsewhere (vanilla?) and then move it into M:C is like coding it twice.

I'm coding it directly into M:C (Release version)
What do you say? Should we make a branch for multiple invasion development?

So far the multinvasions isn't big component (not many lines of code overall). But maybe later this mod could have use for github and own branch.

About Yields:

I believe 50 yields is more than enough. Having dozens of yields doesn't add so much to game in my opinion if there is no real difference between their functionality.

I looked at your excel table and it is very interesting. Some notes:

-Where's salt? It used to be very important trade commodity.

-Having luxury food and rich food sounds like overlap to me. Also maybe having tinned food (canned food?) can be expressed in game different way than a independent yield.

-Cut stone produced from stone sounds like unnecessary repetition too.

-Precious metals sounds bit boring, when we could have gold and/or silver.

-Clay is quite available almost everywhere in world. Does it need to be yield at all?

-Wooden Goods sounds like totally unimportant commodity.

-Also having cars and modern cars etc. is quite unnecessary overlapping in my opinion.

But overall, you have done really nice thinking:goodjob:

Maybe, instead of having continent tiles (africa,asia, etc), some yields, like silk worms could only harvested where silk worm bonus is available. Actually I think we could have possibility to plant some bonuses on map.
 
Top Bottom