Warehouse
"Practical wisdom is only learnt in the school of experience." -Samuel Smiles
PROJECTS NEWS MESSAGES MAILING LIST  
AI for RTS Games
Creating a multilevel AI goal system
 
• AI for RTS Games

Intro -
Firs a little about us. We are the hive. Our use of the plural to refer to the singular whole of ourselves is simply part of our on-line persona. We are a single individual with many parts. Please excuse us if that confuses anyone. We have been dedicated to the gaming hobby for around 20 years. Compared to what most people would describe as a hardcore gamer we are off the charts. We structure our whole life around gaming. Some people may describe that as not having a life. We like to think of it from the point of view that we spend more of our life doing what we love than anyone we have ever met.

We have just started to get into game development. Our first project is a highly AI intensive fantasy based RTS game. The dev team is small (2 people) right now but will be growing over time. The game plays like a normal RTS except that the full AI is applied to the players units as well as the computer opponents. The player would take as much control over his units as desired and the AI would handle everything else. The as yet unnamed project will not be open source however the development of the AI system in whole or in part will be. This is assuming outside contributions will be forthcoming.

Our research into AI in general and game AI in particular has led us to this fine place. The essays have been most informative and we plan to get the full book as well.

The Project -
The system we would like to develop here isnt the game AI itself but a tool used to create the AI. The in game AI will most likely be scripted with some more conventional real time AI elements used to control them. However our plan is to create these scripts with a problem solving AI. This will take away one of the biggest problems with advanced game AI in real time. The system resources required for the problem solving would be done outside of the live game. We would use a evolutionary system to "grow" the script trees in a sample game environment. Then the trees could be used with more basic in game AI during live play. Once created this system could be tweaked for almost any RTS game to allow the computer to "learn" how to play it.

The System -
Our approach will be a little non standard. Instead of single level of goals or intermediate stages to a final goal we want to divide the goals into a parallel system. The levels would be structured in a pyramid fashion. At the top would be a goal set that would only deal with general "big picture" issues. Things like dealing with expansion, advancement and winning. Below that would be a layer of goal sets that deal with solving smaller problems for different groups or departments of the whole. This would continue down to the bottom of the pyramid where the goal sets for individual units will be set. The ingame AI would follow the same pattern.

The Method -
To make the whole thing work together a tasking system would be used. In some ways it would resemble a military structure where the top officials would come up with general goals and create tasks for them. They then pass those tasks down to more specialised departments. Who would then decide on some of the details and pass on more detailed tasks to the groups under them. This continues down the chain of command until the original goal is reached. The different levels of AI would need a form of communication and a way to prioritise commands.

The different groups would be represented by different types of units or units with certain jobs. For example in our game a blacksmith shop might be one group. It gets tasked by a higher level AI to create weapons. It must decide what goals it needs to make the weapons. It would then in turn task individual units to complete those goals. The individual units would then decide what path to take to complete their goals.

Since it isnt intended for use in the live game, tasks should only need to go down the chain. We can assume the upper portions of the chain have access to all the environmental observations of the lower portions. Therefore each AI level would have access to any information that would be available to the whole. This observation function could be suspended to simulate imperfect communication between various units or groups. In a pre-radio historical game for example. The completion of a task would be observed by the originator this way.

Benefits -
The shear volume of scripting that would be required in the game we are developing will be huge. Take everything you can do in Warcraft III and multiply it by ten to get a idea of its scope. To create all the scripts manually would take over a year. With a system like this we could have the computer do about 80% of it. Still might take a year, but it would free up our time to work on other parts of the game.

The multi-level system should provide a much more realistic AI than is available in current games. It would solve problems more like a community than a anthill. Not that we mind hive systems ;) This could also have applications in RPG's to simulate the actions of groups of NPC's. A village or bandit camp for example.

The system could be tweaked to provide a wide variety of simulations. Neural networks could be used in parts of the resulting scripts to create a variety of styles (personalities?) for the in game AI. This could be done randomly as well but we prefer neural networks. Way cooler :) Difficulty levels could be created by certain adjustments in many different places of the process. Both in game and pre-game. Goals could be inserted at different levels to simulate different modivations between groups adding even more realism.

There should also be a lot of non game related applications for this type of system. Havent thought much about what they might be. We tend to think mainly about games :)

6 posts.
Sunday 08 December, 17:42
Reply
• Project Status

Hi:

What kind of help are you looking for?

Jordan Glogau

2 posts.
Wednesday 22 January, 23:34
Reply
• Need a programer

Well, its on hold right now. We where working with a programer on a game that was intended to use this system but he had a family emergancy and had to take over the family buisness. We personaly dont have the experiance to hadle this on our own. So basicly what would be needed is a experianced programer.

6 posts.
Monday 27 January, 20:23
Reply
• Need Programmer

Hi:

I doing programming, just spent a year doing a Palm project. But I've never done game or AI stuff.

Would be interested but there's a learning curve.

Regards,
Jordan

2 posts.
Thursday 30 January, 14:54
Reply
• Contact us

Contact us @ [email protected].

We are currently working on some modified maps for Warcraft III. WC III is a good platform for us since it has a good editor that doesnt require a lot of programing experiance. It is very versitile and can be modified in many ways. We are using this as a learning tool to step into bigger projects. We still want to make the system we posted above but do not have near the abilty to do it at this time. If you would like to work on some game projects with us and work into something like what we posted above let us know. We are always looking for help from ppl with experiance.

What we lack in programing skill we more than make up for in game system knoledge. Our first map is getting great reviews and is one of the most popular new maps being played on battle net. Many ppl are calling it the best map design in ages.

We are starting to study programing while we modify other games but it is a slow process. We have tons of ideas about how to make existing games better and a whole list of full game projects that we would like to create. Basicly if you want to start working with games we have no shortage of projects big and small. Our main goal is to become a retail game developer but we still have a long way to go yet.

6 posts.
Friday 07 February, 07:40
Reply