And That’s Why Skynet Came from Video Games
In a recent discussion with an industry friend of mine, I realized I needed to rein myself in and stop chasing every new piece of tech I came across that was remotely video game related and start to specialize somewhat. As a result, I’ve tried to narrow my free-time dabbling to AI/Gameplay components. Besides, this still represents a significant chunk of game development and presents a variety of interesting problems and solutions.
As a result, I hit the books. My first stop was Ian Millington’s Artificial Intelligence for Games. Up until now, it has mainly served as a reference book for those nights where I got the itch to watch an AI agent wander around a virtual environment. You know how it is… right? Oh. Maybe not. Be that as it may, I’m now working my way through it cover to cover.
The author introduces the various things an AI architect must consider when deciding on the correct approach to a particular problem of the artificially intelligent flavor. The two concepts that come to mind are the complexity fallacy and the perception window.
The complexity fallacy refers to the misconception that a more complex AI will necessarily be a better AI. This seems particularly odd when you consider that engineers generally evaluate beauty and elegance in a programming solution based on its simplicity. Millington cites Pac-Man as an example of very simple AI that players perceive as quite intelligent.
The perception window is the amount of time and context in which the player observes an AI agent. If you are playing a fast-paced shooter, you may only observe a guard for seconds before shooting them in the head. As such, it is wasteful to design a complex AI for them. However, if the player depends on stealth, observing their enemies for a time in order to avoid them or find the perfect opportunity to strike, simplistic or unrealistic behaviors will become immediately obvious.
So, why am I going over these concepts that are better explained in the book and at greater length? Because reading about this reminded me of the first talk I attended as a member of Montreal's chapter of the IGDA. Christopher Kline visited us from the offices of 2K Boston to tell the story of the genesis of Bioshock. Kline explained how the original concept revolved around immersing the player in an emergent AI ecology, where different agents would interact with the player and each other based on their own goals and motivations. This would create unpredictable situations that would force the player to improvise. This, coupled with horrific surroundings, would create tension and make this underwater world seem more real.
However, combining slow, calculated progression with complex AI interactions that were difficult to predict presented great problems. They seemed to fall into the trap of the complexity fallacy, as well as designing the pacing and AI behavior in such a way as to create these wide perception windows that were vulnerable to player scrutiny. But, I’ll spare you the retelling of Kline’s presentation and instead let him tell you all about it. Enjoy!
Christmas Cheer and Coding in the New Year
With my wonderful powers of necromancy, I’m bringing this blog back to life with a new entry. The holidays were filled with feasting, merrymaking and a good dose of coding. Recently, I’ve been working on a game project with a few work buddies as an excuse to implement systems in a 3D context (graphics, AI, physics, UI, input management, networking?). We’ve been using Ogre as the foundation for the core architecture.
Ogre is an open-source 3D graphics engine with a strong community surrounding it. Although Ogre proper focuses on graphics (rendering, scene management, hardware abstraction, resource loading, etc.), there any many community extensions, ranging from procedural content generators (terrain, vegetation, weather systems) to exporters (3DS Max, Blender, etc.) and everything in between. We were able to put together a scene with imported models, a skybox, animated ninjas (included with the Ogre SDK), a GUI and proper mouse/keyboard input management within a few casual evenings of coding.

