I've seen people in this community design more MMO game systems/lore/mechanics in their spare time than what Brad's entire team showed proof of.
I think there is a drastic difference between what you and I think of with respect to designing an MMO system. The example below is the design doc for the Mercenary Advancement System. Keep in mind, this is a VERY SMALL system really, and quite simple. Regardless, this should give you an idea of what's involved. Sorry about the formatting. A lot gets lost coming from a Word doc to the forum system.
Overview
In order to provide more variety and improvement for player mercenaries, a system of advancement where players can purchase new passive abilities for their mercenaries will be implemented, functioning in a similar fashion as the Alternate Advancement system for players.
Experience
Upon a successful kill of an NPC, players share the experience earned with any mercenaries active within their group. Currently this experience is simply lost, but moving forward, we will track and store this experience on the player. This will always be 'on' when a player has a mercenary in group, and will not be a toggle. There should be a maximum number of stored ability points, at which point all new experience gained would be lost.
The mercenary's experience gained for a kill will be standard experience for a group member without any race or class experience bonuses.
The experience needed to gain a 'Mercenary Advancement Point' is the owner's (real level, non-shrouded) experience needed for the next level without race and class modifiers (but including the LEVEL_EXP_MODS.EXP_NEEDED_MOD) multiplied by MERCENARY_LEVEL_MOD.EXP_NEEDED_MOD. Pseudo-code formula: XP Needed for Next Point = (Owner's Main Level) ^ 3 * 1000 * LEVEL_EXP_MODS.EXP_NEEDED_MOD * MERCENARY_LEVEL_MOD.EXP_NEEDED_MOD.
When a player accumulates enough 'Merc Experience', they will be awarded an ability point which may be used to acquire new passive abilities for their stable of mercenaries. These points and abilities will be stored upon the character, and will be available to all of the mercenaries owned by the player. As an example, any tank abilities acquired will be applied to any tank mercenary owned by the player, as well as any new tank mercenary the player may acquire in the future.
Categories
Merc Abilities will be broken down into 5 distinct categories. Players may spend points however they wish, including purchasing abilities for class types they do not own:
? General - Abilities which are useful across all merc types
? Tank - Abilities which are only useful for the tanking mercenary
? Healer - Abilities which are only useful for the healing mercenary
? Melee Damage - Abilities which are only useful for the melee damage mercenary
? Caster Damage - Abilities which are only useful for the spell caster damage mercenary
User Interface
The UI elements for Merc Abilities will be shown as a new tab in the Alternate Advancement window. This tab will have drop-down menu filters to refine the display of abilities making them easier to navigate for players. These filters should include the capacity to show all abilities, all abilities available for a given class type, only those abilities available, and only those abilities already acquired. Clicking on any ability should display the description the same way the standard AA window functions. The new tab should have the same columns as the normal AA tabs:
? Title - Name of the Ability
? Cur/Max - Current and Maximum rank available for this ability
? Cost - The point cost to purchase the next available rank
? Category - Merc Category Type (Tank, Healer, DPS, etc)
Database Requirements
New tables will be required for the database to contain the new data. These tables should be similar to those used for the Alternate Advancement system.
EQDV.MERCENARY_ABILITIES
Field NameData TypeDescription.
ABILITY_IDNumberPrimary Key - Used to various systems to identify the ability.
NAMETextNOT EXPORTED. Comment field for designers
DESCRIPTIONTextNOT EXPORTED. Comment field for designers
NAME_STRING_IDNumberID of the text string referenced from EQDV.DATABASE_STRINGS
DESC_STRING_IDNumberID of the text string referenced from EQDV.DATABASE_STRINGS
COSTNumberCost to purchase the ability
GROUP_IDNumberID used to group similar abilities into a line
GROUP_RANKNumberID used to define specific rank within the group.
REQ_GROUP_IDNumberID used as a requirement identifier to purchase
REQ_GROUP_RANKNumberID used to define specific rank of REQ_GROUP_ID required to purchase
TYPENumberUsed to define the ability type. This will be referenced by the new EQDV.MERCENARIES_ABILITY_TYPE.
LEVEL_MINNumberThis is the minimum player level required to purchase the ability
REQ_ASSOCIATION_IDNumberThis ID references requirement associations within the EQDV.AA_ASSOCIATIONS table.
REFUNDNumberAny positive number refunds this many points to the player's mercenary point count. 0 & -1 are treated equally.
BETA_ONLYNumberUsed to define which servers to export. 0 - Export to Live, Non-Zero - Export to Beta Only.
QUEST_ABILITYFlagAny non-zero indicates this ability may only be acquired via the pc.add_quest_aa
EQDV.MERCENARY_ABILITY_EFFECTS
Field NameTypeDescription
IDNumberPrimary Key - Used by the design to create a single number primary key.
ABILITY_IDNumberUnique Key Combination - Used by various systems to identify the effects used by the ability defined in EQDV.MERCENARY_ABILITIES
EFFECT_IDNumberID used to define which spell effect from
BASE_EFFECT_1NumberEffect parameter 1 data for Spell Effect ID selected
BASE_EFFECT_2NumberEffect parameter 2 data for Spell Effect ID selected
LEVEL_EFFECT_MODNumberReferences EQDV.SPELL_LEVELMODS
EFFECT_CAPNumberFunctions the same as the EFFECT_CAP field in SPELL_DEF
SLOTNumberUnique Key Combination - Effect slot for spell data sorting purposes and order of operation.
EQDV.MERCENARY_ABILITY_TYPE
Field NameTypeDescription
MERC_TYPENumberPrimary Key - Defines the type of mercenary ability.
DESCRIPTIONTextNOT EXPORTED - This describes the type of mercenary ability referenced by MERC_TYPE
CATEGORY_IDNumberReferences a newly created DATABASE_STRING_TYPE specifically for Merc AA Categories
EQDV.MERCENARY_LEVEL_MOD
Field NameTypeDescription
PC_LEVELNumberPrimary Key - References the level for the experience mod
EXP_NEEDED_MODNumberModifier to determine the amount of experience required to attain a new Mercenary Ability Point for a given level.
EQDV.MERCENARY_AA_EXPERIENCE_CAPS
FIELD NAMETYPEDescription
PLAYER_LEVELNumberPrimary Key - Defines the player level to apply the specified cap on stored Merc AA points
CAPNumberDefines the maximum stored number of Merc AA points for the level.
Existing Table Changes
EQDV.MERCENARIES
Add the following new column.
Field NameTypeDescription
TypeNumberUsed to reference the mercenary type as defined by EQDV.MERCENARY_ABILITY_TYPE
Additional Caveats
This feature should be locked to having the expansion. This means that Merc Experience will not be added for players that don't have the expansion and mercenaries will not accrue Mercenary Advancement Points. Additionally, if for some reason they lose the expansion, they will not lose any points that they earned or spent. They will no longer gain the benefits of the spent points nor will they be able to spend any un-spent points as well. If they re-gain access to the expansion, then everything will return to normal behavior.
I've seen people in this community design more MMO game systems/lore/mechanics in their spare time than what Brad's entire team showed proof of.