It is basically two player pachinko, with a physics engine and the simulation runs in real time.

Each player has a corner, and starts out with one ball (that is to say, balls are "owned" by the player and the two players have different coloured balls). At some future stage they can win more balls in play by hitting certain patterns of gates.

When the ball is in the player's corner, their AI can accelerate their ball and launch it into the midfield. In midfield, a forest pins exist to bounce the ball around and gates between the pins offer scoring opportunities. When the ball gets to the bottom, it has a "drift" force that rolls it towards the appropriate player's corner (back towards its owner). Highest score wins the game after some pre-determined time limit. I'm planning that the gates will be stateful in some way so that strategic shots can build up exponentially increasing scores, but the other player has a chance of stealing such a setup if they can put the right shot through.

I have a plausible physics engine in operation (only handles balls as a point mass, does not support spin and friction but perhaps those could come later). Enough to be difficult. Traditional AI requires a search tree, but with floating point variables and physics simulation the search tree is kind of massive so alternative approaches will be required. More than that, AI programs must use their CPU efficiently in order to not lag behind the game, however while the ball is out in midfield the AI has time to plan its next shot so different code will need to be activated at different parts of the game cycle.

I'm interested in opinions on this. Will get code up on github real soon now. Currently the physics engine is in C and the comms protocol is basic line-oriented ASCII over a pipe/socket/filehandle/whatever. I'm planning to have a visualiser in Java (suitable for web applet) and maybe some sample players in C, Java, perl, etc. If you think about it, the visualiser is pretty simple (just draw some pins and balls bouncing around, with scores, maybe a background image).