Web MMO - Settings / Brainstorming an idea

Thursday, April 10th, 2008

So once I’d decided I wanted to write an MMO, I needed a setting, an idea that might make a good setting.

To generate the list below, I simply started by listing as many different, one line, settings that I could think of. I don’t worry at this point about feasibility, how the game will look or anything, just get the ideas down.

Once I’d come up with basic ideas, under each idea I tried to think about 3 lines or so of things a player would do in the game. Essentially the twenty second elevator pitch for the game. Anything I couldn’t think of a description for, got knocked out at this point.

I also discussed them at the office, seeing if anybody liked an idea, seeing what people thought of the concept. You can get immediate feedback, and remember an idea like “A Web based MMO like the old game Syndicate where you build or train agents and execute missions” is worthless. Don’t be afraid to share ideas around.  Preach em up came from this, as the people I sit with started discussing other ideas and given my faith, decided a “Preach Em Up” would be funny, still it goes on the list.
You may also notice that I have shamelessly stolen ideas from old computer games, old Play by mail games, and classical fantasy books. There’s a reason that these ideas have sold well and been successful. Providing you are not producing a like by like copy of something it’s good to think across as many sources as possible.
So without further ado here’s the list I came up with:

  • Fantasy Realms Battle
    • Build an army
    • Manage your kingdom
    • Invade other kingdoms
    • Provide food / arms for your army
  • Wizards War
    • No Ideas
  • Space station wars
    • No Ideas
  • Planetary Exploration
    • Start at local system,
    • Buy a ship
    • Explore the universe
    • Build mines
    • Setup trade routes
  • Space Traders
    • Buy a ship
    • Outfit it
    • Fill your cargo with trade goods
    • Steal cargo from others
    • Mutiny
  • Pirates Vs Sea Traders
    • Buy a ship
    • Outfit it
    • Fill your cargo with trade goods
    • Steal cargo from others
    • Mutiny
  • Monster Island
    • Explore the island
    • Fight local monsters
    • Get Loot
  • Cthulhu Investigators
    • Manage your madness
    • Research the dark mythos
    • investigate unexplained incidents
  • Fantasy Hero
    • Start with a character
    • Delve into dungeons
    • Win treasure
    • Fight in arena
  • It’s a Crime
    • Manage a criminal gang
    • Loot, Rob, Pillage your area
    • Fight other gangs
  • Syndicate
    • Setup a team of agents
    • Send them to regions
    • Complete missions
    • Outfit the agents
    • Manage R+D
  • X-Files / Investigators
    • Run a intelligence department
    • investigate weird happenings
    • Always miss the important plot piece
    • government conspiricies
  • Preach em up
    • Convert people to your spaghetti monster religion
    • Rewrite your holy texts
    • Execute the heretics
    • Publish pamphlets
  • Programmer em up
    • Open source your code
    • Fight flame wars on usenet
    • Produce a blog and flame new technologies

Once I’d written this out, the one that most captured my attention was the concept of exploring an unknown island and defeating it’s natives. It’s based loosely on a Play By Mail game I used to play a long time ago, called Monster Island, run by KJC Games. Of course this is a different game, a totally different system, but it’s good to honour your sources.

So with the setting decided it’s time to start designing a game.

Shipwreck - The Plan

Thursday, April 10th, 2008

So here’s the plan,

I’m going to design and code this game in public, as I go along.

this game is not supposed to be releasable, fully playable, or anything like that at this point. Instead this is a prototype of how a real game might look.

Therefore, the game design will quite possibly be not fully balanced, and will be simple.

I favour Agile (Extreme Programming) development, so I will be only building as much complexity as I need, as I go. however, in real Extreme Programming, I would normally have a customer. That’s a person who has an idea in their head of where we are going, and what things are the most important to them.

In order to provide something like that I’ve started to write essentially a very basic design document. This is what would be in my customers head. From it I am going to generate stories, which are single units of development.

The overall plan is to attempt to finish a system that allows user registration, players to create a character, explore the game world, spend time units, and potentially even fight something. All developed within a month.

To achieve that, I need to not think about creating a lasting codebase that is beautiful, I need to instead get down and get stuff working. I will be applying my software design principles to try to write good code, however I will not be attempting to build a framework that could run any MMO, various game specific things will be hard coded within the model, and the system structure.

So that’s that’s the plan, it’s crazy, it’s stupid, and it probably wont work. But it will be interesting to see what I come up with.

Design notes are being transfered onto the wiki provided at http://code.google.com/p/shipwreck and code for the shell has already gone up, the rest will follow as I do it.

AppEngine account activated and first django app uploaded

Wednesday, April 9th, 2008

Yes! My first django app, the framework for the MMO game has been created and uploaded.

Props goes to the person responsible for me getting an account, now all I have to do is blog about it as I go along. Given my level of excitement that shouldn’t be a problem for a few months at least.

Anyway, slightly pre-empting my blogpost tomorrow about settings and styles of MMO, I’ve created the app with the name shipwreck, and you can see the working code at here

My first thoughts, this is cool! I like it.

It’s a bit of a pain to create a django app, you end up creating a wrapping app that encases the django app, so my directory structure has shipwreck/shipwreck/main to get to the django app, inside the django project, inside the wrapper.

