This should be fixed in the Git version. mastrude, what DLL version are you using? I uploaded one with a fixed saved game you posted other day. Try using that DLL.
OK, downloading it now.
This should be fixed in the Git version. mastrude, what DLL version are you using? I uploaded one with a fixed saved game you posted other day. Try using that DLL.
OK, I guess that seems reasonable. What threw me off was that I looked at the diplomatic screen and Clovis' pope didn't appear on it at all. I expected a sign there that Clovis was at war.
I pushed the two row change.
Also I investigated removing the ordered enum for YieldTypes from DLL, making XML control it. That's not possible. It turns out that the code to handle python code like YieldTypes.YIELD_HAMMERS is set at compile time in C++ meaning there is no way to make it depend on XML. I'm now investigating a plan B where the game asserts if XML and enum have a mismatch. That way at least we will not have undetected bugs due to this issue.
I wonder if it can be modified to have an on/off switch. That might be easier to do now than to revert and then re-implement it again later. After all it did clash a bit with M:C code meaning it wasn't a copy paste job. Also with an on/off switch we can easily test if "now" is the right time to enable it whenever we add more yields.I tested this out and can see the potential but I'd say for the moment we should revert back to the old style as we don't have the reasons to have two rows just yet. When we have more yields or when we rearrange the yields so they can stack relevantly over each other.
I wonder if it can be modified to have an on/off switch. That might be easier to do now than to revert and then re-implement it again later. After all it did clash a bit with M:C code meaning it wasn't a copy paste job. Also with an on/off switch we can easily test if "now" is the right time to enable it whenever we add more yields.
Kailric should have permission to edit the wiki. I think it is set to use the same write permissions as git.I'm finding Nightinggale's version of the FA list hard to work with. For one thing, I'd like to see the full width of the table. Another thing is, I'd the version column at the left, just after the line and module number. And I'd like for Kailric and me to be able to add information.
Bad idea. It should be something which can be displayed in a browser. I think the issue tracker would be our best bet on keeping track of asserts. Try this link: https://github.com/Nightinggale/Medieval_Tech/issues?labels=Assert&page=1&state=openI'm wondering whether we should make this an Excel 2007 file. Would you (Kailric and Nightinggale) be able to work with that? (An earlier version of Excel would be fine too. I don't have Excel 2010.)
What do you think?
Bad idea.
I tried using the Faireweather map for MC 2.0h. The northern access to the Silk Road seems to be blocked. All land with access is actually in the transit zone. Forgive me if I don't have this quite right, but I think you need to have a settlement to transfer cargo to a land transport which can go to the Silk Road. I can't build a settlement in the Silk Road access zone, and there is no other land up there. The only thing I could think of is this: There is access to the Silk Road from a water tile. Maybe I can sail there. I'd actually prefer this to land access, since I wouldn't have to build a settlement up there, and defend it. But that's not allowed at this time.
[EDIT] The same seems to have happened at the south polar region, though I haven't fully explored it yet. Attaching a samefile.
I notice that the transit zone bends around the land. In some cases (in the center of the map) there are no transit sea tiles. At the edges there are.
I would like to have sea access to the Silk Road.
I tried loading the save but it want load for some reason. You are using the map named "Medieval_FaireWeather" script right? You don't have to have a settlement built on an "access to Silk Road" tile, you just need to move your unit to the access point. Each map will be different somewhat as far as how you can reach the Northern and Southern Silk Road routes. In the screen shot each north and south Silk Road regions have a "land bridge" that connects them, this is ideal in that players will have to explore, make negotiations, purchase land perhaps, and build roads in order to access the Route. Some maps may not have the land bridge in that case you'll have to build a port colony just to load and unload goods. We may can add in the ability to build just "trading post" colonies that can be dismantled in need be, to keep them from being captured. However, the whole purpose of the Silk Road was to have a "land based" route and add in a new kind of strategy. If we make it a Sea Route then there is no such strategy.
We need better domestic economy. Right now you earn nothing in the beginning and once you get a certain invention you start to sell lots of the yield you can produce and money is no longer an issue. It is way too easy to sell automatically to locals and earn a fortune without the risk of bandits, pirates and similar during the journey.
RaR has a system where units wants to buy yields and the marked in a city will never be able to sell more than the demand from it's citizens. That way it can provide an income, but you can't suddenly sell 200 units of a yield inside your own country. This mean if you want to profit from domestic sales you have to move your goods around to reach the cities with the customers instead of just selling in one city. Colonization 2071 has a similar system, except buildings can create a demand as well as units. However unlike RaR it can't disable domestic sales, which is annoying if there is a demand for the yield you are also stockpiling because it's needed for a building.
We already have one thing for a domestic marked, which is the domestic advisor screen for it. Remember that we are using the same file as RaR meaning the whole screen is there, but it is disabled by XML settings in M:C. Sure we might need to change it a little bit to fit our needs, but most of the needed code is already there.
Moving the yields around between cities was rather annoying in RaR, but we have feeder service, which is designed with tasks like this in mind. RaR 1.7 will have feeder service too.
We need better domestic economy. Right now you earn nothing in the beginning and once you get a certain invention you start to sell lots of the yield you can produce and money is no longer an issue. It is way too easy to sell automatically to locals and earn a fortune without the risk of bandits, pirates and similar during the journey.
RaR has a system where units wants to buy yields and the marked in a city will never be able to sell more than the demand from it's citizens. That way it can provide an income, but you can't suddenly sell 200 units of a yield inside your own country. This mean if you want to profit from domestic sales you have to move your goods around to reach the cities with the customers instead of just selling in one city. Colonization 2071 has a similar system, except buildings can create a demand as well as units. However unlike RaR it can't disable domestic sales, which is annoying if there is a demand for the yield you are also stockpiling because it's needed for a building.
We already have one thing for a domestic marked, which is the domestic advisor screen for it. Remember that we are using the same file as RaR meaning the whole screen is there, but it is disabled by XML settings in M:C. Sure we might need to change it a little bit to fit our needs, but most of the needed code is already there.
Moving the yields around between cities was rather annoying in RaR, but we have feeder service, which is designed with tasks like this in mind. RaR 1.7 will have feeder service too.
I like this idea and I have thought about something along these lines as well. I also thought of tying this in with some kind of happiness factor.
Others have also mentioned before that the Domestic Market is initially quite a fun feature, but can eventually cause so much micromanagement that it ends up becoming very frustrating. I agree with this; I think the Domestic Market is a very interesting and realistic feature allowing the local economy to become gradually more independent from Europe; but with many cities and many yield types to keep track of each turn, it really can get to the point where the resulting micromanagement can become very excessive and not fun at all to deal with (and also not very manageable for AI). I know some people will still enjoy having the possibility of making and managing very large amounts of automated trade routes; but for me the sheer number actually does become too frustrating a chore and will make me stop playing since it can just become much too tedious, even with automation.
From the viewpoint of realism, a lot of domestic trade happened naturally by small "laissez-faire" independent traders between local settlements, and was not centrally managed by needing very large amounts of planned trade routes and treks. From the viewpoint of the AI, optimal trade routes considering all demand and supply of all goods between all cities can just be too difficult for it to plan far ahead very well, making it do less well than humans.
So, what is a way that could allow Domestic Market to be a realistic model of internal trade that's fun and manageable for players (and more fair for AI players to use), while still allowing benefits from optimal micromanagement of domestic trade routes for players who enjoy that? I've been thinking about that a while, and I think the solution could be to allow for some possibility of natural trade between local domestic cities, while still giving a benefit if you can optimally manage trade routes and local supply/demand.
This could be done by a method similar to the following function, run once at the end of the turn.
Code:
* For each city (CityA), if it doesn't have enough Yield to satisfy local demand, then:
* For each of that player's other cities (CityB) :
* If the other city is set to sell that Yield, and the other city has excess supply ((other city's supply - other city's demand) > 0):
* subtract this excess supply from CityB, and treat it as consumed in CityA's Domestic Market.
* charge a slight gold penalty for transport, proportional to distance between the two cities.
In this way, there's a realistic ability for cities selling excess goods to satisfy demand from their neighbors, but there's still an advantage to efficiency if you're able to plan your economy well to satisfy domestic demand locally or from trade routes. I think it provides the best of both worlds, in allowing maximal micromanagement through Wagon Train routes if you want that, and allowing you to function reasonably well if you don't.
An alternate algorithm that could be even quicker:
* At the beginning of the Domestic Market phase, do a single calculation adding up a national total for Domestic Excess Supply: this is the sum of (local supply - local demand) for all cities which have excess supply and are set to sell that Yield.
* For each city, if it doesn't have enough Yield to satisfy local demand, it can consume some to be subtracted from the total Domestic Excess Supply, charging a slight penalty for transport.
* At the end of the phase, the total amount consumed from Excess Supply is subtracted proportionally from the cities that had excess supply and are set to sell.
I think this also might be computationally less expensive than directly schlepping around large numbers of yields physically via trade routes between lots of cities using Wagon Train units, so this might help the game run faster in the late game for games with large maps and large numbers of routes.
I'm proposing a new variant to the family of domestic sales. The sales each turn should be considered raw material consuming, like blacksmiths consume ore. This influence the change at the bottom row and avoids the col2071 problem where it says +2, but you only get one because the other one is sold. Even more importantly the AI is capable to moving yields around to supply the need. It's not a matter of telling the AI how to do it, it's a matter of implementing this in the code the AI is already able to handle well.Yeah I agree. Having some actual supply/demand generated within your colonies makes things way more interesting. The Domestic Economy feature that allows generating demand from citizens/buildings was first developed by Androrc in his modcomp here which was included in the ancient 2071 version; RaR uses a variant of this too but doesn't include the ability for buildings to affect local demand (but it does allow disabling domestic sales, which is rather a crucial feature as Nightingale pointed out!) The current M:C system is good in that it allows buildings that enable domestic sales; but it doesn't yet generate actual demand from units/buildings, thus the problem that passively selling things in one city can become easy if demand is never saturated and the price stays up.
One feature I considered for RaR (but never implemented) is to set the city governor to manage imports. It should use the same code as import feeder service to meet the demand. The difference is that it should auto set the threshold to fit the increasing demands from the city. Say you build a new building, which needs a single silver each turn. In that case the governor detects this, sets import feeder on and threshold to say 10*consumed each turn. Next you add a citizen, which also consumes silver and he will increase the threshold. I haven't worked out the details, but this is the idea. Keeping track of demands in say 15 cities is way out of what I would consider fun.In RaR, a common feedback from players was that Domestic Markets was itself a fun feature in the beginning, but it just became too overwhelming or tedious to need to track everything on an individual basis each turn (i.e. Williamsburg needs exactly 3 Coats; time to ship 4 Cigars to Roanoke, Boston needs 6 Rum and 8 TradeGoods this turn but keep in mind next turn 2 new Indentured Servants will be arriving, etc etc).In M:C the feeder service makes trade routes easier to manage; this will improve things but part of the issue remains that the sheer number of individual transport decisions that would need to be made, tracked and updated can eventually get rather large and burdensome. You'd eventually need swarms of Wagon Trains (or Pedlers) everywhere picking up and dropping off small amounts of individual yields, which would create a big drag on late-game performance.
Hmm, that's a good idea to treat domestic market sales as part of the standard yield consumption rather than a separate system.I'm proposing a new variant to the family of domestic sales. The sales each turn should be considered raw material consuming, like blacksmiths consume ore. This influence the change at the bottom row and avoids the col2071 problem where it says +2, but you only get one because the other one is sold. Even more importantly the AI is capable to moving yields around to supply the need. It's not a matter of telling the AI how to do it, it's a matter of implementing this in the code the AI is already able to handle well.
Yeah there might be some performance issues. Also I noticed that feeder service efficiency drops as you get more land. You might import lumber from 30 plots away even though you have a surplus 4 plots away. I'm considering making transport areas and each transport can assign to one. The transport would then ignore all transport lines which starts or ends outside that area. It should then be possible to make a transport area consist of just two cities meaning transport between different areas will still be possible. This should allow a more efficient automated transport net in big civs. However I haven't figured out how to actually code this. As you said performance could be an issue. It needs to be implemented a bit more clever than transport figures out where to go and if it's invalid it tries again to find something else.