System Tags

From RevivalWiki
Jump to: navigation, search

Described as the "most important system in the entire game of Revival", the tagging system in Revival underlies all aspects of the world. Every player, NPC, and even objects can and do have tags. System Flags, which are tags that do not drop off, can also exist on virtually every object of the game.

Despite its importance and depth of use the system is relatively simple. Objects can gather Tags or Flags from various actions throughout the game. They may have started with them, or gained them through any number of action, but in the end they are basically a word with an action tied to it.

It’s a “moment of beauty” for a designer when a elegant solution to a problem is found and tags was one of those moments for us. You see, at their heart a tag really isn’t much more than a word, with a macro attached to it, but that simple thing makes possible elements of role playing that many still believe are impossible in an MMO - things like having a legitimately personal story, or making it possible for everyone to experience content others won’t ever experience or see in the same way. Tags really are the source of Revival’s magic. - Snipehunter, Lead Designer.

How tags work

From the Developer.Quoted in entirety from the Revival website, with minor typographical edits.

The following is taken directly from Developer Blog 47 "Tag and Release", which can be read in its entirety on the Revival Website:

Information Tags are a way to mark players with attributes. For example, if a player does something "heroic" the heroic tag can be applied to the player and whether the player possesses that tag or not can be queried later in several ways. Each player can only store a certain number of tags and they are stored in a queue; when a new tag is added to a player who already has the maximum number of tags in his queue, the oldest tag (the tag at the front of the queue) is removed to make room for the new tag.

Just as I mentioned, the data for a tag is mostly just the tag's name (a word), which can be used as a prerequisite or trigger criteria for blueprinted in-game scripting, game effect packages, dialog, adventuring events and spell effects. However, information tags can also contain any number of Game Effect Packages each with its own set of triggering conditions. Game Effect Packages are the macros I mentioned earlier - they are essentially a list of game-alterations that occur when the package is triggered. (e.g. “Remove tag X, then apply spell effect Y target Z, then add tag A, but only to the people nearby who also already have tag B”)

For example, a player may possess the “heroic” tag and a game effect package in that tag could have a condition that triggers when nearby NPCs with the “fan” tag that when triggered, causes an NPC farmer to throw confetti at the player and cheer about the player when the player first enters the NPC's awareness. (Proximity to NPC with the “fan” tag being the package’s trigger condition)

Tags can be applied or removed in many ways, including equipping an item with a tag attached to it, reading book pages with tags attached to them, blueprint scripting actions authored by the content team, game effects executing in a game effects package, adventure event rewards, and through direct storyteller action. Additionally the storytelling team can arbitrarily apply a tag to a player using their tools. When a tag that the player already possesses is added again, the old instance of the tag is removed from its place in the queue and the new instance is added at the end of the queue, thereby “freshening” the tag so it takes longer to drop out of the player’s queue.

This functions this way so that we are able to author numerous tags, but only store a certain amount on the player to avoid data bloat, but it also means that what content is available to a character naturally changes over time, which is key to ensuring that all characters have differing experiences in the world. Tags will be used for more transitory things like tracking temporary states or qualities (e.g., "Did a good deed" [good] or "has seen a ghost" [spirit-touched]) that we would expect to fade over time. As they function this way, tags can be used to do things like open windows of availability for quests or trigger events based on past actions.

For example, a player might actively kill the NPC they were tasked to defend in an event, earning them a betrayer tag. Possession of the betrayer tag will fade after the player has done other things to earn other tags, but while the player has this tag, they will be able to talk to NPCs who would otherwise shun them as “too good” or be treated poorly by those NPCs that value valor and loyalty over survival. Alternately, if the player saves the NPC, he will earn a goodguy tag. Possessing the goodguy tag triggers good NPCs to lavish some praise and maybe even apply a "hero" buff, when the player comes within range(possession of the goodguy tag makes the player a valid target for the hero buff, which the NPC casts via a game effect attached to the “hero worshipper” tag the NPC possesses, playing a cheer animation and issuing some chatter to praise the player at the same time via the gossip system. Mind you, this is a hypothetical example, one far simpler than most of the tag arrangements in the actual game, but hopefully it helps to highlight the sorts of ways tags can trigger emergent, and thus “one off,” behavior in the game.

Another important aspect of the system is that tags are never shown to players. In fact, the tags never “leave” the server - your game client will contain absolutely no reference to the tags at all and you’ll never see them in a packet sent to or from your client. They are a storytelling tool and deliberately not exposed to the player to see directly, instead players will have to use the divination skill and its related abilities to “read” objects and people to get a sense of the tags attached to them.