The main thing I have been working on (and have been mostly quiet about) is ARTIFICIAL INTELLIGENCE BUNNIES.
Sometimes players ask me how AI for OBEY would work? OBEY is a psychological game above all, and cpu players probably wouldn’t be very… um.. psychological.
Well, the goal with OBEY AI is not to make the cpu bunnies as good as real players but simply to make the AI player-like enough so that players can convincingly pretend to be AI and hide among them. As the more experienced players know, an important strategy is to try to conceal yourself among losing players if you are a winning player. The AI’s, in theory, will serve a similar purpose in providing cover – most impotantly in low player games of 4 and below.
How is this being done?
The first step in making our AI convincing is to make it move like it’s not AI (at least as much as possible). I have done this by making a recording room that records my player movements (the same system will be expanded later to allow recording of matches). The recordings of my bunny’s movements are saved to a file, and when the AI needs to do something, it chooses an appropriate animation to turn or walk or beg, etc. The movements are mostly indistinguishable from a real player since they are my own movements (with some slight biasing to account for a given target angle). This way, the AI stitches my own recorded animations together to do whatever it needs to and look like a real player moving around. So far it seems to be working pretty well.
The other thing That has mostly been done is pathfinding.
AI bunnies can find their way around obstacles on the map. They know they can climb hills, should turn away from walls, hop out of steep areas, and get around mostly sanely although there is still some work to do here. The main things I want to avoid with pathfinding are 1) dumb ai walking straight into a wall to give itself away. 2) having to add custom nodes or areas on maps to make the AI work properly (although I haven’t ruled this out yet, I will continue to try to avoid it and leave the AI completely dynamic).
Here you can see an AI casting rays to determine waypoints to get around an obstacle.
Right now I am working on letting the AI know what good places to hide are in a given map: which bushes are suitable for bunnies, which places can stash items, etc. This data will be used with the pathfinding to build simple maneuvers like ‘take x thing to box’ ‘try to subvert while hiding’ which will themselves form building blocks for “strategies” which will be high level logic like how to ‘OBEY’ and ‘disOBEY’ and later on, into how to play as robo.
Don’t expect AI to take the win very often.. if ever. But my plan is to make them highly configurable to suit a server admin’s preferences in number and behavior.
Oh! and the next version will include HOPPING!
Which has already been implemented, and will be pushed out along with the rest.
Looking forward to hopping along with you 🙂