Mailbag: Parts of an MMO

 Posted by (Visited 15015 times)  Game talk, Mailbag  Tagged with: , ,
Nov 132018
 

Hello Mr. Koster! I have a school project that requires the input of an expert like yourself. I know you usually don’t reply to students, but hopefully you’ll reply to me. I am currently working on the concept for a open-world MMO and wondering if you can help me out. I know your major works are Star Wars Galaxies and the Ultima series, but my game is still a MMO. It’s just more like DC Universe Online. Basically, I’d just like to know what major things should be included in MMos and Open-World games. Do you have any knowledge that might help?

I spent about an hour doing a quickie list off the top of my head. It’s not exhaustive, just stuff that occurred to me as I ran down a mental checklist. I know it’s not exhaustive because in past years when I’ve done similar outlines (which I can’t lay hands on now) they were twice as long.

But maybe this will be helpful, and convey some sense of the scale of what you need to worry about. Important note: I didn’t even get to the stuff that only lives on the client. This is only the stuff that lives on the game server side.

You might want to look at Insubstantial Pageants, a book I started and never finished on MMO design, and of course Dr Richard Bartle’s Designing Virtual Worlds[affiliate link] has an exhaustive amount of material on the subject.

  • Persistence database for storing state
    • Player persistence
    • World state (if needed)
    • Analysis tools
    • Reversion/correction tools
    • DB cleanup tools/game design
  • Template database for storing source data
    • Objects
    • Creatures
    • Other forms of content
    • Version control
    • Statistical analysis tools
  • Networking
    • Network traffic culling system
      • Vis/invis
      • Distance
      • Per user
      • Notability/importance
    • Connection manager
      • Link loss, reconnection
    • Encryption
    • Verification and security, including flood control etc
    • User multiplexing (“user server”)
    • Server cluster management
  • Commerce system/shop
    • Credit card and prepay card support
    • Refunds
    • Fraud handling
    • Shop backend
    • Metrics
  • Community support
    • Forums
    • Community tools
    • Event tools
  • Metrics system
    • Dashboards
      • Pre-made
      • User-definable
    • Logs
      • Account activity
      • Network activity
      • Commerce activity
      • User activity
      • Gameplay events/balance
    • Alert/pager system
  • Server simulation
    • Event handler, manager, dispatcher
      • Recursion limits/loop trapping/performance monitoring
    • Spatial simulation
      • Terrain system
        • Tile/heightfield/mesh
        • Pathing map
        • Region system
      • Room system
        • Exits
        • Mirroring
        • Instancing
      • Coordinate system
      • Cross-server handoffs
      • Player load balancing
    • Physics
      • Collision
      • Forces
    • AI support
      • Range-based triggers
      • Event-based triggers
      • Instantiation/destruction triggers
    • Alternate simulation layers
      • Time-based
        • Weather
        • Day/night
      • Influence maps for AI
      • Cellular automata
      • Resource maps for harvesting/crafting
  • Players
    • Identity profile
      • Account
        • Name/pw/etc
        • Source/geolocation
        • Join date
        • Commerce info (credit card, etc)
        • RMT currency
        • Content access/service tiers (e.g. expansions active, etc)
        • CS history
      • Characters
        • Basics
          • Name(s)
          • Race/species
          • Class
        • Group affiliations
          • Guild, towns, etc
          • PvP status/flags
        • Statistics
          • Game stats
          • UI preferences
            • Keymappings
            • Screen layout
            • Macros/bindings/custom UI
          • Temporary affects
            • Blind, dizzy, stunned, etc
            • Position
            • Lost link/connected
          • Skills/powers
            • Skills
            • Levels
          • Currencies
            • XP
            • Game money
          • Character cosmetic customization
            • Hair
            • Skin
            • Morph targets/faces/etc
        • Inventories
          • Physical
            • System (grid, capacity, weight)
            • Limits
            • Nesting/abuse caps
            • Binding
            • Paperdoll
          • Friends lists
          • Achievements/badges
          • Skills/powers
          • Macros
          • In-world ownerships
            • Houses
            • Vehicles
            • Shops
            • Pets
        • Metrics
            • Play frequency
            • Session length
            • Logs
        • Intangibles/non-game affecting
          • Description
          • Matchmaking
          • etc
  • Social structures
    • Chat
      • Abuse prevention
        • Word filter
        • Circular buffer and reporting
        • DDOS/spamming
        • Muting
        • Blocking
      • Chat window
        • Logging
        • Filtering/tabs
        • Color coding
      • In-world
        • Chat bubbles
        • Visible signals
      • Translation service
      • Channel system
        • Join
        • Leave
        • Kick
        • Create
        • Destroy
        • Q&A system
          • Mod queue
          • Submit
          • Approve/deny
          • Mod status
    • Guilds
      •  Identity
        • Name
        • Abbreviation
        • Heraldry/visuals
      •  Membership
        • Join
          • Leave
          • Kick
        • Powers structure
          • Delegation
          • Tiers
          • Change of leader
        • Shared inventories
          • Banks
          • Enemy guilds/PvP flagging
        • Shared ownership of structures
    • Friends
      • Location notification
      • Alerts
    • Grouping
      • HUD management
      • Join/leave/kick
      • Disconnection and distance handling
      • Group chat
      • Matchmaking systems
      • XP/loot management
    • Emotes and socials
      • Textual pre-written
        • No target
        • Self target
        • Other target
      • Animated
        • Solo
        • Tandem
          • Consent system
        • Chat parsing for play
        • Eye/head tracking for recent chats
      • Moods
    • Text communication
      • Say
        • Alternates
        • Tell
        • Whisper
        • Emote
      • Voice communication
  • Customer service support
    • Live paging
    • CRM database
    • Ticket system
    • Power tiers
    • Escalation and management process
    • QC subsampling
    • Logging
    • Metrics
  • Objects
    • Object types
      • Flags (stream/not, pick up, etc)
      • Inheritance structure
      • Affect system
    • Structures
      • Ownership
      • Access
      • Instancing
    • Vehicles
      • Physics
      • Controls
      • Ownership
      • Storage/retrieval
      • Multi-user
    • Interactables
      • Event triggers
      • Dynamic light attachment
      • Dynamic sound attachment
      • Animation
      • Serverside UI definition
    • Stackables/fungibles
    • Usables
      • Weapons
        • Projectile
        • Melee
      • Wearables
        • Clothing
        • Armor
      • Consumables
        • Food/drink
        • Potions/wands/etc
  • Creatures
    • Statistics
      • Affects
      • Stats
      • Hatreds/friendships
      • Ranges
      • Balancing tools/metrics
    •  Spawning
      • Point
      • Region
      • Timer-based
      • Population-based
    • AI
      • Grouping
      • Factions, hatreds, etc
      • Powers
      • Conversation system
      • Wandering, patrolling, etc
      • Movement speeds
      • Pathing parameters
      • Simulation map usage (influence, resource, etc)
    • Shopkeepers
      • Buying price estimator routines
      • Stock maintenance/spawning
      • Interface
      • Metrics
  • Scripting
    • Quest system
      • Templated data
      • Conversations/flagging
      • Maps/NPC tagging
    • Arbitrary
      • Queuing, deque, priority, fallthrough
      • Event handlers
        • Collision and range
        • Timer
        • Player interaction
        • Physics
        • Spawn/destroy
        • Messages
      • API
        • Statistics
        • UI
        • Sound
        • Effects
      • Messaging
        • Combat
        • Spawning
        • Etc (basically, every system)
  • Game systems
    • Combat system
      • PvP handling
        • Event ownership
        • Object ownership
        • Guilds
        • Duels
        • Region-based
        • Flagging systems
          • UI
      • Core system
        • States
        • Affects
        • Ranges
        • Line of sight
        • Balance logging
    • Advancement system
      • Skills
        • Data
        • Prerequisite tables
      • Levels
        • Data
        • Points accrual system(s)
      • Reputation systems
    • Crafting system
      • Locating resources
      • Harvesting
        • Real time
        • Asynchronous farming
      • Refining
      • Combining
      • Templates
        • Recipe book and interface
        • Unlock mechanism
      • Experimenting and customization
      • Mass production
      • Maker’s marks
      • Repair and damage system
    • Housing system
      • Access permissions
      • Kick/ban/etc controls
      • Lockdown and decoration
      • Transfer
      • Rent or expiration or other sprawl control
    • Travel system
      • Teleport or transit points
      • Bookmarking
    • Other possible systems
      • Pets/hirelings
      • Magic
      • Politics
      • Territory
      • Exploration
      • Player shops
      • Events
      • Async behaviors (mining, manufacturing, farming, etc)
      • Feeds in and out of game
    • Tutorial

 

 

  5 Responses to “Mailbag: Parts of an MMO”

  1. I realize “player persistence” is meant to be a technical term about something else, but I must say, without the determination of gamers to overcome hurdles set before them not only by game exigencies but game glitches, there’s no world.

  2. That looks like the contents page of a new book (hint, hint).

  3. This looks exactly like the game I am working on. Especially where it says Tutorial and then being empty:(

  4. While arguably not part of the “game”, you could add load test infrastructure, and lots of qa stuff, like regression testing. Did you mention the build and distribution/patch systems? And platform (accounts, billing…) and web site.

  5. That is no “quickie list” there, it looks like an index for a documentation file, that’s a lot of information!

Sorry, the comment form is closed at this time.