The odd texture export of the wooden palisades from 3DS Max notwithstanding, it took little effort to integrate a scene into our game architecture.
However, even with community extensions, Ogre is not a full-fledged game engine. I chose to use it specifically because I wanted to encounter the problems and solutions that game engines tend to take care for you, to take a peek under the hood. As a matter of fact, I would recommend this to any aspiring developer looking to get their hands dirty. The combination of good documentation, solid implementation and a great community is the ideal learning environment. Check it out!
Augmented Reality: Real World 2.0?
I recently watched this video on the state of Augmented Reality technologies, courtesy of the Escapist (featured below). Robert Rice, CEO of Neogence Enterprises, walks us through the state of AR and what the future holds in terms of its integration in the IT landscape at large. For those who are too lazy to Google it, Neogence is a startup developing various AR technologies, namely for mobile and telecom. So, go ahead and give the video a watch. Don't worry, I'll wait.
So, take a video stream, apply some Computer Vision algorithms to analyze the environment, throw in a 3D graphics engine and Presto! You have Augmented Reality!
When they see tech demos like the ones presented in this video, every video game nerd starts squealing in excitement over all the potential applications in their favorite pastime (I know I did). What crazy game concepts can game development studios come up with to get us outside? And, more importantly, what are the effects of prolonged exposure to sunlight on the standard gamer? Perhaps there is some insight to be gained from a sister technology, Virtual Reality.
The difference between AR and VR can sometimes become ambiguous. 
Milgram's Reality-Virtuality Continuum (image below) exposes the difference within a spectrum, with reality and virtuality at polar opposites. AR is closer to the real world, while VR is closer to the virtual one. Different concepts can fall anywhere within this continuum, depending to some extent on the ratio of real-to-virtual content presented to the viewer.


