MapFinder proposal for more flexible Rule selection

Sun Tzu Wu

Deity
Supporter
Joined
Mar 26, 2007
Messages
7,920
Motivation for the proposed change:

The current Rule Selection has a "Rule Category" and "Rule Selection" plus the Min and Max numbers that determines whether the rule matches based on the number of tested Tiles that match.

The simple "Rule Category" and "Rule Selection" is a bit cumbersome and not very flexible, especially for matches that must test several different attributes of a Tile. These attributes include whether the Tile has a particular Base Terrain (Ocean, Coast, Lake, Ice, Snow, Tundra, Plains, Grassland, Desert), a Hill, a Forest, a Jungle, a Floodplain, a Riverside, a Lakeside, a particular Resource, a Hut and even the presence of the Settler.

The current Rule selection process becomes cumbersome because it enumerates many combinations of these attributes, but can't possibly list them all without becoming so cumbersome that Rule selection becomes tedious to use. Also, the combinations provided are so limited that it can take dozens of rule groupings to define a search that should take as little as two rule groupings. Furthermore, the vast majority of all non-trivial searches that should be definable are impossible due to severe limits on what a Rule can currently specify.

Here is an example of a Tile that should be easy to specify, but is currently impossible to do: A simple Riverside, Gold Resource on a Plains Hill. The solution is not adding this combination as a new "Combo Types", because there are hundreds of other such combinations that should also be added and MapFinder will still be missing combinations that Players want to use when the 123rd release of MapFinder is due out.

Proposal for Rule drop-down menu redesign:

Instead of two complicated Rule drop-down menus, there will be seven simple drop-down menus:

  • Terrain.....Hill...........Feature...... Water........Resource....Hut...........Settler
  • ------......---..........-------....... -----.........--------.....---...........------
  • Anything...Anything...Anything..... Anything....Anything....Anything....Anything
  • Ocean......Flat..........None.......... None/Dry....None.........None.........None
  • Coast.......Hill...........Forest......... Lakeside....Aluminum....Hut...........Settler
  • Lake.......................Jungle......... Riverside....Coal
  • Ice.........................Floodplains... ...............Copper
  • Snow....................................... ................Horse
  • Tundra..................................... ................Iron
  • Plains....................................... ................Marble
  • Grassland.................................. ................Oil
  • Desert...................................... ................Etc.

Note that the first item is each drop-down menu is Anything, which is always the default item for any drop-down menu. Also, note that except for the Terrain drop-down menu, the second item is always None (or Flat = No Hill). These two items are essential for making the seven drop-down menus work well together in minimizing the number of needed Rule Groupings (Rule file size and complexity). Each drop-down menu contains orthogonal (independent) items that can be freely combined to define the exact Tile attributes desired, especially the "don't care" item Anything which greatly reduces the number of Rule Groupings (avoids the enumeration of every item under Anything as required under the current MapFinder Rule selection process and the resultant explosion of Rule Groupings that results).

Note that there may be reasonable of ways of combining the five menus Hill, Feature, Water, Hut and Settler drop-down menus into 2-3 menus of combination items, but that would detract form the simplicity of having seven drop-down menus.

Please respond to this with your questions, comments and criticisms of the above MapFinder Rule drop-down menu redesign proposal.

Sun Tzu Wu
 
I stopped using mapfinder 6 months ago, for some of the reasons that you gave.
I don't know if you consider that useful feedback though >.<
 
I like this idea :goodjob:

A couple of refinements, I think:
add Oasis to the features list.
change "Lakeside" to "Fresh Water", which encompasses lakeside, oasis-side and riverside.

I assume resource groups will stay in the resource column, so the only thing I can think of that you've missed out is tile yields. (not too much of an issue, really)
 
it would be better if mapfinder was easier to use, this idea does look more straightforward.
Does it allow for you asking to start on a plains hill?
 
I agree too 100%

Instead of making complicated rules my rules are very simple

like:
Mining Resource = 2
Food Resource = 1

If I run map finder over night, the above rule will result in 15-25 maps deepening on map type and then I maybe use 3 or 5. Great if I could reduce number of good maps.

Edit: I had to use a dictionary/thesaurus to understand the word cumbersome (unmanageable) :)
 
Not completely clear what you proposed, but it seems on the way of a good change.
I stopped bother with the rules 'cause the priorities are not clear.
Usually i watch the map to see if the start is OK for me and i stop MF manually or i take what it gives to me, often rubbish.

