Saturday, March 28, 2009

GDC 09: Day 5

The final day of GDC started off with a lecture on how Disneyland can be used to create better level design.  Walt Disney has always been one of my role models and thanks to my Disney class in college, I already knew a lot of the clever tricks Disney used to really immerse people in the fantasies that exist in Disneyland.  There were a lot of tricks I didn't realize that went even deeper.  For example, in Frontier Land, the guest is supposed to feel like it's the old West, so they have a lot of freedom to do what they want.  So the paths are much more open except for specifically placed planters that add the illusion of different choices the guest has on how to get places when in reality they're still going from point A to point B.  On the other hand, Adventure Land is supposed to feel like a bazaar in some foreign country, very crowded, lots of things to distract you, etc.  So the pathways are much tighter and every step you take brings more distractions into focus (Jungle Cruise, Aladdin's show, Indiana Jones, shops, etc).  Here the planters are meant more for crowd flow control.  New Orlean's Square is all about rewarding exploration, so there are a lot more nooks and crannies and little alcoves with jazz bands hiding in them, which gives you the feeling of reward when you discover them (which I've experienced myself).  Hopefully, I can get the slides for this so I can post them here.

After that talk, I went to a few shorter lectures, one on designing player failure and one on the paper prototypes of Spore.  The failure design one was interesting because the guy was a games researcher at MIT and he discovered that the idea that casual game players hate failing is a myth.  It turns out that it matters less how many times you fail, but more on how failure is treated (ie, what's the failure cost).  Failure cost was figured out by multiplying the failure count (how many times you fail), failure communication (was the player insulted when he failed?  Encouraged?  Merely told he failed?), failure setback (how much time did the player just lose because of that failure?), and the failure repitition (do they repeat the same game as in Mega Man when they fail or is it more randomized?).  Another interesting point was how if you play a game, you like it, you want to show it off to a friend, you play really well at it, and then they lose horribly, your friend is going to hate that game because they feel like they're the only one who is bad it.  I've lived this example with Ticket to Ride.  I don't like that game because the first (and only) time I played it, my brother and sister-in-law did so much better at me that I just lost all interest in that game entirely.  It was no fault of my brother or sister-in-law, that's just what happens if the failure cost gets to high for someone...or something like that...

The Paper Protoypes of Spore talk was interesting, but it had less to get from it.  There were basically two slides of takeaway information, but that was near the end so he was blazing through it, which meant I didn't get to take very good notes.  All I got is that you should make paper prototypes of your game's systems to balance them, you should focus on the key idea you're testing at the time, be abstract with your prototype (don't try and match the controls of the game, etc), it doesn't have to be fun (you're not making a sellable game with the paper prototype), and it helps build a vocabulary when discussing that system that just pops up when you start playing the paper prototype.

The second to last lecture I went to was about a state-based scripting system used in the PS3 games Uncharted and Uncharted 2.  It was interesting, but I didn't take any notes, so I'm not sure what I learned other than that having a scripting system allows designers to do a lot of the work programmers would have to do.  I'm not sure how we can use it with Delta3D since we A) don't have any designers and B) don't work on anything with more than one level usually, so it's just easier to program it.

The last thing I went to at GDC this year was titled "Games Have Feelings Too!".  I'm really not sure what to pull away from this.  Basically it was an hour long lecture about how game is art now, Citizen Kane was a failure at its time, so we shouldn't expect anything different with our Citizen Kane (ie super artsy game), and games evoke the more subtle feelings.  Sometimes.  It was interesting, but I didn't really get anything out of it.

Thursday, March 26, 2009

GDC 09: Day 4

Today had some of the best lectures I've been to so far. However, it didn't start out so great. The first lecture was called "How Sackboy Learned to Love Physics". Sackboy is the adorable main character of the PS3 game, Little Big Planet. All week I've been trying to mix up going to lectures that I should go to for my job (programming focused) and ones that I want to go to (game design focused). Unfortunately, the programming ones I've attended for the most part have been pretty lame. This one was not the exception to that rule. There were some interesting points about how physics is faked for a fun game, like how you can control your horizontal movement in every Mario game while jumping. Try jumping forward and in mid-air start traveling backwards. The other bizarre example was in Quake how if you are strafing to the left and fire a rocket, the rocket moves straight from the point it was fired at and doesn't take your velocity into consideration. Other than that, I didn't really get the point the guy was trying to make and his slides weren't very useful.

