Current and Future Developments

Kailric

Jack of All Trades
Joined
Mar 25, 2008
Messages
3,100
Location
Marooned, Y'isrumgone
This thread will track the current features and improvements that are being implemented as well as future improvements. Note there is no time frame for these changes. They will get done when its done (I think that is pretty much the motto of all developers).

I posted a few tickets on sourceforge that can be worked on.


My current TODO list:

Priority

  • -Add Gold to Civic Upkeeps
  • -Re-add Teacher List buttons etc.
  • -Minor Civs added to Tech allow/disallow system
  • -Finish AI Traders, Need Overview
  • -Finish Culture to Law setup
  • -Foreign Trade Post upgrades
  • -adjust Vassals listed in Trade Routes
  • -Finish AI connecting cities with roads
  • -Add Kings Forest
  • -Generic code for TradeScreens(one Python file)
  • -Add new Trade Screens
  • -Vassal needs more gold
  • -Adjust AIs Production AI
  • -AI needs better gold spending functions
  • -Dignitaries give Tax collection bonuses
  • -Test Economy
  • -Diversify Native Teach classes
  • -Adjust AIs desire for Luxury Food
  • -Make note that Fealty renamed to Administration
  • -Strongholds autokill feature adjusted
  • -Animal dens and Bonuses spawn Animals
  • -AI Profession Value checks for multi yields
  • -Natives value of Techs
  • -Nation States start with Goods in Cities
  • -Help text for censured Civics
  • -What to do with Tithe Rate when at War with Pope
  • -Pilgrim profession
  • -Test Treasury Precent
  • -Fix Ransoming Knight code
  • -Trading League replaced with something that does not give gold.
  • -Add consequences for getting behind on Civic Upkeep. Accumulative 10% chance each turn that the Civic Option will revert back to Basic Civic.
  • -Play test and adjust the Yield Demands and Overflow sells
  • -adjust or remove the Tavern ability to gain Fealty by autoselling Ale
  • -Failed Assert in the Multi Yields Consumed code, actual produced does not match up if one of the required yield types are missing
  • -Finish research pact code
  • -add in game tutorials for new features
  • -finish any aspects to the new Luxury Unit/Civic relationship and playtest
  • -check Luxury Units and Immigration to make sure it is working as intended
  • -Nobles/Commanders/Chaplain shown in the conquest advisor
  • -Is the Viking Age to fast, are the Saracen arriving to quick for the player to handle them?
    [*]-Return trip from the East or West side of map Commands Added in trade screens
  • -When units are attacked by Bandits they are taken to "nearest friendly city" not just owned by player. At some point I want to add difficult or player option settings that turns this on and off to make the game more or less hostile
  • -Make sure Knights and Knight promotions are working as intended. Knights should only be available under Feudalism. You can choose the Feudalism Civic in times of War as it grants you the Knight Profession.
  • -Travel to Fair became instant in my last game. Make sure this at least takes one turn. This also needs to be prevented if a City is under siege as it could trade indefinitely for food and this isn't logical.
  • -The Center plot of cities auto builds advanced Roads. My units were building Stone-paved roads on city tiles. This should be done automatically.
  • -check into Silk prices as they may be unbalanced. This may be a good time to change the Yields.xml to have actual Trade Screen prices set instead of a percentage. This could also be made a float as to better work for adjusting prices.
  • -Could trade the "Native" tech, so check code to make sure "Categories" are not tradeable.
  • -There is a discrepancy in the Armor smith's building on what yield is actually being produced. The yield help text does not show what yield is being produced correctly
  • -Could select Leather Armor in the Armor Smith's house, this should not be
  • -add benefits and adjust Mints and Banks
  • -AI maybe starting Conquests way to soon before they are really prepared. I may have fixed this issue when I removed some free AI yields so this needs tested again
  • -Nobles can train while fortified, should they already be trained?
None Priotriy
  • -add Warning to build trading post that the unit will be consumed. Add Civic changes to this effect.
  • -add warning to establish missionary that the unit will be consumed. Add Civic Changes to this effect
  • -add Diplomatic measures so that you can ask Barbarian Civs to prevent their attacks by pirates/raiders/Saracen for a specified amount of turns, or per turn. "You pay us 25 gold per turn, we make sure Saracen don't bother your trading ships, aye?"
  • -Hire ship command so if you find a lone farmer a million miles away from your cities you can hire a ship at nearby village to escort the unit to nearest city.
  • -add Graphical adjustments to Great Generals
  • -add unique art or skins for the Sub professions


