Author Topic: Modding the AI  (Read 1309 times)

discodowney

  • Guest
Modding the AI
« on: 19 April 2010, 13:55:26 »
Hi,

Im a Masters of Computer Games Technology student. I am doing my dissertation on the use of an SVM as a controller for RTS AI.
I need an open source RTS for this. I was wondering if people would tell me what Glest is like to work with. I wouldnt be modding any information of the game as it is. Its just the decision making process of the AI.

There doesnt appear to be too many units which is good for my purposes.
Has anyone else tried tinkering with the AI? If so how was your experiences?

Cheers for any help.

Gabbe

  • Guest
Re: Modding the AI
« Reply #1 on: 19 April 2010, 15:16:04 »
Hi, im Gabriel

There has been another dude modding the entire engine, his name is pullo and he works with Bio,Nano, Influx mod, And a new AI would be extremely helpful, what do you want the Ai to do? (i bet everyone around would love a more intelligent AI :) )

discodowney

  • Guest
Re: Modding the AI
« Reply #2 on: 19 April 2010, 15:58:11 »
Basically it doesnt really change the actions that the AI performs, just the decision making process.

So i give it a training set. If during runtime the AI comes up with a result better than its current best training set value for a given situation, it retrains itself. The idea is that it will reduce the determinism and predictiability in AI. If i pull it off, the game should get more challenging as you play it.

Gabbe

  • Guest
Re: Modding the AI
« Reply #3 on: 19 April 2010, 20:11:26 »
Strongly suggest you talk Titi, Silnarm, Softcoder and the code guys, they might be interested, and im not really a programmer myself...

jda

  • Guest
Re: Modding the AI
« Reply #4 on: 19 April 2010, 21:53:36 »
The original Glest engine has two AI levels: CPU and CPU Ultra (better than the former)

Titi added two more AI levels: CPU Easy (easier than normal CPU) and CPU Mega (better than CPU Ultra). These are included in Titi/Softcoder's MegaGlest engine (a fork from the original Glest, started in the begining of this year).

The Glest Advanced Engine (GAE) has been around for much much longer, some two years I think and its main developpers currently (I think) are Silnarm and Yggdrasil.
The changes to the engine are much more extensive and intensive than in MG. GAE added tons of new features and had to teach the AI to use them too... Naturally, in some cases, even if the player is human, certains actions and features though triggered by humans need a good deal of AI contribution too. One example would be the path finding which is being worked on GAE for the long run: currently, hierarchical A* is implemented, further A* is on the roadmap. Vanilla Glest and (I think) MegaGlestare using the original "Greedy first best" pathfinding algorithm.

The following sentence may be coming out of my *ss so... :P
I believe the GAE team will have deeper knowledge on modding the AI.

But either/both MG and GAE developpers are the ones you want to talk to. ;)

Pullo has been doing his own engine but for his own very specific needs (his mod is not a "human-sized" one, but a microscopic one ;) ). I don't know if he released his code yet. Check his thread on this very board for details. ;)

EDIT: Both GAE and MG have their own sub-forums on this forum. Check them out. ;)
« Last Edit: 19 April 2010, 21:56:16 by jda »

Yggdrasil

  • GAE Team
  • Ornithopter
  • ********
  • Posts: 408
    • View Profile
Re: Modding the AI
« Reply #5 on: 19 April 2010, 23:06:17 »
Basically it doesnt really change the actions that the AI performs, just the decision making process.

So i give it a training set. If during runtime the AI comes up with a result better than its current best training set value for a given situation, it retrains itself. The idea is that it will reduce the determinism and predictiability in AI. If i pull it off, the game should get more challenging as you play it.

This sounds like NERO:
http://nerogame.org/

The successor might be more interesting because nero is closed-source:
http://code.google.com/p/opennero/

It uses neural networks combined with a genetic algorithm to evolve the network, weights and structure. The papers about NEAT, the used algorithm, are really informative.

You might also want to check out ORTS, seems not so active latly:
http://games.cs.ualberta.ca/~mburo/orts/

I can't actually tell you anything about the AI in glest. I never looked at this part of code. It surely does not use any sort of machine learning. But it would be nice to see these techniques applied to an actual game, not just academic prototypes.

zombiepirate

  • Guest
Re: Modding the AI
« Reply #6 on: 20 April 2010, 02:03:44 »
Well, I've looked at the AI but I haven't ever actually done any work on it. So I can't tell you what it's like to work with but I can give you a short tour.

The AI for glest (as I understand it) is fairly simplistic. Essentially there are a list of Rules and a list of Tasks. On every update the AI loops through the rules and tests them. The tests will check the task list or the environment to see if the rule should be executed or not. If the rule is executed it can add tasks to the task list or send commands to the Commander via the AI Interface. The AI Interface is updated from Game::update() in ./game/game.cpp All the (6) AI files are in ./AI.

If you are planning on doing work on the glest AI I'm sure the community would be quite pleased. Especially if it's a learning AI!

EDIT: The above is from the Glest Advanced Engine source. I don't know how much has changed from vanilla glest.
« Last Edit: 20 April 2010, 02:06:15 by zombiepirate »

 

anything