Jump to content
Sign in to follow this  
MoLAoS

AI Discussion

Recommended Posts

I have been working on re writing the AI for my game engine, because I feel like the Glest/GAE AI is pretty terrible. I am going through all of the parts of the engine and rewriting them, mostly for experience purposes and some things that are just below par.

In any case I have been reading a lot of articles about how AI is generally done and its actually quite hard to find AI discussion that isn't about pathfinding. I always conceived of pathfinding as a separate discipline from actual AI with some interaction where you want to path around dangerous areas and such. But I guess I am weird.

I was reading through the qBot and Marylin threads and seeing how your AI compares to Glest/GAE and the AI changes I am planning to make. It was pretty interesting reading although it was several hundred posts and took me several minutes to get through.

According to the threads you guys haven't implemented many automation commands like patrol and stuff like optimal targeting. Do you plan to get stuff like that in the game? I know you have a trade system implemented. Are you going to be implementing an escort command? Escort is like guard but for mobile units, did you set up a guard command? Somone in the thread was talking about city centers getting a designation as a critical building which causes units to default to guarding them.

I noticed someone was mentioning a problem I saw in Glest/GAE/MG and also I was playing some Zero-K and it had the same issue. Attacking AI units are running in singly or in pairs instead of groups and getting decimated. Have you been working on anything to deal with that?

In my game I am adding automation on the player side because I want more of a grand strategy feel but also with some Hero units that are kinda like RPG characters. I intend to port those capabilities over to the AI as well because its a lot of the same issues that AI have. For players you get your time freed up from micro and for AI you get the ability to use groups of units more in sync like a human would do. The game simulates actual armies from the individual to the army level with squads, regiments, and so forth. Although technically you could use just the squad and army layers if you like because freedom. Having a unit allows easy selection of groups and the ability to click a button and have units bunch up or to fan out in a line to dodge AOE, both of which keep your units together when they run in so they don't get picked off.

This is relevant to my question about units working together on the AI side since in games without levels of coordination you would need some sort of flexible system to make units behave similarly. Have you guys done work on implementing a pick up system where the AI checks what units appear to be attacking the same unit/area and coordinates them to attack better?

I know a lot of games, especially Blizzards don't really care about making really good AI because they are mostly e-sports so only multiplayer matters. The main focus of my first game is a 50 mission campaign since a given match would last too long for multiplayer really. I mean, who wants an 8 hour multiplayer match?

The only thing I've really found AI wise that is comparable to my goal is a few niche wargames that focus on formations and units and grand strategy in WW2. Its really hard to find people to discuss RTS, as opposed to wargame, AI stuff. I played a bit of each of the Kohan games but they really only have their one formation thing with their 3 mods with different move speed and attack efficiency.

How serious are devs and modders about AI? I gather that since 0 A.D. is heavily based on AO? games that you are probably more traditional and less automated than the game I am working on. I suspect that most of this conversation, assuming anyone is interested, will end up focusing on difficulty without resource cheats. Is there a plan to focus on making an AI bot that can approach human skill without giving resource modifiers?

Share this post


Link to post
Share on other sites

I'm interested in AI discussion too

Is there a plan to focus on making an AI bot that can approach human skill without giving resource modifiers

That is my goal that I'm currently trying to achieve while also keeping the performance cost low for human players to enjoy smooth gameplay. I feel that 0AD AI system are advanced enough but unstable (there are bugs, like some unit classes aren't informative enough for AI to understand the type of unit and its purpose. Example: shipwreck treasures on water currently does not have a class to tell AI thats its water object). There are many improvements to be made in its AI system and I'm sure it takes decent amount of developers' time to program them.

As for automated commands, like patrol and escort, some of them are already capable in AI only at the moment but the drawback is you have to program them manually instead of using it natively which could lead to instability in future releases.

Edited by rjs23

Share this post


Link to post
Share on other sites

I'm interested in AI discussion too

That is my goal that I'm currently trying to achieve while also keeping the performance cost low for human players to enjoy smooth gameplay. I feel that 0AD AI system are advanced enough but unstable (there are bugs, like some unit classes aren't informative enough for AI to understand the type of unit and its purpose. Example: shipwreck treasures on water currently does not have a class to tell AI thats its water object). There are many improvements to be made in its AI system and I'm sure it takes decent amount of developers' time to program them.

As for automated commands, like patrol and escort, some of them are already capable in AI only at the moment but the drawback is you have to program them manually instead of using it natively which could lead to instability in future releases.

I don't understand what you mean by manually. Do you mean scripting them as opposed to direct from the engine?

Share this post


Link to post
Share on other sites

I don't understand what you mean by manually. Do you mean scripting them as opposed to direct from the engine?

Indeed. I tend to be vague sometimes.

Share this post


Link to post
Share on other sites

Indeed. I tend to be vague sometimes.

Can you give me a list of things that you wish had engine support?

Also anyone working on Qbot care to weigh in?

Share this post


Link to post
Share on other sites

Wraitii is the guy on call with AI development last time I checked.

But yeah, AI discussion is really interesting and it currently needs lots of improvement, at least on 0ad - that's what Wraitii is doing ;)

Share this post


Link to post
Share on other sites

Here's another guy interested in the AI discussion :)

I spent a few weeks looking through the qBot code as I'm looking to gain some more experience in this area of game development.

In fact I hadn't read this thread before making a comment on the qBot thread a few minutes ago. There I also raised the issue of the AI cheating quite a fair bit, and whether this is really desirable.

For example, the current AI doesn't have to do any scouting whatsoever as it basically sees the entire game world. For RTS games (or competitive games in general), I personally think thats just wrong.

Another example: attacks are only initialized once qBot considers its attack force is 1.5 times stronger than the enemy's entire population. (with the exception that if the attack group becomes too large, it will send it regardless of the enemy strength). So here qBot is lowering the risk of failure and choosing to fight an unbalanced battle.

Share this post


Link to post
Share on other sites

Here's another guy interested in the AI discussion :)

I spent a few weeks looking through the qBot code as I'm looking to gain some more experience in this area of game development.

In fact I hadn't read this thread before making a comment on the qBot thread a few minutes ago. There I also raised the issue of the AI cheating quite a fair bit, and whether this is really desirable.

For example, the current AI doesn't have to do any scouting whatsoever as it basically sees the entire game world. For RTS games (or competitive games in general), I personally think thats just wrong.

Another example: attacks are only initialized once qBot considers its attack force is 1.5 times stronger than the enemy's entire population. (with the exception that if the attack group becomes too large, it will send it regardless of the enemy strength). So here qBot is lowering the risk of failure and choosing to fight an unbalanced battle.

I went ahead and read your post in the other thread. I am pretty opposed to AI having a view of the whole map and the units on it. As regards waiting till your army is above the total enemy population, I prefer that, I like to tech up as opposed to rush. But it seems like such a big limitation. Plus if the enemy has multiple settlements it would be smarter to hit a small one and then retreat.

I think that all games should have optimal targeting systems that tell them what the best thing to auto attack is. As regards defensive coordination it should be possible to implement some checks to decide whether horses should run ahead or stay at the same speed. Can't account for everything though.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...