Skip to content

Character Generation Overview

Zachary Adam-MacEwen edited this page Aug 7, 2018 · 3 revisions

"You find yourselves in a moderately well-lit tavern. A large and spacious corner booth is available, but as you take it the barman warns you that the kitchens are "down to it" and you won't do much better than snacks tonight."

"I send the dwarf and the halfling to the bar to figure out snacks and beverages while I tell the elf to help me whittle some dice..."

"Hey! No Recursing!"

-Some antique RPG humour

Character Generation is the necessary evil of all RPGs, the first and often longest part of the game, short, of course, of the worldbuilding necessary on the part of the DM! In this respect, a game running on the Tarnished Tale engine is no different - save perhaps that the process is intended to be as simple as practical.

Because Tarnished Tale is a module for Evennia, and in order to minimize the amount of state memorisation needed on behalf of the server, the updated character generation workflow is based on in-game commands which can be goverened by permissions, as described below.

As the commands should be issued in a particular order, the best way to achieve this is to spawn new characters into a character-creation zone where they are given a linear path to move through the process and prompts to do so.

Step 1. Race Selection

If the evennia instance has the TT-RACES module installed, and more than one race is populated into the races DB, the first room they enter should be a room for selecting races. As a convenience method, a command listrace is provided which will prettyprint a simple table of races and their description strings - since races have information beyond their descriptions, it might also be helpful to establish a game wiki or per-race help pages with more complete information. Races are imported into the race module from a "plain text" race DB that is read into the module by configparser when TT-RACES is imported into evennia.

By default, the command setrace will set the first valid race it is provided, and this value cannot be changed afterward - setrace only works if the value of the race attribute on the character is None. As races affect attribute base levels, it's advisable to put a locked exit into the Race Selection Room which will open only for players with a race attribute set.

Step 2. Attribute Point-Buy

The base level of the attributes are, collectively, configurable, and attributes are provided by TT-CORE. Upon entering the attribute room, a global passive check should assign both the base attribute values (modified by racial modifiers, if the races module is installed) and the attribute pointbuy pool.

If, at any time, the player has attribute points available, they can spend attributes with atrbup AMT. As long as the "atrb_commit" attribute is not set on a given player, they can also get back their points with atrreset, reducing the attribute to the base value+racial delta, and refunding the number of points it would have taken to set the current value.

It is left to the discretion of the game designer whether or not to implement attribute point awards outside of the initial character creation process. Methos are provided for in-game objects to modify attribute points directly, both as on-equip and on-use bonuses (or penalties), as well as permanently (i.e. stat-training furniture).

A locked door or other check should be used to ensure that the player calls a command which sets `atrb_commit = True"

Step 3. Skill Point Buy

The next room should start skill point buy, which works in a similar way to attributes - base skill points available are now taken off the character's INT attribute, and the base scores in all skills are calculated as per this table. Note that if the TT-Magic module is installed, the list of skills available to a player will be altered to also include the Schools of Magic skills.

The overall mechanism of Skill Point Buy is the same as that for attribute point buy, as are the available mechanisms for advancement. In addition, the skill system is designed so that successful skill use attempts have a chance to "advance" the skill and result in a skill levelup.

At this time, the skill points system is the primary mechanism of character advancement in Tarnished Tale. As the base-game, Layer: A Tarnished Tale is being developed as classless, the combination of skills and racial abilities determines the overall play-style of a character.

As with attributes, the player should be forced to commit their skillpoint purchases before continuing.

Step 4. Classes

If classes are installed, a 4th room would be required to do class assignment - note that in this room only the "basic" classes would be available. Development of the classes module is a low-priority item as classes will not be used in the prototypical TT title, Layer: A Tarnished Tale.

Step 5. Final Commit

At the end of the character generation, an exit or other object should be used to transition the character into the next zone. In doing so it should call the finalcommit CHARACTER command. This command will load the full character object into memory and do final calculation of derived stats, as well as prompt for a final approval, before setting char_gen = False as an attribute of the character object and sending the character to wherever the gameop desires - typically the start of a tutorial area.

Overall, for a player familiar with the game's rules, the chargen process should take no more than 5-10 minutes. Wherever possible help commands should be added to explain the function of various attributes, skills, races, etc.