Thursday, May 23, 2013

XBOX 1

Architecture and Operating System

Oh god, we're jumping right into hardware architecture and the OS? Yes, shut up. This is actually pretty cool.
At a panel about building the new hardware yesterday, about an hour after the keynote, Major Nelson spoke with four of the key decision makers involved with the Xbox One. And most of the decisions focused around speed, but not quite through sheer brute force.
The operating system is a little deceptive in its complicated simplicity. As Microsoft tells it, the normal playbook would have been to slap a dedicated gaming OS on an improved piece of hardware—standard operating procedure since forever—but it wasn't so simple. On one hand, Microsoft understood modern users have a lot of use for a machine that can do more than one thing at a time. But it had to chase that goal without kneecapping its gaming base.
According to Microsoft, looking at the needs of current games, and their trajectory, they could have gotten away with 5GB of RAM, or even 4GB, and run games the way they were meant to be played. So why go with 8GB? Just to keep up with Sony and the PS4 (albeit DDR3 and not the PS4's GDDR5)? Not exactly. It has to do with the broader operating system.
So the One's OS is broken down to two virtual machines (VM), running simultaneously. One is optimized for games, and the other for apps. You know those instantaneous app switches that you saw at the keynote, going from a game to a movie and back again in a flash? That was the OS's VM-layout at work. In simple terms, it runs and draws two apps at once, one on the game side (it seems you can run non-games on this side), and one on the app side. They're only separated by a display panel, so switching is more or less just alt-tabbing over.
Expand
This design actually solves a lot more problems than just switching between the two. Because the app side launches as soon as you turn on your console and runs the whole time, it can perform background tasks, like keeping you in a matchmaking queue, while you are playing another game, or doing something else entirely.
Beyond that, the two-pronged layout fixes the main concern game developers have about consoles running apps, which is that it changes the constants that make working on consoles possible. An app-enabled system would perform differently if it's running zero apps compared to even two or three, probably. And it's already expensive enough to make a video game. If you need to create renders for a variety of available resource situations, that's just piling on in a pretty untenable way. If you're going to go to that trouble, you may as well just make PC games. But with the Xbox's split OS, it dedicates specific hardware resources to the two VM partitions (5GB to gaming, 3GB to apps and the "middle" OS), and they never share. This will probably result, occasionally, in one side (probably gaming) maxing itself out when there's enough beef in the Xbox to power through if it had full reign over the entire system. But it also, crucially, means console developers (and console players!) get the standardized performance that makes console gaming what it is.

Building a Better Kinect

OK, so you know some of the impressive tech specs on the new Kinect. It's got two 1080p cameras that shoot at 60fps, and has a 60-percent larger field of view. It also uses new tech to time how long it takes for photons to bounce off of you and come back, a process that takes just 13 billionths of a second. Fine. How about few notes about the tech that doesn't get talked up as much.
Directivity is key in ways that probably aren't fully understood. That is, the Kinect's ability to listen to a sound and know exactly where it's coming from, and more importantly, who it's coming from. In fact, the Kinect doesn't have any form of voice recognition; it's simply recognizing your face/body, as all the demos show, and then pinpointing which skeleton the sound is coming from based on location. That might sound like a patchwork fix, but it's actually pretty clever, keeping Microsoft from having to master one more form of analysis, and instead cross-referencing information it's already got.
This is made possible by a few things. First is the exact placement of the microphones. Because they need to be able to pick out exactly which direction a sound is coming from, this is a big deal. So after basically building from the ground up with its partner PrimeSense for the original Kinect, Microsoft hired a ton of sound experts to tear the microphone array apart and figure out how to optimize it. And after months of research, apparently, they put it right back the way they found it. Microsoft had stumbled onto the right answer its first try. Maybe checking your work is boring, but assuring that the mics were as well-positioned as possible is key to designing the rest of the accoutrements and getting them calibrated properly. Just like game developers, the Kinect team needs a set of constants to rally around.
Expand
Speaking of developing, the other big thing is the software side of the Kinect, which doesn't get as much attention as the hardware, but might actually be the coolest thing anyone at Microsoft is working on. New ways to interface with computers are the future. And the Kinect is one of the broadest attempts to bring voice and gesture into real people's homes. This time around, they focused on figuring out how to deal with problem users like soft speakers, and women and children (though we didn't quite get an explanation about why women are a broad problem). This is done through a variety of testing in mock living rooms, arranged differently to recreate typical rooms in different geographic regions, with simulated voices and ambient noise.
The Xbox's sound output isn't an issue because the Kinect knows exactly what sound it's outputting, so it can cancel itself out as it analyzes the noise, no matter how loud you have your speakers. The popular example of that is a guy playing Call of Duty loud enough to kill a horse, and casually saying commands like "Delta team, Target Alpha", and the microphone takes a mess of noise and turns it into the exact commands. This feature will also, going forward, fix the old 30 Rock joke, played out at the Xbox One keynote, where someone on screen saying Xbox Off will turn off your Xbox.
Finally, the Kinect's own chipsets were updated, and this time their architectures were built entirely in-house by Microsoft (that's a big deal; even the Xbox's SoC was designed with help from AMD). Between that and being able to utilize dedicated sound processing hardware, it should be a much cleaner experience than the original Kinect, which had to jerry rig what was shipped with the original Xbox to perform this crazy new task.

Expand

Full View of the Cloud

Everyone just sort of nods along when cloud gaming is brought up. It's not an especially captivating idea. (The only reason anyone really perked up over it with the PS4 was because of backward compatibility.) Video games are most easily understood in concrete examples, and the real work in conceptualizing how to use this tech hasn't really been done yet. But man this is cool.
Essentially, Microsoft has made the Xbox modular. The background tasks that will be offloaded to the cloud will be a serious deal in a large number of cases. You know how in Skyrim sometimes you can look at a specific part of a specific wall and your framerate will randomly dip down into the afterlife? That workload (which is probably a silly mistake, but still) would probably be shifted off to some Microsoft server, and never make it to your Xbox. The decision-making process of when to do that—it only fires on "latency insensitive" loads, not "latency sensitive" ones—still dictates that the majority of workload will still be done locally, client side (i.e. on your Xbox). But that's not always going to be the case.
What's in the box, the hard specs, was determined by the experience team to be a big enough step forward to be a next gen console, and being that the PS4's specs are basically identical, it seems basically right. It's the step you'd take if you were just doing what you'd always done. But the ways that hardware, alongside the cloud computing, will be used have the ability to expand drastically.
The 300,000 Xbox Live servers Microsoft is bringing online this year will be a constant developers can rally around, knowing that the vast majority of users will be connected, so you can try out new ideas knowing that they'll be usable by almost everyone. (The same goes for the Kinect being included with every One.)
Expand

Hardware Nuts and Bolts

We heard, briefly, what's inside of the new Xbox yesterday. Eight 64-bit cores, 8GB of high-speed RAM, and an on-chip GPU with built-in sRAM. We already know that the 8GB of RAM was because of the OS decision, but there are some other key and esoteric points about the hardware.
Microsoft claims the caches are blazing fast, and this and the sRAM embedded right onto the new SoC will keep the GPU running at max workload instead of falling behind. Overall improvements to chip coherency should help this as well. If the One wants to stick around even half as long as the 360, it's going to need to squeeze all the performance it can out of these guts.
There's obviously a ton more to talk about down the nerd rabbit hole, but these are some of the highlights that fall away from mainstream coverage, but affect how you're going to use the new Xbox.

No comments: