Game AI Keynote Slides

Last week I went to the Game AI conference in Paris, arranged by the AI Game Dev web site to hold a keynote titled “Building the Battlefield AI Experience”. The slides to the talk are now available on slideshare and as a downloadable powerpoint file. If you want the quick version, flick through the slides online:

The powerpoint presentation and the two movies that go with it contain more information, however, including notes for each slide that loosely reflect what I was talking about in the presentation. They are all available on DICE’s publication page.

I’ll try to turn this presentation into a post in a way that makes more sense online eventually. If you’re subscribed to the AIGameDev web site you will be able to watch the presentation video online eventually as well.

Enjoy!

3D Vision Impressions

After waiting for months for my new 3D Vision-ready monitor, it finally arrived the other week. The monitor is an Alienware OptX AW2310 23″ wide screen with a resolution of 1920×1080 (Full HD). The colors are absolutely beautiful on it.

So what about the 3D? Well, to sum it up, my impression is that it is as immature as many new technologies tend to be, but an extremely cool technology nonetheless.

For those of you who haven’t heard of it, the nVidia 3D Vision system uses a fast display (120 Hz) and active shutter glasses that alternate what eye sees the image in sync with the display updates. This means that the 3D mode is only available in full-screen mode.

The Installation

I had a fair bit of trouble getting the whole kit to work. The driver on the CD simply complained that my graphics card driver was too new, and left me hanging. nVidia’s product page wasn’t all that friendly either, and it took a while to figure out how to download the new drivers (while there’s a direct download link to the movie player, you’ll have to select 3d Vision as the product type for drivers).

Once in the installation and setup procedure for the driver, there was a very friendly and helpful guide that told you most things you needed to know, which was a big plus.

Getting some movies running in the movie player required installation of a codec pack, which is was completely unhelpful in not suggesting, causing a fair bit of time wasted scouring the Internet for a solution. K-Lite Codec Pack eventually came to the rescue.

Setting up 3D for games was reasonably simple for most games — simply set the refresh rate for half of the maximum (60 Hz rather than 120 Hz). Borderlands was an exception as it started completely blacked out, forcing me to find the config file and manually edit the resolution in there. I imagine this isn’t a problem if you haven’t played the game before, on a different display.

All in all, the installation process could be made a lot smoother.

The Glitches

My first experience with 3D came just after the installation had ended. The last screen in the setup guide had a check box titled “Show 3D image slide show after setup”. I checked it, and then proceeded to be shown a few images side-by-side in a complete failure to do anything even remotely 3D-related. In fact, the glasses never even activated.

This was, mildly said, a bit of a let-down.

The movie viewer worked a lot better, providing a very smooth experience. Sadly, you have to specify what format videos are in quite often, which would be incredibly much easier if the viewer could have shown the first frame. This leads to a guessing game, which is a fairly minor problem in the end though.

Another problem with the movie player is that it becomes unhappy if I run certain applications. In general, anything running on my second monitor or in specific anything attaching itself to the edge of the screen like an application toolbar will cause it to simply flicker and refuse to work. This problem is even worse for the 3D Photo Viewer, which simply refuses to work at all if I have the second monitor active.

Considering that most games start without a problem, writing a working photo viewer really shouldn’t be that much of a problem.

So games then…? Almost any game can be run in 3D vision mode, but nVidia has classified games into different categories depending on how well they work. Some games have a problem where certain items aren’t rendered correctly for both eyes, which can be a bit of a strain on the eyes.

The worst problem tends to be “ghosting”. Ghosting is, simply described, a shadow of the image for one eye that “leaks” into the second eye. This is said to be due to an imperfect shutter synchronization between the glasses and the monitor and due to the monitor pixels not switching colors quickly enough. I don’t believe that explanation fully — ghosting seems to be restricted to only games (movies don’t have much ghosting problems).

In addition, some games are much better than others (more on that later). My impression is that much of the ghosting effects come from a mismatch between the rendering world size and the real world, making depth effects extaggered. This means that for many games, left-eye and right-eye images differ much more than they will for a properly tweaked game or for a movie. I also wonder if V-sync has anything to do with it.

The Content

So I’ve got this amazing 3D vision rig… what do I do with it? You can watch some example photos or download a few more from nVidia’s site. The same goes for movie clips. There are a few trailers out there, but far fewer than there should be. Youtube supports 3D content, but there is no easy way to view the youtube 3D videos using a stereoscopic viewer like 3D vision.

The best 3D movie clips I’ve seen this far are trailers, like the trailer for How to train a dragon, which is absolutely spot-on. I look forwards to watching 3D movies on this setup. The problem right now is that it’s virtually impossible to get your hands on some true stereoscopic 3D  movie content. The folks behind Avatar have said it will not be released in 3D “before November”… which could mean just about anything.

