Hard Light Productions Forums
Off-Topic Discussion => Gaming Discussion => Topic started by: Mika on June 22, 2011, 12:30:26 pm
-
Don't know if this has been posted before.
As title says, you'd expect this to be hard and done by some hardcore PC gamer that hasn't found enough challenge in the game. Judge for yourselves, but I laughed quite hard.
Call of Duty: Black Ops Cuba without firing a gun (http://www.youtube.com/watch?v=RULv6HbgEjY)
To be exact, game forces two scripted sequences where the player has to shoot. Those two shots are fired and nothing else.
Is it only me who thinks Call of Duty is hilarious since it tries to be a o-so-realistic shooter but instead becomes unintentionally funny exactly because of that?
-
Very old, take 5 seconds to Google and you'll find that no, it's not just you, basically the whole Internet believes this.
-
Black Ops was horrible, I couldn't be arsed to finish it.
-
Black Ops was horrible, I couldn't be arsed to finish it.
It's not that it isn't pretty, it mostly is (for me at least the graphics are fine), along with the sound that I found immersive; and I actually liked what's happening on the background like those flak puffs and airplanes flying. There's nothing particularly wrong with these.
It is the action itself that becomes hilarious when it's supposed to be taken seriously. There were several WTF moments in that clip alone where I just couldn't believe my eyes, in a "did they really do that?" -kind of way. The AI getting stuck behind barriers or any sort of junk in the old games is corrected by having no independent AI at all, and the NPCs only follow a certain route. Making a believable AI enemy in an FPS seems to be difficult, or that the scripting is simply so much more easier.
EDIT: Minor typos
-
Far Cry laughs at your last statement.
EDIT: And so does FEAR.
-
I didn't say unrealistic. I said horrible.
-
I didn't say unrealistic. I said horrible.
I know, I was expanding this a little bit.
Far Cry laughs at your last statement.
EDIT: And so does FEAR.
Maybe I should have put it as in "military FPS AI" instead of AI. Descent series also comes to mind. The best AI so far seen has been in Falcon 4.0 AF. But I'm yet to see it done convincingly in a military FPS, first Ghost Recon felt a little bit closer, but then again it was impossible to use cover fire. Add to that they seemed to have remarkably accurate eyes and shooting skills when they saw the player from a bush 150 meters away - afterall I needed a scoped rifle to do that!
-
FEAR had very convincing AI in a military FPS.
-
Far Cry and FEAR both have "military FPS AI."
FEAR guys will flank you, dive through windows to avoid grenades, vault over cover, push objects over to make cover, and keep you pinned as the rest of the team moves. EDIT: Well, until you get to the STAND AND DELIVER armored guys. But they have an excuse in that you can't really kill them that fast anyway.
Far Cry guys will do most of the above; covering fire, flanking, take decent cover, etc.
-
Far Cry and FEAR both have "military FPS AI."
FEAR guys will flank you, dive through windows to avoid grenades, vault over cover, push objects over to make cover, and keep you pinned as the rest of the team moves. EDIT: Well, until you get to the STAND AND DELIVER armored guys. But they have an excuse in that you can't really kill them that fast anyway.
Far Cry guys will do most of the above; covering fire, flanking, take decent cover, etc.
With Military FPS I meant the military in the present day, and not with supernatural enemies.
That being said, I have never seen FEAR, and Far Cry 1 only for a short period of time years ago. Far Cry 1 felt implausible in several places where the enemies deducted where you were and started shooting back with remarkable accuracy a second after you fired one shot - especially if they weren't even looking at your direction. But I only saw the beginning.
Isn't FEAR also a linear corridor shooter? I'm not sure if that's AI or just scripting if the enemies behave that way? Anyways, that's a good feat to pull of.
-
FEAR AI is not scripted, but it is very elegantly built. I assume you don't have a strong grasp of how game AI is done? It's not like academic AI at all, although the designer did go on to take a spot at MIT (which is why the subsequent FEAR games have bad AI.)
There aren't really any supernatural enemies in FEAR that are relevant to the AI.
I have to ask up front if you're interested in discussing good game AI, though, or if you just want to whine that no game has yet to simulate the human brain. There are game AIs far better than CoD but none of them will behave like humans.
-
Indeed. FEAR as a game may be fairly linear, but with the millions of permutations of what you can do, where you can go in a battle, who you can shoot at first, there's no way it would be as good as it is scripted. It's jut VERY GOOD AI.
-
FEAR's AI actually uses just a few basic rules of thumb which give it the illusion of extraordinary adaptability and intelligence - mostly by exploiting player psychology and level design. This is how good game AI works: it's elegant smoke and mirrors, not a buggy, sprawling mess.
-
FEAR AI is not scripted, but it is very elegantly built. I assume you don't have a strong grasp of how game AI is done? It's not like academic AI at all, although the designer did go on to take a spot at MIT (which is why the subsequent FEAR games have bad AI.)
There aren't really any supernatural enemies in FEAR that are relevant to the AI.
I have to ask up front if you're interested in discussing good game AI, though, or if you just want to whine that no game has yet to simulate the human brain. There are game AIs far better than CoD but none of them will behave like humans.
I do not have a background of computer sciences, and specifically not of game design. One of my studying time friends (physicist) works in a local game company, so I might have heard a couple of things, but not much.
Discussing about it, why not? I'm not asking for AI humans, just AI's that gives a good challenge and behaves a bit more realistically, when needed - e.g. Serious Sam doesn't. FEAR AI sounds like a start, I might need to take a look at that game since it went under the scope when it was released.
I'd like to start with the question of why Falcon 4.0 AF got it down quite believable, while FPS's don't? Is it that you can't see the person? It's not like you could chat with the AI wingmen, but they are reasonably smart most of the time.
-
AF was, for one, a redo of a very broken game - that gave it a lot of extra development time. Probably more importantly, though, Allied Force's AI has to do almost none of the expensive computations that an FPS AI needs to handle. Raychecks in particular are a huge computational sink in FPS AI, whereas they're barely necessary in flight sims.
This is also part of why it's so easy to make FreeSpace AI quite good.
-
Here's (http://aigamedev.com/open/editorial/open-challenges-fps/) a list of challenges in FPS AI which flight sim AI generally doesn't have to face.
-
Probably more importantly, though, Allied Force's AI has to do almost none of the expensive computations that an FPS AI needs to handle. Raychecks in particular are a huge computational sink in FPS AI, whereas they're barely necessary in flight sims.
This is also part of why it's so easy to make FreeSpace AI quite good.
I was thinking more of these lines too. Ray checks are needed to see if something is obstructed or not? Or is it for path finding?
-
Pathfinding is, I believe, generally done with a waypoint grid, but raychecks might be involved. Raychecks are probably involved in checking line of sight to other actors. I don't know enough past that level of detail, but that link above has some information.
-
Half Life Marines will mess you up...
that is all.
-
You do ray checks to see if the AI can see a target. Which means you have to check every point between the shooter and the target to see if there's something in the way.
There are ways and means to optimize this, but it's still a lot of computations you need to do.
In a flight sim such as Falcon or FS2, raycasting is comparatively easy because a) we do not need to do these checks as often, given that you will almost always have a line of sight to the target, and since we do not have to account for complex geometry being in the way (the top level bounding box is suffices most of the time), it's not as big a problem for the FS2 AI.
Pathfinding is a related problem, and once again made easier in flightsims. In an FPS, you would almost always use some form of hinting to give the AI an easy way to find its way around a level. In a flightsim, you can assume that you will have a direct path to your target most of the time, which makes pathfinding very easy. The FS2 AI falls on this face here a bit, because it will go a bit crazy in some cases (The big asteroid in the BtRL demo being a supreme example).
Pathfinding is, I believe, generally done with a waypoint grid, but raychecks might be involved. Raychecks are probably involved in checking line of sight to other actors. I don't know enough past that level of detail, but that link above has some information.
Pathfinding is more a graph traversal problem. You have a grid of nodes you need to traverse between your current location and the place you want to be, so the AI needs to find a path across the grid.
It should be noted that efficient graph traversal is a very hard problem in computer science, being among the NP-complete problems.
-
Interesting to hear that the ray checks are still rather expensive. Ray-tracing software tends to say otherwise, but they have several methods of overcoming of these limitations. The most commonly used trick in real lens design softwares is to use sequential ray-tracing, meaning that the program always knows what surface follows which and is unaware of the surfaces outside the now intersected and the following to be intersected surface.
But this can't be used in a dynamic environment. The other trick is to use bounding volumes, no doubt they are already used in the FPSs, or are they? Custom data structures sounds a bit like that to me. For bounding volumes, polygon intersection testing is indeed quite expensive procedure, even triangle or a cube tends to be considerably slower than a sphere or a cylinder. I recall seeing some FPS kind of engine that used spheres as a primitive instead of triangles and was able to pull of something that current polygon engines couldn't, but that was some time ago.
Generally, I'd think that the LOS determination can be done parallel to some extent.
What I have heard of path finding, the most common thing seems to be several predetermined way points along the level, more than this I don't know.
There are some other things that are usually not considered in AI, like the contrast of the player against the surrounding environment, and the type of motion player is currently doing. Motionless person is very hard to see from 150 m away, while a moving person is considerably easier to see. This is usually somehow wrong in most of the games I have seen.
EDIT: the name of the game that uses spherical primitives is AntiPlanet 2, and the engine is called VirtualRay (http://www.virtualray.ru/eng/news.html). It is developed by a Russian guy.
Game can be seen here (http://www.youtube.com/watch?v=i3rFwz9cmio&NR=1)
-
Interesting to hear that the ray checks are still rather expensive. Ray-tracing software tends to say otherwise, but they have several methods of overcoming of these limitations.
Uhh, no, raytracing is still incredibly expensive. There's a reason why raytracing isn't used in interactive graphics.
The most commonly used trick in real lens design softwares is to use sequential ray-tracing, meaning that the program always knows what surface follows which and is unaware of the surfaces outside the now intersected and the following to be intersected surface.
But that's something you can't do in raycasting. Not that you'd have to; a raycast delivers a boolean result, true if there is a line to target, false if not.
But this can't be used in a dynamic environment. The other trick is to use bounding volumes, no doubt they are already used in the FPSs, or are they?
Bounding boxes are used extensively, especially when it comes to determining hit locations on actors (an actor being defined as being anything under AI or player control, as opposed to level geometry).
Generally, I'd think that the LOS determination can be done parallel to some extent.
Oh, certainly. And I believe modern engines do this quite often, but this only distributes the cost, it doesn't really reduce it.
What I have heard of path finding, the most common thing seems to be several predetermined way points along the level, more than this I don't know.
As i said above, and as mentioned in the article battuta linked, this is indeed so.
Nevertheless, finding good paths across a waypoint grid is a very hard problem and setting up waypoint grids is a nontrivial task as well.
There are some other things that are usually not considered in AI, like the contrast of the player against the surrounding environment, and the type of motion player is currently doing. Motionless person is very hard to see from 150 m away, while a moving person is considerably easier to see. This is usually somehow wrong in most of the games I have seen.
Metal Gear Solid, Splinter Cell, any stealth game in recent years has done this. Doing it correctly however is once more a hard problem that involves a lot more raycasting. The pseudocode for it looks like this:
for every actor
for every target in sight
evaluate level geometry surrounding target
evaluate target camouflage
It's a lot of processing to do this "realistically", so most games fudge around a bit in order to speed the process up. For example, Metal Gear Solid 3 only computes a global visibility for the player based on his current camo and surroundings as well as movement, then used that as a modifier for the probability to get spotted.
-
Can we get the AI discussion split out? I'd hate to have it buried in a topic people might not come into. It deserves its own.
-
While people are discussing AI, are there any standard ways a real-time game AI is dealt with (for example, in board games with low to medium complexity, alpha-beta pruning seems to be the gold standard), and are there any articles about these types of game AIs?
Most games I've dealt with AI and implemented it are not real-time (mostly board games).