Skip to content

SotC Character Generator

8 December 2008

When programmers have problems, they write programs. When I found myself needing some NPCs for a Spirit of the Century module I’m working on, I was inspired to create a character generator program.

So far, it knows how to fill the skills pyramid and to pick stunts, like so:

  Fists: Superb
  Sleight of Hand: Great
  Might: Great
  Academics: Good
  Leadership: Good
  Stealth: Good
  Mysteries: Fair
  Engineering: Fair
  Contacting: Fair
  Intimidation: Fair
  Drive: Average
  Pilot: Average
  Survival: Average
  Deceit: Average
  Art: Average
  Brawler (Fists)
  Crippling Blow (Fists)
  Dirty Fighter (Fists)
  Fists of Fury (Fists)
  Bump And Grab (Sleight of Hand)

This guy obviously is a thug. Or a thief.

The program is written in C# using .NET 2008. I’m using XML as a data store, and LINQ to XML to parse the data file and to query the results. I used unit tests to prove the logic during development, and I have a tiered design ensuring the presentation layer does not implement any domain logic. I’m also put together a bare-bones WinForms UI that I want to enhance as the project progresses.

Enforcing the prerequisite rules for stunts took some time! Stunts for Spirit of the Century can require that a character have:

  • A specific stunt
  • Multiple specific stunts
  • A number of other stunts belonging to a given skill
  • Any one of an arbitrary set of stunts
  • A given skill at a certain level or greater
  • A combination of the above rules

Next, I’d like it to generate some decent character and aspect names.

No comments yet

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: