Scarcity of Content in Games

There’s an interesting difference, if you compare games to other art forms like movies, in how they get consumed across different groups of people. With movies, there’s pretty much two categories of viewers: the big screen people and the DVD people. With minor differences within those groups, everyone has pretty much the same potential experience. Very few people turn the movie off before its end.

That is very different with games. A sizable portion of everyone who plays a game, especially multiplayer-enabled games, will put a huge amount of time into that game. That’s awesome, but those people are not in a majority. The majority of people who buy a game wont even finish the singleplayer campaign. For these people, the game was too long. This is something like the dark secret of game design, and its a reason that makes constructing games a bit sad — no matter how much love you put into your story, it’s unlikely that most people will see its conclusion.

You would never guess that this was the case, looking at game reviews. Reviews regularly complain about games being too short. This has happened to a range of great games lately — from Portal to Uncharted: Drake’s Fortune and Mirror’s Edge — all games that I enjoyed a lot. What conclusions can we draw from this?

Well, first of all, if you are the kind of person who rarely completes games (like the average gamer out there apparently), game reviews aren’t taking your interests into account. I’m assuming here that being able to finish a game is more enjoyable than abandoning it along the way.

Second, we’re creating ever-longer games that cater to a portion of the gamer community who will not buy games that are too short, which means that at the same time we’re making sure that a majority of players will play even smaller part of the game. That’s quite a problem from where I see it — a small part of players are allowed to dictate how games are made, which actually lowers quality for the majority.

In addition to this problem, more time in games tends to mean more repetition. Content creation for modern games is incredibly expensive, which means that longer play means more play time made from the same content. Maybe that means more of the same kind of objectives (ever play Assassin’s Creed?). My own experience is that I’d much rather play through Uncharted on its Hard difficulty setting than play through a longer, but more repetitive game.

The result of this is a kind of scarcity of actual content in games. The longer we make any given game, the more diluted the experience becomes. We get more of the same enemies in the same locations, and more locations made up out of the same building blocks.

You can see this quite easily if you compare the soundtracks of different media. Movie music is a movie-length musical score which has changing music to the events in the movie, usually with common themes for parts of movies but with the music still shifting to each individual moment.

How much variation is there in game music? Sometimes, game music is a movie-length (yes) musical score, played straight or randomly to a game (usually 4 times longer than a movie). Sometimes it’s a song-length musical score played to each level. Sometimes it’s “dynamic music” which usually means tying musical start/fade triggers to action. I commented on game music before in Give Me Some Emotion, Maestro, where I suggested a more involved form of dynamic music for games with composers as first-class game developers, but that doesn’t go all the way — we also simply need an appropriate amount of music to cover the length of a game.

More enemies to kill in the same way, more of the same concrete blocks to make up new parts of levels, more of the same music and sounds, more of the same experience. These things all lead to the current playing experience you get from games, which tends to be a repetitive flat-emotion slaughter even if you look at non-shooter games. Yet making more content for the games would make them more expensive.

I think games as a medium need to focus better. Yes, shorter games would probably be good in the long run. There are some people who would wish that movies be 10 hours long as well — but those aren’t the main segment of customers for movies. In the end, bringing quality of games up needs more variation — in environments, in challenges, and in emotions. Then maybe the average consumer would actually have the pleasure of finishing the games they buy.

I don’t mean there can’t be long games here either. People obviously liked the The Lord of the Rings movies, despite their long run time. But those movies are still beautifully crafted all the way through, and do not lack the focus you would get from doing the same thing to other movies. It also has something to do with an insanely large budget.

For singleplayer games, the question then becomes how to satisfy the people who want longer play times? I sure don’t have that answer, and any comments are definitely appreciated.

And Here Come the Aliens — Storytelling in Games

Why do games inevitably end with you shooting monsters, zombies or aliens, regardless of what the game was about from the beginning?

Game story design lacks some maturity, compared to other media. It seems to me that we’re too obsessed with the spectacular, or too afraid of not making a splash, that we violate one of the fundamental pieces of storytelling advice there is: keep the story believable.