After that, Hideo Kojima, the man behind the Metal Gear Solid series, had a keynote named "Making the Impossible Possible". His slides were very professional and humurous. Most of the keynote was on the history of the Metal Gear Series and what problems had to be overcome for each game. He made some really interesting points about how when you come upon something that seems impossible, it's most likely just your perception and with some alterations on how you're viewing the problem, you can solve it. If not, give it a little time and the technology will resolve the problem. He left us with the quote "90% of what is 'impossible' is possible. The other 10% will be possible given time & technology."

The next talk was on Left 4 Dead and how they made a cooperative, replayable video game (and succeeded amazingly in my opinion). First off, the game was built with cooperation and replayability as the two core concepts. Some of the most interesting parts of the lecture (although I'd love to talk about it in greater detail with anyone who wants) were how each enemy type was built with a specific rule/play style they were meant to break up. The way they made cooperation so important is that they made it impossible to succeed alone, but not in a heavy handed way like invisible leashes to keep the characters together or anything. Instead, they made regular Infected stop you when they hit you, so it's hard to run through a mess by yourself, but even if you manage that, the Hunter was specifically designed to kill stragglers and lone wolves. They also found that coordinated teams plowed through enemies too easily, so they added the the Smoker whose purpose is to break up a well organized team by sucking out one of the survivors. To break the typical gamer rule of "Shoot everything that moves", the Boomer was added (or rather merged with a previous enemy type named a Screamer). There was also an extensive dynamic AI Director system that decides how to create a more unpredictable game by forcing a lull in the action if things get too intense. All in all, this game was incredibly clever and hopefully I learned enough to use some aspects in future games I design.

Another fantastic lecture I attended directly followed that one and was all about using User Interface design ideas in puzzle design to keep from making puzzles unclear and thus making players feel stupid. I'll sum it up real quickly because I'm running out of time on my hotel internet. Depending on the puzzle type, you should make it very clear what tools the player has available to them and every action the player can take should have some kind of positive or negative feedback to indicate whether they're on the right or wrong track. There should be a good dialog between the game and the player at all times. Maybe when I get home I can write my notes up here on this.

The final lecture of the day was on the terrain in the new game Halo Wars. Usually terrain is created using a map of the heights of each vertex of terrain at a point or a height-map. One interesting concept they had in Halo Wars was a vertex heightmap. This way, each vertex stored a whole vector instead of a scalar value, so the terrain can be sculpted into interesting overhanging shapes and such. It was fairly technical and I'm not completely sure I got it all, but it was possibly the only programming talk that I understood most of and was interested by. It was a good way to end a very good day.

GDC 09: Day 3

This is later than I intended because last night I spent sleeping trying to get rid of a headache and instead just slept through until this morning. Hopefully that won't happen again. At least not until I'm home in my own bed.

Yesterday started off with a keynote lecture by the president of Nintendo Satoru Iwata. The first half of it was Mr. Iwata explaning how their top designer Shigeru Miyamoto (Legend of Zelda, Pikmin, Nintendogs, Wii Fit, etc) designed games and what his process was. Hopefully I can take a lot of that and use it in my future game designs. Then he started announcing things for Nintendo such as a new menu system for the Wii that allows use of higher memory SD cards and loading games directly from an SD card. He also announced that after the keynote, we would all get a free copy of the new DS game coming out in a couple weeks called Rhythym Heaven. It's from the makers of various Wario Ware titles so it's got a real mini-game feel to it, but it's all rhythym based. Oh and we got it for free so that's AWESOME. Oh yeah and he also announced a new Zelda game for the DS called Spirit Tracks. And I got to be there in person for the announcement. 5 rows or so from the front of the room. I'll beat you to it, Adam. LUCKY!

After the keynote, I went to a couple lectures that weren't as interesting to me as I'd hoped they'd be. One was on an open source project by Sun Microsystems (creators of Java) called Project Darkstar. It's basically a library that makes creating an MMO easier because it takes out all the stress of dealing with servers and communication. I'm not sure how we can use that with our game engine, though, especially because the server code is in Java.

Next up was a discussion on how to make games look good without a lot of bloom or motion blur. I was very interested in this just because I'm tired of how nearly every modern game now has crazy angelic glowing characters with all the bloom and nauseating motion blur to make things look cooler. Unfortunately, I'm not a graphics programmer, so a lot of it was over my head. But after talking about it later with my co-workers I realized I did get more out of it than I thought at the time. It was all about subtle little shadows (contact shadows) and details. There should be details on everything at all sizes. When you get a chance, go somewhere with a good view and look at the objects up close and far away. Both of them have tiny details that make them interesting. Right now I'm looking out over San Francisco and the windows in the buildings far away are all different because of how people's curtains are. So if a game were to portray that, they shouldn't have one really flat uninteresting texture for the far away things because that's: A) not interesting and 2) not how it would be if that place existed in real life.

