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