The central concept in all great storytelling is the suspension of disbelief. We’re asking the viewer, reader or player to ignore all their preconceived notions about how a world works, and join you in your world for a bit. This can work as long as your story is compelling enough to keep them interested, and consistent enough that the world makes sense in the mind of the viewer, reader or player.

alienWhy, then, is it so common in games that start out with a fairly reasonable story, there inevitably seem to be aliens, zombies, super mutants, experimental super-soldiers or some similar monstrosity near the end? I’ve played through a fair number of games with this problem, and I’ve actually quit a fair number as well.

Some games have stories that aren’t exactly masterpieces, yet they still get smashed to pieces by this kind of move. One example of this would be Far Cry — not exactly known for it’s brilliant story, but I still lost my interest when the super-mutant-experiment-soldiers showed up.

Since actual good game stories are so few and far apart, story reviews tend to look favorably on anything that actually has a story.

Game story designers fall into this trap for several reasons. I think, first of all, that it’s a sign of a certain lack of maturity — we don’t take our stories seriously, don’t focus on them and thus we don’t think they can hold their own.

For me, the story adds so much to a game experience that it deserves to be treated better. Trust me, playing the single player campaign of something like Bad Company during development, before the story elements are in place, is but a pale shadow of the final product.

Our demands on gameplay and difficulty also makes this an easy trap to fall into. Adding more HP and weaponry to enemies only makes sense to a certain point, I guess, so in order to have an appropriately difficult grand finale, we throw in something supernatural. The funny thing about this is that many times, the same games have already shown themselves to not need this. Uncharted: Drake’s Fortune, for instance (which is an awesome game by the way) has both a story and difficulty measures good enough to stand on their own feet. It simply didn’t need monsters.

These thrown in monsters, mutants and aliens provide an opportunity to make something spectacular. However, the best moments I’ve had in gaming must be the ones that both made sense and were spectacular.

I hope game stories can move with time to the more mature, nuanced theme of telling a simple but powerful story in an interesting way that keeps me hooked. However, that requires us to respect the power of a story well told… among all our fancy graphics, powerful hardware and surround sound systems, we get to face the idea that perhaps the most important piece of the game shares more qualities with a good camp-fire story than with the tech labs that produced the chip we’re running.

What do you think about the state of stories in games? How would you like to see them improve?

Image credit: kevindooley on flickr

Getting Into Games — A Follow-up

My post from a week or so ago about the differences between working as a software engineer in a games studio and in other places generated a fair number of interesting comments and questions, both here and at various syndication sites. In this post I will try to answer and comment on the most common and interesting ones.

Working at a Games Studio

Getting started with something I intentionally left out:

Low pay. Good luck trying to buy a house.

There’s a well known discrepancy between salary in your average programming gig and your average games programming gig. I left it out of the original post because of two factors:

  1. The difference is highly overstated. Salary varies much more within each class of work than between the two. While it is true I could probably get more money by switching to another job, the same is true for many others, and the difference wouldn’t be worth it to me.
  2. It’s your choice. I expect you to make a well-informed choice on taking any job when it comes to what you get paid. Don’t just take any job because someone told you you get paid a lot in a certain business — make sure you get what you’re worth.

A second issue from the same commenter (and several others):

Yes, you have to come to work on Saturday and Sunday.

This is an issue in the industry, and I’ve seen pretty bad cases of it. Since I started coding games, the working conditions have improved by far though — and this doesn’t only seem to be my situation but applies to many others I’ve spoken to at other studios (mainly within EA though — would be happy to hear the perspective of other people). At the moment, from where I’m sitting, things are looking pretty good.

I’m not saying crunches don’t happen, I’m just saying they’re reasonably few, have a good purpose and focused time span, and include a time off compensation after the deadline has been passed.

The most problematic part of this is that it’s extremely hard to figure out if this applies to any given studio without actually working there or knowing someone who does.

I wouldn’t want to be the guy working on the next Madden game

