|
On May 31 2011 02:10 elitesniper420 wrote: program the AI to detect big balls of units and then make it place forcefields in the middle of it
problem solved That's actually not a bad idea and would work better than most average human players do
|
and many of the ideas here. very few programers are commenting. why not try it out.
|
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?
|
thats a good point, i noticed that they never FF xD
|
If FFs were that easy the AI would actually use them, but yeah I agree, I wish the AI would play more like a regular player (similar). Hope this is something implemented into future patches or at most HotS.
|
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.
|
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.
|
It should not be that hard as well, if the army is bigger, then FF 90% of the entire army. Against even Terran army, FF about half. Against even Zerg army, FF the front 10-20%. I am no pro at coding, but for people working at Blizzard it should not take that long.
|
Does this mean Insane AI will automatically generate Energy for ForceField as well? =D EDIT: sorry for double post, but its been hours and its still on top of the Single Player section?
|
Having an AI place "reasonable" forcefields would be doable I guess. The thing, is these things aren't trivial to program and it's hard draw the line what micro the AI should do and what not? What about drop micro? Line splash avoiding? Marine splitting? Stutterstep micro? etc. 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.
|
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
|
Starcraft 2 is not really a good game for AI type problems like these that are harder to do because it just uses way to many resources that get used for graphics these days. Brood war and the BWAPI is a way better place to work on real AI because you have tons of CPU to work on AI which can never have to much CPU to work with. Any real AI algorithm is going to eat CPU cycles for breakfast I mean even the typical A* they prune the tree at a certain depth because its just too expensive for dozens of units all running such an expensive algorithm. Anyone that says AI is easy has no idea what they are talking about. 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.
|
Does the AI even make Sentries? I doubt it could correctly use Hallucinations and Guardian Shields.
|
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.
|
*imagines AI with perfectly-timed and -placed forcefields*
*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.
|
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.
|
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 agree with some people in this thread. An AI will never be able to use forcefields in a competent way like real players can. Forcefields change the gameplay in a way computers can never anticipate. I've played nearly 3000 ladder 1v1's and knowing when/how to forcefield can still be very tricky (and I'm masters).
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)
|
|
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.
|
|
|
|