Tuesday, June 8, 2010

The Facebook MMORPG That Once Was

A couple of months ago, while I was finishing up my degree, a few friends and I decided to turn our Distributed Systems project into an MMORPG. With all the buzz surrounding Facebook and Social gaming (GDC, the ire towards Zynga, and all Facebook's privacy faux pas hadn't occurred yet), we decided we were going to make a Flash-based MMORPG on Facebook. Lured by short development times and the potential revenue, we hoped to roll out a game in a couple months and use the income to fund a real MMORPG.

That is why I haven't posted much lately.

At month 7 of the project, we felt that the game was simply taking too long for our initial goals and realized that we would be supporting a game that none of us were passionate about for at least another year. The company had 3 co-founders, and we all decided that it was time to pull the plug. We learned about tons of technical problems (and some solutions) for large player zones and how to stream assets so that browser gamers weren't waiting around for 20 minutes to play the game. Some days were really exciting and some were immensely frustrating.

I want to talk about some of the high level design here. I won't be posting detailed item or skill data, which are the parts that actualize the design.

We knew that we wanted an open-world design, where scores of players would be able to interact with each other synchronously. This was a very different approach than most other social games which are said to be asynchronously multiplayer. We hoped players would be enamored by this "living world" sensation.

We went through 3 completely different game ideas and finally reached the conclusion that we were not going to have a combat system. The typical Facebook gamer is a woman in her 30s or 40s. They are not the hardcore 18-25 male demographic. Some potential players told us to "make sure it isn't violent". So, as I said, we decided to leave off a combat system.

The problem with no combat is that conflict is harder to come by. There is no explicit way to represent conflict, risk, or danger nor a way to explicitly resolve problems. Without combat, we decided to have a very heavy crafting game, but we had no way to make exploration of the world dangerous or risky. Players would be able to walk to any place they wanted to without any trepidation--this might have been very boring.

EVE's skill system was perfect for us: it allowed only 5 to 10 minute play sessions where the player only queues new skills, and enticed the player to come back to the game every couple of hours to enqueue some more. The modifications we made included making things more streamlined, i.e. 30 levels in a Skill rather than several books of 5 levels, and requiring players to purchase each skill individually.

This put tremendous pressure on itemization though since players were not crafting silly items every few levels just for skill ups. Every item had to have a purpose, and without combat we had to get really creative to make some functional items.

We had to make a secondary stat on crafting and gathering skills called Proficiency. Training increased your Proficiency in Crafting skills but not in Gathering skills. Players had 2 functional item slots which they used to equip "gear" that increased their Proficiency. For Gatherers, this was their only source of Proficiency; for Crafters, this augmented their Proficiency slightly. Recipes and resource nodes had a Proficiency requirement on them; this ensured that players were buying goods and using functional items.

The Marketplace was a global Auction House were Buy and Sell orders could be placed. In addition to functional items, we had quite a few vanity items: clothing, furniture, & pets. Each player was to get an instanced house and be able to invite their friends. Eventually we hoped to allow players to throw parties or own larger plots of land for special crafting machinery.

To make the crafting and gathering games have a bit more flare, we put in minigames. The problem I and some other gamers have with minigames is that they are very hokey and break "immersion". I designed and prototyped quite a few minigames which included everything from a Sudoku-like Exact Cover problem and a simple timing/reaction game. If you are clever enough, you can find them online :P

There are 6 Crafting professions (Tailoring, Smithing, Woodworking, Leatherworking, Alchemy, and Cooking), 4 Gathering professions (Mining, Logging, Harvesting, and Trapping), and 4 Refining professions (Smelting, Lumbering, Weaving, and Skinning). Each profession would take a bit more than 15 days of constant training to skill cap. We hoped players would focus on 2 or 3 professions, giving them 30 to 45 days of related training. Then they could always train the rest of the professions if they wanted to.

The only profession that didn't fit the mold was Trapping. We decided to merge FarmVille with FFXI's fishing system to make something really exciting. Players would acquire traps and bait, set them up in the world, and come back after a few hours to collect the animal. Which animal was in the trap was a function of the trap used (e.g. steel, wooden, large, small), the bait used (different meats, nuts), the time of day the trap was placed (night, day), and the location of the trap (forest, plains, near water). The animals would be used as pets, leather, fur, cooking ingredients, and bait.

The main focus of the MMORPG was crafting and vanity gear--making your character and your house your own. It was supposed to be a low-intensity distraction where players would be a part of a virtual world. We planned to monetize with an item shop which included training rate bonuses and seasonal vanity items.

Without combat, the game just felt very bland to us--the hardcore gamers making it. Our hearts were not in it, and more than once we had to convince ourselves that it was worth it to continue.

I will say one more technical lesson: I will never use Flash for a large-scale game like this again. It simply isn't made for these sort of projects, and I've uncovered everything from drawing bugs to problems with Flash's event system.


Brian 'Psychochild' Green said...

I will never use Flash for a large-scale game like this again.

To be fair, any system you use is going to have flaws, even if you write your own. The big benefit of Flash is that it's got a great installed base and allows you to easily play games without a download.

So, what framework would you use? Let's assume you can't/won't just code your own browser plugin.

motstandet said...

Oh I am well aware of Flash's market share. That doesn't mean it's a wonderful application to work with.

It is almost a necessity to use Flash for browser games (unless you want to use Javascript). I haven't experimented with Unity or Torque, but I have a feeling one of those will claim the 3D plugin space before I venture into large-scale browser games again. (HTML5 canvas is too young and unsupported still.)

Kenny said...

I think all of us "hardcore" gamers are spoiled. For life. We just have tremendous difficulty getting out from the spanking mentality, we always come back to the same conclusion: if there is no conflict then there's no meaning, but if there's conflict then combat must be a valid resolution.

Without conflict it doesn't compute. It is Tamagochi, all of it. And that, we truly hate.

Kenny said...

Oh, and fwiw I think your ideas were good. Probably not F'ville-killer, but good.

motstandet said...

It's not so much that no conflict leads to no meaning, but rather that stories are born from conflict.

There are more kinds of conflict than just external struggles against other automatons, but combat is the most prevalent and easiest to understand in a video game.

One design hole we constantly thought about was how to make the game "story-worthy". If someone plays for 30 mins to an hour, they should take away a story that they tell their friends or keeps them excited about the game. Problem was that for us, all the MMORPG stories we remembered revolved around combat or dangerous situations.