Planned Future Developments

Next Release
-All goods are sellable to Natives (this is an xml only change)
-New Minor Civ attribute for CivilizationsInfos
-New NationState attribute for Civs
-New Religious Center attribute for Civs (Popes/Kings on the Map)
-small Economy improvements, such as better formulas for when flooding the market with a single good
-a new Victory Condition
-Nationstates and Invasion Civs can trade without a Parent Civ

Some of the Major additions:

  • Medieval Economy Updated: Nightinggale has some planned features for this with the Trade Screens so we are awaiting his additions here.
  • New Military and Battle Tactics: this will be an overhaul of the combat code with lots of new features
  • Spies and Espionage
  • Upkeep Costs and Taxes change
  • New Civilian Promotion system
  • Castles Reworked
  • Religions added
  • AI improvements
  • New Diplomacy options

Some Minor features (and more solo-able) are:

  • New art for all the Subprofessions
  • Ability to Hire Mercenaries
  • Events added to event system
  • Xml help text and descriptions filled in
  • New Profession: Wrangler
  • Great Generals improved
  • Animals and Hunting update
 
That plan appears to be a bit generic and unambiguous.

I'm considering the following:
  • Implement TAC school system
  • teacher list (see RaR)
  • journeyman modcomp (in a modified version)
  • allow network MP games
  • fille the code with more asserts to catch more coding errors/XML errors before they become serious
  • fix the game on 32 bit CPUs (maybe drjest2000 found the cause here)
  • the thing I know I considered, but I have temporally forgotten :p

Some of this depends on other parts, like teacher list builds on top of TAC school system. I have no clear set order or priority except to honour those dependencies.
 
Just wanted to update my current modding status. Currently I am swamped with "real life" tasks such as 17 hours a week in the local community college but I want to start filling in all the missing Pedia Descriptions and any tutorials that will make learning this mod easier. That way when new features get added we want keep getting further and further behind on this.

I wanted to thank everyone who has participated is this mod development so far. As of now we have tons of ideas and historical information that we can use to develop new rules, improvements, and features and will also help keep us modding for a long time to come!

Good Job!
 
I want to start filling in all the missing Pedia Descriptions and any tutorials that will make learning this mod easier. That way when new features get added we want keep getting further and further behind on this.
While it sounds good to have a good pedia I wonder if it should have the highest priority. Another task is to fill out yield demands for units and buildings. I added support for this in the DLL but I skipped filling out the XML to enable this. Maybe we should make a list of half finished tasks like this.
 
For me, highest priorities would be fixing existing bugs and improving the 'pedia, rather than adding new features and systems. The game is very playable now, and I would like to see it on a more solid base. I'm wary of adding new complexity.
 
For me, highest priorities would be fixing existing bugs and improving the 'pedia, rather than adding new features and systems. The game is very playable now, and I would like to see it on a more solid base. I'm wary of adding new complexity.
The domestic economy is screwed though. You just need to get a market and you can sell as much as you like without considering ship capacity, pirates or anything. Making a lot of money at a steady rate with no risks is way too easy.

Besides what do you want from "a more solid base"? It's not like the game is crashing or anything like that.
 
The domestic economy is screwed though.

That's true. That should be fixed. But, in my opinion, without adding new systems such as a more complex education system.

To me, a civics screen would also be a good idea, making the game more solid, deeper, rather than adding horizontal complexity. The game is plenty complex as it is.

Working on the 'pedia would also make the game "deeper" by making the rules explicit, making playing the game less opaque, making learning it faster and easier.
 
Good to see you back Kailric! :king: No worries about the hiatus & good luck on your courses.
BTW I see there are some new tags in M:C leaderheadinfos.xml:
<AttackForceKey>Expeditionary Force</AttackForceKey>
<DeclareKey>Declare Independence</DeclareKey>
<DawnKey>None</DawnKey>
<!--ECONOMY: 1 = HomeCity; 2 = Three Routes to Unlock Land Start; 3 = Inflation-->
<iVictoryType>1</iVictoryType>
<iTravelCommandType>1</iTravelCommandType>
<iEconomyType>2</iEconomyType>
I think the first three are text but am not totally sure what the last three do. Is one of these related to letting that leader use the normal Europe screen in addition to the special Trade Screens? We were unable to do that so far with the 2071 modmod & ended up using the Spice Route screen temporarily to store immigrants.

