Feedback and Suggestions

It would be cool if there was some kind of Note taking system in the game. I find myself always forgetting what my plan was for certain cities, or forgetting why I sent this Peddler to this Indian village. Was it for a certain Yield I was needing, or to found a Trading post, or was it to Learn from the Natives? Geez, I don't know, what the hell, just buy some damn Spice, and train him to be a Farmer from the Natives. Ten turns later I see my new Winery hasn't been built because it lacks 3 Tools and that is why I sent my Peddler to the Natives to buy some Tools!!

SOB, just how could this be addressed I wonder? I'm sure Lib has this problem as well;). Perhaps something like a Strategy Note System could be added to the game, if we are able to input and save strings of text. I know we can enter things like new Unit/City names, and also add land marks from the World Over Head screen, but that isn't really all that convenient.

So, it would be cool if we had a new Command for Units/Cities where we could add a Strategy Text to the Unit that would appear in the mouse over Help Text. Also, there could be an Icon that appears with a counter that tracks how many of these Text we have out, what Unit or City is involved and what the Text says. Also, you can click the Icon to swap to the next Unit/City. Like for a City you could type, "At turn 105, change Lumberjack to produce Lumber". Then you could check your Texts before the end of each turn to see what you was thinking.

Also, there could be this really awesome new Mission system added that allows you to set up Missions like. Click Custom Mission, then Foreign Delivery Mission, then Click Foreign City, then Click What Yield to Purchase and how many, then Click the Destination City. That would rock!!
 
I would love a note system as well. Custom city names are saved meaning it should be possible to save custom strings. In fact if I recall correctly, the chatlog is saved too. RaR recently gained traderoute groups with custom names. We might learn something from looking at the code there. However I did look at syncing names over the network and.... oh dear. That looks rather complex and I still plan on getting M:C to work in multiplayer. However I suspect that if we figure out how the strings are transmitted over the network using some python code, we can send network packages with a custom set of variables. That would be totally awesome.

Right now I have very little idea on how I would implement anything like this though. Also there are other tasks, which I give higher priority.
 
"I'm sure Lib has this problem as well"

I swear we had that note taking conversation almost to the letter probably sometime last year! :D

My first thought was what if this could be attached to the right click of the mouse.

Or a particular Click+Key that opens up either a text box that you can write anything in, or something like a 'predictive' text selector. Then when you push and hold the Key(or another key) all the text boxes become visible so with a push of a key you can see all your thoughts. notes and plans that you previously had.

What I mean by a predicitive text selector is something along the line of you click on a city on the map and a box appears and has words to choose from like:

Buy
Sell
Train
Build

pick one and another set of words appear:

Buy = (Yield list) = (Number selection)

Or

Build = Mission/Trade Post

etc.
 
"At turn 105, change Lumberjack to produce Lumber".
This reminds me, it would be awesome to have some extra Governor/Steward intelligence that auto did things like the above. Say you have a Peasant Carpenter building a critical objective, but you have an Expert Lumberjack... obviously your Lumber would greatly out number your Hammers if left to their jobs. So, it would be awesome to have code what would swap the Expert Lumberjack to Carpenter profession at the most opportune time and then swap back to Lumberjack when needed. This reciprocating action will produce the Objective build much faster. The Player could do this manually but what a PAIN :cry: it would be... also, I'd simply forget about it (thus the need for above notes post).

What could such a system be called, and how could the interface be setup? You wouldn't want this on by default as not always would you want this as you may want the extra Lumber to go to another city. Perhaps there could be a new Emphasize for Emphasize Current Production and then the AI will do the above swapping to maximize the Hammer Output. This would work for any production actually, as you could use Wine production in the same scenario, by swapping in and out a Expert Vine Dresser you could maximize your Wine Production.
 
Emphasize is intended to solve problems like that. However the AI handles experts rather poorly, which mean you could end up with the expert lumberjack working as a carpenter while some other unit works as a lumberjack.

My idea is that after all units in the city have been assigned by the AI, do following:
  1. loop all units
  2. for each expert A, look up the preferred profession (XML or calculated by DLL)
  3. loop all units (B loop)
  4. For each unit with the same profession, compare what the output would be if A took over.
  5. After B loop, switch unit A with the unit in B loop where A would supply the best result
  6. Find best profession for the unit where A just took over
If we do that, it would not really matter that the AI assigns the carpenter to lumberjack profession because the expert lumberjack will be swapped in later. Hopefully this will make both AI cities and cities with emphasize work better.

The only big issue with this approach.... performance could be an issue.


