Hopefully I will have time to work on some AI this break!

Hey everybody,

Sorry it’s been so long. I have been super busy at UCLA finishing up my MS degree.

But hopefully I will have a little time to work on the AI a little bit this summer.

I have some new ideas, and because the game is more complete, hopefully I will be able to implement some of them. Any help would be appreciated, you don’t have to know much about AI. We can collaborate on the code and methodology, and I’ll try to explain some of the ideas I think might work and how they could be implemented.


PS, what is the status of the adventure AI I worked on last summer?

Welcome back! Long time no see.

Since your last visit the code has been disabled (some unhandled calls causing crashes) and probably refractored - check it on your own. But no actual progress was reported.

There is a new universal bonus system in development, it may be wise to move many already existing functionalities to it and feed the AI with the result, instead of handling tons of different options in giant switch. If done well, it probably it will also allow AI to deal with future mods and extensions.

By the way, sign up.

Oh interesting. What is meant by the universal bonus system?

Yeah, I definitely don’t intend for the AI to have to be hard-coded to exploit every game feature. That would take forever, and probably yield poor results.

I was hoping to implement an apprenticeship learning algorithm for it. In other words. Many people would play the game, and it would learn the preferences of actions of the players, and then when faced with a similar situation as the players on its own, it could take a similar action.

It sounds complicated, but hopefully it can be done fairly painlessly. The main issue would be having enough data to train the model.

Nice to see you again! We missed you.

As Warmonger said, there is no progress. Red13 has refactored GeniusAI, but his work seems to be not finished (and it’s not merged yet with trunk - see aicleanup branch).

Tow has recently implemented a system that handles all bonuses for units, towns and heroes, from any source. There are still a few problems with it, but it works quite well. In short, every bonus is represented by an object of type Bonus and every object that receives bonuses is represented by an object that derives from CBonusSystemNode (see /lib/HeroBonus.h or ask Tow for details).

If you want to continue your work, I think it would be a good idea to check the status of aicleanup branch. It got no commit for a few months but could be usable.

Currently, I am working on an alternative to neural networks, which I had planned to do the learning.

Just refreshing the AI topic to remind that we may need one soon :wink:

What I meant for all this time but didn’t know its actual name is an expert system that processes avaliable bonuses and returns decision for AI about which one to use or obtain. To feed an expert system with knowledge is not difficult, but it may be to write it from scratch.

Actually we need one for a long time…

Interesting idea. But wouldn’t it be better to start with an AI that does anything, and then develop smart algorithms, when we have the possibility to test it? I think it wouldn’t be hard to make.

I want to join^^