Sorian AI - isn't it supposed to be better ?
-
Thanks for the answers. Ok, so Sorian AI is outdated, i should try others. I will try Uveso and see how it goes. I just wish it was included in default FAF like sorian, i kind of hate things that aren't "default".
Btw just some input from me. I just tried 1v1 on Canis river. And i have to say, god, this was exciting, one of the most fun games i had. Took me 25 minutes to win, granted i was doing mistakes and staying back even when i had a big army. It was just enough challenging to keep me on my toes, but not frustrating. AI went for all the mexes all the time, doing a great job of destroying my own, it also built point defences and factories around mexes which took me completely by surprise.
Though again i felt it wasted to much resources on things it didnt need, i mean again, 10 energy storages, is this really necesary ? U need like 3 for overcharge and since its commander is in base all the time, it never needs it. As for power outages and the likes, i think would be better to build another T2 pgen, instead of having this disasters waiting to happen all over your small base.
I will try Uveso AI in the following days. Is there a list of maps that does or doesn't work with it ? For instance, 4 corners is a map i really like for simple practice, sorian sadly is quite useless on it. Infact any map with sea and islands.
-
@goblinsly
If you use the AI-Uveso Mod go to options and set "AI Map Marker generator" to "Autogenerate Always".
This will generate AI waypoint markers even if they already exist on a map.
Some maps have really bad markers and its better to replace them.The reason why the AI needs so much energy storrage is simply because overcharge needs up to 50k of energy,
Teleporting SACUs cost 10,000 for each teleporting unit and experimental Shields are also consuming huge amounts of energy.If you want the AI-ACU more active then you need to wait for the next Mod Update.
Or you can test it right now, but you have to install it manually:AI-Uveso-Mod-16.may.2021.zip
Don't use this version online, its still in development and will instantly desync. -
Hmm. I have been away from SC for a year or two, so maybe some things changed. When i mentioned energy storages, i had sorian AI in mind. The last time i played, i dont remember needing more than 1 or 2 energy storages for overcharge. Did that change in recent months ?
Teleporting SACUs again .. never saw that in AI games. Experimental shields arent part of vanilla game, at least they werent the last time i played. Maybe i should read all the new things that changed, i was completely confused about factory vs factory HQ the last time i played.I know that expert players build energy storages, early for overcharge and late for, well, safety. But that sorian AI had no reason to build 20 energy storages. It should spend that mass to actualy do more things. Look at this, from my last play 1v1 vs sorian, and remember, that was the play that was actualy challenging and fun:
https://i.imgur.com/qx8u4KN.png
Look at this build from the enemy. This is wrong on so many levels. No mass storage around extractors. No reclaming T1 pgens when clearly T2 pgens are around and can be built. And soooo many energy storages going to waste, not being used at all. All the mass from this energy storages could be used to produce some extremely decent units. Instead, i barely saw any T2 land, a shield and a T2 tank, no T2 air, no nothing.
I know making AI is hard, im actualy interested in how its being done for this game. Years back, in age of empires 1 game, i proposed a simple tournament where we each made our own AI and then had them battle head to head to see which one wins the tournament. It was fun. And for some reason, sometimes playing against AI is even more fun than real human. Because real human, you usualy know what he will do. AI .. if done correctly .. you can never really predict its behaviour.
-
The overcharge damage scales with the amount of energy you put into it. At roughly 50K the damage is maxed out.
-
Was this in vanilla forged alliance or did this change in the recent FAF updates ? I noticed some changes, like T3 AA land unit, where could i read a quick list of major changes that FAF updates brought ?
-
This is changed in FAF last year I believe, vanilla doesn't have the scaling overcharge.
-
Whether or not AIs should build e storage is a separate question from WHERE they should build it. AIs are filling up their bases with e-storage so killing one will do massive damage and maybe even set off a chain reaction. It's suboptimal behavior. If you can teach them to put the e storage far enough away from their base that it won't blow up their base, the AIs would be a lot harder to kill. If it's too hard to teach the AI to do this, then we should give them "free" energy storage and they just wouldn't make more than 1 e storage structure in any game.
-
Its how Sorian does his builders and its intended. For stuff like Sorian and other AI. Its important to understand the purpose or goal of the AI. Its not neccesarily always to “beat” the player.
-
What then ?
-
Sorian is most important historically for one simple reason - he demonstrated that much more was possible within the existing framework. This didn't happen overnight, and honestly, he moved on long before he achieved any kind of nirvana, but he raised the bar, and inspired others (myself included) to push on.
Having said that, the version of Sorian that is included with FAF has been edited six ways from tomorrow, not only to adapt to the gameplay changes introduced by FAF (like overcharge), but by well meaning types that, frankly, had little clue about what they were doing. It's only been over the last 3+ years that any serious attempt to move beyond Sorian, or fix some of the long standing issues with Sorian, has been addressed - and that's, at last, something to look forward to.
-
@goblinsly
I did the most updates for GPG and sorian AI the last 3 years;
These are my patch logs:
AI Patch V1:
https://github.com/FAForever/fa/pull/2468
AI Patch V2:
https://github.com/FAForever/fa/pull/2566
AI Patch V3:
https://github.com/FAForever/fa/pull/2660
AI Patch V4:
https://github.com/FAForever/fa/pull/2734
AI Patch V5:
https://github.com/FAForever/fa/pull/2802
AI Patch V6: (AI pathfinding "A*(Star) search algorithm".)
https://github.com/FAForever/fa/pull/2915
Fix for AI Base templates
https://github.com/FAForever/fa/pull/2918
AI Patch V8:
https://github.com/FAForever/fa/pull/3114 -
A* search algorithm ? I had that in college, artificial inteligence basics course. I loved it and other algorithms. I didn't know you can change pathfinding of AI here also, in AOE1 we were only able to change some basic things.
I am hooked. Sprouto, you said Sorian is important because he showed that much more is possible within the existing framework. Can you tell me what exactly you mean by that ? I played a 2v2v2 game with 4 AIs, me and my friend. 2 AIs were sorian, 2 AIs were vaniila AI. Now, the first thing i noticed was that Sorian was much more efficient at gathering resources and using them. For instance, vanilla AI got into electricity shortage all the time, losing mass from mass extractors and holding him back, while sorian always had enough power and using all the mass he had. But other than that, the attacks and everything else seemed quiete basic.
I will give you an example of things that boggle my mind. Ok, enemy keeps sending small amount of units to the same spot on map, which is in range of T2 PD. Units get obliterated without doing any damage. Yet the AI keeps doing it. There should be some kind of check, an "if" if u will: if .. the first 100.000 units sent to this location did 0 damage to enemy units .. go to plan B. And second ... i attack with T3 units, slaughtering the enenys base. What does he do ? He bring the unupgraded commander and attacks units, not using overcharge or anything, i mean, surely an if is to be had .. if enemy units in visible range will slaughter me .. run in the opposite direction. It might not change the final outcome but at least it will give you an idea that AI wants to live. Like, have him try to run to the water, have him try to transport himself away with transporter ..
Ofcourse, its easy for me to say, without actualy seeing the manner in which AI is being programmed. Could i see some small snippets of code to get an idea ? Also, what are some of the more interesting things being worked on regarding this Uveso AI. Can i expect moments in game when i will say, woow, wth is that ? I didnt see THAT coming ?
Btw i read they are thinking of including AI in tournaments. I strongly support that. Also it would be great to see AI tournament, where the various custom AIs battle between themselves and the best AI will win If this tournament ever is a reality, all i ask is for it to be named after me ^_^
-
Patchnotes from my AI, maybe the show some some surprising changes:
- New: Added advanced ACU fight function. Microing, threat management, proper overcharge targets.
- Opt: Air Suicide Platoons no longer attack none game ender buildings.
- New: Added option for AIx Overwhelm for variable start time and cheat increase (thanks to bergzand)
- New: Added strategy for NukeSub defense.
- Opt: Added ACU sniper platoon (13-15 fighterbomber -> directattack ACU)
- New: Added a compleatly new AI Ecomanager that can now also pause/disable mobile units. Including stealth, cloak and jammer.
- New: New attack function "AttackHug". Units will move as close as possible to the target and execute suicide.
- New: AI is now able to micro-move units inside a platoon.
- New: AI works now with No-Rush game mode.
- New: Markergenerator is now able to create land expansions incl mass count.
- New: Added debug option for endless games (game restarts on gameend)
- Opt: AI will now sourround TECH2 mass extractors with storage before TECH3 upgrade (4 base mexes)
- New: Added a function to the targetmanager to get high threat areas for nuke/arty fire
- New: SCU enhance function can now also remove already installed enhancements.
- New: Added presetcategory to all preset SCUs. (Blueprint.lua)
- Fix: SCU teleporter platoon is now able to use preset enhanced SCUs
- New: Timebased debug print to the log every 30 seconds with memory and task data.
- Opt: Factories will be placed with more space between each factory.
- New: Added builder+former for amphibious units. incl Nomads. (water maps)
- New: You can now set an AI unit cap independently from players unit cap.
- New: New Unit-Categories. Blueprint.lua is now adding categories for 2 new unitgroups: 'AMPHIBIOUS' and 'HOVER'. (works with mods)
- New: Added new AI function to search teleporter targets. (Now respecting antiteleport towers).
My AI has alos several debug options for better AI programming.
If you want to have a basic AI mod to start with, go to the vault and search for the "Micro AI"
Its just a basic AI with only 1-2 bilders. perfect for learning. -
@goblinsly Sorian took what was really a poor effort (vanilla) and not only made it more efficient, in gathering, in production and in combat - but he demonstrated the leading edge of ideas that would become the underpinnings of other work.
I won't go into any detail about the multiple facets that make the AI do (or not do) what it does, suffice to say that the most difficult thing in developing this AI is understanding that computers don't see the game like you and I. They don't have the kind of memory to recall what they saw just seconds ago, so great effort has to expended to develop the data metrics that can inform the AI in this way - and make it understand what is happening. That, in turn, requires massive amounts of observation, repetition and then revising those assumptions. I've been at it since before Sorian left and GPG went dark (I have the dubious distinction of being the owner of the final post on the old GPG forums) and I can tell you that it's a LOT of work - and in many many areas aside from just theoretical AI behavior. To understand this AI and make something more of it, requires knowledge of mapping, units, LUA - above the other skills.
-
Thank you for the answers, and god, am i hooked. I do not plan to work on my own AI, but i would love to have some discussion about it sometime, throw some ideas on the table. I am a computer science engineer by degree and most of my college was about this kind of stuff, just sadly not in such a nice package (otherwise my average would be better xD).
That list of changes is amazing and i can't wait to try it out with my friend. And i swear if we get killed by a suicide squad of fighters/bombers or something like that, we are going to yell into the microphone in the middle of the night. Even talking about it gives me the goosebumps. I love this things, even more than playing it. For instance, i used to watch gyle's recordings of fights because it was awesome to analyse it, i actualy prefered it to playing. And now i will test your AI to other AIs and observe what is going on.
Awesome. I was reluctant should i even make a post, as i expected people will say to grow a pair and play against real oponents. I had no idea the custom AI community was so alive after all this time !
-
It's been long ignored - for sure - and it's still the red-headed stepchild in the FAF community, but - finally - after a long time of stumbling around in the wilderness, there is finally some company, someone to discuss issues with that understands the many degrees between point A and point B.
The best place to take part is on the AI discords, of which there a few - FAF, AI only, and LOUD -
https://discord.gg/cpNjaYcw -- FAF
https://discord.gg/28pKVTFJ -- AI General
https://discord.gg/TGWDRcF6 -- The LOUD Project -
And yeah, just to build, I have been working on SCTA AI for last few months and 'newest' AI Developer. And its been a process in more ways than one. Sometimes because he created entirely functions new SCTA functions such as TA pathfinding (i.e. getting Ai to recognize walking kbots, the fact I have 4 different engineer types), and more. But one of things as Sprouto has said, I've been working on or frying the fish as I would call it. Has been working on BuilderTypes for specific managers which is not a thing in the base game FA AI.
But its absolutely fascinating because there is a lot of small things as player you don't recognize or realize how things work or why things work the way they do. And many ways as an AI developer, I have come to appreciate the nuance of factional variances than I have ever done as a player. Sprouto can vouch how often I've asked him on a somewhat even core level questions "How does the AI do the thing".
Like the easiest thing as a Modder I did not even consider really was creating TA unique categories. Such as LEVEL1 to LEVEL3 which are basically the same thing as TECH1 to TECH3 (there are some nominal differences but that getting pedantic). But one of the things I did was removing much of those unique categories. Also the assigning and meaning of threat values, like I will talk about how existence of stuff like threat and imaps are incredibly important that is often overlooked. And originally the TA mod had 0 threat assignments for units.
So I had to assign such assessments for TA units. And while many cases I looked at Supcom equivalents and assigned the threat value, but its also made be better understand the threats and what they mean. Also why the AI has weird choices for its aggression (hello 1k threat mexes). And alot of Sorian has been integrated into FAF itself. Notably engineer auxillary functions (reclaim structures, reclaim units, assisting unfinished buildings etc) which as an AI developer or even player we don't even cognitively think about.
-
Alright, i tested the UVESO AI. I played 2v2 on fields of isis, enemies was 1x SORIAN adaptive and 1x UVESO adaptive. UVESO was flying over all of us, score wise. It upgraded mexes in the mid to T2 while Sorian kept them at T1. IN post game score, UVESO was king. Sadly it didnt win in the end, but this game took considerably longer than the last game that was versus 2x sorian.
So .. me and my friend tried to hold mid, me at bottom, him at top. He failed miserably so we had to move back into the mid near our bases. We held it, though had some problems with units streaming. But pretty soon T2 pds and shields were masacring enemy and i used all that waste mass. I built Megalith and nuke defence, friend built 3 spiders and some air. Both enemies failed to do anything special to harm us, though they were pretty annoying attacking the only mex that wasnt under a shield. Actualy took me 5 minutes to get enough engies and antiair there to build a shield.
Both enemies were throwing low tier units at out shields and t2 pds. I saw the uveso building a spider and a nuke but the nuke was far from done. My friend attacked with 2 spiders, ran into serians base, killed him, then went to uveso base and killed him also. I missed better response from uveso. He did attack with t3 gunships and t2 cybran bomber/fighters but only took 1 spider down. He knew spiders were coming like 5 minutes in advance, because he had his t1 units running by spiders. It would be good in this case if he noticed that and prepared his base. Like mass T2 pds, shields and stop building nuke and finish the spider. It also wasted tons of mass, because it collected probably more than all other 3 players combined, yet had nothing to show, because all the units he was building got killed. 1 thing that i noticed and i was impressed with ... they got a T2 rocket spider into my base. And it was attacking some of my units. Then suddenly i see it moving into the corner and i didnt know wth is happening cause there is a corner, nothing built there. Then i figured, its probably detecting that it vastly outranges my units ... and is better to move out of their range and just bombard them. This was nice.
But, i can say it is considerably better than sorian and mind u, this was small map. I left the markers on default, which means it will only add markers on maps that dont have them. Should i maybe force markers on all maps and that would help ? Next time me and my friend will play 2v2 vs 2x uveso on same map and see how it goes. Oh btw, i used Uveso adaptive, should i use some other AI ? I kind of have difficulty picking the right one for the map.
-
Uveso is the most mature AI in the FAF fold these days, with the most well-rounded behavior. As for maps, they play a huge role in the effectiveness of the AI, depending primarily upon the depth and quality of the marking which allows the AI to understand them. Uveso includes an option that will put a default grid onto any map, and give you a satisfactory result.
There are some other well developed AI that have come about recently, RNG and Swarm, to name but two - and there are others as well, some in a more or less incomplete state.
-
I just watched a game of Sorian adaptive vs Uveso adaptive, on 4 corners. I was an observer. I wanted to just see like first 5-10 minutes to see the differences but the game drew me into it and i watched like 50 minutes of it at +4 speed. Fantastic, fantastic. Kept markers on default, so i dont think it changed them. But sorian played considerably better than i remember anyway. It started strong, and took control of both islands, so more mass and also air superiority. Sadly, barely did any navy, which is insane considering both were cybran and this is sea map. Anyway, sorian also did some bomber runs. It wasnt looking good for uveso and i started thinking if maybe i set something wrong. But .. uveso was smart ... building eco. Then it started mass building navy factories, probably like 8 of them and spamming frigates and it was extremely good with them, i was following them ... that micromanagement ... wow. It was bad with transports, most got shot down. Looked like it doesn't have a clear plan by starting spider and nuke launcher at once. But sorian didnt do much either so looked like sorian will win with spider or nuke. Then it changed. Uveso built some subs, but sorian also, and was pushing. Both were bad with amphibian T2 tanks .. transporting them and getting shot down. Then uveso added bricks and that micromanagement was even better. I never saw an unit coming out of water, sniped some units, then when commander attacked it, it flew into water. This was just amazing to see. Anyway, uveso killed units and buildings on both islands, even though sorian did a good job of making a base there, with factories, pds, etc. But in time, it was destroyed. Also it was amazing how calm the bricks were. I thought it will easily get pulled inside the base and get killed, but no, it used range and very slowly adding bricks on the shore and killing building by building, until they reached commander and killed him. It was funny to see them spamming frigates and subs but not making any destroyers, which are like, really good. Then suddenly i see they made T3 ship but not using them, but then also build a destroyer and sent it to attack.
Oh, and the last part ... this is really funny. They actualy upped cloak and laser on their commander. Now that would be a nasty surprise if i attacked him with my gun upgraded commander only to find out they got laser. I look forward to playing more and seeing how much else it got in stock. I am guessing it can do many different things ? The only thing i would kind of note is that until minute 10 i think they didnt have even 1 unit capable of attacking. Nor any point defence. I did notice it was very smart detecting enemy bombers and started spamming T1 antiair units. Sorian was dumb, making tons of units and trying to walk on water with them .. which doesnt work. But i am wondering how it would end if there was land between them ? Commander would prolly take care of them, collect mass and use it to build its own units i guess.