Also the AI might have to learn that if hammers is emphasized, it looks up the input yield for hammers and produce that one if there aren't enough. Essentially the AI needs to be aware of production chains. Maybe if hammers have top priority, lumber normal and everything else is lower than that.


Another thing. Feeder service is great if you produce 10 lumber in one city and consume 3 in 3 cities.
 
One thing I wonder Night, and you will probably know the answer to this more than anyone else.

Is there any 'downside' you can think of to having feeder service on, if not, would it be better if feeder service was just on by default?

Most people won't really understand what feeder is or does (at least right away) but from all our talks about it, it seems like it is always beneficial...
 
Is there any 'downside' you can think of to having feeder service on, if not, would it be better if feeder service was just on by default?
We could argue that it could make sense to have it on by default for something like lumber, but I want to remove hardcoded yields, not add more.

However it would be bad to put it on in general. It would need to know what level of yields to store. Imagine default setting is 50 barley. Your transports will then fill all your cities with 50 barley before it stockpiles in the city where your traders pick it up to export it. In this case it would be better not to use feeder service and just send everything to the pickup point.

There might also be a performance impact. Each transport loops all traderoutes. Putting on feeder service everywhere mean that there are a whole lot more traderoutes to loop. This is true even if the cities are in off mode due to their stockpiling.

The consumption multiplier would likely more or less do what you are asking for. It will gather yields suited for the buildings in the city. This will include lumber since lumber is the input to a building.


Writing about performance issues gave me an idea. We can split the import bool into two bools. One is the user requested by the checkbox and the other is the current code for the behavior of that checkbox. That way feeder service should be able to actually turn import off, hence removing all traderoutes to that city if it is only kept active by feeder service. This would greatly reduce the number of traderoutes to loop.
 
Emphasize is intended to solve problems like that.

Hmm, never tried it. I wonder how close it would get to actually doing as I say. Will have to test it out.


Another thing. Feeder service is great if you produce 10 lumber in one city and consume 3 in 3 cities.

The only thing I don't like about "Feeder service" is the title Feeder, it just sounds strange in this situation in my English. Growing up a "feeder" was something you put feed in so it would say, allow your chickens to eat from all day and not have to trounce or poop all over their food. And it doesn't give a good indication of what it actually does, in my understanding of English. Perhaps more educated folks might see the connection, sorry, I am part hillbilly:confused:

Anyway, I haven't started pondering over alternative wording yet, but I may do it soon:D
 
The only thing I don't like about "Feeder service" is the title Feeder, it just sounds strange in this situation in my English.
The intended purpose is to stockpile say 100 lumber in cities not producing lumber. The "feed" those cities. We are (presumably) going to redesign a bunch of automated transport threshold in the near future. If you want a new name, then propose one :)
 
but what if feeder service is on by default, and you leave your yield numbers at 0?

Does anything bad happen?

If a yield is set to 0 won't feeder service just ignore it, then when you set a number you get the 'enhanced' ai of the feeder system.

I think partly the idea is that 'feeders' are designed to keep whatever is going into a system, such as:

Food into Chickens
Or
Wool into a weaving machine
Or
Steel into an assembly line.

This substance enters the system 'properly' every time. So the food doesn't get trampled, the wool doesn't get tangled and the steel goes in lying flat.

This is what feeder service does, it stops the yields getting 'tangled up' on entry to a city, in the way night has described.
Like instead of dropping and leaving the right amount.
It drops it all, picks it all back up and constantly holds it in an every increasing mess that you don't want.
Feeder Service smooths this out and makes eveything process the way you want it to.
 
but what if feeder service is on by default, and you leave your yield numbers at 0?

Does anything bad happen?
WIth the current code: yes. It will create a huge amount of unneeded traderoutes, which slows down the game. Besides if the threshold is 0, they will not do anything.

The current system is an addon to vanilla. I want to make a new system where the checkboxes are what the player request (read: force). We can then add some "administrators" to handle certain tasks, such as supply construction, buildings, marked and export surplus.

Say we enable all administrators, but otherwise will not touch the settings. The administrator will notice that the construction is missing tools and turn on import. Once there is enough, he will turn it off again. If the city gained too many tools, it will start exporting and then turn off export when all the tools are gone.

Maybe the administrators could be on by default. They certainly should be for AI players.

Maybe it would be good with a checkbox telling administrators to ignore specific yields, like being able to export surplus, but stockpile weapons.
 
