Double Buffered

A Programmer’s View of Game Design, Development, and Culture

Archive for February, 2008

The Science of Happiness and Mob-Slaying

Posted by Ben Zeigler on February 28, 2008

A few weeks ago, I was on a cross-country flight with nothing in particular to do. So, I read The Science of Happiness by Stefan Klein. It’s a popular science overview of research into happiness, in the vein of something like Blink by Malcom Gladwell. First of all, it’s a well written (and translated, it’s originally in German) book that goes over much of the field of Positive Psychology. I recommend it for anyone looking for a good non-fiction book, and it’s got lots of citations if you want to dig deeper.

I wanted to talk about it here because strewn throughout are a bunch of facts and theories that illuminate some issues in game (and MMORPG in particular) design. Things like fun, reward design, and addiction are obviously important factors in design, and it’s got something to say about each. Here’s a rough summary of some of the research, with my comments in blue:

There’s two basic types of non-physically caused happiness, the Expectation System which is largely tied to dopamine, and Flow which is the immediate fun that comes from appropriate concentration, and is more tied to the opioid system.

There’s two reasons games can be fun: the rewards and new experiences granted by the game, and the immersive and tactical fun caused by basic interaction with the system.

The Expectation System responds to gains or losses of rewards, and not the sum total you have at any time. Having money doesn’t actually make you happy, but gaining more money does (although only for a relatively short time). Also, gaining points in video games has the exact same psychological effect as gaining physical possessions or monetary assets.

Giving out rewards and loot makes people happy in EXACTLY the same way as winning the lottery or getting a promotion. There’s nothing more “addictive” about gaming than there is about climbing the corporate ladder. It turns out that humans are just wired to seek rewards. And being nerfed is just as bad as being fired.

The Expectation System gets bored very quickly. Gaining an identical reward again is around 60% as effective as gaining a new reward (which quickly drops off to 10% after a 4-5 times), no matter how good the reward is. Cycling novelty over time is effective, which leads to things like style changes in fashion design.

Giving out unique loot (random, rare, seasonal) is a LOT more satisfying than giving out generic loot. This is an essential part of our psychology. You either need to escalate the rewards over time, or cycle them in and out. In the interest of not having hilariously broken games, I recommend at least some cycling.

Another way that the Expectation System provides satisfaction is in comparing ourselves to others. In real life, we tend to overestimate the happiness and success of others, which leads to happiness as well as a drive to do better. If we are able to compare ourselves to others and be better, it makes us happy until we notice the next rung up the ladder

Being able to compare yourself to other players is very important. If you’re better than someone else you’ll be happy, and if you’re worse than someone else you’ll be driven to be better. If good comparison tools aren’t provided, players will assume they’re not doing very well, but won’t have any specific drive to improve. Stupid ****ing broken Warriors/Pallys/Sheep.

The conscious brain has a really bad memory when it comes to enjoyment over time. It doesn’t remember the individual feelings, but instead compiles it into Satisfaction which is heavily influenced by feelings near the end of an experience, as well as prior expectations of the experience. People don’t actually know how happy they are, but subconsciously they will tend to do things that make them happier, even if they don’t feel satisfied.

Overall happiness over time is what keeps people playing a game. However, Satisfaction is what people use to make conscious evaluations of a game, such as reviews or recommendations to friends. Prior expectations and final experiences in games have a greater effect on this intellectual Satisfaction, and can explain why some games are fun to play but we don’t understand why. Also, this explains why that game you spent 3 years working on got a 50. Has nothing to do with it objectively sucking.

The effectiveness of Flow at creating enjoyment is directly related to difficulty and mental engagement. If an experience is either too easy or too hard, it is not enjoyable and becomes boring or frustrating. Preferred difficulty differs heavily per person and skillset.

Difficulty settings are a really good thing, and they need to variable per player AND per individual aspect of game play. Conventional one-axis difficulty systems turn away players with multi-dimensional skill levels. Besides, noobs are funny.

“Exercise and sex have proven the surest means of raising our spirits”

Yeah, not quite relevant for gaming. It turns out you DO need a life away from the computer. For now.

Posted in Game Design | Tagged: , , , | 1 Comment »

GDC 08: SQL Considered Harmful

Posted by Ben Zeigler on February 26, 2008

Update: Slides posted here.

Cryptic Studios didn’t have a huge presence at GDC this year, but a few of us gave some talks. One of them  was “SQL Considered Harmful”, which was given by Shannon Posniewski. Shannon had a big part in the design of the system, and I and another engineer did a majority of the implementation. Shannon’s working on putting slides up, but until then there’s an great summary up at T=Machine. [NC]Anson has some commentary up, as does Jeff Freeman (cute image, need to use that somewhere). I posted thoughts similar to Shannon’s presentation in a blog post from a couple years ago, when we were starting development. Because I was working on the details of the system, here’s random responses to some of the comments on the talk:

  1. I had a bit of Object Database knowledge at the start of the project, while the rest of the team did not.  Specifically, my dad worked on ObjectStore for a few years, and he’d taught me the fundamentals. After experiencing the failure of SQL, Shannon and the other software leads laid out a system where structures were stored hierarchically and optimized for quick read and write instead of random access. When I learned about the design, I recognized it as a basic Object Database, and the design of the system merged with existing Object Database theory.
  2. I actually did evaluate ObjectStore and Versant in the research stage of the project. This was my specific job, so Shannon wasn’t really involved. At the time, neither had a product offering that made sense for a company of our size and requirements (Versant has since started a push into MMOs, but I have no idea how good that specific product offering is). The biggest technical problem was that both systems were implemented in fairly-heavy C++ and imposed their own object model. In order to convert our code over to use it would require an extensive rewrite of our entire data back end (as Shannon said, we had a bunch of existing data manipulation and persistence code in proven use in CoH). Without having an existing data infrastructure, using an existing ODB probably makes sense.
  3. The CrypticDB isn’t live in production, but we are using it exclusively in development. We’ve been running all of our development and playtesting on the CrypticDB for the last year and a half, and functionally it’s working extremely well. We’ve done a bunch of synthetic scalability tests too, which are looking promising. Shannon just didn’t want to overstate the progress of it too much, but I’m as confident as you can be before you actually bring something live for beta. There’s nothing more I can say than check back after Champions launches :)
  4. Lastly, the benefits of having an integrated data pipeline from client to database are really exciting. When you start thinking of all kinds of data in your system as being essentially the same (and part of a web of related data), it opens up a lot of possibilities.

Posted in Game Development | Tagged: , , , , | 3 Comments »

 
Follow

Get every new post delivered to your Inbox.