I know, I started writing and didnt get to finish, but your plan sôunds great!
Everything sôunds better with a circumflex, that's what I say ;):p It adds a certain Tôlkienesque flair :king:
 
Good to see you back Kailric! :king: No worries about the hiatus & good luck on your courses.
BTW I see there are some new tags in M:C leaderheadinfos.xml:
<AttackForceKey>Expeditionary Force</AttackForceKey>
<DeclareKey>Declare Independence</DeclareKey>
<DawnKey>None</DawnKey>
<!--ECONOMY: 1 = HomeCity; 2 = Three Routes to Unlock Land Start; 3 = Inflation-->
<iVictoryType>1</iVictoryType>
<iTravelCommandType>1</iTravelCommandType>
<iEconomyType>2</iEconomyType>
I think the first three are text but am not totally sure what the last three do. Is one of these related to letting that leader use the normal Europe screen in addition to the special Trade Screens? We were unable to do that so far with the 2071 modmod & ended up using the Spice Route screen temporarily to store immigrants.


Everything sôunds better with a circumflex, that's what I say ;):p It adds a certain Tôlkienesque flair :king:

Yeah, a whole bunch of my code was started code to test out things so I never fully completed it so yeah, just ask me what in the world I was thinking and I may or may not be able to help you based on my memory remember what in the world was I thinking:crazyeye:


<AttackForceKey> This is what the "Royal Expeditionary Force" is called that fights against you, text only
<DeclareKey> What your "Declare Independence" text is called, text only
<DawnKey> What your "Royal Charter" is called, text only

<iVictoryType> This describes the type of army that you must conquer to win your conquest. The key code is :
<!--VICTORY: 0 = Kill King; 1 = Pope; 2 = Crusaders; 3 = Ottomans; 4 = Retaliation-->

<iTravelCommandType> 0 is you start at sea and can trade with "Europe" from the start. 1 is you have to discover trade routes

<iEconomyType> Is how your trade with Europe works..

<!--ECONOMY: 1 = HomeCity; 2 = Three Routes to Unlock Land Start; 3 = Inflation-->
1: Homecity is not fully supported yet, Saladin is this and he can trade with his home city from the start, but he is not supported as playble.
2: You have to unlock the trade routes and you start on land; the current default
3: This is the Vikings "Inflation" but I didn't like that idea. Vikings are not supported as playable yet.
 
While it sounds good to have a good pedia I wonder if it should have the highest priority. Another task is to fill out yield demands for units and buildings. I added support for this in the DLL but I skipped filling out the XML to enable this. Maybe we should make a list of half finished tasks like this.

I haven't been keeping up with all the current developments. Is there a post the examples this fully somewhere?
 
ok. Is there a difference between <iVictoryType>s other than what the invasion force is named, and if so where is the nature of the non-King ones coded? If I understand things correctly I would guess civs in 2071 should all use <iVictoryType>0 if we want them to be invaded by their King civ normally on revolution. But maybe we could adapt one of the other <iVictoryType>s to make a standard Progenitor invasion force for Aliens. :scan::king:

BTW I've always thought it could simplify things for both MC and 2071 to be able to use one King civ for multiple factions, since the single vanilla civinfos tag for <Derivativeciv> requires lots of unnecessary copies of Popes and Progenitor Exarchs :crazyeye: OTOH, sharing a King between civs might lead to issues with Europe screen and prices, but maybe less so now that Trade Screens and non-King-based local prices are being implemented.

<iTravelCommandType> 0 is you start at sea and can trade with "Europe" from the start. 1 is you have to discover trade routes

<iEconomyType> Is how your trade with Europe works..

<!--ECONOMY: 1 = HomeCity; 2 = Three Routes to Unlock Land Start; 3 = Inflation-->
1: Homecity is not fully supported yet, Saladin is this and he can trade with his home city from the start, but he is not supported as playble.
2: You have to unlock the trade routes and you start on land; the current default
3: This is the Vikings "Inflation" but I didn't like that idea. Vikings are not supported as playable yet.
Hmm maybe this is what was causing the problems with starting conditions and using Europe screens etc in 2071 modmod. WaterStart is already set in civilizationinfos, so water vs land start shouldn't need to be set again through these. It also sounds like <iTravelCommandType> and <iEconomyType> are doing kind of the same thing, but in ways that could conflict with each other and with WaterStart.

