Races are like Species in the Broken Staff CRPG

Last modified date

CRPG Races

There are two parts of the race sub-system: racial groups and races themselves. The system includes standard fantasy races from Tolkein as well as what are commonly called ‘furries’, elemental style races and even a couple of undead options.

CRPG Races

In the Broken Staff CRPG system we use the standard term races even though with the large breadth of selection they are more like species with ‘races’ within each. The races are grouped into a number of racial groups for organizational purposes.

RacialGroups.xml

Racial groups are basically types that allow for races to be grouped.

In the default system there are 10 types of races:

  • Animal
  • Beast
  • Construct
  • Dragon
  • Humanoid
  • Outsider
  • Plant
  • Reptile
  • Spirit
  • Undead

Here’s a sample class group for humanoid:


<RacialGroup>
   <Id>humanoid</Id>
   <Name>Humanoid</Name>
   <Description>Humanoid races are the standard fantasy races that are defined as having an appearance or character resembling that of a human or being closely related to humans in size and shape.</Description>
</RacialGroup>

The racial group fields are the standard id, name and description. Races are significantly more complex than racial groups.

Races.xml

For the racial example we shall study Dwarves. The names section came in after Alpha v0.3, it allows for different cultures or sub-groups within a race. For example in the Dwarves below there are three sub-groups: common, norse, saxon. The names will change and be tweaked to fit the Aerth universe in future versions but if you don’t like the current setup you are free to change it as you see fit in your version.

Most of the names have been removed to make the entry size smaller.


<Race>
   <Id>dwarf</Id>
   <Name>Dwarf</Name>
   <Description>Dwarves are a hardy race of warriors and craftsmen renowned for the weapons and armor they create and their stonecrafting skills.</Description>
   <IsPlayable>Yes</IsPlayable>
   <Group>humanoid</Group>
   <Names>
      <MaleNames>
            <Group>
               <Id>common</Id>
               <Name>Common</Name>
               <Percent>70</Percent>
               <Names>
                  <FirstName>
                     <Id>balim</Id>
                     <Value>Balim</Value>
                  </FirstName>
                  <FirstName>
                     <Id>gomain</Id>
                     <Value>Gomain</Value>
                  </FirstName>
               </Names>
            </Group>
            <Group>
               <Id>norse</Id>
               <Name>Norse</Name>
               <Percent>15</Percent>
               <Names>
                  <FirstName>
                     <Id>asketil</Id>
                     <Value>Asketil</Value>
                  </FirstName>
                  <FirstName>
                     <Id>turstan</Id>
                     <Value>Turstan</Value>
                  </FirstName>
               </Names>
            </Group>
            <Group>
               <Id>saxon</Id>
               <Name>Saxon</Name>
               <Percent>15</Percent>
               <Names>
                  <FirstName>
                     <Id>aethelmaer</Id>
                     <Value>Aethelmaer</Value>
                  </FirstName>
               </Names>
            </Group>
      </MaleNames>
      <FemaleNames>
            <Group>
               <Id>common</Id>
               <Name>Common</Name>
               <Percent>70</Percent>
               <Names>
                  <FirstName>
                     <Id>bargana</Id>
                     <Value>Bargana</Value>
                  </FirstName>
                  <FirstName>
                     <Id>thovira</Id>
                     <Value>Thovira</Value>
                  </FirstName>
               </Names>
            </Group>
            <Group>
               <Id>norse</Id>
               <Name>Norse</Name>
               <Percent>15</Percent>
               <Names>
                  <FirstName>
                     <Id>edney</Id>
                     <Value>Edney</Value>
                  </FirstName>
                  <FirstName>
                     <Id>ydany</Id>
                     <Value>Ydany</Value>
                  </FirstName>
               </Names>
            </Group>
            <Group>
               <Id>saxon</Id>
               <Name>Saxon</Name>
               <Percent>15</Percent>
               <Names>
                  <FirstName>
                     <Id>edith</Id>
                     <Value>Edith</Value>
                  </FirstName>
                  <FirstName>
                     <Id>godeleva</Id>
                     <Value>Godeleva</Value>
                  </FirstName>
               </Names>
            </Group>
      </FemaleNames>
      <Surnames>
            <Group>
               <Id>common</Id>
               <Name>Common</Name>
               <Percent>100</Percent>
               <Names>
                  <Surname>
                     <Id>foebreaker</Id>
                     <Value>Foebreaker</Value>
                  </Surname>
                  <Surname>
                     <Id>goodshield</Id>
                     <Value>Goodshield</Value>
                  </Surname>
               </Names>
            </Group>
      </Surnames>
   </Names>
   <Attributes>
      <Attribute>
            <Id>strength</Id>
            <Value>9</Value>
      </Attribute>
      <Attribute>
            <Id>vitality</Id>
            <Value>11</Value>
      </Attribute>
      <Attribute>
            <Id>dexterity</Id>
            <Value>8</Value>
      </Attribute>
      <Attribute>
            <Id>speed</Id>
            <Value>7</Value>
      </Attribute>
      <Attribute>
            <Id>intelligence</Id>
            <Value>8</Value>
      </Attribute>
      <Attribute>
            <Id>wisdom</Id>
            <Value>8</Value>
      </Attribute>
      <Attribute>
            <Id>charisma</Id>
            <Value>6</Value>
      </Attribute>
   </Attributes>
   <Feats>
      <Feat>
            <Id>dwarvenresistances</Id> <!-- Dwarven Resistances -->
      </Feat>
      <Feat>
            <Id>dwarvenproficiencies</Id> <!-- Dwarven Proficiencies -->
      </Feat>
      <Feat>
            <Id>dwarvenskills</Id> <!-- Dwarven Skills -->
      </Feat>
   </Feats>
</Race>

The standard id, name and description fields are here.

IsPlayable functions the same as in the class system. You might only want to allow the first 5 humanoid races as playable or remove the undead races. Just switch the IsPlayable field to No to accomplish that.

Group ties in to one of the entries in the RacialGroups.xml file.

Names is a list of common names for members of the race, split into male and female first names as well as surnames. Within each area there are one or more groups that can be randomly selected. Then within each group is a list of possible names. When characters are created you can have a system that randomly chooses from these names as needed.

Attributes is a list of starting or common attributes for that race. Attributes determine which classes are available to new characters upon creation and affect how they perform.

Feats is a list of starting resistances, skills and special abilities all members of that race possess.

Adding New Races

CRPG races are hard to get right so there is the ability to add new races to your game. To do so you need to:

  • If you are creating a new type of race you would also need to add an entry to the RacialGroups.xml file
  • Add a relevant entry in the Races.xml file. This includes defining the available values for that races, any requirements and what starting feats are needed
  • Next you would include the race in any of the files that make use of it such as in: characters, monsters, feats, items etc

Do you have any questions? Anyone? Anyone?

Greg Caughill

Greg Caughill is the owner and creative director of Broken Staff Studios.

Share