Secondly, I’ve had a bit of difficulty with my google apps for domains account. My gmail account is the one I got an AppEngine account for, but I’d like to be able to host the project at shipwreck.mibgames.co.uk, and develop and upload as my mibgames.co.uk account
Rather suprisingly to me, the admin interface actually supports this, I was able to add my mibgames.co.uk email address as a developer, and the email had a special link to confirm if mibgames.co.uk was an apps for domains domain name.
Secondly, you can request an external domain name for your app, requiring a simple CNAME change in DNS, which I did, but for some reason it wont activate yet.

Part of the problem is probably related to the same issues I’ve had before, which is logging into Google services, often the account I get logged in with can appear to be random as to whether it is my apps for domains account, or my gmail account as I have authentication saved on my development machines for both of them.

I’m sure those niggles will iron themselves out as I start to play.

Overview, so far, putting django, with templates, into an app and uploading it, very easy. Next, creating a database model and building the first couple of screens!

Web Based MMO’s - Design Considerations

Wednesday, April 9th, 2008

There are some key features of any Web based MMO in my experience.  I’ve outlined some fo the rules that I’ve infered and I’ll be using these to help em design the basic Web MMO that I’ll write.
Manage resources

  • Something should generate some basic resources each turn
  • You should be able to use those resources, to build bigger / better resources, and/or perform actions
  • Running out of resources shouldn’t end your game
  • Some large resources should use up resource each turn
  • Example : We have Gold, Stone and Wood as resources.
    100 Gold, 2 Stone and 4 Wood builds a carpenters house
    A carpenters house turns 4 wood into 1 furniture each time unit.

Unknown World / Exploration

  • The world is almost always not known at the beginning of the game
  • Finding out about the world should be cheap in resources, but may be expensive in time
  • Sometimes the main focus of the game
  • Not knowing can mean either fog of war, or can mean not being able to see details
  • Example 1:
    I have a space base, I know of every other space base in the game, including who owns it
    I don’t know how many laser turrets any other base has unless I send a spy drone to the enemy base
    Creating a spy drone costs only 10 Manufacturing points (out of 50 a turn), but takes 8 turns to reach the enemy base
    Information gleaned by a spy drone is never updated, so gets out of date fast
  • Example 2:
    You play a warrior, shipwrecked on a mysterious island.  In your first turn, you are shown the local map of 9 squares around you.  This shows water east, a beach going north and south, and all forest to the west.
    Your first move moves you one square into the forest, you are now shown the original 9 squares terrain, plus the 3 squares to the west of you, for 12 visible squares.

Time, Time units, and starting players

  • In general, all actions should take a fixed amount of time to execute
  • Time should however be detached from real time, the reason for this is that I might not be able to log on for 48 hours, and should be able to spend those time units pro rata as if I had logged on every hour to spend each unit.
  • Beginners should be given enough time points to give them a good start in the game.  That should include constructing a number of items, doing their first scans into the unknown and if battles are in the game, fighting their first couple of battles.
    Enough to give them a taste of the game, but don’t overdo it, the player will get irritated if they can do loads of stuff the first day, then have to wait a month to do anything cool again.
  • Resources that are provided per time unit, should be provided when time units are provided, not when they are spent. (unless spending a time unit is an action to provide a resource)

The Opposition

  • Pick early whether your main game is player vs player, or player vs environment.  Many PvE games also feature PvP facilities, but you must ensure that players who don’t want to engage in PvP are able to avoid it.
    Providing an arena, or some other form of scheduled battle is a good way of doing this
  • In PvP games, you should ensure that rewards for attacking players are commensurate with the target players experience.
    So new players are not rewarding targets, where as experienced players are good targets
  • In games which support PvP, ensure that new players cannot be targeted during their first few turns, so they have a chance to understand the system
  • In PvE games, ensure that new players cannot accidentally get themselves into environments that are far too hard for them

Player Interactions

  • Ensure that players are able to communicate with each other with a forum like system, this encourages player participation and gives you higher page views.
  • Encourage and assist players in forming groups or clans of characters that can work together.   Provide in game bonuses for groups, and provide mechanisms for forming clans, and organising them
  • Ensure that playable factions / classes / races are able to form a balanced team.

I think that will do for now, although more ideas will come later I’m sure.

For the next post I’m going to dump some brainstorming ideas for settings, and let you know which one I’ve picked and why.

A Web Based MMO

Wednesday, April 9th, 2008

So I’ve been thikng about writing a web based MMO for a long while now, and the advent of the Google App Engine means I’m going to write a simple one, and open source it so it can be used to see how one might go about learning and writing a WMMO (Is that the right term, I can’t find a consistent term for them online).

For the record, my view of a Web based MMO, is something like Planetarion, or Kingdom of Loathing.  It’s a game whereby you can log into the website with your account (thank you Google accounts API), and see your avatar, be it a person, a planet, a business.  From there you get to spend time and resource points to achieve goals.  Normally things take a limited number of ticks to complete, and you have to check back later to see it completed.

I’m going to post as I go, sharing the design and implementation highs and lows, and design thoughts.  The code will be open sourced as soon as I have some actual code and a google AppEngine account.

First design post to follow soon