Mailbag: Parts of an MMO



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



 


 

 •  0 comments  •  flag
Share on Twitter
Published on November 13, 2018 11:20
No comments have been added yet.