Generic character management system

I’m considering creating a character management system for Multiverse. The idea is that you would be able to log on and manage your characters and do things link spend XP, keep track of spells, scrolls, equipment, magik items, contact your god etc.

I want to do this in Silverlight, which is Microsoft’s version of Flash. It works in IE, Firefox and Safari on Windows and Apple platforms. The only problem is that Silverlight 2.0 is not currently supported in Linux (it is in preview, and v 1.0 is support).

As a long time professional MS developer, I know to keep away from version 1 of anything they do (too many headaches and workarounds), so I’ll be developling in Silverlight 2.0.

Let’s assume I enable this application to be used by other games (Wolfgang, Star Wars etc). I’d like to get a handle on how many potential users are running Linux only (i.e. don’t have access to Windows/Apple). So, please chime in.

Also, anyone who can program C# and wants to help, PM me.

Mike, I will love you forever if you make this application available to St. Wolfgang’s. Every game I try out a new approach to managing character sheets and I haven’t found anything that works as well as the old Mordavia character database did. Having four GMs, I’ve trying to find a way to get a central repisotory of character sheets but in the end it was always just variations on a theme where they would send them somewhere and we would have to manually update our records. As a result, things get garbled and it’s hard to keep track. I was saying in the car on the way home from Wolfgang that what we needed was a system where people can log in and see and edit their own character sheet but no one else’s.

I wish I had programming skills to offer but I picked English over Computer Science (medieval lit is where the money is) so instead I’ll just put my President hat on and say that this kind of software would be a massive asset to the society, and wave some cheerleading pom-poms.

Would it be possible to build the Silverlight app on mySQL? If so, perhaps it could be integrated with the existing NZLARPS database.

Or are you looking for a more generic and independent solution? This kind of system might get widespread use, and not just in NZ.

Thanks for the support, Anna. Can I call on your literatute and GM skills to help review the initial design (which I’ll work on this weekend), and for beta-testing ?

:blush: Forgot to include Knightshade in the suggested list of games. If this app can support Knightshade (which has the most complex character development rules of our current games) then it should be able to handle anything.

Anyway, shall we extend the discussion to “What features would you like to see ?” from both a GM and a player perspective.

I think so. I use a code generator (Codesmith) to generate the data access layer code and there appears to be support for mySQL. So, if the generator works OK with mySQL, and if I can get up to speed with mySQL quickly (perhaps you could give me a quick tutorial one night), then yeah, I’d be cool with that.

Yes, I’d like to make it generic enough to be widely used. This is even more reason to use mySQL because most hosting arrangements have lots of mySQL databases for free vs on 1 or 2 SQL Server databases.

i don’t use linux :stuck_out_tongue: no reason why i couldn’t set up a box for it i guess.

I’ve not really done anything web-related in the past, but I’ve had (some) C# experience, and would interested in helping out in some way or another.

Assuming that you write an independent system that’s available to anyone as an online service, here are some high-level entities you might want:

  1. Character creation system. This is a set of rules, and it might be used in multiple campaigns (like in the US, where the NERO system is used in multiple chapters). It defines how characters are created.

  2. Campaign. This is a game that characters exist in. Potentially, characters could also be transferred between campaigns that use the same system (EDIT: or more likely, the character could be attached to more than one campaign with the same system), with the permission of the campaign owners.

  3. Character. A character in a campaign.

  4. User. With permissions for which systems, campaigns, and characters they are viewers or editors of.

That’s how I see the main entities for character creation across multiple games. It would also be natural to extend your service with the following, to allow the service to be used to manage event bookings and character event attendance records:

  1. Event. A scheduled live event in a campaign.

  2. Attendance. A user’s registration to attend an event, which characters they will play, and whether they actually attended in the end and which characters they actually played. State-based, updated over time. The campaign owner could edit it to store whether they have paid, XP earned for that event, etc. There may need to be a separate entity for each character’s attendance of an event… some games award XP to players, some to characters.

The most detailed part will be the character creation itself, because it varies the most between games. There’s really no end to the options you could put in there. Some games have “types” of characters that are chosen, like race or class. Some have levels. Some have point-buy. Some have skill trees or pre-requisites. It would pay to allow the character system editor a lot of flexibility, for example the ability to define a number of text fields in the “character creation system” that can be used for anything that the system can’t handle.

If you do implement events and attendance, then it would be good for both the campaign owner and the player to be able to put notes against each attendance, as a record or diary of what the character did at the event, explanations for XP earned, feedback from the player to the GMs about the event, etc.

I’d definitely be keen to be a part of this Mike. There is definitely good reason for Knightshade players to have such a system and the benefit for GM’s such as myself is quite good… mostly because my character management at this point is, well, appalling! :blush:

Thanks Ryan, that’s a very good overview of the key entities. I had planned to go as far as events, but will likely not release the attendence functionality in the first release.

You are so right about the complexity of character generation. In addition to the variations you mentioned there are also discounts/penalities having specific races or skills, items that enable capabilities skills (e.g. scrolls), generation-only choices, multiple resources required to purchase skill/items (eg XP and money). This is going to be very complex, and your suggestion about having some free-form text boxes to handle anything that doesn’t fit in the system is a good one.

Yeah, keeping track of characters is a black art, and is the primary motivation for me to embark on this project.

Happy to help any way I can - after June 9th. My honours wraps up on June 8th, I intend to sleep most of June 9th, and then I have free time again. Or at least, guilt-free free time.