Often it not saves very good starts.
 
I like this idea :goodjob:

A couple of refinements, I think:

Thanks for your support and suggestions.

add Oasis to the features list.

Meant to add Oasis as a special type of Terrain, but it does fit better under Features, since it can't exist with any other Feature in the Feature drop-down menu.

change "Lakeside" to "Fresh Water", which encompasses lakeside, oasis-side and riverside.

I wanted all items in each drop-down list to be mutually exclusive, except the special Anything item, but I must admit that your suggestion to redefine "Lakeside" to "Fresh Water" (including "lakeside, oasis-side and riverside") is better.

I assume resource groups will stay in the resource column, ...

Yes, any resource grouping can be listed in the Resource drop-down menu. I would order them in roughly the order of expected use: Camp, Farm, Fishing, Pasture, Plantation, Quarry, Strategic, <the nine individual Strategic Resources>, Happiness, <the nine individual Happiness Resources> Health, <the nine individual Health Resources>, Food, Hammer (new) and Commerce. Three sub-menus for Strategic, Happiness and Health could be used to keep the drop-down list length down to about a dozen items rather than than a huge list of about 40 Resource items.

... so the only thing I can think of that you've missed out is tile yields. (not too much of an issue, really)

I don't really think that Tile Yields fit into the proposed Rule selection method. As I understand it, for each Tile Yield the Sum of each Yield is Computed over the visible test Region and compared to the desired range as opposed to all other Rules where each matching individual Tile is counted and the Final Count is compared to the desired Range. Tile Yields could still be included as an Alternative Rule using its own drop-down menu.

Sun Tzu Wu
 
I stopped using mapfinder 6 months ago, for some of the reasons that you gave.
I don't know if you consider that useful feedback though >.<

PaulisKhan, thank you very much for your feedback. It is very important to know that some Civ4 Players have given up on using MapFinder due to some of its limitations. This means that there is a real need for improving MapFinder's interface so it can be easily used to find the Starts that are reasonably close to the Civ4 Player's theoretical ideal Starting Position (for the Game/Victory Condition he intends to play).

Sun Tzu Wu
 
Settler on a Plains Hill:

it would be better if mapfinder was easier to use, this idea does look more straightforward.
Does it allow for you asking to start on a plains hill?

Yes, my proposal makes this selection quite easy:

1) Select "Plains" in the "Terrain" menu
2) Select "Hill" in the "Hill" menu
3) Select "Settler" in the "Settler" menu
4) The other four menus should be left at the "Anything" selection.

# Terrain.....Hill...........Feature...... Water........Resource....Hut...........Settler
# ------......---..........-------....... -----.........--------.....---...........------
# Plains.......Hill..........Anything..... Anything.....Anything....Anything....Settler

The current MapFinder can also do this, but it requires four Rule Groupings to work correctly, assuming you don't care whether the Plains Hill has a Riverside:

Group #1: Rule #1: Combo Types, Settler on Plains Hill

Group #2: Rule #1: Combo Types, Settler on River Plains Hill

Group #3: Rule #1: Combo Types, Settler on Plains Hill Forest

Group #4: Rule #1: Combo Types, Settler on River Plains Hill Forest

The problem here is we must enumerate every way a Settler can be on a Plains Hill, because we probably don't literally mean just a Settler on a Plains Hill. We probably don't care whether there is a Forest there as well. Also, while a Riverside is desirable, we probably don't want to reject a Settler on a Plains Hill, if it has no River (maybe it is next to a Lake or Oasis) plus we may want to consider it even if there is no Fresh Water.

It becomes More Cumbersome when adding a single conceptually simple Rule, Gems without Jungle:

This isn't too bad, but just add another generic (combination) Rule that similarly also requires its own eight Rule Groupings (there are three binary items to enumerate over rather then just four; 8 = 2 * 2 * 2). Here is a realistic example of a generic (combination) Rule that currently requires eight Rule Groupings: "Gems without Jungle"

Group #1: Rule #1: Combo Types, Gems on Grassland

Group #2: Rule #1: Combo Types, Gems on Grassland Hill

Group #3: Rule #1: Combo Types, Gems on River Grassland

Group #4: Rule #1: Combo Types, Gems on River Grassland Hill