How about modifying <iTravelCommandType> to simply determine whether or not you can access the Europe screen using the standard vanilla method (ie be able to sail to and trade with the Europe screen of your King civ). I don't know how <iEconomyType> is coded, but you wouldn't need to reset land/water start and Europe screen access there again. You could instead use this to set whether immigrants show up in your territory automatically, or appear in your Europe screen to be transported like in the regular game.
 
I haven't been keeping up with all the current developments. Is there a post the examples this fully somewhere?
http://forums.civfanatics.com/showpost.php?p=12802268&postcount=336

A city adds up the demands from all buildings and units in the city and then divides by 100. The feature isn't done yet as I plan to add prosperity bonus to the demands. Also I'm investigating (or plan to investigate) having demands in plotgroups to avoid micromanagement for selling goods domestically. The AI could have an even harder time coping with supplying domestic sales than humans and I want the AI to follow human rules for this.

Buildings have iMarketCap, which tells how much can be sold domestically. The total amount of yields being sold each turn is the combined iMarketCap for all present buildings and NO_MARKED_SALES_CAP from GlobalDefineALT.xml (currently 2).

Sales are handled by the custom house window and prices and demands can be seen in the domestic market screen.

I'm fairly sure the XML setup for this is final even though some of the internal handling will very likely be modified.
 
ok. Is there a difference between <iVictoryType>s other than what the invasion force is named, and if so where is the nature of the non-King ones coded? If I understand things correctly I would guess civs in 2071 should all use <iVictoryType>0 if we want them to be invaded by their King civ normally on revolution. But maybe we could adapt one of the other <iVictoryType>s to make a standard Progenitor invasion force for Aliens. :scan::king:

BTW I've always thought it could simplify things for both MC and 2071 to be able to use one King civ for multiple factions, since the single vanilla civinfos tag for <Derivativeciv> requires lots of unnecessary copies of Popes and Progenitor Exarchs :crazyeye: OTOH, sharing a King between civs might lead to issues with Europe screen and prices, but maybe less so now that Trade Screens and non-King-based local prices are being implemented.


Hmm maybe this is what was causing the problems with starting conditions and using Europe screens etc in 2071 modmod. WaterStart is already set in civilizationinfos, so water vs land start shouldn't need to be set again through these. It also sounds like <iTravelCommandType> and <iEconomyType> are doing kind of the same thing, but in ways that could conflict with each other and with WaterStart.

How about modifying <iTravelCommandType> to simply determine whether or not you can access the Europe screen using the standard vanilla method (ie be able to sail to and trade with the Europe screen of your King civ). I don't know how <iEconomyType> is coded, but you wouldn't need to reset land/water start and Europe screen access there again. You could instead use this to set whether immigrants show up in your territory automatically, or appear in your Europe screen to be transported like in the regular game.

Well, if victorytype is set to 4 they will have to capture a city before they can found one. That is the only thing other than text that is effected with this command in the code.This was something I was working on for Vikings. All three of this types were added in order to make a lot of diversity and yeah, at the moment they don't do a whole lot. And in the code Economytype 3 will have Inflation text.

Different Kings are still needed because they are what controls Europe Prices and the game would have to have a big overhaul in order to all use the same King. I didn't think about it but if you try to play the game under the default scenrio like you say with a king type invasion and sail to europe at the start I don't think it would work correctly as I was concentrating on the Trade Route version and was going to go back and fix this to work correctly at some point.




http://forums.civfanatics.com/showpost.php?p=12802268&postcount=336

A city adds up the demands from all buildings and units in the city and then divides by 100. The feature isn't done yet as I plan to add prosperity bonus to the demands. Also I'm investigating (or plan to investigate) having demands in plotgroups to avoid micromanagement for selling goods domestically. The AI could have an even harder time coping with supplying domestic sales than humans and I want the AI to follow human rules for this.

Buildings have iMarketCap, which tells how much can be sold domestically. The total amount of yields being sold each turn is the combined iMarketCap for all present buildings and NO_MARKED_SALES_CAP from GlobalDefineALT.xml (currently 2).

Sales are handled by the custom house window and prices and demands can be seen in the domestic market screen.

I'm fairly sure the XML setup for this is final even though some of the internal handling will very likely be modified.

Ok, I'll look into this.
 
While it sounds good to have a good pedia I wonder if it should have the highest priority. Another task is to fill out yield demands for units and buildings. I added support for this in the DLL but I skipped filling out the XML to enable this. Maybe we should make a list of half finished tasks like this.

