CryEngine 3 gives us a glimpse at the future of gaming [video]
bgr.com
bgr.com
...but...
Why are we conditioned to think that "the future of gaming" is solely a function of a game's audiovisual quality? I would like to see a "future of gaming" video that shows off highly-interactive (rather than just very pretty) gameworlds and characters. NPCs that notice you are trying to put a bucket on their heads, for example.
AI is, by contrast, a hard problem. We don't have a very good idea at all of how to exactly simulate a personality, but it's likely to be orders of magnitude more complex than the most elaborate physical simulation ever designed. The most intelligent NPC ever developed was really, really stupid. The appearance of realistic characters in games at all is an elaborate stage show. You can spend artist time making the show seem convincing in more circumstances, but evolving it past that at all is one of the hardest problems in computer science. We're nowhere near realism.
Now, with that said, in the demo they showed off some of their pathfinding and destructible environment improvements. There are plenty of gamers who care just as much (or more) about that stuff.
I'm confident even the "hard" problems will be solved in the very near future.
That's a good point. And I don't even think it's so much about AI being really hard as it is about photorealism being such a clear goal. Because really there is no limit to the other dynamics that can be explored that aren't as unattainable as a human AI. I still think the ghosts in Pac-man are clever. And while I'm by no means tuned in on the gaming community today, just the fact that you still play these super good-looking games with a few buttons and two joysticks says a lot.
Now, all of that is just square zero. A mere preface to the real problems: realistic animation and realistic interactivity. You can make a pretty decent photorealistic world with current technology but it would have to be an untouchable, unmoving, unrealistic frozen world. Adding in animations is a problem at the same computational intensity as the rendering problem. And making the world capable of being interacted with a level of fidelity approaching the quality of the rendering and animation is a problem so lacking in proposed solutions that it doesn't even have a sound theoretical underpinning yet.
Other than that, there are still plenty of hard problems left in rendering, especially with regards to effective procedural generation (which arguably falls more under modeling). Our ray tracing is still far from "realistic" - take a more complex scene than a table with a wine glass, and we can still usually discern the difference, especially with complex materials and subsurface scattering (human skin STILL does not look quite right). As it is, we are only able to calculate light travel by points (we use the term ray tracing, but typically every ray does a number of steps, unless every model is mathematically calculated). Light travel should be determined by complex volumes -- which is pretty much impossible to simulate on today's hardware ( O(n^6) magnitude at least - growing by volume, travel distance, number of objects, volume bounces (dear god), and number of pixels calculated ).
Better AI might not always be better. You don't want stupid AI bugs, but you don't necessarily want the AI to be smarter than the player. You may want an AI with a realistic character, but maybe not. Good AI makes some sense in a sandbox world, but it's not necessarily fun.
You could easily have NPCs that run a little life simulation, (like in the early versions of Oblivion) but then you have the problem of NPCs going off the script. If you accurately simulate mental states, and some villager rolls a 1 on the d2000 mental state die, then proceeds to kill all the plot-critical NPCs in their village? Now you've got a more realistic, yet completely broken, game.
In short, for gaming the measure of good AI is "fun", not "intelligence".
The path to realism in graphics is pretty clear because the real-world behavior of light is well-understood. There may be equations yet to be perfected, and challenges in efficiently simulating that behavior, but the direction is never in question; you can always tell if you've made it look more realistic or less.
By contrast, AI in games has reached a local maxima; the combination of pathfinding, scripted cues, an elaborate finite state machine, and a few basic heuristics is capable of simulating human behavior well enough, and with few enough glitches, that it presents a realistic universe to the player so long as they don't exceed the scripted bounds. However, if they do exceed those bounds, the whole thing appears paper-thin. You can extend the bounds with additional effort in scripting, but not infinitely, and with diminishing returns-- and doing so gets you no closer to having real AI which would be able to make those same decisions on its own.
Striking out and attempting to make an intelligent NPC-directed world from scratch... I'm not saying it's impossible, but I haven't seen anything, from AAA titles to indie games to tech demos, to imply it's coming soon.
But maybe that's just because I haven't seen the Minecraft of AI-driven gameplay yet.
I am actually working on such an AI system, believe it or not (As I am sure quite a few others are)! I don't doubt my algorithms, because I have already prototyped them and they work (at least well enough to create some interesting, if flawed gameplay), but I do doubt that I will ever get a game out that uses them effectively (making even a simple game is incredibly hard, and I have a bad habit of creating overly-complex stuff).
Your traditional AAA game does, as you mention, basically use finite state machines to determine enemy behavior (and incredibly simple ones, at that).
Why is a FSM bad?
Because someone MUST explicitly declare every combination of situation, and the paths between them.
How does my system work? It uses a combination of AI techniques that have been around a long time (just never used effectively in games).
1) Rules and queries (like prolog), with backwards chaining and propositional logic (basically a big, graph-based system). How might this work? Let's pose a few fake rules and a query. A) apples are red B) oranges are orange. C) apples and oranges are fruit D) red fruit is good...QUERY: are apples good? Using backwards chaining, this can easily be deduced.
2) Motivators and deterrents. Every NPC has their own set of motivations, as well as "bad" things they try to avoid. They attempt to maximize their output towards attaining their goals, prioritized with various points (i.e. get food: 1 point, stay alive: 10,000 points, etc)....the best outcome can be found with any traditional AI system (like a minmax tree, A*, or whatever is appropriate for the given case). This is not just about food or living, but can be emotional concepts like "seek happiness" or concepts that involve the physical world "find shelter"...
3) Basic AI for sensory and locomotion purposes (line of site, perception, planning, gathering knowledge, etc.)
4) Abstraction of communication -- not at the syntactical level, and not at the grammar level, but in its crudest terms ("higher level language")...I call it caveman-speak but there has to be a better phrase...i.e. "Me Hungry" or "Why You Steal" -- using sentence fragments, you can construct a variety of phrases without giving the computer a hard time interpreting it. On the surface, you can throw in the syntactical sugar to make it sound less crude to the user, but on the backend writing a full-blown english parser is not a wise idea.
5) There is more, but I won't type it out here...
In the simplest terms, think of it like an empty stage in a play. There is no director (Finite State Machine) but there are characters and props, and the characters have backstories/motivations/genetic makeup/birthrights that determine what they will do and how they will react to changes in their environment. When you have rules, motivators, and a knowledge base, you can let the AI run wild -- and producing new rules grows with linear complexity, rather than exponential (as with a FSM).
Alternatively, if you even played the Sims, imagine something like that, but with more comprehensive AI (NPCs seek to maximize their comfort levels (id) while acting within their restraints (ego/super ego)).
You can track my progress (or lack thereof) at gavanw.com...unfortunately I work a fulltime job in addition, so development is occasionally slow.
I've always wondered why game rules have to be so rigid (use a state machine) and always thought it was the technology but what you described makes sense and makes use of older technology but in new applications.
I just took one AI course while in college but got hooked ever since.
Question: Can you expand on the motivators and deterrents concept? Specifically, how do you relate something like "getting food" with the world objects? Assigning points to specific world objects(apple, cow, chicken...) seems to get us back to a state-machine like game. Humans have experience (memory and patterns) to guide them, what would the characters have?
In reality, you have one knowledge base, which is simply a set of facts/rules about the world. For example...
a) berries are fruit b) red fruit is good (+1 score) c) green fruit is bad (-1 score) d) enemies are dangerous e) eating while in danger is bad (-10 score) f) eating while full is bad (-2 points)
In a finite state machine, you would have to have several combinations of state (are berries present? are enemies present? are you full? etc). Say (for argument's sake) you have 5 possible states (binary). In a FSM, this would have 32 possible permutations of the states, which all must have corresponding actions associated with them. In a motivation based system, it simply evaluates each state individually, and adds up the points. It chooses to pursue the state that gives the most points. So, here, that would be eating red fruit while enemies are not present.
The way prolog-like systems work, the computer does not have to have ANY idea what food or hunger or anything like that is -- it can be completely oblivious to abstract concepts. All it is doing, in essence, is (searching for and) matching strings. Those strings are the identifiers used for classes (or instances) of game world objects, NPCs, etc. So if you gave an NPC a motivator (kill(enemy) = +10 points, Bob = enemy, get_caught_doing(kill) = -100 points), it will find the best way to kill Bob while avoiding negative consequences. This is (obviously) metacode, and the actual implementation would require better organization and more explicit syntax.
Make sense?
I have written exactly 15 lines of prolog but I'm somewhat aware of how they work. This is great stuff, but as you said the devil is in the details. Please consider writing up your experiences and sharing it on HN.
Ironically the game where I've seen the most convincing AI currently is the Forza Motorsport series (increasing with each release). There is nothing short of impressive in seeing opponent drivers trying to pressure you to fault, intentionally breaking on you way after the apex just when you are about to floor it, showing excess of confidence throwing them out of the track, or reacting to pressure you put on them (you can literally see some panicking or getting aggressive in their driving), learning to clock faster times lap after lap and race after race, and even from your own lines. Sure they're nowhere near a real human, and with experience you can land better times than the AI and outsmart them, but there's plenty of physics and graphics going on already and there are trade-offs to be made.
Games don't want true AI solutions, they want to entertain the player. Put enough veneer on the world to make the player suspend disbelief and move on. Anything else is a waste of money for the most part.
Now without such a physical-based rendering-equation-solver, realtime raytracing of "simple scenes" (couple of spheres and boxes) is doable today. The more complex your scenes get (even with acceleration structures), the more you need to lower your viewport resolution. Your high-end desktop GPU can then handle raytracing for a low-end "mobile" resolution such as 320x240 or whatever. But your low-end mobile GPU probably can't. Also for fully accurate antialiasing you'd need to render at 2x your resolution and downscale.
tl;dr: realtime raytracing of simple scenes is feasible, realtime photorealistic full-screen antialiased raytracing of complex scenes isn't and if current tech development trends continue, won't be for another decade perhaps.
I don't see "we're really close to pulling it off" because as GPU flops and caps happily increase, so do unfortunately screen resolutions. In realtime raytracing, we're always lagging behind and always have to compromise: (1) high resolution, (2) antialiasing, (3) complex scenes, (4) photo-realism -- for real-time speeds, pick any two.
Also FLOPS has been increasing much faster than resolutions. 1920x1200 is about 3x the pixels of 1024x768. Graphics FLOPS has increased way more than 3x since 1024x768 was considered a high-resolution screen.
While XBox and Sony were battling over who could have the prettiest graphics, Nintendo made lots of money with the Wii's unimpressive hardware, and Apple (maybe even unintentionally) and other smartphone manufacturers came in and revolutionized the mobile gaming market with unimpressive gaming hardware.
There is a "future of gaming" for consoles and more serious gamers, and there is a "future of gaming" for more casual gamers.
Do people really think that it's a matter of CPU time goes in and intelligence comes out?
People seem to think that if we were not spending so much time on graphics, that we would have amazing AI by now, but it's simply not the case.
The reason we use simple state based AI's for the most part comes down to controllability.
In order to actually design a fun gameplay experience you need to have ways to tweak the AI to behave in the way that the player will find fun. You want to be able to ask "Why did that character not throw a grenade in this situation?", be able to find the answer, and tweak it.
The techniques that come out of AI research don't expose parameters in this form, and so are essentially useless for real game AI.
Probably the biggest CPU use from AI today are perception checks, like can entity X see entity Y from it's location. Checks like these tend to cross cut into engine code and just feed into the very simple state based AI.
Personally I don't think this would be hard to simulate, for instance fear would be marked with increased cursing, decreased accuracy, increased error, and a potential for full scale running away. Complacency would mean that guards don't check every corner on their patrol routes, have smaller visual cones, and are slower to react when shit hits the fan. Confidence could be marked by seeking cover less, drastically increased accuracy, and so on.
So yes, whilst in the distant future we could have truly "intelligent" AI which would lead to unpredictable gameplay, we at present have the tools to create enemies that can provide a much richer and more vast array of feedback to the player's behaviour.
Working in game design with complex AI, I can tell you that the last thing players ever want is rare behaviors. They tend to think of these things as bugs even if they are simply that, rare behaviors.
Then again, I've been working in game systems where the rare behaviors are sometimes positive and sometimes negative for the player. Given this, the negative ones stand out as "bugs" even if they are not.
Enemies set of motivations: kill the player
Knowledge base: 1) An organism can be killed with an excessive amount of directed energy (heat, force, etc). 2) The player is an organism 3) Some general rules about the physical world (how gravity works, how fire works, what switches and levers activate which objects, blah blah blah).
Now, the enemy might take some pre-programmed path to kill the player (like fire a gun at the player). Or, if circumstances dictate that it is best, they might produce a more "creative," emergent approach. Say, for example, the enemy pulls a lever. This was never added in by the programmer. The lever activates a trap door, above the players head, and a bunch of boulders crush the player. Switch action -> directed energy -> kill organism -> player death.
In shorter words, it really comes down to the programmer determining an effective knowledge base (abstraction), and letting the AI run wild with reasoning. :) This is not to say machine learning wouldn't be the icing on the cake, but you could just as well let enemies (or NPCs) have the knowledge before the game is launched without having to learn it.
One of my favourite games is The Witcher 2 because it explores player choice with branching story lines. A lot of things you do in the game change things later on in ways that few other games do.
This is perhaps the most accessible way to appreciate just how much the increase in computation (both 'general purpose' and 'graphical') can be done on high end hardware these days.
True story, I was a big fan of Empire (ran on terminals, later became known as Bright's Empire) and when I went to Intel and worked on their 'high end' graphics chip (82786, used in exactly one video card from Number 9) we thought maybe someday you would be able to see the units battling cities rather than have your A turn a city '*' into an 'O'. Little did I know ...
Thank you.
It seems clear to me that I implied that being only capable of making an FPS means you are locked into making an FPS.
And the current market is "crap sells well". Let's guess what everybody is working on...
There are some great FPS's with amazing stories that make up a large part of the bedrock that is gaming as a cultural medium.
They are not retellings of the same story any more than Oscar-bait movies are retellings of other stories.
It's like saying "don't look at Harry Potter or Star Wars or Lord of the Rings as separate stories, instead think of them as different interpretations of the monomyth. It's the same story over and over, but if done well it can still be entertaining".
When all's said and done, I'd like to call them separate stories. Identifying the common plots and tropes doesn't make them the same at heart.
At the end of the day, your player has to PLAY the game and I guess I can understand the frustration of the grinding and the mechanic, but I fail to see what is superior.
Maybe people want more games like Heavy Rain? I loved Heavy Rain, it was an incredibly engaging and emotional story. I had a great connection with the characters and story, but there's only one problem: it's basically a choose your own adventure movie. Lots of watching, some playing, very little skill involved.
That being said, a great example of simple, (relatively) nonviolent gameplay giving way to countless hours of playing time is Minecraft. A Minecraft or even BridgeBuilder clone with this CryEngine would be pretty rad.
Edit - continuing:
Ico is fairly engaging and even intense in places, and it doesn't involve guns. Little flash games like N+ are actiony and you don't have to shoot people. I think a AAA high-budget game with N+ mechanics would be awesome. Darwinia is a good example of telling a story in a RTS.
Lots of games, even FPS games, involve stealth. So that's something you can do in an "action oriented, modern, gun-based game" other than killing hordes of random enemies. Another action-oriented mechanics is hand-to-hand combat, from realistic(ish) UFC fighting games to Ninja Gaiden or even Mad World.
([1] - We Can Remember It For You Wholesale, but everybody knows it as Total Recall.)
Game development costs significant money so gameplay can't take significant risks. Any viable alternative must be able to generate comparable returns. Cynically put, for a game to be a success, there needs to be enough instant gratification for mass appeal. Same lessons from Hollywood...
First person shooters a popular primarily because they give us an adrenaline rush, with secondary effects like boosting your ego if you play multi-player. That's why the format works.
So what other options are there?
You could invent another format that produces similar adrenaline rushes such as Amnesia, which is really just a spin on the FPS. Perhaps there are similar things you could try by simulating, say, a rollercoaster or a jet fighter.
But what else is there which provides the same immediate gratification of an adrenaline rush? An endorphin rush...
Now here the obvious choice would be sex, and I'm sure the porn industry is watching closely, but there's too high a risk of censorship for the mainstream game industry I guess; our society is much happier with violence than sex.
But another trigger of endorphins is relaxation. What about games which, when you play for an hour, you finish feeling relaxed, happy and calm? Take flow for example - http://interactive.usc.edu/projects/cloud/flowing/ - there's even a learning element there. Throw in some elements for player creativity, and you have your secondary ego boosts for longer term gratification. I don't think is has been explored enough to understand the potential, so risk is high but at the same time, rewards could also be high if you're the first on the scene.
We're currently in the beta testing phase of our game where you get to shoot mechs until they're dead. http://mwomercs.com
Totally different than people.
Love, The Internet
I think though that you've may have conflated cause and effect. This sort of engine isn't really useful in a poker game. Do you remember the beautifully rendered ChessMaster games on the Amiga? I remember people talking about a 'waste of the graphics' to render chess pieces like that.
I don't think anyone has done a good Myst replacement, this might be good for that too. An archeology game? possibly. Remember that the 'engine' and the 'game' are two different things. Perhaps the 'safest' thing to imagine is an FPS, known audience, known play etc etc. Licensing isn't cheap, so if you're paying for it you don't want to risk that capital on a hyper realistic 'angry birds' now do you?
Some other thoughts on uses for an engine that does good visuals:
1 Mechanical puzzles - build machines to solve puzzles.
2 Life/City/Population simulators - more fun to watch.
3 Sex games - mentioned above.
4 Sports games - haven't had a decent FP kayaking game
5 Where's Waldo type
I'm sure there are others.The problem is the other half of their studio, which creates games based on those engines. This is where all the problems lie. No taste.
And it's not just Far Cry and Crysis. Check out their recently released iOS game "Fibble". It's tasteless horse radish.
I ask in all seriousness... I'm thinking maybe the licence of this engine comes with certain terms?
6 Paparazzi - Start with a lousy camera, have to take
photos which are graded for score. Get better lenses
and access to better hiding places as level ups.
(This is like a FPS, but with no guns, and with
the enemy on a pre-determined route and with strict
time limits for each level)
7 Tree in the Field - you start in a field.
There's a tree. You wander around. You can
climb the tree. You can run. As you do certain
things (start running, for example) a timer
starts with a recommendation ("Hey! How fast
can you run round the field? / Climb the tree?
/ etc". You find a magnifying glass. You can
look at bugs. You can look at stones (and the
fossils). You can look at flowers. The weather
changes. The day turns into night. You find
a box. When you find the box another prompt
pops up "Hey! This looks like a good place to
keep your fossils!". There is a rich and
diverse eco-system, with hooks into information
about everything ("This is a 'Cowslip' (*Primula
veris*)" - but then more links if wanted. Right
down to high level biology concepts.) You can
race bugs against each other. You find some
seeds, and a trowel, and some rickety rackety
implements.
7a Tree in the Field DLC - A Toolshed for the
equipment / A mini greenhouse / etc etc.Perhaps you are too hard on yourself. (Although given you live in the UK that's likely a pre-requisite for continued residence...)
http://www.kongregate.com/games/duckets/you-are-the-road-mol...
This game came out of a game hackfest called the molyjam where each team had to pick a game idea from a Peter Molyneux's faker's twiter stream: https://twitter.com/petermolydeux
http://en.wikipedia.org/wiki/Pok%C3%A9mon_Snap
Your "tree in the field" idea sounds like something Peter Molyneux might promise ;).
This paragraph best sums it up:
“Watch this—it never fails,” he said, bending over his computer keyboard. On one of his twin monitors, Hecker pulled up the movie-trailers section of Apple.com; on the other, he loaded the upcoming-releases page of GameSpot.com. The movies, Hecker pointed out, encompassed a huge diversity of topics and approaches, from buddy comedies to period dramas to esoteric art films. The video games, on the other hand, were almost all variations on a single theme: outlandishly attired men armed with gigantic weapons, shooting things.
Source: http://www.theatlantic.com/magazine/archive/2012/05/the-most...
Its not very cost effective to create content at a quality that only a small number of users are going to be able to see.
Games "last" quite a long time, too—by catering first to the high-end and then downsampling to be able to run on older hardware you make things "future-proof". When you release your game on iOS in a decade, it'll still look great :-)
None of those games would be improved by increasing photorealism.