XBoxOne, my thoughts [Pensively possitive] UPDATE!
12 years ago
==============UPDATE============
Introducing the Xbox180 :3
They listened to all our anger [including that of multiple military's] and have reversed and removed most of the BS.
Now I just need a job so I can get it day one :3
================================
I'm as pissed about the price of the X1 [the UK price being grossly inflated] and many of the issues we know about [no offline gaming after 24 hours and such] as anyone but I watched the 1.5hour press conference and holy crap do they have some good games coming and seemingly an actual reason for the online stuff.
Using the cloud for the ai processing to give FAR beyond what any console could do [and it sounds like that's applying to the graphics as well] sounds potentially pretty exciting, gotta see how well it's handled.
The most intriguing thing that I heard was forza 5 [or whatever edition it was, not a racing sim fan, much prefer the fun racers.] It learns from you and creates an ai racer based on you which can race with your friends when you are offline and you can earn points based on how well it did while you were offline. [I don't agree with earning stuff while not playing but that level of ai sounds pretty cool.]
I may well get the console after it's price comes down a bit [and especially if they see their errors and remove certain restrictions.]
well, i should probably clarify that... AI algorithms aren't processor intensive as long as the AI is coded efficiently and doesn't have to do higher-brain like "thought" patterns. to be honest, most of the lower-end PC stuff you'd need FOR an AI is where most of the meat of the processor's cycles are soaked up. things like raycasting to calculate visibility, distance, angle, etc tend to be pretty beefy in most engines but past that, AI for a convincing game entity is actually pretty low on the "soaks up CPU cycles" thing.
Granted, yes, an AI's system CAN be heavy on the cpu but that's more often because it's inefficiently designed and executed poorly.
Obviously if that works well perhaps they could do something similar in FPS games and other genre leading to great mixed games of players and AI where we may never be unable to play a multiplayer game due to low player counts.
Now the forza one may be low intensity as you say due to the limited nature of what it may need to do, but I'd expect a FPS or RTS version of this utilisation of the cloud could well need a lot more power than a single console could provide without dragging down the game itself.
As for FPS bots, that's actually simpler... give them an objective, give them a variety of states with specific behavior, program in a metric such as an "aggro meter" to determine who is the bigger threat and who is the smaller threat (and that can be based off of things like what class, how healthy, how aggressive, etc.) all the rest, things like ammo management, firing arcs, etc are pretty easy things to do... though, if they're trying to program in errors and ineficiencies into this AI then that is likely to get it a bit more beefy but in the end it's all still pretty simple stuff.
I've been breathing and sleeping this stuff for a good while now... though i'm not a programmer, you don't need to be one to understand the logic behind AI systems whether they're advanced or basic.
Hopefully this will make much less predictable AI and a more organic feel to games that have them. Afterall, there could be millions of unique AI based on all the people who have played or currently play that game. Obviously that's only if this works as they present it.
Also, separate to the AI is the group processing for the graphics. I'm not completely certain on this point but they seemed to be saying that the cloud might have a part in the games graphics as well. Perhaps it will handle the more intensive lighting and texturing effects and such for your system and send you the display signal? In this way you could get graphics far beyond what any one console [or PC] could manage, though I'm not certain on that point [it was covered in the forza section of the briefing so if you can find that segment you could see for yourself.]
For a racing game, you would have to main classes (or a third if you count "drive car along this path defined as either waypoints or a spline but that's not really an AI per-se so i'm not going to include it.)
the classes would be reactive and anticipatory. so, naturally, a reactive AI system will usually stick with just reacting to various inputs and stimuli. so, things like "is the player near me? how close?" or "what's the curve of this portion of track like?" and even "where am i in relation to the track, am i close to the inner or outer side?" that kinda stuff. it's all pretty basic stuff when you break down the logic (try it, draw up a flow chart of all the decisions you'd have to make when you're driving a car. it's essentially the same with racing except racers tend to need to have this calculated faster) and when you do, you'll realize that driving a car is actually pretty basic from a purely logical input/output point of view. so, "put key in ignition" and "check speed/rpm" like that. breaking it down into the reactive/anticipating kinds of AI systems just means what variables are you going to be getting that are from other systems and which ones are calculated with the basic information that the AI has available to it at the time.
when you want an anticipatory AI for a driving game, it'd have to factor things like the number of cars around it, what delta angle each car is at, the distance, it's speed, angle, etc... all of that are basic variables that are very easy to extract and feed into any structure. sure, if you're using an array to store all that (which is what i'd do if i could since arrays are dynamic in that they can store a block of information and have more entries without having to hard-code them in) it might take a bit more processor power to collate but that's minimal nowadays (unless it's storing information for thousands of objects.) then the next step is to extrapolate based on the variables collected so that you can then figure out the next likely action of the entities that it's going to be interacting with. in the case of cars, this can be handled with basic "if" statements (which are one of the most basic coding functions so their overhead is miniscule.) so, "if CarX's angle is between Z and Y degrees" and "if CarX's speed remains the same" then "calculate likely path of object." once you have that, "determine if object will intersect with this entity" which is a simple boolean. from there, you can then go into a state such as "if car X will intersect, change speed and angle" usually there will be more states than just that but for the most part that's your basic collision detection system for a racing game. and pathing around the track is easy too... (and i'd also be willing to bet that the AI system for Forza will stash the data from their players information and tool their car AI to factor that all in, essentially giving a very effective racing AI.)
from the point of view of recording your behavior to create an AI that will behave like you do, that's actually really simple. record your actions. put up various angle thresholds to determine things like the sharp turns, the gentle turns, etc... then i'd probably have each area set uniquely to the track to tell the system "there's a turn here" so that it knows what to test for... is your angle turning fast? is your speed fast or slow? are you spinning out or powersliding? sure, there's a lot more that could go on but at the very basic level, recording and recreating an AI is not that hard from a logical point of view. granted, putting that all into a form that the computer will understand is where the mysticism of AI coding comes in but that's another matter entirely.
as for your last point, well, i can understand if they wanted to use the cloud for calculations of things like ambient occlusion... though, most games are made so that that information is already rendered out and baked to the models in the scene since when you have an AO Map, you can easily adjust it with simple sliders that control contrast and brightness to add to the illusion if you have things like a day/night cycle. but to be honest, other than static lighting, you'd kinda want to have the lighting of dynamic objects and lights be handled on site since the time it'd take to send, calculate and return would break the illusion unless someone had a military grade internet connection. cloud gaming where the game is entirely hosted offsite is actually faster than having some on the console and some off-site because synchronizing it all would be a logistics nightmare...
to be honest, i still feel that this is likely just being used as a scapegoat for the always-on policy (it's a depressing trend i've noticed with a lot of companies... they're more concerned with brand image than they are about customer satisfaction.)
Here, this is how you can share your games with friends
http://www.youtube.com/watch?v=kWSIFh8ICaA
Big slap in the face for M$