Well, I actually know the guy working on the next Madden game and he is incredibly dedicated and seemed to love what he was working with last time I saw him. About the comment, he told me “Well we don’t want that guy anyway,” which is very true — the reason there is a Madden game every year is because there are lots of people interested in a new Madden game every year, and among that crowd there will certainly be people who are interested enough to want to work on the game.

It’s funny, because I sometimes hear the exact opposite of this comment at work. “It’d be so awesome to work on an iterative title where you just got to improve things and do all those cool changes that we have to cut”. Working on Madden is a pretty sweet place to be if you love sports games.

People sometimes seem to think that innovation only means new game franchise. There are lots of interesting developments and innovations within franchises, even within a “plain old sequel”, and working on one of those titles avoids one of the great drawbacks of the games industry: half the time you’re semi-panicking because your game engine isn’t in a shippable state and there’s a whole game team trying to use it to create a game.

That way, working on Battlefield: Bad Company 2 is nicer than working with the first game: the same chance for innovation, but less problems with others not being able to innovate due to the state of the code.

Getting started

A question that keeps popping up is any version on this:

I’m a frustrated web developer who’s always wanted to make the move into game development, but have yet to find the time to train myself and start shifting my skills over.

Any tips for someone looking to start out in that direction?

I’ve touched on this subject before, in An Exceptionally Stupid Idea, which tells the story of what I did. That post may be best applicable if you’re still in college, but there is a certain truth to it regardless of where you are. Time is money however, and with anything in life  you’ll need to do investments… so seeing where you could free up time is a first step.

What do do with the time once you have it? Well, the games industry is looking for a few things:

  • Skilled programmers
  • … who know the language
  • … and with some experience of games

The third is actually somewhat optional, though most recruiters would never admit that. Becoming a good programmer is a hard topic to cover — more than half the stuff on this blog is already devoted to that, so I’m not going to comment further on that one.

Chances are slim you’ll be coding anything but C++ if you code games, so if you’re not already very familiar with the language, you should get familiar with it. It’s often said that good programmers learn new languages quickly, and to a certain extent I agree with this… but if the problem is complicated enough, you need to be a language expert.

Finally, getting some form of portfolio is good, even if it’s “just a side project”. That could also be a good project to use as practice if you’re not too familiar with the language. Further, it helps if you’re a gamer and stay on top of what’s going on in the industry.

This actually ties into another comment, which was the most compact piece of information:

C++

If you dislike C++, turn elsewhere. I personally think it’s an extremely capable language once you learn to harness it properly. It is dangerous without the safety equipment though, and sadly some of that equipment doesn’t work with games.

Other languages are starting to appear when it comes to games coding. I’ve heard examples of LUA, java and C# being used as scripting languages, and of course there’s UnrealScript. These can be extremely beneficial for iteration times and such, but the grunt of the software is still going to be C++.

Update: I should also mention another old post of mine about this: Let’s Make a Game Engine!

Games Programming

I tried to avoid getting into the details of hardware and the coding that goes with it in the previous post, since I love talking about these sort of things and I didn’t want it to become a rant but hey, you asked!

Console hardware (I’m looking at you, PS3) is made for pretty graphics demos, not simulation. If you work on the AI or physics, be prepared to focus your energy on low level optimisation and cache misses, because your AI code is never going to be any more sophisticated than a state machine.

Well… I’m the lead AI coder on Frostbite, and while there are lots of things to be said about the Frostbite AI, “no more sophisticated than a state machine” is not one of them. I agree, some things (especially physics queries) are expensive on the hardware, but that simply means you need to re-think how you do stuff.

SPU code is a vastly different beast from your average code. There are some bad programming habits that can completely destroy your code for SPUs… and among those bad habits are the ones that would lead you to get stuck on low-level optimizations. Once you learn how it works, there is an incredible amount of power in the PS3. I’d dare to say it’s still relatively untapped, and that as time passes we’ll see more sophisticated uses of it.

The limitations of console hardware is different. That doesn’t mean you can’t implement physics or AI, it just means maybe you’ve got to challenge your assumptions about how you implement physics and AI.