I am working on filling this in. The problem is trying to decided what the Building Demands and Unit demands should be. We would want the demands to be even in general so that one Good isn't over represented on the market and others under represented. The whole Yields/Goods/Buildings/Professions may need to be reworked to balance all this out.

EDIT: Well there is like 40 something unique units that work in your cities and only 25 yields so you would need to double up on yields to units if you wanted every yield to be represented evenly.
 
Also even representation is not really necessarily realistic, the fact is somethings were more available than others and some were too expensive/luxurious for the common man.

I would say (if I am understanind the situation correctly) pick 15 yields that 2 units will have so 2 people will have grain, then pick 10 yields that will have 1 each. Unless units take multiple yields..
 
I am currently working on making the New Trade Route system modder friendly. I'll add several options to the XML for things like Land Route or Water Route, but if you have any suggestions or questions concerning this please post away. I also plan to add maybe a couple of generic trade routes that can be activated and modded to work the way you would like in the XML. When I am done I'll post a tutorial of it all as well.
 
I also plan to add maybe a couple of generic trade routes that can be activated and modded to work the way you would like in the XML.
I think adding generic default traderoutes would be bad even if they can be turned off. Everything should be configurable in XML. Default trade routes could then be example code in a tutorial which people can copy paste to get say "Europe" or whatever. We shouldn't consider the case where people don't add trade routes in XML just like we don't consider the case where people makes no units available in XML.
 
Yea, I would love it if Trade Route screens and Sail-to-Europe plots became XML-configurable for modding. :goodjob::king:

I agree with Nightingale it would be best for modding if instead of a fixed set of M:C-specific trade routes like Spice Route and adding several more default ones, it could be moddable in a totally standard way with XML so modders could make & configure as they want. I dunno if it would be feasible to make an XML Schema for moddable Tradescreens, but if so an ideal setup could be something like the following:

Code:
<Civ4TradeScreenInfos>
	<Civ4TradeScreenInfo>
		<TradeScreenType>TRADESCREEN_SPICEROUTE</TradeScreenType>
		<DiscoverTech>TECH_SPICEROUTE</TradeScreenType>
		<BackgroundArt>ARTDEF_SPICEROUTE</TradeScreenType>
		<bIsEurope>0</bIsEurope>
		<UnitClassTradables>
			<UnitClassTradable>
				<UnitClass>UNITCLASS_DHOW</UnitClass>
				<iPricePercent>-20</iPricePercent>
				<bCanBuy>1</bCanBuy>
				<bCanSell>1</bCanSell>
			</UnitClassTradable>
		</UnitClassTradables>

The tags could let you mod what unitclasses can be bought/sold there, and if there is a percent discount or premium over the standard "europe" price from unitclassinfos.xml. Rather than putting lots of percentage price modifiers for everything in YieldInfos.xml , you could use TradeScreenInfos.xml to let the trade screens generate supply or demand for yields like a regular city so their prices can rise & fall naturally.
Code:
<YieldDemands>
	<YieldDemand>
		<Yield>YIELD_SPICES</Yield>
		<iDemandUnits>-20</iDemandUnits>
	</YieldDemand>
	<YieldDemand>
		<Yield>YIELD_TOOLS</Yield>
		<iDemandUnits>10</iDemandUnits>
	</YieldDemand>

etc.

The existing Civ4EuropeInfos.xml could get a few new tags to allow modding of how Europe plots link to trade screens. E.g.:

Code:
<DiscoverTech>TECH_COMPASS</DiscoverTech>
<RouteType>WATER</RouteType>
<TradeScreens>
	<TradeScreen>
		<TradeScreenType>TRADESCREEN_SPICEROUTE</TradeScreenType>
		<bAccess>1</bAccess>
	</TradeScreen>
	<TradeScreen>
		<TradeScreenType>TRADESCREEN_THEORIENT</TradeScreenType>
		<bAccess>1</bAccess>
	</TradeScreen>
</TradeScreens>

This would let you discover and see the existence of a "Sail To" Access Plot Type with an early Tech, and later you could unlock access to one or more Trade Screens which you could reach by choosing to voyage to them when entering that plot. :king:

Phew that's a long wishlist :crazyeye: but even some minor steps toward full XML moddability would be in the right direction. With a system like this allowing TradeScreens and Sail-To plots to be mixed & matched how the modder wants; all kinds of stuff becomes possible including discovering new routes and map areas like mentioned in the threads by Lib Sp'it & others.
 
Top Bottom