I know AI can do a lot of amazing things (check the automaton2000 on youtube), but forcefields look so easy and AI dont use. Will be amazing see perfect FFs on insane AI level.
Can someone explain this?
Forum Index > StarCraft 2 HotS |
( bush
321 Posts
I know AI can do a lot of amazing things (check the automaton2000 on youtube), but forcefields look so easy and AI dont use. Will be amazing see perfect FFs on insane AI level. Can someone explain this? | ||
Glueburn
United States496 Posts
What!? I can't imagine trying to code a unit to automatically forcefield around, or infront of a unit, and even if they did program that in, the forcefields probably wouldn't even be good. The Automation is different in a sense that it moves back units that are getting ready to be hit by an attack, that is fairly simple, it is just something that is done in a split-second. Can you imagine a behavior that if the force that is attacking the AI's units is bigger then what the AI has, it would automatically forcefield a ramp? hilarity would ensue, but I imagine there is a way to make the AI figure out that the force is moving UP the ramp... gah.. it just sounds so confusing. But then again, I may be going at it wrong. | ||
Griffith`
714 Posts
| ||
Datum
United States371 Posts
| ||
Jyvblamo
Canada13788 Posts
| ||
Kuzmorgo
Hungary1058 Posts
On May 29 2011 06:21 CampinSam wrote: Forcefields look easy? What!? I can't imagine trying to code a unit to automatically forcefield around, or infront of a unit, and even if they did program that in, the forcefields probably wouldn't even be good. The Automation is different in a sense that it moves back units that are getting ready to be hit by an attack, that is fairly simple, it is just something that is done in a split-second. Can you imagine a behavior that if the force that is attacking the AI's units is bigger then what the AI has, it would automatically forcefield a ramp? hilarity would ensue, but I imagine there is a way to make the AI figure out that the force is moving UP the ramp... gah.. it just sounds so confusing. But then again, I may be going at it wrong. Actually ff-ing a ramp shouldn't be so hard. measuring if your army is better is easy (especially since insane has maphack ![]() The hard thing would be splitting the army. However, i don't think you should work on making it perfect. for example it could work like determining the opponents composition, and for example if opponent has roaches, which have 3 range, then ff 5 distance away from front units, in a semi circle. Or something like that. Of course it won't be epic innovative perfect forcefield, but it could work i think. | ||
-orb-
United States5770 Posts
I would imagine programming an AI to make these decisions and correctly place walls of force fields from edge to edge of chokes would be ridiculously difficult. | ||
ClysmiC
United States2192 Posts
| ||
Iranon
United States983 Posts
| ||
dae
Canada1600 Posts
| ||
VaultDweller
Romania132 Posts
| ||
Siretu
151 Posts
| ||
han_han
United States205 Posts
| ||
Brewed Tea
United States124 Posts
| ||
Siretu
151 Posts
On May 29 2011 19:48 Brewed Tea wrote: this is how the terminator got started. If the terminator had force fields the terminators would win the war easily. | ||
Heraklitus
United States553 Posts
On May 29 2011 19:48 Brewed Tea wrote: this is how the terminator got started. ROFL | ||
leviathan20
United Kingdom193 Posts
On May 29 2011 20:32 Siretu wrote: If the terminator had force fields the terminators would win the war easily. Now I'm just going to imagine John Connor trying to run up a ramp that is being endlessly forcefielded whenever i watch that film. | ||
BackHo
New Zealand400 Posts
| ||
Taek42
United States7 Posts
Block ramp conditions: - an enemy force is walking up the ramp - at least (equasion based on enemy army and AI army) units have crossed the midpoint of the ramp => FF at the top of the ramp => FF at the bottom of the ramp Guard against melee units: - There lots of melee units - You have more high-range units than they do - Your units have a large attackable surface area => FFs around your units to minimize the surface area => Leave a gap in one location to allow your army to move forward after the battle I don't know if existing AI is capable of looking at the surface area of units. This wouldn't be too hard if it doesn't, because Starcraft uses some form of surface area in determing how melee units can attack a building or a unit ball. ---Splitting Armies--- I considered several things while writing this, but it got really complicated and I never intended to spend a ton of time on this post. Ultimately I do believe that you could do it but it would take me a couple of hours to brainstorm the best ways. I'll summarize some of the things to highlight though: - unit ranges - terrain - position of your army with respect to enemy army - position of both with respect to terrain - clumps of units - looking at unit clumps as pieces instead of as a whole When looking at an enemy army, it could focus on all of the units that have less than X range, and see how they are dispersed or 'clumped.' (clumping is easily defined, and I think marine splitting AI already uses clumping). If clump of low range units exists near the edges of the enemy army (this could be determined using X and Y positioning analysis), then FFs could be dropped between these units and the units of the AI to push these units out of range. It's a lot more comlicated that other types of FF AI but I think that you could turn this into code after a few hours of programming. I don't know how long it usually takes to write Starcraft AI or how long people usually spend programming, but my guess is that it would be worth the time. | ||
Noocta
France12578 Posts
On May 29 2011 22:47 BackHo wrote: In the Kerrigan cut-scene you'd think that one would just shoot themselves rather than drop their guns to let the approaching Zerglings tear you apart. She was out of bullet dude. :d | ||
Acritter
Syria7637 Posts
| ||
Mortician
Bulgaria2332 Posts
On May 30 2011 01:14 Acritter wrote: If I can barely use Forcefields, I'm pretty sure no AI can. If I can barely use muta micro, I'm pretty sure no AI can. | ||
Datum
United States371 Posts
On May 30 2011 01:14 Acritter wrote: If I can barely use Forcefields, I'm pretty sure no AI can. Why? | ||
jjacobsson
Sweden6 Posts
1. It's ridiculously hard to get a good heuristic for when and where to place a forcefield, so it get's cut from the game. "Good" does not necessarily mean "strategically good", it can mean "leads to fun game-play". 2. You can get a good heuristic, but it takes to much processing power and/or memory to actually run it on the target hardware for the game. So it get's cut from the game. 3. It was not deemed an important feature in the game, so no effort was made to try to do it. My personal guess is number 1. If it's number 2, you will see it in the future expansions (given that Blizzard keeps it's usual pace of development our computing power will have multiplied by over 9000 before the last expansion is out). Since it's Blizzard I seriously doubt it's number 3. All of those 3 points are really different flavors of "game developer ran out of time" when I think about it. The only thing I can think of if I was to try to code this is some kind of influence map, but I doubt the results would be very good. | ||
nejdu
Sweden20 Posts
| ||
Kinetik_Inferno
United States1431 Posts
On May 29 2011 07:09 Jyvblamo wrote: A good forcefield AI would be impressive. It's one of those things that is much more intuitive to human minds and can't be put into a simple algorithm. This is basically it. It's practically impossible to program a computer so that it forcefields a ramp or an army, solely because it doesn't know when is a good time to forcefield. The only way I could think of is programming it to forcefield ramps to ground above, when they have seen a large group of units move up there and that group of units will likely kill the AI's army. EG, contain situation. The problem is defining the contain situation. There really is no "I know, therefore | ||
Zedex
United Kingdom310 Posts
| ||
Dhalphir
Australia1305 Posts
Little beyond a videogame at this point. | ||
Navillus
United States1188 Posts
| ||
Deleted User 101379
4849 Posts
On May 30 2011 06:18 jjacobsson wrote: I can think of 3 reasons why the AI does not use forcefields: 1. It's ridiculously hard to get a good heuristic for when and where to place a forcefield, so it get's cut from the game. "Good" does not necessarily mean "strategically good", it can mean "leads to fun game-play". 2. You can get a good heuristic, but it takes to much processing power and/or memory to actually run it on the target hardware for the game. So it get's cut from the game. 3. It was not deemed an important feature in the game, so no effort was made to try to do it. My personal guess is number 1. If it's number 2, you will see it in the future expansions (given that Blizzard keeps it's usual pace of development our computing power will have multiplied by over 9000 before the last expansion is out). Since it's Blizzard I seriously doubt it's number 3. All of those 3 points are really different flavors of "game developer ran out of time" when I think about it. The only thing I can think of if I was to try to code this is some kind of influence map, but I doubt the results would be very good. My bet would be on 2. Step 1: To place a good forcefield you have to get the position of all units in range of a sentry (and a little further away). Step 2: After that you have to group the opponents units into blobs (it is quite realistic to assume that the opponents army can consist of multiple groups). Step 3: Then you have to analyse if the force is stronger than your own force, taking into account the terrain and relative unit positions. Step 4: Decide if you want to cut the blobs (if you have a superior or equally strong ranged army), FF behind them (if you have a zealot heavy army) or FF in front of them (if their army is a lot stronger). Step 5: Find the position for the forcefields by going from the center of each blob to the place where you want to FF (front/center/back) and draw a line along the blob. Step 1, 2 and 5 are actually computationally intensive and they might have to be done for every AI iteration (multiple times per second). | ||
Slaytilost
Netherlands968 Posts
| ||
Deleted User 101379
4849 Posts
On May 30 2011 16:31 Slaytilost wrote: Software development is about cutting corners. What about just spamming forcefields in a 45 degree radius, or until an unmovable surface is detected, 2 secs after you start to battle. That would produce lots of funny forcefields that actually do nothing or hurt the protoss more than the opponent and only in 1 out of 10 situations it would produce good forcefields, it would even open more options to abuse the AI. | ||
Slaytilost
Netherlands968 Posts
| ||
MrTortoise
1388 Posts
the easy approach is to solve the constants first ... the maps, get data from them to use for scoring and selection algorithms. your first problem is looking at the map and figuring out how to score certain positions for forcefield placement ... eg ramps .. how do you get it to test a part of the map to see if it cuts it off. All these locations get a good score. Then you have to consider areas that can be cut off by tesselating forcefields. This would give you a decent score graph of any given map and greatly aid any algorithm ... would be really interesting to see actually ... areas that take up to 10 forcefields scored fairly low vs 1 forcefield scored high in a heat map. This kidn of graph also help with the mechanic of placing them as you end up with a sorted list of valid locations and groups. Then you can work with generally heuristics Eg, Its probably true that its not all that wrong to split an army of even size . Thats how id start - it would be primitive but its a start. battles id probably pre-rig with preset appraoches based on composition ratios and score these - eg push marauders back from marines would score higher than trap the whole lot if you have no collosus. Really crude stuff. Goals would be really simple and based on current known army sizes and composition Split, contain and push away. I dont think you need anything overly clever once you break the problem down, its a selection algorithm based on available data. You don;t need past data and you dont need any learning. The complexities of combat are really only half the problem. and are probably solved to an extent when yous sovle the map portion | ||
VIB
Brazil3567 Posts
On May 29 2011 06:35 Griffith` wrote: You're exaggerating. It's not as trivial as some other microing, but it's not too hard. With the right algorithm it's not NP.I've tried making an AI that does forcefields - its EXTREMELY hard - even harder than my mutalisk AI. It requires a lot of cluster algorithms to find centroids - an NP-hard problem. T = pick nearest enemy ranged unit If T's range < your unit's range and if battle is going for a few seconds { C = Count how many force field's you have P = T's position + a little behind by an amount of T's size C2 = 0 // will count how many force field worthy spots there are loop C times or enough to do an angle you think is enough { // P2 = array of forcefield worthy spots P2[C] = P + move force (field's size/2 + T's size/2) to the left or right (alternating) if P2[C] is a moveable spot then: C2++ } if C > C2 * (RATIO) // adjust RATIO to whatever you prefer between 0 and 1 - this is how many forcefields you'll have left then cast forcefields from P[0] to P[1] } TLDR: Check how many forcefield-able spots are there behind an enemy unit of short range. And if you have enough mana, forcefield those spots. This will prevent units with shorter range to run away from you. And make it so other's behind it cannot come to help. ie.: roaches vs stalkers Of course this example is very simple and there's a lot that can be improved. If you wanna make it more complex. You can later A) count how many enemy units there are near the target so you can tell wheter the battle is worth to fight. and B) check if there are massive units nearby and C) check also for units of longer range, force field in front of them if yours unit need to flee or behind them if you are already in it's range so it doesn't flee. etc etc This algorithm is fast to calculate and would make a reasonable decent use of force fields. It's fast because there aren't that many iterations to do. Since you consider the size of forcefields when calculating space. On May 30 2011 06:18 jjacobsson wrote: I'm very sure 3 is true.3. It was not deemed an important feature in the game, so no effort was made to try to do it. | ||
loadme
171 Posts
| ||
Faricho
Colombia116 Posts
But before it would be better to position the army to take full advantage of the chokes (I've no idea how) Maybe the easiest way to find the centers could be summing all the enemy unit's X,Y positions and dividing that by the number of enemy units. But that alone could be heavy | ||
Deleted User 101379
4849 Posts
On May 31 2011 00:29 VIB wrote: Show nested quote + You're exaggerating. It's not as trivial as some other microing, but it's not too hard. With the right algorithm it's not NP.On May 29 2011 06:35 Griffith` wrote: I've tried making an AI that does forcefields - its EXTREMELY hard - even harder than my mutalisk AI. It requires a lot of cluster algorithms to find centroids - an NP-hard problem. T = pick nearest enemy ranged unit If T's range < your unit's range and if battle is going for a few seconds { C = Count how many force field's you have P = T's position + a little behind by an amount of T's size C2 = 0 // will count how many force field worthy spots there are loop C times or enough to do an angle you think is enough { // P2 = array of forcefield worthy spots P2[C] = P + move force (field's size/2 + T's size/2) to the left or right (alternating) if P2[C] is a moveable spot then: C2++ } if C > C2 * (RATIO) // adjust RATIO to whatever you prefer between 0 and 1 - this is how many forcefields you'll have left then cast forcefields from P[0] to P[1] } TLDR: Check how many forcefield-able spots are there behind an enemy unit of short range. And if you have enough mana, forcefield those spots. This will prevent units with shorter range to run away from you. And make it so other's behind it cannot come to help. ie.: roaches vs stalkers Of course this example is very simple and there's a lot that can be improved. If you wanna make it more complex. You can later A) count how many enemy units there are near the target so you can tell wheter the battle is worth to fight. and B) check if there are massive units nearby and C) check also for units of longer range, force field in front of them if yours unit need to flee or behind them if you are already in it's range so it doesn't flee. etc etc This algorithm is fast to calculate and would make a reasonable decent use of force fields. It's fast because there aren't that many iterations to do. Since you consider the size of forcefields when calculating space. Show nested quote + I'm very sure 3 is true.On May 30 2011 06:18 jjacobsson wrote: 3. It was not deemed an important feature in the game, so no effort was made to try to do it. Ok, what about 2 groups of units from 2 different angles? Units stimming up a choke? Splitting units? Zealots + Sentries vs ranged units? While your algorithm would work in some situations, it would produce totally horrible results in others. It's simply something that a human can do far better by instinct than any machine. This doesn't mean there shouldn't be any forcefields, a simple implementation would suffice, but we will never see perfectly used forcefields from an AI (at least not in the next year or two). | ||
VIB
Brazil3567 Posts
On May 31 2011 00:56 Morfildur wrote: My algorithm would work fine on all 4 situations that you talk about. Did you even read it? Your argument that a human would do it better is empty and with zero scientific base. My algorithm is far from perfect, it's just a simple thing to show you what and how it can be done. Like I said you can add to it and make it more complex, there's lots of stuff I simply didn't bother putting in that could be. Show nested quote + On May 31 2011 00:29 VIB wrote: On May 29 2011 06:35 Griffith` wrote: You're exaggerating. It's not as trivial as some other microing, but it's not too hard. With the right algorithm it's not NP.I've tried making an AI that does forcefields - its EXTREMELY hard - even harder than my mutalisk AI. It requires a lot of cluster algorithms to find centroids - an NP-hard problem. T = pick nearest enemy ranged unit If T's range < your unit's range and if battle is going for a few seconds { C = Count how many force field's you have P = T's position + a little behind by an amount of T's size C2 = 0 // will count how many force field worthy spots there are loop C times or enough to do an angle you think is enough { // P2 = array of forcefield worthy spots P2[C] = P + move force (field's size/2 + T's size/2) to the left or right (alternating) if P2[C] is a moveable spot then: C2++ } if C > C2 * (RATIO) // adjust RATIO to whatever you prefer between 0 and 1 - this is how many forcefields you'll have left then cast forcefields from P[0] to P[1] } TLDR: Check how many forcefield-able spots are there behind an enemy unit of short range. And if you have enough mana, forcefield those spots. This will prevent units with shorter range to run away from you. And make it so other's behind it cannot come to help. ie.: roaches vs stalkers Of course this example is very simple and there's a lot that can be improved. If you wanna make it more complex. You can later A) count how many enemy units there are near the target so you can tell wheter the battle is worth to fight. and B) check if there are massive units nearby and C) check also for units of longer range, force field in front of them if yours unit need to flee or behind them if you are already in it's range so it doesn't flee. etc etc This algorithm is fast to calculate and would make a reasonable decent use of force fields. It's fast because there aren't that many iterations to do. Since you consider the size of forcefields when calculating space. On May 30 2011 06:18 jjacobsson wrote: I'm very sure 3 is true.3. It was not deemed an important feature in the game, so no effort was made to try to do it. Ok, what about 2 groups of units from 2 different angles? Units stimming up a choke? Splitting units? Zealots + Sentries vs ranged units? While your algorithm would work in some situations, it would produce totally horrible results in others. It's simply something that a human can do far better by instinct than any machine. This doesn't mean there shouldn't be any forcefields, a simple implementation would suffice, but we will never see perfectly used forcefields from an AI (at least not in the next year or two). But neither are humans anywhere near perfect in the force fielding skill. What are you talking about? Humans suck at this. It's not hard to make a computer at least as good as an average player at this. Most players, even at the highest levels, just spam forcefield on the enemy troops without giving it too much thought and often times screw up and make horrible mistakes. It's very very easy to make an algorithm that simulates that. Which is basically what mine is doing. Most people just use it like "OMG blob of enemy units! Must quick throw force fields in there somewhere to make it less room for them! Don't matter exactly where" That's all. That's how 90% of all force fields are used even in pro games. It's very easy to reproduce that same thing on the AI. | ||
elitesniper420
Canada135 Posts
problem solved | ||
VIB
Brazil3567 Posts
On May 31 2011 02:10 elitesniper420 wrote: That's actually not a bad idea and would work better than most average human players do program the AI to detect big balls of units and then make it place forcefields in the middle of it problem solved ![]() | ||
ComaDose
Canada10357 Posts
very few programers are commenting. why not try it out. | ||
aphorism
United States226 Posts
On May 31 2011 02:39 ComaDose wrote: and many of the ideas here. very few programers are commenting. why not try it out. Wait, programmers or progamers? | ||
Zhypher_Bronzer
United States24 Posts
| ||
epikAnglory
United States1120 Posts
| ||
ComaDose
Canada10357 Posts
On May 31 2011 03:09 aphorism wrote: Show nested quote + On May 31 2011 02:39 ComaDose wrote: and many of the ideas here. very few programers are commenting. why not try it out. Wait, programmers or progamers? programmers* :$ it would be easy to make a sentry cast force field. Hard to make it do it correctly. I'm interested in what people who make custom maps and starcraft AI would say. It is something that can be used for multiple purposes and many ways for each purpose. Like has been said there is decision making to be done. | ||
VIB
Brazil3567 Posts
On May 31 2011 03:57 ComaDose wrote: Show nested quote + On May 31 2011 03:09 aphorism wrote: On May 31 2011 02:39 ComaDose wrote: and many of the ideas here. very few programers are commenting. why not try it out. Wait, programmers or progamers? programmers* :$ it would be easy to make a sentry cast force field. Hard to make it do it correctly. I'm interested in what people who make custom maps and starcraft AI would say. It is something that can be used for multiple purposes and many ways for each purpose. Like has been said there is decision making to be done. There's people on this thread pointing out to sites where you can find ai that does it. If I had the game myself I would prolly give it a shot, I find it fun to code ai. But I won't buy the game only for that. | ||
epikAnglory
United States1120 Posts
| ||
epikAnglory
United States1120 Posts
EDIT: sorry for double post, but its been hours and its still on top of the Single Player section? | ||
japro
172 Posts
From the point of a programmer you usually do the things that can be done elegantly and straight forward first and add in specific stuff (as which a complicated micro ability that applies to exactly one unit definitely counts) last. Abilities like that that require some intuition about environment usage are very hard to analyze and even if you do find a reasonable method for it, chances are high that you end up with this kind of ability where experienced players can abuse the AI to screw up its own paths etc. Also Analyzing the "topology" of the environment and the movement of units in it tends to be computationally very expensive (involves for example a lot of very expensive path finding calculations I guess) and you don't want to have a single unit like the sentry take up significant amounts of computing power. | ||
Giwoon
Korea (South)431 Posts
On May 29 2011 21:44 leviathan20 wrote: Show nested quote + On May 29 2011 20:32 Siretu wrote: On May 29 2011 19:48 Brewed Tea wrote: this is how the terminator got started. If the terminator had force fields the terminators would win the war easily. Now I'm just going to imagine John Connor trying to run up a ramp that is being endlessly forcefielded whenever i watch that film. LMFAOOO AHAHAHAHAHA | ||
snakeeyez
United States1231 Posts
That being said a computer that can use force fields intelligently could be done, but its just too much time/money and CPU to spend on something you can just ignore and let real people do instead since multiplayer is the real focus. | ||
edc
United States666 Posts
| ||
epikAnglory
United States1120 Posts
On June 01 2011 12:40 edc.initiative wrote: Does the AI even make Sentries? I doubt it could correctly use Hallucinations and Guardian Shields. It does make Sentries, and sometimes uses Guardian Shield, but not once have I seen it use Force Fields at all. | ||
Rhykker
Canada28 Posts
*shudders* Personally, I'd rather have more difficult AI settings that don't rely on "cheating." Sure, force fielding would help the micro battles, but I'd rather have AI that is capable of radically different macro tactics. | ||
starcraft911
Korea (South)1263 Posts
On May 29 2011 06:21 CampinSam wrote: Forcefields look easy? What!? I can't imagine trying to code a unit to automatically forcefield around, or infront of a unit, and even if they did program that in, the forcefields probably wouldn't even be good. It's not hard to code. Just need to set a param for density of units per grid space then have the FF be placed in the central area of the density > X. If units are spread out then it wont use FF if they are it will use them in order to cut them in half. | ||
dimfish
United States663 Posts
In your mind you picture a situation with a blob of Protoss units and some sentries against some Terran units marching over in a ball, and you're like "oh, my toss army is bigger, so I would just FF a good-sized chunk of his stuff towards me I know I can kill." This is not how computers think! There are a ton of conditions your human brain can recognize in an instant. Computers have to think much more rotely. Let's assume the FF AI you write has perfect knowledge (map hack, whatever you want to call it). The AI does not "see" the picture above that you saw. It sees the data of the game like this. Player 1: Zealot @ location 4, 5, facing 56 degrees Zealot @ location 6, 2, facing 10 degrees Sentry @ location 3, 3 facing 10 degrees Player 2: Marine @ location 1, 1, facing 115 degrees Marine @ location 1, 2, facing 110 degrees etc. Now with a list of units and locations, what do you do? Are the armies close, far, scattered all over, what? Someone earlier in the thread mentioned you should do some kind of clustering algorithm on the units, which is a good start. The point is, you have to write the code to account for the entire range of data. What if the Terran player has single marines standing around the map? Do you want your FF AI to spend energy trapping and killing one marine? If three SCVs and one marine charge up your ramp would you FF it? Your AI might unless you define very clearly what is dangerous and what is not. What if you decide the Terran army is actually in a ball, and your army is actually in a ball and the conditions are right for casting FF? Should you just fire them off? Maybe not! Maybe the Terran army is actually walking away from your ball and in the time it takes your sentries to carry out the FF order you give it, the Terran units will be gone, and poof: silly-looking FF! This observation alone means a good FF AI will probably need to do some planning and keep sentries in range of points that might be good FF spots in the future. I think a good FF AI is certainly doable, it will just take some serious development time. | ||
Pughy
Wales662 Posts
An example is in PvT when the T rushes up your ramp. You've gotta decide if you keep them out, or let them in. But then theres other stuff that comes into the equation. eg you may not have enough forces to kill the push but can block it for 15 seconds longer which may let you get extra units to beat the push, or an extra sentry to hold the ramp. Being optimal with sentries is the hardest thing, and when you think about it. Even now the most optimal use of sentries isn't even known so how could someone code that into an AI? Also thought of another example. What about roaches with burrow? An AI would have alot of trouble figuring out how to forcefield burrowed roachs effiecently so you don't get over run or lose position? (which isn't easy for even a human player) | ||
CoolManJones
United States23 Posts
| ||
Siretu
151 Posts
On June 08 2011 08:39 dimfish wrote: It might not seem that hard to code this up, but the issue is that it is a lot harder to define optimal FF casting than to say, define optimal kiting. Let me break it down for you if don't write code. In your mind you picture a situation with a blob of Protoss units and some sentries against some Terran units marching over in a ball, and you're like "oh, my toss army is bigger, so I would just FF a good-sized chunk of his stuff towards me I know I can kill." This is not how computers think! There are a ton of conditions your human brain can recognize in an instant. Computers have to think much more rotely. Let's assume the FF AI you write has perfect knowledge (map hack, whatever you want to call it). The AI does not "see" the picture above that you saw. It sees the data of the game like this. Player 1: Zealot @ location 4, 5, facing 56 degrees Zealot @ location 6, 2, facing 10 degrees Sentry @ location 3, 3 facing 10 degrees Player 2: Marine @ location 1, 1, facing 115 degrees Marine @ location 1, 2, facing 110 degrees etc. Now with a list of units and locations, what do you do? Are the armies close, far, scattered all over, what? Someone earlier in the thread mentioned you should do some kind of clustering algorithm on the units, which is a good start. The point is, you have to write the code to account for the entire range of data. What if the Terran player has single marines standing around the map? Do you want your FF AI to spend energy trapping and killing one marine? If three SCVs and one marine charge up your ramp would you FF it? Your AI might unless you define very clearly what is dangerous and what is not. What if you decide the Terran army is actually in a ball, and your army is actually in a ball and the conditions are right for casting FF? Should you just fire them off? Maybe not! Maybe the Terran army is actually walking away from your ball and in the time it takes your sentries to carry out the FF order you give it, the Terran units will be gone, and poof: silly-looking FF! This observation alone means a good FF AI will probably need to do some planning and keep sentries in range of points that might be good FF spots in the future. I think a good FF AI is certainly doable, it will just take some serious development time. I disagree. There are a lot of handy functions to easily work out how scattered the army is and if it's a decent amount of enemy units(not just a single marine). Force fielding a ramp is harder and would take some time but I think I could probably make a decent one within a day of serious coding. Blizzard has a bunch of great programmers who should be able to fix it pretty fast. The question is, does the AI have to be better than a human? You mention "keeping sentries in range of points that might be good FF spots in the future." What human actually does that. I mean, you might sort your sentries so they're in the middle so they can get in range for the force fields but it's not like you're actually trying to calculate the best spot for them to be at to make sure they can cast their force field. On May 29 2011 06:21 CampinSam wrote: Forcefields look easy? What!? I can't imagine trying to code a unit to automatically forcefield around, or infront of a unit, and even if they did program that in, the forcefields probably wouldn't even be good. This would be even easier. Force fielding in a circle around a unit is not particulary hard at all. In front of a unit is still pretty easy(easier than splitting a whole army) but takes some more time. | ||
![]()
AzureD
United States320 Posts
Code it so FF never overlap by more than a few pixels but always touch. Code it so they do not use FF unless enemy army is at least 50% as strong as yours. Code FF to never cover more than a certain % of impassable terrain. | ||
dimfish
United States663 Posts
On June 09 2011 07:56 Siretu wrote: What handy functions? In the editor scripting language? Lying around in the universe? What is the algorithmic complexity of them? There will undoubtedly be a trade-off of precision for speed. Show nested quote + On June 08 2011 08:39 dimfish wrote: It might not seem that hard to code this up, but the issue is that it is a lot harder to define optimal FF casting than to say, define optimal kiting. Let me break it down for you if don't write code. In your mind you picture a situation with a blob of Protoss units and some sentries against some Terran units marching over in a ball, and you're like "oh, my toss army is bigger, so I would just FF a good-sized chunk of his stuff towards me I know I can kill." This is not how computers think! There are a ton of conditions your human brain can recognize in an instant. Computers have to think much more rotely. Let's assume the FF AI you write has perfect knowledge (map hack, whatever you want to call it). The AI does not "see" the picture above that you saw. It sees the data of the game like this. Player 1: Zealot @ location 4, 5, facing 56 degrees Zealot @ location 6, 2, facing 10 degrees Sentry @ location 3, 3 facing 10 degrees Player 2: Marine @ location 1, 1, facing 115 degrees Marine @ location 1, 2, facing 110 degrees etc. Now with a list of units and locations, what do you do? Are the armies close, far, scattered all over, what? Someone earlier in the thread mentioned you should do some kind of clustering algorithm on the units, which is a good start. The point is, you have to write the code to account for the entire range of data. What if the Terran player has single marines standing around the map? Do you want your FF AI to spend energy trapping and killing one marine? If three SCVs and one marine charge up your ramp would you FF it? Your AI might unless you define very clearly what is dangerous and what is not. What if you decide the Terran army is actually in a ball, and your army is actually in a ball and the conditions are right for casting FF? Should you just fire them off? Maybe not! Maybe the Terran army is actually walking away from your ball and in the time it takes your sentries to carry out the FF order you give it, the Terran units will be gone, and poof: silly-looking FF! This observation alone means a good FF AI will probably need to do some planning and keep sentries in range of points that might be good FF spots in the future. I think a good FF AI is certainly doable, it will just take some serious development time. I disagree. There are a lot of handy functions to easily work out how scattered the army is and if it's a decent amount of enemy units(not just a single marine). On June 09 2011 07:56 Siretu wrote:Force fielding a ramp is harder and would take some time but I think I could probably make a decent one within a day of serious coding. Blizzard has a bunch of great programmers who should be able to fix it pretty fast. I challenge you to actually sit down and try this and then post your AI after a week, even. And all it has to do is be the supplied game AI except you added some FF behavior. The scripting -> load in game -> test -> change code cycle is already really long compared to other forms of software development. Blizzard has a history of leaving stuff out if they aren't going to do it right. I suspect good FF AI didn't meet this criteria. If they could do it in a day, it'd be there.On June 09 2011 07:56 Siretu wrote:The question is, does the AI have to be better than a human? You mention "keeping sentries in range of points that might be good FF spots in the future." What human actually does that. I mean, you might sort your sentries so they're in the middle so they can get in range for the force fields but it's not like you're actually trying to calculate the best spot for them to be at to make sure they can cast their force field. Haha, now we're getting the difference between human and AI play! Of course a human doesn't sort their sentries, because a human can see an opportunity for FF coming in advance and also be able to tell whether the sentries will be in range, or maybe grab them all and move them up. A human brain feels a battle coming and knows where enemy units are likely to be in a few seconds from now. These are all much more difficult for an AI to "know."Without planning (meaning watching the past and predicting the future) an AI will just realize, in an instant, "hey there is a good FF spot, RIGHT THERE" and it might 1) cast the FFs if the sentries are in-range or close to in-range or 2) realize the sentries are out of range and not cast the FF. Or cast them anyway and hope for the best, and maybe do some really silly stuff. What I'm getting at is, to a human watching, the AI will sometimes do smart things and sometimes appear to be incredibly stupid. It's all because you have to tell the AI EXACTLY what to do in EVERY situation which is a lot harder for a us to write down in code (for something complex like casting FF) than to just do it yourself with human intuition. Now banshee micro on the other hand has an easily-expressed behavior. "If something that can shoot you is in range->move away from it, otherwise move toward the nearest known target." BAM! Only mechanics are holding humans back from being banshee gods! You can probably get a really nasty Bansee AI going in a day for sure. | ||
ftl
28 Posts
I have no doubt that, with access to the Blizzard AI code, a good programmer or a good team would be able to do something with forcefields which is better than nothing. The more time you spend on it, the more intricate it can be - something really basic within a day, something more reasonable in a month. But would it make for a good game? For example, if the AI would often make decisions that are good but sometimes make forcefields that *look really stupid* - then the casual player playing against the AI wouldn't have as much fun, because it's no fun to win against someone who looks like they're playing retarded. (Remember, the point of the built-in AI is to challenge casuals and give them something to play against! It's not to be the best AI it could be!) Likewise, if a natural result of the forcefield AI is that the AI would end up perma-forcefielding its ramp when it's been beaten... that would make for a really frustrating game. The human player is in a winning position, but still has to play on for half an hour to build a completely new army that can break a one-base anti-air army, because their ground army is permanently forcefielded outside. It's annoying and frustrating, especially to a casual player. Is it worth introducing those possibilities to the AI? Maybe it is, maybe it isn't. But the point is that the AI has to also look good and be a good opponent for casuals. Making an AI that can beat serious gamers was never the point. | ||
Siretu
151 Posts
On June 09 2011 08:36 dimfish wrote: Show nested quote + What handy functions? In the editor scripting language? Lying around in the universe? What is the algorithmic complexity of them? There will undoubtedly be a trade-off of precision for speed. On June 09 2011 07:56 Siretu wrote: On June 08 2011 08:39 dimfish wrote: It might not seem that hard to code this up, but the issue is that it is a lot harder to define optimal FF casting than to say, define optimal kiting. Let me break it down for you if don't write code. In your mind you picture a situation with a blob of Protoss units and some sentries against some Terran units marching over in a ball, and you're like "oh, my toss army is bigger, so I would just FF a good-sized chunk of his stuff towards me I know I can kill." This is not how computers think! There are a ton of conditions your human brain can recognize in an instant. Computers have to think much more rotely. Let's assume the FF AI you write has perfect knowledge (map hack, whatever you want to call it). The AI does not "see" the picture above that you saw. It sees the data of the game like this. Player 1: Zealot @ location 4, 5, facing 56 degrees Zealot @ location 6, 2, facing 10 degrees Sentry @ location 3, 3 facing 10 degrees Player 2: Marine @ location 1, 1, facing 115 degrees Marine @ location 1, 2, facing 110 degrees etc. Now with a list of units and locations, what do you do? Are the armies close, far, scattered all over, what? Someone earlier in the thread mentioned you should do some kind of clustering algorithm on the units, which is a good start. The point is, you have to write the code to account for the entire range of data. What if the Terran player has single marines standing around the map? Do you want your FF AI to spend energy trapping and killing one marine? If three SCVs and one marine charge up your ramp would you FF it? Your AI might unless you define very clearly what is dangerous and what is not. What if you decide the Terran army is actually in a ball, and your army is actually in a ball and the conditions are right for casting FF? Should you just fire them off? Maybe not! Maybe the Terran army is actually walking away from your ball and in the time it takes your sentries to carry out the FF order you give it, the Terran units will be gone, and poof: silly-looking FF! This observation alone means a good FF AI will probably need to do some planning and keep sentries in range of points that might be good FF spots in the future. I think a good FF AI is certainly doable, it will just take some serious development time. I disagree. There are a lot of handy functions to easily work out how scattered the army is and if it's a decent amount of enemy units(not just a single marine). Show nested quote + I challenge you to actually sit down and try this and then post your AI after a week, even. And all it has to do is be the supplied game AI except you added some FF behavior. The scripting -> load in game -> test -> change code cycle is already really long compared to other forms of software development. Blizzard has a history of leaving stuff out if they aren't going to do it right. I suspect good FF AI didn't meet this criteria. If they could do it in a day, it'd be there.On June 09 2011 07:56 Siretu wrote:Force fielding a ramp is harder and would take some time but I think I could probably make a decent one within a day of serious coding. Blizzard has a bunch of great programmers who should be able to fix it pretty fast. Show nested quote + Haha, now we're getting the difference between human and AI play! Of course a human doesn't sort their sentries, because a human can see an opportunity for FF coming in advance and also be able to tell whether the sentries will be in range, or maybe grab them all and move them up. A human brain feels a battle coming and knows where enemy units are likely to be in a few seconds from now. These are all much more difficult for an AI to "know."On June 09 2011 07:56 Siretu wrote:The question is, does the AI have to be better than a human? You mention "keeping sentries in range of points that might be good FF spots in the future." What human actually does that. I mean, you might sort your sentries so they're in the middle so they can get in range for the force fields but it's not like you're actually trying to calculate the best spot for them to be at to make sure they can cast their force field. Without planning (meaning watching the past and predicting the future) an AI will just realize, in an instant, "hey there is a good FF spot, RIGHT THERE" and it might 1) cast the FFs if the sentries are in-range or close to in-range or 2) realize the sentries are out of range and not cast the FF. Or cast them anyway and hope for the best, and maybe do some really silly stuff. What I'm getting at is, to a human watching, the AI will sometimes do smart things and sometimes appear to be incredibly stupid. It's all because you have to tell the AI EXACTLY what to do in EVERY situation which is a lot harder for a us to write down in code (for something complex like casting FF) than to just do it yourself with human intuition. Now banshee micro on the other hand has an easily-expressed behavior. "If something that can shoot you is in range->move away from it, otherwise move toward the nearest known target." BAM! Only mechanics are holding humans back from being banshee gods! You can probably get a really nasty Bansee AI going in a day for sure. The handy functions available in the editor allow you to easier work out if there's a deathball or just some spread out units. I mean, when you're coding you can get more out of the AI than just the location and rotation. Things like going through the enemy units close to your own army and checking how many units are around each of them will easily give you a trigger that finds out what kind of army(wide-spread, deathball, just a couple of units) you're dealing with. I have to again mention EagleAI(Search for it on battle.net). It uses some pretty good force fields(not for ramp blocking but for splitting armies). Just make sure you set it to a hard difficulty or it wont have enough attention points to do it. Even though there's already AI that does it, I will sit down and make a Force Field AI. Not right now since I have 3 parties this week and then my summer job starts next week. This means I wont have a serious day of coding available so I'll have to spread it out. Also, when it comes to ramp force fielding you would need a pathing system to recognize a ramp(Which is possible. EagleAI does it). If you include coding this, it would be hard to do it within a day. I cba doing a pathing system so I will create a simple splitting AI(As well as surrounding) I agree with your other points. I just didn't think most protoss players microed their sentries positions that much(I am not a protoss, so I wouldn't know) And yes, things with easily-expressed behaviors are easy to create and AI for. I've easily done kiting, storming/emp'ing the most dense area and avoiding storm damage. | ||
GGitsJack
New Zealand426 Posts
| ||
xaeiu
432 Posts
On June 09 2011 19:38 GGitsJack wrote: Soon we can get an insanely-insane out of this world A.I that our pro gamers cant even beat :D what's more insane than a cheating ai? | ||
HoMM
Estonia635 Posts
On June 09 2011 19:38 GGitsJack wrote: Soon we can get an insanely-insane out of this world A.I that our pro gamers cant even beat :D That's what they said about chess... ![]() | ||
typedef struct
United States84 Posts
1. Am I up a ramp, or containing an enemy up a ramp? Easiest case, basically a specialization of #3. Friendly strength vs perceived enemy strength, cast in time to allow 0-50% of enemy forces up/down. 2. If I outrange the enemy units, are they clumped enough to put them in FF-jail, and do I have enough to kill them before they get out? Straightforward. Of course if the value of the enemy units is less that the value of my sentry energy, don't do this. 3. Are there 2 impassable terrain features close enough, and I do have enough FF, to completely block off the enemy's avenue of approach? The primary case. Cast a line of FF, perpendicular to the enemy's avenue of approach, connecting 2 impassable terrain features. When to cast depends on friendly strength vs perceived enemy strength. Could be after 0-100% of enemy forces have passed the desired FF area, with additional considerations. If I have HT, I want to let enough through for 1 storm to fully cover without wasting any of the storm. If I'm Zealot-heavy, let enough through that I don't run into my own FF. 4. If I outrange the enemy, do I have enough FF to put myself in FF jail? Getting desperate here. Your stalker ball has been swarmed by lings. 5. You're a Protoss in the open with no sentry energy. gg | ||
Eiviyn
United Kingdom169 Posts
If all you wanted was a FF line down the (perpendicular) middle of the group, it'd take a few minutes tops to make. | ||
RoyalCheese
Czech Republic745 Posts
| ||
BadgerBadger8264
Netherlands409 Posts
| ||
Siretu
151 Posts
| ||
butchji
Germany1531 Posts
On June 09 2011 23:52 HoMM wrote: Show nested quote + On June 09 2011 19:38 GGitsJack wrote: Soon we can get an insanely-insane out of this world A.I that our pro gamers cant even beat :D That's what they said about chess... ![]() And it's true now? | ||
MrTortoise
1388 Posts
you just have to make it look like its about ruight in 80% of situations yes you can abuse AI ... but if you want ed to write something to solve a sitaution you probably could ... it just that it wouldn't work realtime ... its kind of why people need to play for a LONG time to learn ... and people learn REALLY fast. All you need is avague approximation. | ||
Medrea
10003 Posts
| ||
Siretu
151 Posts
Edit: Some updates on the challenge dimfish gave me. I started coding 16.00 GMT +1 but I did lots of other stuff in the 7h since I started(Eating dinner, being outside, watching TLAttack) So I'd say I worked for about 3h. I am by no means one of the better SC2 mapmakers around but I now have an AI that can easily do a correct split of an attacking and moving army. I can also on command make it surround itself in force fields to protect from melee attackers. | ||
FudgeMunkey
Australia59 Posts
If you try that mission again (save before the ffs then reload save file) then the ffs will most likely be placed in the exact same place as before... | ||
dimfish
United States663 Posts
On June 12 2011 23:58 Siretu wrote:Edit: Some updates on the challenge dimfish gave me. I started coding 16.00 GMT +1 but I did lots of other stuff in the 7h since I started(Eating dinner, being outside, watching TLAttack) So I'd say I worked for about 3h. I am by no means one of the better SC2 mapmakers around but I now have an AI that can easily do a correct split of an attacking and moving army. I can also on command make it surround itself in force fields to protect from melee attackers. HAhha, awesome! One more tricky thing: how many forcefields should you use in any given engagement? MAke this thing bad-ass | ||
Siretu
151 Posts
That's the diameter of a circle that fits the entire army in it. A force field has a diameter of 3. So use (Army diameter) / 3 force fields and probably round up. Don't forget to check you actually got the energy to finalize the wall-off. Right now it uses 7 force fields for splitting and when it surrounds itself in force fields it makes as many as are needed to protect the entire sentry ball(There was some trigonometry involed, damn I hate trigonometry) | ||
DocNemesis
Philippines446 Posts
| ||
Siretu
151 Posts
On June 14 2011 03:13 DocNemesis wrote: It would take sheer ingenuity to make a sentry AI use forcefields. Making a sentry AI that uses force fields is trivial. Making an AI that uses force fields that might be useful in some situations is harder(but still quite easy). Making an AI that uses force fields properly most of the time(like a normal player) is not impossible but itsn't that easy either. Making an AI that does perfect force fields in all situations(Automaton 2000 style) is going to be very hard. | ||
StormsInJuly
Sweden165 Posts
| ||
AnxiousHippo
Australia1451 Posts
| ||
ETisME
12355 Posts
On May 29 2011 21:44 leviathan20 wrote: Show nested quote + On May 29 2011 20:32 Siretu wrote: On May 29 2011 19:48 Brewed Tea wrote: this is how the terminator got started. If the terminator had force fields the terminators would win the war easily. Now I'm just going to imagine John Connor trying to run up a ramp that is being endlessly forcefielded whenever i watch that film. *Forcefield* "I will be back" comes back with millions of terminators lol | ||
ComaDose
Canada10357 Posts
On June 14 2011 08:26 StormsInJuly wrote: I'm not even sure blizzard realized the potential for forcefield back when they were developing the game Im possitive they did. They did have people like david kim playing it afterall. I keep checking this thread for more developments of people actually doing it aha. | ||
Roflhaxx
Korea (South)1244 Posts
| ||
Leeto
United States1320 Posts
| ||
Duban
United States548 Posts
For each enemy unit determine what enemy units around it would get pushed and where. Draw a straight line away from the center of the force field to determine where that unit "in theory" would be moved to and keep track of "how far" that unit would be pushed relative to the sentry, closer or farther away. From that grouping use the Variance to determine which force field "splits" the most units, and add some way of "preferring" units closer to the sentry so you don't try to ff the middle of the ball and die in the process. Not very efficient, but it beats NP hard. | ||
![]()
BisuDagger
Bisutopia19224 Posts
How this applies to Starcraft: In insane mode force field could def. be used. When battle has been detected by the ai. It can determine the largest sphere created by connecting unit positions together. This bounding sphere can then be split in half. At the center point the force field could be casted allowing for "perfect" army splits. To take this a step further. The AI is able to understand enemy army size. If the enemy is stronger then the computer, the AI can detect how far the battle commencing is from a nexus and if a ramp is near by. If its with in a certain range then it can cast force field on the ramp blocking the enemy. Finally: Guardian shield is nice so the AI can just decide that if a guardian shield is active then the other sentries can cast force field. This code would not be difficult to write in, it's probably that the amount of work load already thrown at the programmers was too much to try and include everything. | ||
![]()
Aarda9
United States27 Posts
| ||
Siretu
151 Posts
Since I am working full time, I don't have so much time to work on the AI. I've fixed a bug that made it FF too early when attacking from the right. It now automatically detects what kind of FF it should use(Currently limited to either split or defensive surround against enemy melee units) It's fun to see 20 sentries own 1000 speedlings without any losses. They could probably beat 2000. I remade the splitting code so I can easily adjust the amount of force fields used. I haven't added the automatic adjustment of the amount of force fields. Not because it's hard, just because I've been prioritizing other stuff. Adding ramp force fielding requires pathing algorithms that I know EagleAI has but that I don't have. I will try remaking the part I need. | ||
Sevenofnines
United States167 Posts
Things begin to get more difficult outside of those trivial situations. For instance: -Suppose you only have enough energy for say 5 forcefields while your army engages in a wide open area. Would the AI know where to optimally place those forcefields? This problem involves things like existing Terrain, the position/range/speed/damage/composition/etc. of not only the Protoss units but the enemy units as well. I'm sure you could program the AI to figure this out given time, but it becomes much more difficult. -Suppose its a PvP and the enemy has a slightly larger Colossus count. Would the AI know that FF might end up being detrimental because it would help the enemy colossi? Would it be able to account for massive units possibly breaking FF. How would each of those things affect the rest of the army? Also, would the AI be able to calculate that if it placed FF in a certain way, how the enemy army might reposition and possibly take advantage of the AI's own FF's (i.e repositioning Colossi in a line parallel to the FF's). All of those things would need to be taken into consideration. Otherwise the AI would be easily exploitable. Making an AI to FF trivial situations is pretty easy. Making one that places optimal FF, can take advantage of them correctly, prevent the enemy from taking advantage of them, and works on all maps and engagement situations would be extremely difficult. | ||
chAse_
Germany84 Posts
On June 15 2011 08:16 Sevenofnines wrote: Rudimentary forcefielding would not be particularly hard to program. Obvious things like ramps or splitting an army in half or blocking melee units is easy. Things begin to get more difficult outside of those trivial situations. For instance: -Suppose you only have enough energy for say 5 forcefields while your army engages in a wide open area. Would the AI know where to optimally place those forcefields? This problem involves things like existing Terrain, the position/range/speed/damage/composition/etc. of not only the Protoss units but the enemy units as well. I'm sure you could program the AI to figure this out given time, but it becomes much more difficult. -Suppose its a PvP and the enemy has a slightly larger Colossus count. Would the AI know that FF might end up being detrimental because it would help the enemy colossi? Would it be able to account for massive units possibly breaking FF. How would each of those things affect the rest of the army? Also, would the AI be able to calculate that if it placed FF in a certain way, how the enemy army might reposition and possibly take advantage of the AI's own FF's (i.e repositioning Colossi in a line parallel to the FF's). All of those things would need to be taken into consideration. Otherwise the AI would be easily exploitable. Making an AI to FF trivial situations is pretty easy. Making one that places optimal FF, can take advantage of them correctly, prevent the enemy from taking advantage of them, and works on all maps and engagement situations would be extremely difficult. exactly what you said, sir. a 'stupid' FF-AI is pretty easy to code, an intelligent one is not. | ||
Siretu
151 Posts
On June 15 2011 08:16 Sevenofnines wrote: Rudimentary forcefielding would not be particularly hard to program. Obvious things like ramps or splitting an army in half or blocking melee units is easy. Things begin to get more difficult outside of those trivial situations. For instance: -Suppose you only have enough energy for say 5 forcefields while your army engages in a wide open area. Would the AI know where to optimally place those forcefields? This problem involves things like existing Terrain, the position/range/speed/damage/composition/etc. of not only the Protoss units but the enemy units as well. I'm sure you could program the AI to figure this out given time, but it becomes much more difficult. -Suppose its a PvP and the enemy has a slightly larger Colossus count. Would the AI know that FF might end up being detrimental because it would help the enemy colossi? Would it be able to account for massive units possibly breaking FF. How would each of those things affect the rest of the army? Also, would the AI be able to calculate that if it placed FF in a certain way, how the enemy army might reposition and possibly take advantage of the AI's own FF's (i.e repositioning Colossi in a line parallel to the FF's). All of those things would need to be taken into consideration. Otherwise the AI would be easily exploitable. Making an AI to FF trivial situations is pretty easy. Making one that places optimal FF, can take advantage of them correctly, prevent the enemy from taking advantage of them, and works on all maps and engagement situations would be extremely difficult. I agree With your first paragraph. Stupid FF ai is easy to make. I just think making smart FF ai is easier to make than you say. First of all I see it like this: There are three levels. Stupid ai, player-like ai(FFs are not always optimally placed and sometimes it can be abused, just as a normal player), smart ai. Creating a smart ai that always places optimal FF in all situations is extremely hard. Creating a player-like ai with a high sucess-rate is not. Now for your difficult situations. My ai analyzes the two armies(not extensively, just a little), it will check terrain soon. Not perfectly ofc but I will improve it over time. Checking coloossi count is very easy, so is checking for massive units. Your last argument about repositioning and taking advantage seems very vague. It seems like something players dont think about and that they might be abused in the same Way. I hope my entire post is readable. writing it on a small smartphone is hard work. | ||
Siretu
151 Posts
I know the surround part is kind of boring. Interesting fact, 24 sentries should be able to beat an infinite amount of lings using this since 6 sentries is enough to force field a ramp indefinitely. This means 24 sentries can keep 4 force fields up indefinitely which is what is needed to help them survive. | ||
TedJustice
Canada1324 Posts
But from what I've read, that's already been done. I guess it's the actual good forcefields that get complicated. EDIT: That surround video was pretty cool though. | ||
Severedevil
United States4835 Posts
| ||
ptanhkhoa
Vietnam87 Posts
| ||
dimfish
United States663 Posts
On June 19 2011 02:27 Siretu wrote: I haven't had time working on this lately due to work and other projects but I thought I should upload what I made so far. There is no difference between the attacks(except the units). The AI automatically detects which kind of force fields it should use(split or surround) http://www.youtube.com/watch?v=SBLNe0Gs19g&feature=player_embedded I know the surround part is kind of boring. Interesting fact, 24 sentries should be able to beat an infinite amount of lings using this since 6 sentries is enough to force field a ramp indefinitely. This means 24 sentries can keep 4 force fields up indefinitely which is what is needed to help them survive. Cool, cool! Now you gotta get those isolated cases into a multiplayer AI and see how well you can get it to decide when to FF | ||
Siretu
151 Posts
after that is added, i will add it to the standard ai and see what happens. | ||
MindBreaker
United States574 Posts
On May 29 2011 22:47 BackHo wrote: In the Kerrigan cut-scene you'd think that one would just shoot themselves rather than drop their guns to let the approaching Zerglings tear you apart. Off topic much??? | ||
| ||
![]() StarCraft 2 StarCraft: Brood War Dota 2 Counter-Strike Other Games summit1g6777 C9.Mang01124 shahzam895 WinterStarcraft474 Mew2King128 Maynarde123 Trikslyr55 kaitlyn22 Organizations
StarCraft 2 • Berry_CruncH296 StarCraft: Brood War• practicex ![]() • AfreecaTV YouTube • intothetv ![]() • Kozan • IndyKCrew ![]() • LaughNgamezSOOP • Migwel ![]() • sooper7s League of Legends Other Games |
RSL Revival
Cure vs Percival
ByuN vs Spirit
WardiTV Qualifier
PiGosaur Monday
RSL Revival
herO vs sOs
Zoun vs Clem
Replay Cast
The PondCast
RSL Revival
Harstem vs SHIN
Solar vs Cham
Replay Cast
RSL Revival
Reynor vs Scarlett
ShoWTimE vs Classic
uThermal 2v2 Circuit
[ Show More ] SC Evo League
Circuito Brasileiro de…
Sparkling Tuna Cup
|
|