I imagine you’d build it based on the smallest-grained character attributes possible. Some might be numeric, others descriptive. Each could have a price associated with buying it in the given campaign, and whether you can buy it directly.

Then to handle things like races, classes and levels you could treat them as packets of attributes.

So by spending CP/XP to buy “Fighter Level 1” or “Gelf” or whatever, you effectively buy all the attributes inside it in one go.

For some rulesets, some of those attributes may only be available as part of attribute packages, not individually. For other rulesets there may be no attribute packages, and each individual attribute is point-buy.

Then there’s prerequisites, trees, multi-choice, and non-compatibility of attributes and packages.

A slightly off the wall idea that may work…

Would it be possible to just create a sub forum inside each game for each character that only had permissions for the GM’s and the player who had the character.

For example:
Board index » Hosted boards » St. Wolfgang’s Vampire Hunters » Character Sheets » le Stirge (view permissions for all GM’s + Derek)
Board index » Hosted boards » St. Wolfgang’s Vampire Hunters » Character Sheets » Sir Peter (view permissions for all GM’s + Ryan)
etc…

It’d mean you were limited to free text, but all the security and access is already there.

Just a thought from a very lazy developer. :smiley: :smiley: :smiley:

That would work from a security perspective, although querying the “database” would be somewhat manual 8)

What sort of queries would you really be doing though? The only people with access to all characters of a particular game is the GM, and then it’s likely for character reviews and individual updates.

There’s also the question of character background segments, which tend to be quite wordy to the point of some for Wolfgang’s (from what I hear) being 7,500 words plus, and can be expanded quite dramatically between games. Having this in an easy-to-read document is win, certainly over a browser-based text box, so the issue of making sheets printable comes up (which likely would have anyway).

Just thoughts…

True.

However, it may be possible to search on a particular part of the forum. Let’s face it, the main thing you’re going to search for is things like "how many characters have the God’s Sanctuary skill etc…

[attachment=0]search.png[/attachment]

A few thoughts on unusual character data.

All of the below could be handled generically with open text fields, but more specific fields and tables could be more powerful.

Items
Systems handle character possessions differently. Sometimes, they are character attributes and purchased with CP, as in Wolfgang. In Mordavia they were re-purchased for each event based on an “Income” attribute that was determined by character attributes. In those cases, there are often also persistent unique items such as artifacts, and items that can only be possessed if they have been found in play. In other games, every single item is persistent from event to event so there is no such distinction.

Character relationships
It would be nice to be able to link characters with relationship describors, like users can be linked in Facebook. Then things like family and friendship relationships could be read in a standard way.

NPCs
It would be handy for the GMs and crew to be able to maintain character sheets for NPCs. This could keep track of character development of NPCs and act as a brief to crew members playing the NPC. Special rules and options may need to be in place for creating and advancing NPCs, for example different races might be available than for PCs.

Ongoing effects
In some systems, characters may be under ongoing effects like curses that could be tracked by the system.

I want the players to update the characters in a way that I (as GM) can easily interrogate, and which also ensures that I don’t have to double-check their calculations. While Derek’s relatively low-tech solution could (and does) work, I’d like a system that makes this whole thing easier to do. Plus a I want a reason to learn Silverlight :wink:

[quote=“Ryan Paddy”]Items
Systems handle character possessions differently. [/quote]
A complicating factor is that some games use two resources in order to purchase an item (e.g. character points and money). So I’ve opted for a flexible Aspect system (in which an Aspect represents an item or skill or similar) which has a couple of dimensions to it. One is how the Aspect is acquired (perhaps by spending resources, or it could be automatic, or perhaps assigned by a GM) and whether it is visible to the player (or only to the GMs).

Another dimension is what kind of aspect it is e.g. does it simply denote the possession of a skill or item, or does it measure a value (such as Hit Points), and whether it is single instance or stackable.

It is also possible to create Aspect trees using containers (which enable you to build up a set of related Aspects such as spells within a particular college) and lists (which allow you to select one item from a list). The containers and lists can not be selected themselves, instead, you select a child member(s).

In addition, Aspects can have relationships with each other. Perhaps an aspect raises or lowers the resource cost of a different aspect (such as taking Armourer enables the purchase of cheaper Armour in Mordavia). Or perhaps they are mutually exclusive. Or perhaps it requires some prerequisite Aspects, or it replaces an Aspect (useful for stackable Aspects that increase in cost each time you take them).

I’m going cheap on this, and will allow GMs to define types of groups and membership types within a group (e.g Family type groups have Father, Mother, Son, Daughter, Cousin) so you can deduce who is who within a group, but there won’t be a way to detect that X is sister of Y but you can tell they are in the same Family. Groups will be Campaign-specific or global.

Yep, allowing GMs to handle NPCs (and let crew view/update them) is part of the design.

These would be handled by GM-assigned Aspects that could be either visible or invisible to the character.

Also, layout is important and I’m going to try and engineer in a wizard-type walkthrough approach for new players, plus a way for GMs to specify how Aspects etc are organised.

I’ve added in contact info and event management entities as well, but have decided to leave multi-chapter campaigns for now.

I’m currently mulling the design and will soon start creating the data access layer and business entities(takes about 2 mins with CodeSmith and .Net Tiers). Then I’ll start working on the Model-Viewer-Presenter components via a Test-Driven-Development approach. The Silverlight will come at the end, once things have settled down.