Game development is full of all sorts of little roadblocks that make life hell. Some things I enjoy figuring out, but others I would rather not think about at all. Such as save data and on-line multi-player.
In Castle Crashers, we have four selectable characters. As you play the game, you level up and distribute skill points to upgrade your character. This led to our first question: Are the saved character stats attributed to your specific knight (for instance, the blue knight), or for you as a player (your Xbox360 account)? If the stats were based on your Xbox360 Live account, you would be able to play as any character and always have the same stats. You could beat the game as the blue knight, then play as the orange knight and be just as powerful as you had become in your previous session.
This seemed lame, because it removes the incentive of re-playing the game as different characters. Assuming we have unlockable characters, it would be equally lame for them to be fully powered up when you unlock them. So it seems logical that every character in the game should have his own unique level stats, which are saved independently, under your Xbox360 account. So when I log in as "Newgrounds" and play as the blue knight, his stats are unique from when I play as the orange knight.
Now here's where the first problem arises. Say you join a match of on-line multi-player. The players join up BEFORE they select their characters, to preserve that arcade feel of everyone going to the player select screen together. Lets say you have spent all your time advancing the blue knight, but as soon as you start an on-line game, someone else chooses the blue knight. You are now stuck with choosing a character you haven't developed. Either that, or we allow multiple players to play as the same color, but that would be chaos.
An alternative would be to let players choose their character in advance, then match-make based on that - but it would limit the pool of player matches and be annoying for other reasons I don't feel like getting into. We don't want to go that route. The positive side is, it encourages players to build up all their characters and spend more time playing on-line to do so.
So now we have four players who have joined up and entered the game. Player one has unlocked everything up to the last level, but player two has never played before and hasn't unlocked anything. This is a hotly debated topic. Do we allow a new player to jump straight to the end and have the entire game spoiled, or do we force the seasoned players to replay through the game from start to finish, to humor the new guy? Will a new player even be able to survive in the later levels? That's a matter of just how wide the gap becomes between a new player and a fully developed character - something that is still wide open to adjustment.
I had been leaning towards not allowing new players to skip ahead with seasoned players. My thought was, seasoned players would enjoy replaying through earlier levels, whereas the experience of the game would be cheapened if new players skipped ahead. However, Mike just sent me this article from Game Developer magazine. I am already in agreement with much of it, such as, "Games are not for game designers and their ivory-tower ideals - games are for players."
The article eventually tackles the issue of multi-player saves, where it explains, "Even if the friend is new to the game, they're still allowed to join someone who's playing the last level, because Gears of War is trying to be as convenient to the player as possible." This statement alone makes me shudder at the thought of NOT being convenient to the player. If it's good enough for Gears, it's good enough for Castle Crashers. So here is what we are looking at:
1) Under your Xbox360 user profile, you have independent stats for every playable character in the game. These stats include character attributes, unlocked levels, weapons and items.
OPEN TO DEBATE: Should unlocked levels be global to your Xbox360 user profile? So for example, if you beat the game with the blue knight, can you start the game as an undeveloped orange knight and still have all the levels unlocked? Ditto for weapons... Can your orange knight use the weapons acquired by your blue knight? Currently, you can't. I kinda think weapons should be shared between all players under your Xbox360 Live account, so you can get more joy from unlocking them. Maybe the same for special items.
2) When accompanied by other players, both local and on Live Arcade, any levels unlocked by any of the players are available to all the players. The same goes for weapons and special items, as the players equip these items in communal spaces.
NOTE: In a multi-player game, where a local friend is logged in as a GUEST, your friend can play as your blue knight while you play as your orange knight. In which case your orange knight CAN play your previously unlocked levels and CAN use your previously unlocked weapons. But only because your other knight is in the game with you.
Writing it all down has actually made these issues feel more simple and obvious, but this is just the tip of the iceberg of some of the crap we have to deal with. Don't even get me started on how bosses, enemies and in-game cinemas need to handle four players instead of one.
Any thoughts or suggestions?