Group #5: Rule #1: Combo Types, Gems on Plains

Group #6: Rule #1: Combo Types, Gems on Plains Hill

Group #7: Rule #1: Combo Types, Gems on River Plains

Group #8: Rule #1: Combo Types, Gems on River Plains Hill

We actually need more Enumerations to completely define "Gems without Jungle", but the current MapFinder doesn't provide those combinations under its "Combo Types". The above eight Rule Groupings do provide fairly good coverage though.

To ensure that we match both generic (combination) Rules, "Settler on Plains Hill" and "Gems without Jungle", we have to define 4 x 8 different pairs of the two separate generic (combination) Rules. Thus we end up with 32 Rule Groupings of 2 Rules each. The resultant 32 Rule Groupings is left as an exercise for current MapFinder users.

Sun Tzu Wu
 
Not completely clear what you proposed, but it seems on the way of a good change.
I stopped bother with the rules 'cause the priorities are not clear.
Usually i watch the map to see if the start is OK for me and i stop MF manually or i take what it gives to me, often rubbish.

Often it not saves very good starts.

Thank you for your comments, Blubmuz. Again, it is "good" (actually unfortunate) to hear that significant numbers of Civ4 players have difficulty using MapFinder in the way it was intended. MapFinder is cumbersome to use, even for Civ4 Players with wide experience interfacing with various programs. It took me a long time to understand its limitations and to define rules that actually made my search for good starts shorter with it than without it.

To help everyone understand what I'm proposing, I realize now that I need a lot of examples to demonstrate that it would be at least a significant improvement over the current MapFinder Rule creation process.

Minor changes in the Proposal:

First, I'd like to change a few of the names of the seven Menu Headings. Replace Menu Heading "Hill" to "Elevation" and "Settler" to "Unit". Next, I'd like to add "Oasis" to the "Feature" list. Add "Salt" to the "Water" list. Add "Scout" and "Warrior" to the "Unit" list. Replace "Lakeside" with "Fresh" within the "Water" list. Finally, add <Resource Groups>, Camp, Farm, etc. to the "Resource" list. "Scout" and "Warrior" were added to the "Unit" list simply to clarify the purpose of the "Unit" list; I'm not implying that having the Scout or Warrior on a particular Tile is at all useful. (I must thank ZPV for most of these suggestions.)

Instead of two complicated Rule drop-down menus, there will be seven simple drop-down menus:

  • Terrain.....Elevation...Feature...... Water........Resource....Hut...........Unit
  • ------......---..........-------....... -----.........--------.....---...........------
  • Anything...Anything...Anything..... Anything....Anything....Anything....Anything
  • Ocean......Flat..........None.......... None/Dry....None.........None.........None
  • Coast.......Hill...........Forest......... Fresh.W.....Camp........Hut...........Settler
  • Lake.......................Jungle......... Riverside....Farm.........................Scout
  • Ice.........................Floodplains... Salt..........Fishing......................Warrior
  • Snow......................Oasis.......... ................Pasture
  • Tundra..................................... ................Plantation
  • Plains....................................... ................Quarry
  • Grassland.................................. ................Strategic
  • Desert...................................... ................Strategic -> Sub-menu of nine
  • ............................................... ................Happiness
  • ............................................... ................Happiness -> Sub-menu of nine
  • ............................................... ................Health
  • ............................................... ................Health -> Sub-menu of nine
  • ............................................... ................Food
  • ............................................... ................Hammer (new)
  • ............................................... ................Commerce

"-> Sub-menu of nine" above means a sub-menu of the nine Strategic, Happiness and Health Resources respectively. Alternatively, all individual Resources can be listed right after their category (Strategic, Happiness and Health) without resorting to sub-menus.

More examples of how the new proposal would simplify Map Start selection:

Example #2: Rule that matches one or more Plain Hills Gold (m.M below = min..Max)

Terrain.....Elevation...Feature...... Water........Resource....Hut...........Unit....... m.M
Plains.......Hills..........Anything..... Anything....Gold..........Anything....Anything. 1.999

Example #3: Same as example #2 above, except it must also have a Riverside

Terrain.....Elevation...Feature...... Water........Resource....Hut...........Unit........ m.M
Plains.......Hills..........Anything..... Riverside....Gold..........Anything....Anything.. 1.999

Example #4: Settler on Plain Hills, Grassland Corn, two or more Riverside Plain Hills Gold

