I am officially impressed. I have not been that up to date with AAO. I’ve played a few games here and there, but I was too focused on my own engine to really pay attention to how other great developers have approached this domain. I knew that AAO was basically an editor, and that it used javascript somehow to play the cases. But I didn’t realize how advanced it really is. It would be a mistake to write it off just because it is focused on an editor instead of having a full scripting language.
Anyway, the feature that kind of floored me today, is one of the last features I have to implement in order to convert games from AAO to PyWright with 99% accuracy. (I say 99%, as that last 1% of compatibility may or may not be there – it’s hard to know without testing every single AAO game in existence) This feature is expressions. Expressions in AAO allow a developer to have almost a mini scripting engine, interacting with variables and doing math on them. You can increment variables with “set x = x + 1″, you can do booleans with & and |, and you can do very complex math such as the “%” operator. It also follows the general order of operations like most programming languages with expressions engines do. Not what I expected from an easy-to-use, true casemaker.
PyWright has no expression engine. (more…)