To activate the EAI-Debug window - the EAI used must be the internal AI. If that is the case, a CTRL/Right Mousclick on any card of that player will open the debug window.
Following Window will pop up:
EAI Debug Window
Here you see basic information about the current AI. Name, Deck, Decksize.
Teh second half of the windows - will not be explained here. (small Info: here you can change the current game if you do some java-programming and know what to do. You might also look at the small help-button and/or examples (ComboBoxes)
On the top right half you see two interesing buttons:
Checkbox: Pause game after plan generation If active this *surprise* will pause the game each time EAI did a new plan.
Hint:
For a quick pause/unpause ALT/LeftClick any card on the screen.
ScoreNow
Will pop up a window with the current score of the game. Like this:
Scoring
Per row a different scoring formular. Weight scores are EAI scores, gray the score of the opponent.
The second tab of the window is the one where "the music plays":
This will become easily clear once you know how to handle the second tab. Therefor I will not explain anything here :-)! Except: At the moment you must select the actual current phase "manualy" using the comboBox.
This is my baby!
Scoring
The window might in its default size be to small - you can resize it to your needs - do so!
The tree in the first third of the window represents the current EAI reasoning. Following structure is used:
each layer of the tree represents one phase of the game
each branch within a layer represents one possible choice of the EAI
the first number of the branches name is the top score of the ultimate leaf(s) of that branch
the second number (the one in the bracket) is the score of exactly that leaf at that phase
following is the name of the phase
following are repeatedly the kind of action and the card of that action
Example: the highlighted branch in the image:
-58()→First Main Phase[ACTION PLAY CARD → Mountain(1235), ACTION PLAY CARD → Natural Spring(1204) ]
Means:
-58: this Score is the highest score of all subsequent leafs in this branch (although - it is negative, which means the opponent has a better overall game standing at the moment)
(): score of the current leaf at exactly this phase (damn: I enabled the option "Only leaf scoring" while taking the picture. So there is no current score... Otherwise - this would be the current score of this leaf in this phase...)
First Main Phase: We are in the first Main phase
ACTION PLAY CARD:, EAI wants to play a card
Mountain(1235): EAI wants to play the card "Mountain", which has exactly the unique UID of 1235
ACTION PLAY CARD: EAI wants to play another card
Natural Spring(1204): EAI wants to play the card "Natural Spring", which has exactly the unique UID of 1204
Changes
- leafs are sorted by their local scores (top score is first)
- [0] or [1] indicate which players turn is (after the local score)
- (x) after the player number where "x" is the current extended phase count
Expands the complete tree (or colapses the whole tree)
Number of all branches displayed
Number of all leafs displayed (actually all current "deepest" levels of branches)
If EAI is still in the process of collecting branches, one can "break" the current collection (ESCAPE-Button).
This one is updated each time a branch is selected in the above tree. It displays the current active branch in terms of its actions".
This actions usually are cards which can be displayed. The card image can be right click to swicth two display modes:
Action display This displays all action relevant data of the card:
Name and Image of card
Status of play (upper left corner) either "finnished" or "unborn!" which means a) action was played, or b) action was not played yet
Phase of the action
Number of action within that phase (which is not needed anymore and thus no correctly filled)
Type of action (PLAY CARD, ACTIVATE CARD, BLOCK, ATTACK, PAY MANA...)
Type of internal play out handling(FO1, FI1, VA - Forced, Fixed, Variable)
Target (cards) of card (if any) in brackets the Tap status of the card (U - untapped, T - tapped)
Target player (0 or 1)
Mana sources used to "pay" for the action
Blockers, if card is an attacker and is being blocked
The current "usual" card information. Like card text, type, subtype, color etc. "current" Also means these are the current stats of the card in that situation. Meaning, added abilites, changed colors, damage, bufs - are displayed here! If a creature took damage during a fight, that the toughness displayed here is the "damaged" toughness! You can right click a card to switch to a second "tab" of information. (tooltip of the Cards ID shows the current "abilities")
Note:
The above used display for actions can be found in different places of EAI Debug window - these displayes all share the same implementation, therefor the above also is correct for all other places "actions" appear - and will not be repeated!
If one of the actions displayed in the Plan/Stack section has mana source or targets, these can be displayed in the third section. Also much additional information about the current game can be gathered here:
By left clicking the image of the action in the Plan / Stack display the mana sources (if any) will be displayed in this tab. The display itself is again an action display list.
By left clicking the image of the action in the Plan / Stack display the target-sources (if any) will be displayed in this tab. The display itself is again an action display list.
Each time a branch is selected in the tree the VirtualMatch section is updated. Within this section you can inspect the game information of that branch (when all actions were executed). Thus you inspect all effects of the cards played out...
Virtual Match
On the left side you see basic stats of both players like:
Life (next to player 0 - the ID of the current game)
current available Mana
which player is active
For Each player there is a comboBox where you can chose from the usual game lists:
library (library as seen by current virtual match, possibly filled with dummy-cards)
oLibrary (library "opened" so debugger can actually see whats in there)
hand
graveyard
battlefield
land
attacker
blocker
discarded
Upon selection of such a list, on the left side that list is displayed as an action card list. Clicking on one such card displays the (usual) action item in the middle of the tab.
Changes
a number behind the "Cards"-comboBox shows the size of the current selected card pile
Here "overall" information can be found, like used / unused memory. Tree information, Blocker count informaion, cache usage etc.
The scoring of the current selected tree branch.
Note:
Due to optimization!
Branches, which only consist of one single subbranch share the same VirtualMatch entity. In that case VirtualMatch entity is the one of the lowest single branch (a VirtualMatch takes quite a lot of memory if counted in "thousands"...) So if you inspect a branch with only one single child - the information gained in close inspection resambles that of the last single branched child.
(This can now be configured. Configuration→Debug "Full vMatch in branches")
Note 2:
Due to optimization!
Many branches do not have actions at all!
These branches allways end with "null" - meaning no actions are available.
If a "null" branch is selected, not all tabs in the third part are updated. This means that possibly "old" information of the last selected branch where actual information was available is displayed!
Note 3:
Due to the way I programmed it (:-)!
Some targetting / actions can not be seen in a branch. These targettings are vMatch inherent and not done "activly" by the AI (e.g. blocking of an "alured" creature). The effect of such targettings are inspectable in subsequent branches, but not the action itself. If in doubt, check the current vMatch stats in the bottom Virtual Match - TAB.