I'm "finishing" the development of a game, and one of the final tasks is to make a decent AI for the game.
I have already a very crude AI that took me like 2 hours to make 2 months ago, but it's way too dumb, and now I need to improve it to make the game challenging.
Of course there's no silver bullet in AI, so my plan was to give the experts some info so they can suggest the path they would take if they were developing the game, so I don't waste time on dead-ends.
So, as a background, the game is called Big Boss TV: it's a "Tycoon" game where each player runs a TV Station and compete against the other stations. For more info, this is the game: http://www.gamedev.net/page/indie/project.html/_/simulation/big-boss-tv-r11
If you're gonna skip the long explanation, think of the game as any other Tycoon (or business management) game. I believe the AI ideas will be similar. Old games such as Mad TV (which is the inspiration for this game), Pizza Tycoon, Detroit, Transport Tycoon, etc.
On each stage there are 3 players competing for the same goal (1 human and 2 AIs). Lets say the goal is always the same no matter which stage you're playing (in fact it's not, but the AI don't need to be so flexible - as long as it plays well towards a fictitious goal, it's good enough for me). Let's say this fictitious goal is to accumulate $5 million before the 2 other players.
I'd rather have the AI not to cheat, so it would be better if it had limited knowledge like the human player does (for example, the human player doesn't know how much $ the other players have). But if this makes the AI programming much more complex (or too dumb), I can live with a cheating AI.
On a high level, the players have to do certain actions:
- buy movie tapes
- buy news tapes
- hire anchors
- buy antennas
- sign ad contracts
- schedule movies/ads
And the game is real time, so to do each of those actions the player must go to a certain place (which takes time).
One of the main challenges for a player is to know how much audience will a certain scheduled (future) program have. The better that guess, the easier is to plan ahead (which movies to buy, which ad contracts to sign, etc), so the outcome of the decisions is better. But the audience has 3 uncertainty elements:
- a "hidden complex formula" which the average human player will never know
- a random element
- and also depends on the actions of the other players (eg, if the competitor schedules a top notch movie on the same time, you're screwed)
Well, without making this post extremely long, hopefully this amount of info is enough to help you guys help me.
So, any pointers? I don't have experience and much knowledge in AI, so please use examples/references if possible .
Ah, forgot to mention: since the beginning I had this wish of having an API with the possible interactions (the game is designed as client-server, so I already have the API almost ready) and make the AI interact through this API. So far no big deal, but also I wanted to make the AI as an external script (Lua or something). Any pointers on this? I assume that since I have the API ready, this should be somewhat easy to implement.
My plan is to finish this AI tomorrow or mostly Thursday. So tomorrow morning I will start it, and I will keep this thread updated with my progress (even if it's to say "Finished already, thanks anyway" ;) ). Obviously your input will be very valuable and will make me lose less time, and probably do something with more quality, so hopefully I will get some input in time .