Well written, funny post over at The Escapist on what it's like to man the cash register during Chirstmas time at Electronics Boutique. Definitely check it out.
Whoa, in game footage of Assassin's creed during an onscreen demonstration. Check it out here. I'm sure you'll notice especially the large crowds populating the city. Pretty amazing, although there's no word on how goal-directed the crowd NPCs are.
If you check out this presentation by Max Levchin delivered several weeks ago as part of UIUC's reflections/projections distinguished lecture series, you noticed that his theme was "start a startup now now NOW!". One of the main reasons for doing so that he mentioned was this phenomenon of the "overhang" regarding venture capital companies. Essentially, this is the phenomenon wherein VC's have more money than they know what to do with, and are actually looking for companies to invest in. He argues that we are in such a time right now, and so get out there and make a company. This New York times article (oh get over yourself and click the link) seems to confirm that we are indeed in such a state, although for a different reason than you might expect. Some companies (e.g. Meebo, Reddit) are even turning VC's down and deciding to finance their company on a shoestring (Meebo did it on credit cards for god's sake!).
There's a great article and discussion thread over at Good Math, Bad Math on what languages are good for mathematical calculation.
Many people commonly say that C/C++ is fewer steps away from a direct translation to assembly code, and is thus faster than a language such as OCaml or Java. GMBM shows this is not the case, though. Basically, he shows that in C/C++, you could have the following situation. You have two pointers pointing to two arrays. The compiler doesn't know if the arrays are actually two distinct arrays or not (they may point to the same thing), so the compiler must assume that they are. In languages such as Fortran and OCaml, the compiler does have this information, and so can provide serious code optimizations.
In case you have missed it, the studio that brought you Okami and Viewtiful Joe is gone. The reason seems to be sales, basically. Although the article implies the conclusion that a creative game means a game that does not sell well, I'm not convinced that is true in general. After all, there are independent film makers, right? Aren't they able to make a living? There are tv shows such as battlestar galactica or deadwood which are good, and yet remain on the air.
So I don't buy the explanation that something creative and good necessarily does not sell.
There are unique AI problems to solve regarding autonomous agents in virtual environments. I write about them in a paper here but I would like to elaborate upon some of them here. In general, when you're making an AI for an autonomous agent, it can be to automate basically any task. For example, a land rover, an intelligent display, or even simulating an entire city population. Within virtual environments, however, and video games in particular, AI is very often (currently most often) used to control a virtual human being.
This has several consequences for designing your AI, but only one of them is for planning. As noted in the paper, the virutal human-ness of your agent means that now, just any old plan that acheives your goal is not acceptable. Flying over a building will get you from here to there, but humans can't fly over buildings, so that plan is not acceptable. So simulating a human restricts the space of valid plans.
Something that occured to me recently, though, is that AI for virtual humans does not simply entail making a system to make P true given we are in a world in which P isn't true (i.e. a planner). To see what I mean, take a look at this Bioshock demo. (Check out the later parts of the demo too).
There's this cool part where the player approaches one of the resident creepies (a Big Daddy) who protects one of the little sisters. Normally, the Big Daddys go about their own business, and actually leave you alone if you do nothing threatening. If you approach one of the Big Daddys while he's with a little sister, he sort of grumbles and frightens you, and tries to continue on about his business. He doesn't immediately launch into an attack, he doesn't run away, he instead does something that exhibits personality.
In general, it's clear that there's a problem space between making a planning agent, i.e. being able to make a plan so as to optimzie some criteria, and a virtual creature, i.e. actually appearing to be a resident of a virtual world.
As promised, following is some very insightful advice from the one and only Jeff Orkin on choosing to go for a PhD for anyone wanting to do AI in the game industry. I have certainly been struggling mightily with this decision recently. hi Don,
I'd be glad to offer you any advice that I can. Feel free to ask me questions about AI in the game industry.
I can give you brain dump on my thoughts about working as a "gun for hire", or for a game company, or pursuing a PhD...
The good news is there's lots of opportunity for AI specialists in the game industry right now. Pretty much every game company is looking for help in this area, and finding skilled/experienced people is hard. And none of the existing middleware fully does the job. Graphics guys are a dime a dozen now, and AI is differentiating one game from another, but AI guys are hard to find.
Deciding on the best career route to take depends on your priorities. Are you more interested in innovating, or making money? Do you want to travel much? Do you want to work alone, or be part of a team? Are you more interested in games, or technology?
Most game companies will require that the AI engineer works on- site, to work closely with the animators and level designers. I've only heard of one example of someone doing contract game AI from home -- after Brian Long worked for Monolith on the first No One Lives Forever, he left the company and worked from home on the navigational mesh pathfinding system for "Savage". I think it may have been hard to find additional contracts, and possibly lonely, so now he works for a dot com. It is definitely easier to find contract work with credit on recognized titles under your belt - so you might consider starting by working directly for a game company.
In general, the drawbacks of working as an external "gun for hire" are that you will not share in the profits of the game, and you might work on more isolated, less innovative stuff. I was able to innovate on the FEAR planning system because I had earned the managers' trust by working with the same team on No One Lives Forever 2.
Most games aren't very profitable for the developers anyway though, so you may not be sacrificing much in that department. It's a tough business, and publishers often rope developers in unfavorable multi-game deals before they have a hit. For example, FEAR was the end of a multi-game deal penned before the first No One Lives Forever, so Monolith saw relatively little profit on a game that sold close to a million copies for PC.
When you are "in the trenches" working for a developer, the demands of keeping up with bugs, designer requests, and the competition can consume so much of your time that it's hard to think about long-term innovation. I decided to do the PhD to get some new perspectives, explore some more far-fetched ideas, plus do some traveling and networking at conferences.
Eventually I hope to work with the game industry again, and apply ideas that I develop through research.
A PhD is definitely not needed to work in game AI, but there are a growing number of PhDs in the field now. John Hancock at Lucas Arts did a PhD at CMU. Ian Davis founded MadDoc after a PhD at CMU and then worked as CTO at Activision. Dr. Paul Krezewski founded AI.Implant. Former Media Lab Prof Bruce Blumberg now works at Blue Fang. Etc, etc...
Then there are also lots of academic opportunities for research with games, like obviously ICT, plus similar projects at Stottler-Henke's AI consulting firm.
I think my experience in industry has given me valuable perspectives to apply to my current academic research, ... but I also feel like a pretty old grad student. So, if you are going to do a PhD, you don't want to wait too many years to start -- but at least you've finished the masters.
Wow, this has gotten pretty long. Hope it's helpful!
jeff
Thanks Jeff!
I got a lot of nice feedback from my presentation. Basically the main message I wanted to get across was the following. When you have a plan, and you want to actually start executing it in a real (or virtual) environment, the plan can at some point midway become broken, i.e. no longer possible to execute. The source of this problem is one (or both) of the following:
- Uncertainty (coming in three flavors)
- Dynamic Environments
Of the options that people have thought up (classic planning/execution/replanning, policy-based methods, and incremental planning), I argue that incremental planning is by far the best option in virtual environments for solving the Dynamic Environments part. So, ICT is excited about getting Incremental Planning to solve Uncertainty as well.
One of the questions brought up the point of using randomized policies to solve the “rigidity” of policies in MDP based models. This is definitely something that I need to think more about (although I did write an MS Thesis about it). Off the top of my head, though, I think the main questions to be answered regarding using randomized policies is
- Is the reduced expected reward you got as a result of putting in randomization worth it?
- Can randomized action selection be made to look believable? i.e. If I’m randomly committing actions, will it look like I’m a crazy person who in the long run gets to the goal?
First question: I suspect the answer is yes, depending on how much randomization you put in there, and if you know anything about your adversary. That is, the less you know about your adversary, the less you can exploit anything you know about him, and so simply acting more randomly becomes a better and better recourse.
Second question: ::shrug::
More posts about some of the other talks coming soon. Look forward to a discussion of the Sims 2 AI presentation.