inventrix: (Default)
The simplest way to approach it would be for each server to exist as "worlds" or "realms" - not in the segregated-copy sense that most MMOs use it these days, but more in the sense of a fantasy story with alternate universes, each with their own history, rules, etc. Much in the same way an instance in the fediverse has its own location and rules and internal data - themes, software version, so forth - each of the federated MU* realms would have its own map, rules, characters, NPCs, and so forth.

But so far, that's the same as any two MU* games running on different servers. In order to allow players to travel and interact between different realms, you need a basic framework for the realms to share between each other. This basic framework would by necessity be tied into the structure and design of the federating protocol - and, ideally, would be extendable, allowing different realms to build greater complexity in their systems that would, however, still federate the information. (A good example of how handling differences in mechanics and features should work is federating custom emoji in mastodon; instances that have it pull in and display the custom emoji, and instances that don't receive and display the shortcodes as text.)

That brings you to the question of what information needs to be federated, and what should be handled by the realm server. There are some basic ideas that are obvious as to-federate, but here is, I think, a comprehensive list:


  • Basic account information: character name, description, statistics, inventory, account ID and home realm.
    • The first three fields should ideally be treated as a single entity when federating, with parsing out the parts of it done server-side - much like a single status post in OStatus or AP. That would allow individual realms to divide them up to support different types of features or systems. Examples:
      • Description combining the default appearance/personality/history sections into one freeform description, or have the description generated entirely by in-game functions and features (wearing items, character race, et al.)

      • Creating a Title system, allowing your character to earn a title that gets added to their name.

      • Using entirely different systems of ability or skill scores. (This gets complicated; I think I'm going to write up a whole post about it later.)

    • Account ID and home realm would act similarly to account information in AP and OStatus, so it shouldn't need to be extendable and in fact messing with it should probably break federation.

  • ​Basic location information: room description, exit locations.
    • Much like character description, room description should be designed to allow individual realms to increase or decrease complexity (down to a single entity or removal) without breaking federation. A good default would be: room name, room description, list of interactable items/NPCs.

    • Which takes us to...

  • Basic item information: items, objects, equipment, NPCs?
    • Items need a unique identifier per type of item, a display name for the item, and a description of the item, at minimum. Additional stats and numerical information should be packaged into the description field for purposes of federation - the display name possibly should be as well.

    • NPCs could count, for purposes of federation, the same as items. It is an entity that a player can interact with, after all; the complexity of how it response and if it's scripted to do things is all entirely server-side. However, NPCs are involved in...

  • Basic communication: in-room speech, private messages, DMing, NPC dialogue
    • This should work fairly similarly to AP social media federation, except simplified to text-only and the publicity defined by location rather than follow status. Examples:

      • Single room range - /say

      • Multi-room or realm-wide range - /shout

      • Single-person range - /whisper [name]

    • And speaking of...

  • Command responses: this is fairly obvious
    • If you're visiting another realm from your realm, your commands should be federated to the realm you're visiting and you should get the appropriate responses.

    • NPC dialogue may in fact count in this category, but it gets complicated, because NPC dialogue and communication should look mostly the same as player communication.


If you can send those pieces of information reliably between two realm servers and have them each able to consistently process it, then you have the basis of a federating MU* all set. And as it happens, a lot of these things are similar to the things federating social media already handles, so you don't even have to start from scratch. For example, basic account/character information is really the same as social media account information, just processed for a slightly different purpose. Player communication? like sending statuses. Items are like custom emoji, and so forth.

I have more thoughts on the information-processing side of this but I think I'll separate that into another post.

Profile

inventrix: (Default)
inventrix

March 2018

S M T W T F S
    123
45 678910
11121314151617
18192021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 16 May 2025 03:55
Powered by Dreamwidth Studios