AI and development - ApplicationBuildFailure

Hi,
first of all: fantastic Project! After a little playtesting and reading about the AI implementation, I was hooked! I should continue writing my dissertation, but man, this project is awesome
I'd love to contribute to the AI in the future, maybe implement some domain knowledge into the Simulation part to benefit from non-random choices, for example with the "Mana Spent" Theory as a heuristic:
www .channelfireball. com/articles/woo-brews-building-better-decks-with-mana-sum-theory/
a) It's so awesome that even AI-vs-AI is already implemented, comparing implementations should be easy. Great design decisions to manage the computational complexity btw. What was the runtime for the simulations on the "AIComparison" wikipage? Was computational efficiency the primary design rationale for choosing the LSK_x.dec Decks to benchmark AI-vs-AI?
b) When trying to do some AI-vs-AI testing, at first try I couldn't get it to run by invoking for example:
java -jar Magarena.exe magic.DeckStrCal --deck1 LSK_RW.dec --deck2 LSK_Jund.dec
It just starts the Game and logs to the console (e.g. "Initialization of engine took 2.121s"). Also, when looking at MagicMain.java, I can't see where args[] are parsed? Could AI-vs-AI perhaps be disabled in Magarena 1.29?
c-1) Does the AI only scan the game-tree during it's own turn, or also during player-think-time? For example, if the AI does temporarily cheat during player think-time by looking at the player's hand to determine his next probable play, it could precompute it's next move(s) and save the player a lot of waiting time.
c-2) Concerning flashback/graveyard cards: shouldn't sorcery-speed flashback cards, e.g. Lingering Souls, or cards like Gravecrawler, be the same as having 1 extra card in hand? They shouldn't be too problematic for the AI then, should they? Especially if you could profit from pre-computation during player think-time (see c-1)?
d) For starters, I was trying to add a few new cards, like e.g. Thragtusk (should be easy with templates like Blade Splicer, Fiend Hunter, etc.), but when trying to build the codebase via ANT, I get the following error, missing MagicEventActionFactory:
e) Have you thought about using something like Groovy as a dynamic scripting language, so new cards with new card-logic could be added on the fly?
Mmh, the post got bigger then I expected...
Keep up the great work, Magarena is awesome!
Smoof
first of all: fantastic Project! After a little playtesting and reading about the AI implementation, I was hooked! I should continue writing my dissertation, but man, this project is awesome

www .channelfireball. com/articles/woo-brews-building-better-decks-with-mana-sum-theory/
a) It's so awesome that even AI-vs-AI is already implemented, comparing implementations should be easy. Great design decisions to manage the computational complexity btw. What was the runtime for the simulations on the "AIComparison" wikipage? Was computational efficiency the primary design rationale for choosing the LSK_x.dec Decks to benchmark AI-vs-AI?
b) When trying to do some AI-vs-AI testing, at first try I couldn't get it to run by invoking for example:
java -jar Magarena.exe magic.DeckStrCal --deck1 LSK_RW.dec --deck2 LSK_Jund.dec
It just starts the Game and logs to the console (e.g. "Initialization of engine took 2.121s"). Also, when looking at MagicMain.java, I can't see where args[] are parsed? Could AI-vs-AI perhaps be disabled in Magarena 1.29?
c-1) Does the AI only scan the game-tree during it's own turn, or also during player-think-time? For example, if the AI does temporarily cheat during player think-time by looking at the player's hand to determine his next probable play, it could precompute it's next move(s) and save the player a lot of waiting time.
c-2) Concerning flashback/graveyard cards: shouldn't sorcery-speed flashback cards, e.g. Lingering Souls, or cards like Gravecrawler, be the same as having 1 extra card in hand? They shouldn't be too problematic for the AI then, should they? Especially if you could profit from pre-computation during player think-time (see c-1)?
d) For starters, I was trying to add a few new cards, like e.g. Thragtusk (should be easy with templates like Blade Splicer, Fiend Hunter, etc.), but when trying to build the codebase via ANT, I get the following error, missing MagicEventActionFactory:
- Code: Select all
Buildfile: C:\Projects\workspace\magarena\build.xml
init:
build:
[javac] Compiling 1782 source files to C:\Projects\workspace\magarena\build
[javac] C:\Projects\workspace\magarena\src\magic\model\event\MagicSpellCardEvent.java:44: cannot find symbol
[javac] symbol : variable MagicEventActionFactory
[javac] location: class magic.model.event.MagicSpellCardEvent
[javac] final MagicEventAction action = MagicEventActionFactory.build(args[0]);
[javac] ^
[javac] C:\Projects\workspace\magarena\src\magic\model\event\MagicSpellCardEvent.java:46: cannot find symbol
[javac] symbol : variable MagicEventActionFactory
[javac] location: class magic.model.event.MagicSpellCardEvent
[javac] final MagicTargetChoice choice = MagicTargetChoice.build(MagicEventActionFactory.hint(args[0]) + args[1]);
[javac] ^
[javac] 2 errors
BUILD FAILED
C:\Projects\workspace\magarena\build.xml:22: Compile failed; see the compiler error output for details.
Total time: 5 seconds
e) Have you thought about using something like Groovy as a dynamic scripting language, so new cards with new card-logic could be added on the fly?
Mmh, the post got bigger then I expected...

Keep up the great work, Magarena is awesome!
Smoof