Thursday, September 11, 2008

Design Lesson 101 - Castle Crashers

- Cooperative play in games is becoming a huge selling point and an almost mandatory feature in today's industry. From AAA titles like Gears of War 2 and Resistance 2 to downloadable titles such as Schizoid and PixelJunk Eden, co-op play is a regular feature that many games promote.

The Behemoth, creators of Alien Hominid, have released their foray into the co-op world, a four-player side-scrolling beat-em-up called Castle Crashers. The game supports co-op play over Xbox Live, and like with any multiplayer game, occasionally has networking problems.

The technical problems I personally experienced while playing Castle Crashers have led me to think about how design can help mitigate some of those problems, which is the focus of this design lesson.

Design Lesson: By accounting for poor networking conditions, co-op game design can reduce the frustration for the player playing under such conditions

Poor networking conditions are a fact of life. Sometimes you end up playing with someone who has terrible lag and drops their connection all the time. When playing a co-op game this can be frustrating, especially if you know the people who you are trying to play with.

The best answer is to write flawless networking code, but that's not reasonable. There will always be problems. Some poor gamer will always have an issue because their network is horrid. However, there are ways to use game design to lessen the frustration.

The first way is regularly saving the game. Castle Crashers has an overworld that allows the player to choose what level they play (or replay). As you play through the game the first time, levels start to unlock at the overworld screen.

After each level, you are thrown back to the overworld screen and the game is saved. What I realized is, often I would be 3 or 4 spaces away from where I was last on this screen. This is because the game splits up each level into sub-areas, allowing players to not have to play entire levels over if they don't want to.

However, the game does not put you back at the overworld screen each time you hit a new sub-area nor does it save the game automatically unless you go to the overworld screen. So if the game drops in the middle of a level, even though you unlocked some of the new areas, you start the level over since it never saved (you also lose your XP).

Another issue is inability to join and leave games in progress. All players must be present to start a game. One of my friends had a bad connection, and regularly dropped. Everyone else had to stop, restart the game, and re-invite him to allow him to continue to play. It would have been much easier if he could just rejoin again while the rest of us played on, instead of waiting in a lobby.

Joining and leaving co-op games on the fly is becoming standard in co-op gaming, and I see no reason for it not to be included in all co-op games. It requires some more work and forethought from a technology perspective, but is another way for the design of co-op to lessen the impact of people's poor networking conditions (and to allow people to pick-up and play and not schedule their lives around a game).

Even worse than not being able to join a game on the fly is the fact if you are the last person in an online multiplayer game, the entire game quits on you instead of just allowing you to continue alone. The design, instead, could have allowed one (or both) players to continue playing alone or at least saved the game at that point so all progress wasn't lost.

By incorporating these designs into the a co-op game from the beginning, the technical implementation of networking can be suited around them. People will always be frustrated when games don't work 100% as intended. By smartly designing co-op games to mitigate this, however, there is a role to be played to help out when technical issues arise.

1 comment:

  1. Try out cricket has grown into dull not to mention prosaic. Some asphalt proposals towards revamp typically the test cricket are generally suggested from former Native american indian cricket professional Ravi Sasthri.