Could you add some kind of a check to the feeder code that ignores feeder if 0?
It has, but that's part of the problem. In order to figure out that the traderoute should be ignored, the route is looked up, the destination city is looked up and there it checks the bool, which tells if the route should be ignored or not. It can't be done any faster than that and it is somewhat fast. However even if it is fast, the combined time spend doing this grows if many routes have to be checked. In fact that is the general performance issue in both M:C and RaR now. There is no horribly slow code left. It's just a matter of some of the code being called over and over.
 
Ok yes I see.

Could it auto switch the feeder on if you add a number to the box?

Or would that just cause the exact same issues in a slightly different way? (the constantly checking drain)

It was just everytime I looked at the feeder box when I was adding numbers, I would think 'do I need that on or not?'

In that situation, would there be any reason not to have it on?
 
The current system is an addon to vanilla. I want to make a new system where the checkboxes are what the player request (read: force). We can then add some "administrators" to handle certain tasks, such as supply construction, buildings, marked and export surplus.

Say we enable all administrators, but otherwise will not touch the settings. The administrator will notice that the construction is missing tools and turn on import. Once there is enough, he will turn it off again. If the city gained too many tools, it will start exporting and then turn off export when all the tools are gone.

Maybe the administrators could be on by default. They certainly should be for AI players.

Maybe it would be good with a checkbox telling administrators to ignore specific yields, like being able to export surplus, but stockpile weapons.

I like the idea of "Administrators" or more options for the Governor/Steward. Right now we have Automation on or off and the settings in Export/Import, but it would be nice to have more options there with its own set of Buttons.

For the Feeder Service, I've looked into some new terms and basically what it is doing is Distributing certain goods automatically, so I propose Distribute as an alternative word, or Distribute Evenly even.

Well, from what I can tell the Governor isn't working in M:C when it comes to Emphasizing. I turned on Emphasize hammers, turned on automated citizens and the AI stopped all production of Hammers. I currently have to much AI emphasis on Luxury Food. I had that for the AI so that would produce Luxury Food to make Nobles, but that was before we made it so that Luxury Food is produced along with Skins by Trappers. No the AI wants to over load with Trappers so I need to adjust this.

One crazy idea is to have Units earn promotions and get better at Administrators. So, when you have a Unit working in your city as a Steward and it has Expert Distributor promotion it unlocks Feeder Service, and things like that. If we had enough Administrator options this might be a cool thing.
 
There is no horribly slow code left.

Have you checked out all my latest code over the past several months:confused::eek:

Maybe before next release you can do another scan thingy and see if you find any bottle neck spots.:nuke:
 
Well, from what I can tell the Governor isn't working in M:C when it comes to Emphasizing. I turned on Emphasize hammers, turned on automated citizens and the AI stopped all production of Hammers. I currently have to much AI emphasis on Luxury Food. I had that for the AI so that would produce Luxury Food to make Nobles, but that was before we made it so that Luxury Food is produced along with Skins by Trappers. No the AI wants to over load with Trappers so I need to adjust this.
You know having the governor take care of what unit to place where is precisely what the AI does in all cities. If you broke it by some not thought through code, then you broke the AI. I think it would be best to simply remove your broken addon. The AI code is possibly the most complex part of colonization and just hacking one simple addons will likely make it worse. The AI is likely also the hardest part to test as it can do something really buggy and stupid and it will never appear on your screen. For instance normally you would never notice if the AI could increase production simply by swapping experts in the cities because you never get to see what goes on in their cities.

Maybe the real solution for AI monitoring is to make a debug feature, which allows double clicking on foreign cities. Could also be useful for vassal states.

I can't find any AI function to make it love luxury food. Wherever it is, it is likely in a poor location considering that I just looked through AI code to assign value to yields.
 
Well, I did some extensive work on it at the time. I wanted the AI to produce Nobles so they would have Knights, this was way before we added all the other Luxury Food classes. They only produce Luxury Food when they were able. First they would need to create the Buildings, then have Spice and Cattle then the AI would chose to make Luxury Food. I used AI autoplay many times to test things out and the AI would win its Conquest a good percent of the time. Its probably been two years ago that this was added.

Anyway, you can press Ctrl-Z to enter some kind of debug mod where you can click on any city and bring up its City Screen. Any references to CurrentPlayer in Python will of course be the Human player.

I didn't add a new function for this I just used the existing code but added extra importance to Luxury Food and its required materials.

You can also press Alt-Z to swap to controlling the Next Player inline. Looking at the Ostrogoths they have 43 total units(I have 75), 13 of them are military, with 76% Fealty... I only have 1% :( Clearly the AI puts more emphasis on Fealty while I put more on Units.

Anyway, I'll adjust the code before next release if you don't figure it out.
 
Back
Top Bottom