I guess the Parallelism approaches are a little different in both worlds. I bet you gamedev guys have been working with Data Parallelism for a while (i.e: programming the Playstation2 Vector units. I don’t think life is getting any easier on you guys with all those Cell SPEs to squeeze!).

In the enterprisey side, task parallelism is an emerging topic with languages like Erlang, Clojure and Haskell offering different abstractions for spreading computations over different hardware threads/cores.

The vectorization units of the PS2 are a quite limited way to do data-parallel work, so I disagree with you here — with the SPUs on the PS3, it actually is easier, because it’s less limited in what you can do with them. Vectorization units and other primitive forms of data-parallelism often work in lockstep, whereas the PS3 actually has a bunch of individual, highly capable although slightly quirky processors.

Games are full of data-parallelisable problems as well. Rendering is the classic example — the reason GPUs have been such a hot development the last few years is that rendering lends itself so well to parallelism. But there are many other things as well — the aforementioned AI is ideal in some ways, as it tends to be made up of lots of separate processes for different actors or entities.

Task parallelism is also something that can be utilized to a great degree in games since there are simply so many orthogonal tasks to complete. Update the UI, do physics simulations, calculate character skinning, play audio… I can’t go into details on that, but we do a whole lot of it in Frostbite. Sadly, you do end up needing to care about many of the details that using an abstracted language would let you ignore though.

Still, it’s one of the most exciting aspects of coding for me, since games are one of those applications that can actually use all the power of parallel computers.

News Flash: Griefing People Makes Them Angry

I read with some surprise about the professor who joined an MMO only to grief people to no end, and observe how they reacted to it. Fine, cruel way to treat people I guess since they had no choice of opting out of his “experiment”, but I’d accept that if he had some kind of point to make… so that’s not the worst of it. The worst of it is the conclusions he comes to from this “work”.

Taste these:

“He believes it proved that, even in a 21st century digital fantasyland, an ugly side of real-world human nature pervades, a side that oppresses strangers whose behavior strays from that of the mainstream.”

“Myers was stunned by the reaction, since he obeyed the game’s rules.”

“It started to not be fun,” said Myers, a video game aficionado. “I became the most hated, most reviled player.”

“He said his experience demonstrated that modern-day social groups making use of modern-day technology can revert to “medieval and crude” methods in trying to manipulate and control others.”

fuckwad_theory

Someone actually grants funds for this nutcase? Hell, I could have told you all of those things at once, without the need to be a total dick to people for two years: There are social systems in any context that go above and beyond that of the rules and laws of the context. Yes, this goes for online communities as well. No, you wouldn’t be stupid enough to do that to someone if you weren’t online and anonymous.

I’d urge Mr. Myers to try it out AFK sometime. A subway train could be a good place, for instance (though I’m certainly open for other suggestions, these things are common). Place yourself in the middle of the doorway. Stand in the way of peolpe trying to enter or exit the train. If they move to sidestep you, follow to block the movement.

This is not illegal or against subway rules, but it will still make people really fucking angry. The social context tells you “don’t do that”, not because it causes people to become “medieval and crude” when they force their way past you violently, but because you’re being a real dick to people if you do.

People started out by asking kindly, but then stepped up their efforts to change his behavior as he ignored them. Like people under threat from abuse AFK, they first tried all the normal, appropriate ways of dealing with normal, reasonably sane people, but then had to go to extremes when this didn’t work.

This has nothing to do with him being a “stranger” (hint: everyone’s a stranger in an MMO), but with the fact that he was making their lives miserable to the best of his abilities.

In any game there will be things that are possible according to game rules, but forbidden due to social context. In Battlefield and other shooters, it’s spawn camping. In golf, it’s crossing another player’s line of putt on the green. In World of Warcraft, it’s ninjaing a target or piece of loot from other players. I could go on for a long time.

In the end, we come down to the simple fact that this guy gets paid for being a twat to people for two years, and tries to interpret it scientifically as some sort of bullying on their behalf.

There are plenty of interesting areas to research when it comes to games… games are still a young medium, and especially the social effects and interactions of MMOs are fascinating. So picking an area with slightly more relevance could be nice. Better teach this guy the basics of human psychology before letting him near another study, though.