Which means that if you buy a 3D vision kit right now, it really has to be for the games. When it comes to games, the support really differs between games. There is some ghosting in some games, and it really depends on the game if it bothers me or not. In Dragon Age: Origins, it really did, so I will be playing through the rest of that game in 2D. I guess that style of game really means you spend a fair bit of time watching the environment, and that’s where you’ll see the most ghosting.

In Trackmania United, one of my favorite racing games, there was a fair amount of ghosting of distant things, but it really didn’t matter a single bit. The experience of mad racing in 3D totally made up for the ghosting, and when you’re driving at high speed you don’t even notice it.

Other games hardly manifest any ghosting at all. Borderlands was absolutely awesome in 3D, as the combination of the comic-book art style and 3D creates a really cool effect. Battlefield: Bad Company 2 has been certified with nVidia and received their top grade for 3D vision ready games and works just as well as that implies.

One more game to mention is Left 4 Dead 2. There is hardly any ghosting going on there either, and 3D in that game added a layer of immersion to an already immersive game. The full list of game support is available on nVidia’s site. I personally look forwards to playing Metro 2033 with it.

The Experience

There are some things to note with active shutter glasses. One thing is that when they activate, things go a slight bit darker than usual, since basically your eyes will be staring at a blackened glass half of the time. You also effectively half the refresh rate of your monitor. The result is something hard to describe, almost a flicker, but not quite. This takes a bit of getting used to, but is not really any worse than watching a 3D Movie at the cinema.

The shutter glasses themselves are fairly bulky but fit nicely over normal glasses which is a plus. I’ve wore them for fairly extensive periods of time without feeling tired of wearing them. The insides of the glass reflects some light though, so if possible I recommend using them with the lights off.

Summary

It is very clear that this technology is in its infancy. I’m sure we’ll see a great development of this going forwards as it picks up momentum. The most crippling hindrance right now is the lack of movie content and the glitches in some games.

That said, playing games in 3D adds a lot of immersion for me, especially for fast-paced games like racing games or shooters. If you are looking at buying a new monitor, I definitely think you should consider buying a 3D vision capable one. The Alienware model I got was fairly expensive, but has an absolutely incredible picture when used normally as well.

If you want more info on 3D vision specifics, I suggest checking out the 3D Vision blog and their new forum.

The Apple Voodoo

I love the iPhone. As usual when it comes to Apple gadgets, the feeling for design and thinking outside the box produced a phone that finally made me see the point of a smart phone.

The one thing that’s always bothered me though is the App Store and conditions. A central directory of apps and central point of download is a good idea. A standardized update procedure is an even better idea, at once solving all the bullshit problems windows users have to put up with (how interested are you in updating Adobe Reader or Java all the time, really?)

The one thing I don’t agree with is the approval process. And Apple just went from tolerably bad to intolerably worse on that one. I think it’s a bad decision to restrict what you may run on the phone and how, but it’s still a decision I can respect — their rules on how you execute stuff within the context of their operating system.

However, the new terms of service for iPhone OS 4 says this:

Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs

Here’s where Apple has clearly and definitely stepped over the line. Not only must the resulting application conform to certain demands, now my development process must conform to certain demands?

Code generation is an incredibly useful technique, and they’re banning it simply to stop the Flash compiler and make a grand statement? Either way, how in the world are they planning to enforce this? Will this lead to an arms race between Apple trying to detect application code that has been compiled to C, C++ or Objective-C and a company like Adobe making a compiler that compiles Flash to those languages in a way that looks as close to human-written as possible? Unless I have to submit a full-length video of myself coding the entire thing, there is just no way to tell with a reasonable accuracy.

How much collateral damage is acceptable, Apple? How many other companies and customers will suffer over your crusade against Flash? How many developers will hate your guts before this is over? There are just so many pins the developer voodoo doll will take.

The iPhone app craze will eventually die as more people realize the gold rush is over. And at that point, Apple can keep its Objective-C Nazi corner, while the rest of us go back to using the best tools for the task at hand.

Forced Downgrades

A few days ago, Sony announced that it will be removing its “Other OS” feature from Playstation 3 units in its upcoming upgrade. Apparently, this is to stop a hacker who claimed to be able to use a security hole in the feature.

Among the programmers who love the PS3, the decision caused a scream of rage (and pain) that echoed through twitter. Considering the difficulty of programming for the platform as it is different than most other platforms out there, you could think Sony would care about the programmers that want to experiment on it. On a personal level, I don’t care — I simply don’t have the time to tinker with Linux on my PS3.

But if you want to program for a current generation console out there for real, this is your only option. The Xbox 360 with its XNA and software abstractions doesn’t really do it — coding a game on XNA is not a feat really with the distance being put between hardware and software. Coding a game on the PS3 in Linux, however, would probably land you a job.

