The Contract, and the passage of time

I’ve long held that one of the most important continuous jobs when creating a game is authoring and obeying The Contract.  The Contract is a term I’ve co-opted from films; it’s an implied agreement between the movie studio and the audience.  In the case of a film like Jaws, it might go something like this:  “If you come see our movie, you’ll get to see the shark, and it’ll be scary!”  In all the pre-release trailers, the shark was never shown;  the scary shark was the thing that you get for spending your time and money.  In more recent films, Cloverfield used exactly the same Contract.  If you went to see Cloverfield and the monster had never been shown, you would quite rightly feel ripped off.

In a game, the Contract works in the same way.  If in you bought Bridge Builder and discovered that it contained no bridges, you would quite rightly feel ripped off.  Over in the forums for Champions Online right now, a furore is brewing, as many customers feel that their characters are far weaker than they believe superheroes ought to be — in their eyes, the lack of “super” is a violation of the implied Contract, promised by the game.  Similar Contracts exist in most games, with many games having several of them, ranging from the thematic (as in the examples above), to the mechanical, as in the 3D Zelda games, which can justify taking the “jump” functionality away from the player on the basis of an implied Contract that the player will never wish to be able to jump manually.  If the player ever had a desire to be able to press a “jump” button at any point during Zelda, then that would have been a violation of the Contract, and players would be frustrated about it.

For MMORPG Tycoon, I have a very obvious Contract that I need to fulfil;  the player must be able to feel as though he owns and operates an MMORPG.  And this presents a few interesting problems, as, while their mechanics are typically quite simple, an MMORPG which is evolving over time is a far more complicated beast than any normal game.

One of the interesting things about MMORPGs (and the running thereof) is the passing of time.  Unlike most other types of games, MMORPGs change over time, in both long-term and short-term ways.  Let me give a few examples.  When the development studio decides that they wish to create a new region, it will typically take anywhere from one to three months to create and populate that new region — that’s a long-term change.  If the development studio decides to modify the strength of an attack, that can be rolled out within a day or two, and is a much shorter-term change.  Often, a studio is doing both types of things at the same time;  making new regions for future expansion packs, at the same time that they’re balancing attacks for immediate patches.

And what’s more, even faster than that are the changes and reactions being demanded by the subscribers in the MMORPG’s forums, which often change in mere minutes after a new patch is put up and made available.  But on the other hand, the time taken for a subscriber to reach maximum level is usually in the range of 40 to 80 hours (though some MMORPGs are notably shorter or longer than that);  if the game runs fast enough to let the player see his subscribers reach maximum level, then it will necessarily be too fast to watch changing trends in the forums.  All of this makes it tricky for me to obey my side of The Contract with my players.

If MMORPG Tycoon runs at real time, then it would take real-world months for the AI developers to complete region-building tasks that the player gives them, and that’s clearly not practical.  On the other hand, if it runs fast enough to make that development happen in a reasonable span of real-world time, then the smaller tweaks and day-to-day activities of the subscribers would happen so quickly that they couldn’t be followed.  Those who were testing MMORPG Tycoon 1.1 will recognise this issue, remembering how bombarded the logs became with information about members gaining levels and suchlike.

For quite a while, I’ve had a little puzzle game design scrawled in my design notebook, under the heading:  “MMORPG Tycoon: Patch Manager”.  In this little puzzle game, the player is given a starting MMORPG, and a target destination, and the player is tasked with grouping patch changes together in such a way as to have the best possible forum response to the game at the end.  For example, lumping all the nerfs together at the start, so that you can then spend the next six months bringing in quality of life improvements.  Or perhaps trying to mitigate the negative effects of the nerfs by spreading them out and administering them slowly, with other bonuses to take out their stings as much as possible.  Such a game would be played in a turn-based manner, with each turn being a single “patch” or “expansion set” release.  I’ve been thinking more and more about integrating something like that into the metagame structure for MMORPG Tycoon 2;  have it still run in real time, but then let the player “take a turn” to roll out a patch, and advance the clock as far as is needed in order to apply that patch’s changes.

But I’m not convinced by this;  it implies that the player would have to be able to queue up a change on a test server, while subscribers are playing on the live server, and that implies that I’d need to keep twice as much data hanging around, so that the player could actually look at both of them.  And that just sounds fiddly and confusing and unpleasant.

In terms of actual progress today, I didn’t actually get much done;  I’m not quite sure where the day went, to be honest.  However, I did fix a few major bugs in the character movement code (toons, devs, and monsters were often accidentally wandering outside of their intended regions), and I improved the feel of the player’s movement code substantially, and added a “Jump” when he’s in “walk around the world” mode.  Not that there’s anything for him to jump over or onto yet, of course.  But that’ll come soon.