To cool my brain off a little, after lunch, I went to a game design challenge where four top game designers were told the specifications of the challenge a couple weeks ago (or due to some crazy shenanigans, 36 hours ago...). The theme of the challenge was "My First Time", which was essentially an autobiography on the first time they had sex. It was highly amusing and only one of the designers had entirely inappropriate slides up at one point. I don't think I really got anything out of that lecture, but it was a lot of fun to watch and it was highly amusing.

The last lecture I attended that day proved to be the most interesting non-keynote lecture. It was all about the software engineering behind the tools of Insomniac Games. They did a lot of clever things to make their tools very modular, which makes things easier for programmers, and user-friendly, which makes things easier for the content creators. I won't really get into the details, but it was good to find out that programming tools seems to be where I want to focus on at my job. Previously I wasn't finding any aspect of programming that really grabbed my attention and made me say "Ooh! I love programming this!" But making powerful tools that are easy to use and not scary or hard to learn is a new goal of mine because good tools help the users do better at their jobs.

Tuesday, March 24, 2009

GDC 09: Day 2

Today at GDC instilled in me an even deeper desire to design games, only now I'm thinking more along the card/board game variety. We started off the day continuing our robot training by adjusting the world destroying robot's programming so he was stoppable. The biggest twist of that exercise was once he was tweaked to the point where that game was dramatic, we took our robots and faced them against other groups' robots. This was very surprising because we were changing the robots with tanks in mind, not other robots, so it was interesting to see how they all fared. R.U.F.U.S. (our robot) was doing very well in our 4 way battle royale until BPPT-3000 fired a rocket at another robot, which self destructed and killed everyone playing. So in the end, none of our robots one. I think that's the best ending for a mad scientist destructo-bot battle royale movie.

Then we came back for another exercise that everyone in the workshop was involved in where we took an existing video game and deconstructed it into a paper game version, so the controls, graphics, sound, and music were all gone, but the essence of what made that game a fun game was still there. As a challenge, our group chose Rock Band as our game. There was much debate and little playtesting at our group (which was counterproductive), but eventually we came out with an incredibly solid experience that's like a weird co-operative game of Simon. I wish we had more time on it so we could add some other key Rock Band elements like the Overdrive score multiplier, but we did accomplish what we set out to do. We even got a ringing endorsement at the end of the entire tutorial by the guy in charge of our group. Hopefully next year our game will be on the slides as a good example of this exercise.

Then after lunch we had another elective where I joined the 100 Zombies group. In this exercise, you start with a pair of people, one random character, and a 7x7 board with 24 zombies on the outside edges of the board. The zombies would move every turn based on the roll of a die. If a turn ends with a zombie on your character, the character dies. Our job was to create a set of rules for our character that fit the character's stereotype and was possible to win or lose with. My teammate and I got the Farm Girl, so every turn she could do two of the following things:

1. Move: If zombies are adjacent to the farm girl, movement is determined by the roll of a die, otherwise she can move one space N, S, E, or W
2. Lasso: Pulls one zombie N, S, E, or W of the farm girl to the spot right next to her
3. Attack with shotgun with accuracy based on distance to zombie:
- Zombie is adjacent: Roll a die, 4, 5, or 6 is a hit
- Zombie is 2 spaces away: Roll a die, 5 or 6 is a hit
- Zombie is 3 spaces away: Roll a die, 6 is a hit (Shotgun is more effective at closer ranges)
- Zombie is on top of farm girl: Roll a die, 6 is a hit (She is too freaked out to aim properly)

Then we joined Farm Girl up with another team's character making a 7x14 board with two characters surrounded by 48 zombies. We were suggested to make combo moves for the two. So Farm Girl joined up with Math Whiz who is a kid in a wheel chair with a potato gun that he must spend time making ammo for. The twist we added is that if the Math Whiz was 4 spaces away from Farm Girl, he would be forced to move near her (because he liiiiikes her). If she was on the same spot as him, Farm Girl would be forced to move because she finds him disgusting. So one turn, a zombie ended up on top of Farm Girl, so she moved away (so she could get a good shot at it), but landed on the Math Whiz, at which point she had to move away again.

Then we joined our two characters up with two more to make a 14x14 board with 4 characters and 96 zombies. Sadly, Farm Girl did not survive this game. She lassoed a zombie to try and get a better shot at it, missed, and subsequently freaked out, running into the mass of zombies and never coming out...she wasn't too bright.