Terrain.....Elevation...Feature...... Water........Resource....Hut...........Unit........ m.M
Plains.......Hills..........Anything..... Anything....Anything....Anything....Settler..... 1.1
Grassland..Flat..........Anything..... Anything....Corn.........Anything....Anything.. 1.999
Plains.......Hills..........Anything..... Riverside....Gold..........Anything....Anything.. 2.999

Example #5: Settler on Plain Hills, Grassland Pigs, two or more Riverside Plain Hills Gold

Terrain.....Elevation...Feature...... Water........Resource....Hut...........Unit........ m.M
Plains.......Hills..........Anything..... Anything....Anything....Anything....Settler..... 1.1
Grassland..Flat..........Anything..... Anything....Pig............Anything....Anything.. 1.999
Plains.......Hills..........Anything..... Riverside....Gold..........Anything....Anything.. 2.999

Example #6: Settler on Plain Hills, Grassland Corn, two or more Riverside Plain Hills Gold or Riverside Grassland Hill Gems (including one of each)

Group #1 (2 Gold)

Terrain.....Elevation...Feature...... Water........Resource....Hut...........Unit........ m.M
Plains.......Hills..........Anything..... Anything....Anything....Anything....Settler..... 1.1
Grassland..Flat..........Anything..... Anything....Corn.........Anything....Anything.. 1.999
Plains.......Hills..........Anything..... Riverside....Gold..........Anything....Anything.. 2.999

Group #2 (1 Gold and 1 Gems)

Terrain.....Elevation...Feature...... Water........Resource....Hut...........Unit........ m.M
Plains.......Hills..........Anything..... Anything....Anything....Anything....Settler..... 1.1
Grassland..Flat..........Anything..... Anything....Corn.........Anything....Anything.. 1.999
Plains.......Hills..........Anything..... Riverside....Gold..........Anything....Anything.. 1.999
Grassland..Hills..........Anything..... Riverside....Gems........Anything....Anything.. 1.999

Group #3 (2 Gems)

Terrain.....Elevation...Feature...... Water........Resource....Hut...........Unit........ m.M
Plains.......Hills..........Anything..... Anything....Anything....Anything....Settler..... 1.1
Grassland..Flat..........Anything..... Anything....Corn.........Anything....Anything.. 1.999
Grassland..Hills..........Anything..... Riverside....Gems........Anything....Anything.. 2.999

Example #7: Settler on Plain Hills with Salt Water, two Fishing Resources, two or more Riverside Plain Hills Gold

Terrain.....Elevation...Feature...... Water........Resource....Hut...........Unit........ m.M
Plains.......Hills..........Anything..... Salt..........Anything....Anything....Settler..... 1.1
Anything...Anything...Anything..... Anything....Fishing.......Anything....Anything.. 2.999
Plains.......Hills..........Anything..... Riverside....Gold..........Anything....Anything.. 2.999

Please try posting your own examples.

I'd especially like to hear of any flaws in this proposal.

Sun Tzu Wu
 
Between rules inside groups there are logic AND, between groups there are logic OR. To avoid options like for water None/Dry it would be great to have an No (logic NOT) checkbox in combination with the some of the drop-down menus like for water

No (checked)
Water
Salt

=> To avoid a starting point near salt water

Edit: correction about AND/OR....
 
We'll have a look of course but no promises.

Thanks! I must note that MapFinder as it is currently implemented is quite amazing in its capabilities, despite its (sometimes not so obvious) limitations.

Can you explain what the settler menu is for? I'm assuming it means you can select which tile the settler is on (plains hill, quarry resource etc).

Yes, the Settler menu is simply there to add the additional requirement that when the "Settler" item is selected, a Settler Unit must also be on the Tile being tested in addition to the other requirements in that Rule (Plains Hill, Quarry, Plains Elephant, etc.)

Since having both a "Settler" menu and a "Settler" item is confusing, I've renamed the "Settler" menu to the "Unit" menu and added "Scout" and "Warrior" items just to show that this menu need not be limited to the Settler unit.

Sun Tzu Wu
 
"Negation" checkbox:

Between groups there are logic AND, between rules there are logic OR. To avoid options like for water None/Dry it would be great to have an No (logic NOT) checkbox in combination with the some of the drop-down menus like for water

No (checked)
Water
Salt

=> To avoid a starting point near salt water

