I'm fleshing out foundations prior to starting on the main AI project.
Currently that involves:
* Making sure I understand 100% of the JS API:
https://warzone.atlassian.net/wiki/display/jsapi
* Ensuring that I can code consistently across API versions:
https://warzone.atlassian.net/wiki/display/backportjs
* Trying to find a way to deal with the tech tree:
https://warzone.atlassian.net/wiki/display/TechTree
The tech tree is giving me some grief at the moment. A fundamental part of EggPlant's ability to adapt is to research the right things at the right time. Currently, that's a decidedly non-trivial task:
* The
findResearch() function won't be available until Warzone 3.2, and it's very difficult to backport
* There is no data structure that I can readily access to traverse the tech tree in a semantic manner (although I'm working on one)
I've tried doing
my own diagram of the tech tree just to gain a better understanding of it, however I think my diagram contains a lot of incorrect dependency link between techs (or the
linear tech tree is telling lies). This particular issue is a bit of a road block right now and I'm not sure how best to resolve it.
Assuming I can get my tech tree diagram accurate (based on how the tech tree works in-game) I can then resume the major project of creating an
all-encompassing spreadsheet about the tech.
The plan behind this spreadsheet is that it will tell me
everything I need to know in order to make dynamic decisions about what to research next.
It's based in part on some way to categorise droids and structures,
currently based on propulsion (but might be better based on body). Again, there are some issues here in that .body and .propulsion properties aren't available for structures, and they are only being exposed on
droid objects in Warzone 3.2 (as far as I can tell). I might be able to make a
backport to mimic the properties, both for droids and structures, however that is in itself quite an intricate project (which involves
tardis'ing event handlers & hooking backports in to them as well as
overriding loads of native API functions with versions that inject required properties on to objects).
So, that's where things are currently up to.

"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO