Tech Tree with AI Knowledge overlay

ruff_hi

Live 4ever! Or die trying
Joined
Oct 24, 2005
Messages
9,135
Location
an Aussie in Boston
So I've been playing with the BUG Mod for a year or so now, and I absolutely love it! Over that time I've written down some notes on the ways I would improve the BUG Mod. I decided to sit down this morning, take a break from the game I'm currently losing (curse you Peter and your damnable Frigates!), and list the things I'd absolutely love to see in a future version of the BUG Mod:

Diplomacy Advisor: I find the Diplomacy Advisor hard to read, and think my (and others) diplomacy game could improve greatly if the information it contained were made a bit more intuitively accessible. Here are some examples of what I mean:
  • Techs: Okay, this one is a pipe dream because I can imagine how difficult it would be to program (and I don't want to make too many ridiculous suggestions!) When I'm in a dire tech situation, I often print out an outline of the tech tree and use the "Can Research," "Wants" and "Will/Won't Trade" columns to work out where each of my opponents are in the tech tree. This helps me plan techs to research that other Civs will want. It would be incredible if it were somehow possible to reproduce the tech tree on-screen, in miniature (using only the icons for each tech), with each AI's little character icon next to the techs they know. A color-coded background or outline around each character icon would provide additional information: a red outline for "won't trade," green for "will trade," purple for "currently researching" (if revealed by espionage) and cyan for "wants," maybe? Yes, big project. But, some people like big projects :-)

The above was posted in our 'request' thread. This is a great idea and I wanted to start a thread to discuss how / what / where / who / etc we do with it.

My initial thought was that we could just add a tab to the tech tree as is and show an icon based tech tree with AI related (known, trade, not trade, researching, etc) stuff over the top. Bung a list of AI leaderheads on the top of the tab and show what the AI knows as you click on them (similar to the unit location MA screen).

Other possibilities?

Edit: It is a given that the display of this info will be limited by basic game mechanics (knowledge of tech trading, tech trading options, knowledge of what the AI has, can research, etc)
 
[walking the dog is great for thinking on these things] ... current thoughts:
  • use the current tech screen as is - add a small toggle text string bottom left
  • when toggled - modify the current screen (balance of list assumed you have toggled to new screen)
  • remove GPs and the associated techs - replace with a string of leaderheads (including the current player leader)
  • reduce size of tech boxes, only show tech icon and leave room to the right for stuff ('stuff zone'), remove text, units, buildings, wonders, etc - this will enable more of the tech tree to be shown
  • if no leaderhead selected - no techs appear
  • click your leaderhead (and only your leaderhead)
    • your tech tree is shown
    • known techs, unknown techs, tech currently researching, techs with non zero beakers invested, monopoly techs are color coded
    • stuff zone shows the number of AIs that have this tech - eg '[3/8]' for 3 of 8 AIs know this tech
  • click an AI leaderhead (and only one AI leaderhead)
    • the AI's tech tree is shown
    • known techs, unknown techs, tech currently researching, monopoly techs are color coded
    • stuff zone shows if you know that tech (check mark), if the AI will trade it (trade icon) or not trade it (not icon)
  • click 2 or more leaderheads
    • I don't know - what should we show here?

 
I posted a reply to the original suggestion, but I'll summarize and expand here.

As with any new feature, it's important to decide what problem the feature is supposed to solve. Eunomiac's stated reason for this feature was to "help plan techs to research that other Civs will want."

I'd add to that the ability to see at a glance what current trade opportunities exist. Thus, it's important to see the techs that the AIs do not yet know and the techs they can trade to you. It's similar to the Strategic Advantages columns on the Sit-Rep MA tab, only displayed as the familiar tech tree.

I propose that the information displayed for techs you know should be different from that shown for those you don't know. As with the tech trade tab, no information is displayed for other players with whom you cannot trade techs because you haven't met, No Tech Trading is on, or neither of you has researched Alphabet [CyTeam.isTechTrading()].

Note: For interface consistency, every player's icon could show on each tech. When there is no tech parity (both or neither know it), the player's icon could be disabled (grayed out). The problem with this is that the current layout allows six icons per tech card. We'd have to make the tech cards fairly wide to accommodate all players.

With the list of leaderheads that you can select at the bottom (one or more at a time), this will work. However, I think the real gain is the ability to see all leaders' status at once.​

Techs Everyone Knows or No One Can Research

Card color: light gray

Techs You Know

Card color: green

Maybe a different color if you can trade it to at least 1 player right now.

You only care which players don't yet know the tech and whether or not you can trade it to them. The requirements for this are

  1. They don't know it
  2. They can research it
    • They are researching it
  3. You either didn't trade for it this turn (must wait a turn) or No Tech Brokering is on (bypasses the one-turn waiting period for traded techs)
  4. They want it (they won't once they get close to completing the research for it, "We would have nothing to gain.")
The player should be listed with 1, and they should get different decorations for the other states:

  • If 2 is false, no decoration (4 must not be false and 3 won't matter), otherwise
  • If 3 and 4 are all true, green (cyan if 2a), otherwise
  • If 3 is false, yellow (or color the tech card itself since it affects all rivals), or
  • If 4 is false, red
Techs You Don't Know

Card color: dark gray

Maybe a different color if you can acquire it from at least 1 player right now.

Here you want to see the state of all other players.

Players that don't know it: Either hide them or show them as gray. The reason to show them in this case is so you can decorate them if they can/are researching it.

Players that know it: Show their icon. Decorate with colors:

  • Will trade it: green
  • Won't trade it: orange
  • Can't trade it
    • 1 turn waiting period due to recent trade: yellow
    • Can never trade due to No Tech Brokering: red
 

Sounds cool. :D
Another option would be to make an additional tab for the GP-techs with some more info about what the icons mean and another tab with the techs of other players. Maybe a combination of your and EF's ideas. This would give more room to the display of informations.
 
I guess EF and I are coming at this slightly differently, but both with the aim of identifying techs that the AI doesn't have and that we can research. I would prefer a more compact tech tree (smaller buttons, closer together, techs that everyone knows removed, techs that no-one can research removed, etc). Ideally, the game can try and identify a prime monopoly tech and blink it (or make it bigger?).

I would also like to include the ability to look at an AIs tech tree to see where they are concentrating their research (top of tree, bottom, all over, etc). Also useful for seeing what they have over you and what you can research to trade to them.

I don't mind a very small tech tree with icons only as most people have (sort of) memorized the tree by now and they can always either hover over the tech or go back to the standard tree.

Got to say - I still prefer my idea (:D) but it is a little hard to visualize what these trees might look like. I'll take a look at the F6 code and see if I can remove some of the stuff I want to remove (text, unit / building / etc icons) so that I can mark it up.
 
I think colours are always useful for being able to quickly identify something like this. If we could have 4 colours:

  • Grey - Neither you nor the AI knows
  • Orange - AI knows but you don't (perhaps yellow if AI is willing to trade?)
  • Blue - Both you and the AI knows
  • Green - You know but the AI doesn't (perhaps darker green if you can trade it with the AI?)
Note that red is used as "no-one can research" already.

... use the main tech screen as a base and couple it with Ruff's idea of having LH icons along the top/bottom, that would be great. If there was also some kind of "global" button, which takes all LHs into account (more colours, perhaps), that would be perfect, I think. Maybe an extra colour if you know the AI is researching a tech (as above).

Maybe I'm just crazy. :crazyeye:
 
I like your ideas too, Ruff. I think we are tackling different but related problems. I especially like the ability to view a single AI's tech tree, and for that a super-compact view is perfect.

Another thought I had but forgot to post is a tech table, essentially a different view of the current Tech Trade tab. Leaderheads along the top, tech icons along the left. At each intersection display an icon. Like above, hide techs that everyone knows or no one knows.

  • Empty, if the player doesn't know it
  • Beaker, if you both know it
  • Trade, if the player will trade it to you
  • Gold, if you can trade it to the player
  • Dimmed version of Trade or Gold, if barred by 1 turn waiting period
  • Not, if can't trade due to researchability
I may have missed some cases. This view would give you a quick glance for those that don't need to see the tree. It could even group the techs you know above and those you don't below. This would allow different icons in each table: e.g. always use Trade for trade possibilities rather than Gold to signify that you can trade to them, though I like that particular icon idea.
 
Another thought I had but forgot to post is a tech table, essentially a different view of the current Tech Trade tab. Leaderheads along the top, tech icons along the left. At each intersection display an icon. Like above, hide techs that everyone knows or no one knows.
I like it. Suggest you sort the techs by <iGridX> & <iGridY> ... their location on the tech tree as per XML.
 
Okay, finally back to piggyback off of these ideas. As I've mentioned, I'm clueless when it comes to the coding limitations in play. I am somewhat computer savvy, having taken a year off of computer science in university, but I don't know how Civ IV is organized (though I'll hopefully be learning some parseltongue off of EF in the near future).

Maybe the default view would include all opponents, with buttons modeled off of the Leaderhead icons for filtering the leader out when clicked? That would facilitate planning a tech strategy off of the full tree, while letting players study an opponent's tech strategies directly by filtering out everyone else.

I agree that the minimal tech tree, with just the icons, is more than sufficient, especially if we can get full details off of them by hovering over the icons. And colors! Colors provide, like, a whole new dimension of information, as long as we can read their meanings off of a legend in the corner or something.
 
Wow, 7 "off of"s in a single post. Are you trying to give Ruff a brain annurism? :crazyeye:

I'm thinking my table view is more appropriate to trading techs while the tree view is better suited to planning future tech research. I'm sure they're both useful in both situations, but perhaps that's how we can target them.

Given that, we could trim down the tree view to ignore techs that are tradable now. Would that gain us any space? I'm thinking only of the situation where all leaders are selected. Even with a 9 player game, the current card sizes won't be large enough when anyone has a monopoly tech as they'll fit only six icons.

Of course, if we trim off the techs that are researched by everyone or no one, that will give us more space (it scrolls anyway), and we can widen the cards considerably. I don't want to expand the cards vertically because that would then add a vertical scrollbar.
 
Wow, 7 "off of"s in a single post. Are you trying to give Ruff a brain annurism? :crazyeye:

I'm thinking my table view is more appropriate to trading techs while the tree view is better suited to planning future tech research. I'm sure they're both useful in both situations, but perhaps that's how we can target them.

Given that, we could trim down the tree view to ignore techs that are tradable now. Would that gain us any space? I'm thinking only of the situation where all leaders are selected. Even with a 9 player game, the current card sizes won't be large enough when anyone has a monopoly tech as they'll fit only six icons.

Of course, if we trim off the techs that are researched by everyone or no one, that will give us more space (it scrolls anyway), and we can widen the cards considerably. I don't want to expand the cards vertically because that would then add a vertical scrollbar.

Maybe you could adopt the code which is used for the upgrade and promotion tree in the Sevopedia. AFAIK, those charts are generated dynamically.
 
I've just committed an updated TechChooser.py file that allows for multi-tab work. The second tab is currently underdevelopment. Hopefully, I haven't broken the first tab :D.
 
There's something slightly odd about the tech screen: unlike the other advisors, there's some transparency in the blue borders. It's not necessarily bad, but it is different so it screws with my OCD. ;)
 
Back
Top Bottom