Excellent idea! I like your Negation check box idea a lot. It would appear on each menu as I understand it. It is far more intuitive than what I've suggested below.

However, I don't understand your logic AND and logic OR explanation above. My understanding is all rules within a group must be true for the Start to be saved, which seems to be most like an AND operation. Also, only one group needs to evaluate to true, for a start to be saved, so it seems that the groups are OR'ed together.

"Negation" item (needs more work - probably not worth pursuing):

I've also been thinking that some sort of negation would be desirable, but I'd prefer to add Negation item, maybe in an eighth menu that negates the entire Group it is a part of. This would allow for example a Rule specifying a "Mining" item in the Resource list and a second Rule with "Silver" item in the Resource list with the "Negation" item selected. The net effect would be to save the Start if it has a Mining Resource, except when that Resource is Silver. The positive effect of this would be needing only a single Group with the Negation item. Without the Negation item, Mining - Silver must be enumerated as Gems and Gold and would require two or more groups to specify. On second thought, I'm not sure the "Negation" item can be combined with any min..Max range to achieve the desired result in general. There may be specific cases that work out, but I'm not sure the Negation item would be worth the added complexity (at least in the sense I had planned to use it).

Sun Tzu Wu
 
Wow...there is an awful lot of discussion for something that works pretty well already. It is a free application that the HOF staff made out of the goodness in their hearts. I'm pretty happy with the current design for the limited situations where I use it (for Gauntlet games mostly).
 
"Negation" checkbox:However, I don't understand your logic AND and logic OR explanation above. My understanding is all rules within a group must be true for the Start to be saved, which seems to be most like an AND operation. Also, only one group needs to evaluate to true, for a start to be saved, so it seems that the groups are OR'ed together.
Correct:
What I meant was just that in your example there will be a save if all rules in ex 1 (group 1) OR ex 2 (group 2) OR ex 3 (group 3) is TRUE.

I should have write:
Between rules inside groups there are logic AND, between groups there are logic OR.

But I guess what you mean with your examples is different Rules files. Depending on leader/map/ type of game etc. you load a certain rule file (probably only one group but many rules).
 
Interesting approach, Sun Tzu Wu.

I think negation would still be an issue, though. If you check NOT for a list item, it implies anything else on the list is okay. The NOT would almost have to be on the whole line. Of course, you can do that with min/max=0. I fear that NOT logic would still have to be specific.
 
Interesting approach, Sun Tzu Wu.

I think negation would still be an issue, though. If you check NOT for a list item, it implies anything else on the list is okay. The NOT would almost have to be on the whole line. Of course, you can do that with min/max=0. I fear that NOT logic would still have to be specific.
Y, NOT should be an option with every drop-list

Ex (with present nomenclature)
Rule #1 Bonus Groups = Farm Resources => 1
Rule #2 Bonus Groups = Mining Resources => 2
Rule #3 NOT(Bonus Type = Silver)
Rule #4 NOT(Terrain Groups = Saltwater)

Gives you a starting site with at least 1 food (agriculture) and at least 2 gold/gem (no silver) and no saltwater tiles.
 
Y, NOT should be an option with every drop-list

Ex (with present nomenclature)
Rule #1 Bonus Groups = Farm Resources => 1
Rule #2 Bonus Groups = Mining Resources => 2
Rule #3 NOT(Bonus Type = Silver)
Rule #4 NOT(Terrain Groups = Saltwater)

Gives you a starting site with at least 1 food (agriculture) and at least 2 gold/gem (no silver) and no saltwater tiles.
With 7 dropdowns you can define pretty generic positive conditions. Using the quanties and NOT logic forces you to be more specific.

Putting a NOT on each dropdown might get you part of the way as long you only want to exclude one thing from a given list. You have to go to a second line for two terrain exclusions, etc.

Same way with quantities. Unless you want to have quantities for each dropdown you have to go to another line for different quantities.

Don't forget that whatever the interface looks like it has to be translated into code to do the checks. Change the interface, you have to change the code. You have to be real sure the interface and rules work for all conditions or you end up back here again. I guess that is what happenned the first time around. ;)
 
I guess that is what happenned the first time around. ;)
Great comment, I'm 100% convinced that this was something that you already have consider. Like Misix wrote "It is a free application that the HOF staff made out of the goodness in their hearts." Once more I love your comment :)
 
Back
Top Bottom