And let’s face it: with all the bragging about how the PS3 can do things that the Xbox 360 can’t, Sony really needs programmers who can push it to it, who love the system and will squeeze the last bit of performance out of it. Those programmers are all sad puppies now.

The decision is just flat out wrong in so many ways, the most obvious being that of consumer rights. It does not matter how small a percentage of the user base that uses a feature, if you stick it on the package of a product and use it as a selling point, it’s supposed to be there when I use the product.

You could argue that I’m not forced  to upgrade, which is bogus since I am forced to upgrade if I wish to keep the functionality of my PS3 intact. Imagine a DVD player that is suddenly “upgraded” to not support the remote control anymore. You only have to upgrade if you want to be able to watch new DVDs though, if you settle for your old collection, you can opt out. Oh, and subtitles stop working too. Sorry ’bout that.

The example is absurd, but in all essential parts a direct mapping of what Sony is now doing. Come tomorrow, you may choose which way to cripple your console — no Other OS or no new games or PSN.

Laws differ, but I’m quite sure this sort of act from a company is illegal in Sweden, where I live. Quite possibly it is in several other places around the world… it would be interesting to find out.

The second interesting thing to mention is how a large international company again fails to recognize the Streisand effect. I really had no idea some dude had started cracking the system… nor any interest in it. Now I know, and now care. The Sony decision was quickly met by a promise to fix an alternate firmware version which could be used without disabling the feature:

Hacking isn’t about getting what you didn’t pay for, it’s about making sure you do get what you did. And this is about more than this feature right now. It’s about whether these companies have the right to take away advertised features from a product you purchased.

By doing this, Sony puts a big spotlight on hacking the console, essentially starting an arms race — one it is virtually guaranteed to lose. Until now, the homebrew community has had no reason whatsoever to try to crack the PS3. Now they do, and probably will fairly quickly. I think it’s likely that when it happens, Sony will end up having helped hasten the day when piracy appears on the PS3, in its flailing attempt to prevent it.

Game Developers are Better Than Everyone Else?

In a post over on gamasutra, Brandon Sheffield argues that the Dead Space campaign “design a kill” is a very regressive thing for our industry:

I don’t believe we should shy away from violence in games – violence is a part of life, and can make for very interesting scenarios in games. And it’s no secret that a large majority of fun video games are based on conflict, much of which is combative. But I also believe that asking fans to think as hard as they can about an innovative way to kill someone is a very regressive thing for our industry.

Just think for a second about what EA is actually asking people to do. Yes, this is what many of us do every day – there are those of us who design combat and combat scenarios for a living. But asking fans to do it is just too much.

I’m not sure what he’s trying to get at here. There is pretty much two options: either game devs are much better than everyone else, or game devs are horrible people. Neither option seems very reasonable to me.

So why can’t our fans do what we do all day? Is it because as game developers, we are much better than everyone else, and can thus stand the moral strain of thinking about how to dismember humanoid monstrosities all day, without being irreparably damaged by the ordeal?

Or is it the opposite? Are we damaged people, horribly affected by the thoughts on monstrosity dismemberment, so bad that we should take care to shield others from the horrible things we go through daily to bring the public these sinful products?

Neither option really makes sense. Sheffield argues out of the old moral high ground that game violence would somehow damage people, and should be censored. We are talking about a rated game, for adults, not a kids game — so this is not about damaging the fragile world view of children.

Honestly, do you really think that asking someone “think of ways a fictional character could attack, dismember and kill a monstrous humanoid” will have any kind of affect of them that playing the game in question wouldn’t? That is somehow an idea that using the human imagination could be bad for you.

To me, nothing could be further from the truth. The human imagination is a beautiful thing — it creates all culture and all our progress.

Get off the “games are bad for you” horse. No one on this side of the 1980s would argue that the violence in a movie causes people to go on murderous rampages. Would asking someone to design a kill for a movie be as bad? I somehow doubt it.

What about an even more imaginative media, like books? Books are highly based in the communication of imagination between author and reader. We are asked “imagine this”, when we read descriptions of events in a book. But somehow I don’t think the “write a gruesome description of a brutal murder” competition would come under any flack.

There are many things that are wrong with our society, which lead people to do nasty things to others. Taking out your aggressions on characters in a computer game instead of reality is not one of them. Imagining new ways to kill computer game monsters is certainly not one either.

I’m not much for dismemberment and blood splatter in games myself — I just don’t think it adds much. But I’ll happily let other grown up individuals make their decisions for themselves on what they’d like to play — or imagine.

And if you’re going to argue that games are bad, please do so outright, don’t try to hide it behind saying that playing games is fine, but thinking about them isn’t.

WordPress Themes