Although the validity of this representation of the concepts is subject to debate, it illustrates the opposite nature of the advantages and limitations of AR and VR. For the sake of argument, let's imagine that one of the major game platform manufacturers releases a gaming helmet that alternately supports AR and VR. VR environements can be crafted in every detail, giving infinite creative potential. However, since the layout of the game world cannot overlay the real-world environment, players are likely to bump into walls, shin-height coffee tables and trees alike. And not the virtual kind, the painful kind. AR environments, on the other hand, must exist within a real environment, compromising design flexibility. So, either your games have a limited design range or you need to use the DNA-rearranging ray gun in your basement that will allow to see your living room furniture without using your eyes.
Ultimately, the greater freedom of interaction and movement of AR gives it the mainstream edge. We can adapt and expand modern game design principles to fit AR, just as they are beginning to for casual games, community games, the Nintendo Wii's approach to controls, etc. Even though it currently mostly only crops up in academic/industry tech demos and novelty-based marketing campaigns, those first steps have only scratched the surface of this technology's potential. Part of BMW's marketing campaign for the Z4 encouraged users to print out a visual marker on a sheet of paper and put it into view of their webcam on a flat surface. The AR software would then render a 3D model of the Z4 where the marker appears. Even cooler, you could then drive it around your desk or wherever using your keyboard. That gets your mind racing, doesn't it? Wouldn't it be nice to be able to battle virtual enemies in your backyard or have a magical duel with a friend, casting spells at your buddy's face using complex hand movements?
What kind of games can we make with this technology in hand? And, more importantly, what kind of games will people actually want to play? If we place a player in a true first-person perspective, what implications does this have for immersion and the kinds of game experiences people want to have? Would these be arguments in favor or against the validity of the sensorial immersion paradigm that Clint Hocking wants people to steer away from? Does the fact that the player is playing in a real-world locale improve or impede his ability to immerse himself in a game experience? It's one thing to flail like an idiot in front of friends and family while playing the Nintendo Wii. It's quite another to be chased down the street by virtual orks only I can see. In any other circumstance, this kind of behavior would earn me a padded cell with people in white coats for friends.
If we cannot get truly immersed for any reason, then the point is moot. However, if we can in fact get more immersed in an AR game world, what are the psychological implications of experiencing sword blows, bullet wounds and similar grim occurences so common in traditional video games from a true first-person perspective? I think I'd rather leave those experiences to my virtual avatar and play hero vicariously.
Again, these kinds of questions only matter if we try to apply current game design principles and themes to this kind of technology. It's probably a mistake to think about AR video games in this manner, as they would likely be in genres all their own.
Still, the true gaming nerd benchmark will always be whether or not AR can give a better Jedi duel simulator. Adam out.
The Business of Fun
I recently sat in on a recap presentation of MIGS 2009. The topics spanned the technical and artistic spectra (Good thing I Googled that one, I was sure it was spectri), but the one that brought on the most discussion was the state of the industry in terms of worldwide cultural impact and its future as a medium. Chris Hecker, who gave the original talk, compared it to movies, comic books and ketchup (yes, ketchup). David Sirlin covered the presentation in relative detail in his blog, so I won't bother covering that any further (especially since I wasn't actually present at the presentation myself). However, the main questions that came up during the group discussion and my subsequent brooding were these: Are video games gaining or losing ground in today's culture ? If our industry is at risk of being marginalized, what can we do to counter this ? And if not, how big do we really want to be ?
Working in the mobile game industry, I see every day the rising popularity of casual games, community games and the like. As a gamer, I also see that traditional video games are increasing their player base. As the very definition of a video game broadens at staggering speed, so does the worldwide gaming community. When I started thinking about video games as a profession, I never imagined visiting my parents and getting Fallout 3 tips from my father and DS game requests from my mother. I also never imagined I could get my girlfriend to play coop games with me until the Wii came along. And I definitely never thought I'd be cheered on by colleagues and coworkers while singing Living on a Prayer into the Rock Band setup at the corporate Christmas party. (Come to think of it, I never did get a straight answer about my vocal prowess that night... But, judging only by the reaction of the in-game crowd, I was awesome.)
But, even though our industry now dwarfs Hollywood with its money-making power, more people watch movies than play video games. If we don't expand our player base quickly enough, will we go the way of the comic book? I do think that we have to continue innovating so as not to fall into the trap of making self-serving - or shareholder pleasing - games. Clint Hocking gave a talk that covered this (among other things) at my local chapter of the IGDA. Game developers are most often attracted to the industry because they are gamers themselves. Thus, if we are left to our own devices we tend to produce the kinds of games we would want to play. Fortunately, the business potential of today's new demographics seems to have helped keep designers' minds open and businesspeople excited.
Personally, I don't want to see the game industry get too big. The more resources companies have, the more they will gravitate toward creating and iterating on AAA brand titles, rather than developing many new IPs. The more people they try to please with fewer unique intellectual properties, the more generic and watered down these titles will become. As a young developer, I can only hope that my career can be filled with those creative leaps of faith that make this industry so exciting.
The Internet is a Series of Tubes
Well, it's official! I've finally gotten around to getting my blog up and running. A few more websites to get myself on and I will be entirely aggregrated on the InterTubes! LinkedIn for the young professional, Facebook for the urban socialite, Twitter for the fleeting thoughts... Hopefully, the deeper stuff will bubble up and find its way here.
So why now ? Glad you asked, hypothetical reader! I recently finished reading The Passionate Programmer: Creating a Remarkable Career in Software Development by Chad Fowler. This book is riddled with professional gems applicable to every aspect of a programmer's career: investing intelligently in technologies, choosing a market, self-marketing, etc. Before reading this, I was a kid in a technology toy store, investing myself haphazardly in anything and everything I came across, never sure of what I should be doing. I could never finish anything, as I was always reaching out for the next colorful toy down the aisle.
You see, from my last years of high school up until my college graduation a year and a half ago, my plan was clear: get a computer science degree, try to learn as much about video game development along the way and get a job. The roadmap was clearly drawn for years. Given the game industry boom seen in Montreal in the last decade, it wasn't difficult to find a company to call my own. EA Mobile took me on as a deployment programmer and I've been loving every minute of it. For the first year, I was hard at work trying to learn as much as I could about my job and the industry. But, when the training wheels came off and it was up to me to steer my career in whatever direction I saw fit, the roadmap got blurry and coffee-stained.
In came Chad and his book. I realized that all this passion was a good sign, but that I had to manage it in a productive fashion. And SimianRevolution.com was born! May this be one of many future initiatives to interact with and contribute to the online community.