Sadly, the rest of the week has lectures and roundtables instead of tutorials, so there will be a lot less interactivity on my part, but now I have some good ideas of some side projects I can start working on in my free time. Plus, tomorrow morning I get to hear the president of Nintendo speak, so that should be exciting.

Monday, March 23, 2009

GDC 09: Day 1

I could never find the free breakfast thing at Starbucks, but it's okay because I didn't wake up early enough to enjoy it. I did get to enjoy a fun day of learning about game design. The day started with us getting into groups and playing a game called SissyFight. It's a card game where on each turn, everyone can either solo attack someone, team attack someone, or defend yourself from attack. You have 10 health, a solo attack takes away 1 health, a team attack takes away 2 health per person joined in the attack (or 0 if it's a 1 person team attack), and defending cuts this amount in half rounded down. Fairly simple game.

Our task was to pick a theme that fits this game and then adjust the rules to fit the theme (fiction) and make the game even more fun. We couldn't pick a single one of our themes, so we ended up joining the fiction of vampires and polygamy, which resulted in the Brides of Dracula. Each player is a wife of Dracula and the object is to be the favorite. The poker chips represented your affection with Dracula. Each turn Dracula grows bored with everyone, so you ante 1 affection per turn. When you attack each other, you steal the affection from them. There were a couple more rule changes we added, but all in all it turned into a really fun game I'd like to play with people. I think the funniest part was when we changed player's names from colors to more gothic sounding names and then accents started popping up during play.

After that we had some electives. Mine was the 4 C's and Facebook. We were supposed to come up with a fun Facebook application using the 4 C's of design (Creativity, Collection, Community, and Competition). Personally, I don't think many groups (including mine) came up with anything really fun. But that does kind of sound like a lot of Facebook apps (including ones I play like Mafia Wars...). Some people's games didn't even sound like they had ever used a Facebook app. Like one where everyone has to click a button at the same time...I really didn't understand that one...

The last event of the day for me was an elective called Us vs. It (which will continue on tomorrow). This exercise was similar to the first one. We played a game together and then re-wrote the rules. The purpose of this exercise is to remake an incredibly hard (if not impossible) co-op game to be possible, but still have drama. Essentially, the game is four of you are tanks trying to stop a rampaging robot from getting to town. Every turn, the robot must follow its program, so in the exercise, we were tasked with changing the program to try and make it better. We almost got there by the end of the day, so hopefully tomorrow we can finish it.

Sunday, March 22, 2009

GDC 09: Day 0

So here I am in San Francisco, in a Hilton, 30 stories up from the ground. The view is amazing, although I have yet to see any ninjas practicing their art on any roofs. I guess that's more a New York thing...I get to spend this week at GDC (Game Developer's Conference) learning how to do my craft better and having fun at the same time hopefully. And all of this is funded by my job. Gotta love it.

So we (the Delta3D team) drove in from Monterey this afternoon, checked into the Hilton, and ate some good Chinese food in Chinatown. Unfortunately, we didn't get here quite early enough to see The Blanks in concert, but that's okay. Maybe I can make that trip to LA to see them. After dinner, we came back to the hotel and finished the night in typical nerd fashion, a game of Settler's.

Somewhere in this room there's a coupon for free Starbuck's continental breakfast, so tomorrow morning I plan on using that before my 2 day tutorial on Game Design. I'll keep you updated on how GDC treats me and what all I learn. I'm so excited for this week!

Wednesday, March 18, 2009

Spending Time vs. Hanging Out

This past weekend I went up to visit my grandparents (and my mom as a bonus).  My grandparents don't have a computer or the internet, which I would've been more concerned about had my trip been longer.  As it was, I found it an interesting test to see just how addicted to technology I am (there's no question of if I'm addicted).

What I found most interesting about this test is what we occupied our time with.  We'd wake up early (I was the late riser getting up around 7:30 or 8) and have breakfast together at the dinner table just talking and enjoying delicious food, then we'd stay at the table talking until it was lunch, then we'd eat more delicious food and stay at the table talking a few more hours.

Normally when I'm hanging out with people, I have this need to "do something".  I always feel like I should be watching a movie with them or playing a game with them or doing some other kind of activity with them.  It was really refreshing to not feel this impulse and instead get to really spend time just being with them.

A few weeks ago at church, the lesson was about practicing various spiritual disciplines and one of them was just slowing down.  For example, pick the longest line at the grocery store and take that extra time to just relax.  Ignore the impulses to get everywhere as fast as possible.  I think spending time with people rather than hanging out fits in with that perfectly.  I think if everyone just took 2 hours out of every week to spend time with someone without doing anything, the world would be just that much better.