Making Games

I hear from programmers every now and then who are considering trying to get into the games industry. Our projects are strange beasts that are similar to other software projects in some ways, yet vastly different in other ways. Still, if you look at it from outside, most of these differences will be hard to spot.

With this post, I will try to list what I see as the biggest differences between working on a game and working on a different kind of software project. If you have any questions related to it, please post them as comments and I’ll do a follow-up round.

The Passion and Dedication

It sounds like a cliché, but games are made by mostly gamers. In all the teams I’ve worked with spanning maybe a hundred, there’s only a few people that aren’t absolutely passionate about games, and completely dedicated to making kick-ass entertainment.

The enterprise coders I’ve worked with pretty much fall into two categories: the day job coders who don’t care much and the hackers that appreciate technical challenges. As you move into games, not only does just about everyone fall into the second category, but nearly everyone is also excited about the games themselves, regardless of the technical challenges involved.

If you’re looking for a place to work where your colleagues will be really cool, skilled people with a passion, then the games industry is where to look.

On a cynical note related to that, the abuse of this passion and dedication is what has given the games industry something of a bad reputation (and a well deserved one too). My impression is that working conditions have improved quite a lot across the board, even if there are still the occasional horror stories. If I were to give one piece of actual advice, it’d be to be rather thorough in your background checks on companies.

Creativity

Game developers live off creativity. Even the most simple churn-out-sequels factory will attract highly creative people, and studios will tend to cater to creativity to a much higher degree than most other software development companies.

If you’re highly creative, you will probably find it easy to fit in. My experience is that creative suggestions are almost universally appreciated regardless of source.

Cross-discipline, Bleeding Edge Development

Games teams are made up of a number of disciplines that vary depending on what type of game you’re making, but generally speaking you’ll at least have Designers, Graphical Artists, Animators, Sound Designers and Programmers. Our projects have Mission Designers, Environment Artists, Effects Designers and other disciplines as well.

In a way, this is no different than many other types projects where some end-users create some of the data for the system, but there is a major difference in the fact that the hardware platforms are either consoles or PCs with specs so high that they don’t even exist yet. The coders on the team will be creating a game framework, which is then populated with different kinds of content to produce the game.

The problem with this is that they’re using the software tools you’re building (like the editor and data processing pipeline) to create the game while you’re still trying to build the tools, only to run it in a game engine that is also not done yet.

It’s a bit like trying to produce a business application while part of your team is working on creating the source code editor you must use, and a different part of the team is building your compiler. In some magical way, the components must all mesh together so that not only are the tools done when it’s time to ship the product, but that content creators have time to do something useful with them as well.

This creates an extra layer of complexity to the projects that I haven’t seen anywhere else. Inter-discipline dependencies between disciplines that work in very different manners can cause common project management techniques for software development to break down, because most of the team isn’t developing software.

Performance Focus and Hardware Platforms

From a technical point of view, there is a heavy focus on code performance. This creates a different kind of environment, where some modern programming techniques are simply too expensive to use. It also means you tend to get good at optimizations after a while.

The hardware we run on is increasingly becoming paralell. Using all of the power in the PS3, for instance, requires a fairly well developed parallelism, forcing the shift from single-threaded to multi-threaded coding onto game programming long before most applications need to care all that much.

(Note that my view on the state of the industry is rather limited here. DICE is ahead with the Frostbite engine on current console tech, some other engines are hopelessly behind, but it’s always hard to tell what others have in development.)

The hardware platforms themselves can sometimes be immature and cause problems when you have to jump through hoops to get things working (simple example: graphics driver bugs).

The platforms themselves also impose other restrictions on your code, like the low memory cap of current generation consoles and extreme penalties for cache misses and branching.

Playing Games at Work (!)

I couldn’t leave that out, could I? Yes, we playtest our games at work. They’re a lot of fun, most of the time, so getting to play awesome games before anyone else is quite a perk. To be completely honest I must admit that there are times when it’s not much fun at all… but they are quite uncommon. And hey… you get to shoot your boss.

WordPress Themes