Designer's Notes: GURPS Character Assistant 4
by Armin D. Sykes
For a lot of people, GURPS Character Assistant will be a brand new program that apparently came out of nowhere. The fact is, though, that GCA has been around for about 10 years now, as a fan-written and fan-supported program.
I was playing in a regular GURPS game and wanted a program that I could use to create and maintain characters, and print off character sheets when the character was updated. I didn't care for the few programs I could find at the time, as they were all either DOS based (not really uncommon at that point), seemed unnecessarily cryptic to use, or both. I decided I'd write my own program, using Visual Basic for Windows, which would allow me to get a program that I liked, and get some VB experience at the same time.
I started work late in 1994, working on and off during my free time. I laid out the basic windows that I'd need for attributes, advantages, skills, and spells. Since pre-reqs were a key feature of the spell system, I decided I needed to support that, even though I personally didn't play a magic user.
By early 1995, I had a program that worked for me. I was pretty impressed with myself at the time, but looking back on it, it was a really rudimentary program: no bonuses added to traits from taking other traits, no skill defaults, no lots of things . . . you even had to open an edit window just to change the levels in a trait. What set it apart was that it was Windows based, when few such programs were, and it was pretty simple to just click on the items you wanted for your character.
My friends and I thought it was a pretty cool program, so I decided to share it with other GURPS players who might be looking for the same kinds of things I was. I submitted GCA to Steve Jackson Games for licensing. I think I probably got very lucky on the timing here -- the approval process only took a couple of months, and I had regular contact with the person doing the program evaluation. Finally, the contracts went out, were signed, notarized, and returned, and GCA became officially licensed on July 26, 1995.
GCA was released as a freeware program, because I thought it was cool and wanted to share. I'd written it mostly for myself, so I wasn't looking for anything in return. If other folks liked it, I'd be happy. The program became immediately popular, even with its limited functionality and availability. People were really happy to see a Windows-based program, and I started getting a lot of feedback from users.
Work continued, and I quickly released GCA 1.1 which fixed a lot of bugs, and introduced a whole slew of usability enhancements for the interface. It was quite clear at this point that GCA had the potential to be very popular, but it needed a lot of work, so I began work on GCA 2.
GCA 2 was a much more robust piece of work, introducing a slew of new features. It was capable of supporting the things you'd expect from a GURPS program, such as skill defaults, and the ability for traits to really grant bonuses to other traits. The groundwork laid with this release would make GCA 2 a program capable of supporting GURPS for the next eight years.
Development of GCA 2 was helped considerably by the input of a small number of users who were happy to provide regular input and feedback, guiding my efforts and providing helpful GURPS experience where I was lacking. Without people like Jonas Karlsson, Warren Wilson, Don Diestler, Alexander Grimgoth, Craig A. Roth, Jayson Howell, Mark Aylor, Mark Nettle, Jim Trigg, Dan Sugalski, and Bruce Flinn, GCA 2 wouldn't have been as solid out of the gate as it was. I still owe a lot to all of them.
Another big change with GCA 2 was that it was no longer freeware, and became shareware instead. I discovered that a lot of time and effort was spent supporting even a simple program like GCA, and was having problems with the sort of time that support was taking away from my regular work. I was constantly being told by users that I should be charging for GCA, so I decided to start doing so when GCA 2 was released.
Of course, nothing's perfect, and I released several more updates over the years, introducing some new features and interface elements, and fixing various bugs. However, the basic program didn't really change.
Development on a new and improved program, GCA 3, started many years ago. Originally I was planning a 2.5 version, but I ditched that in December of 1998 to work exclusively on the new, 32-bit program. Considering that GCA 3 wasn't released until 2005 (to a limited group), that was a really long time in development. What happened that made it take so long? Life, unfortunately.
At various points, the stresses and issues caused by being self-employed and running my own little programming shop would catch up with me, and GCA would be placed on the back burner for a while. At a few points, work effectively stopped on GCA completely, as I had to devote myself to paying jobs in order to keep my business afloat. Little bumps in the economy, or with my primary contracts, often had significant impact on my ability to work on hobby projects like GCA.
In July of 2004, work on GCA 3 once again kicked into gear. GURPS Fourth Edition was coming, and I wanted GCA 3 ready to support it. I didn't quite make it (I still had a business to run), but I did have a public preview version of GCA 3 available for users to demo, starting in October of 2004.
Around the same time, things started to get a bit more interesting for me. I was approached with the possibility of writing a GURPS Fourth Edition character program for Steve Jackson Games.
To be honest, I was a bit surprised, and a bit reluctant. Pleased to be asked, of course, but reluctant. I'd spent a long time working on my new GCA 3 engine, and GCA was the program I wanted to work on. I wasn't really interested in doing something new from scratch.
We shot a lot of emails around, and it was finally agreed that I'd bring GURPS Character Assistant over to Steve Jackson Games, developing it for them instead of myself. And that agreement set the stage for GURPS Character Assistant 4, the program being published by Steve Jackson Games.
GCA 4 builds on the engine developed for GCA 3. It adds a whole new way to interact with the program (the character-sheet-like Quick View interface), and introduces some new elements, such as conditional bonuses (which are shown on the character sheet, but not included in the skill level). In addition, it updates the look of various windows, and improves on a number of ease-of-use features.
As with GCA 2 before it, GCA 4 is built on more than just my work, it's also built on the time and effort of people like David L. Watkins, Eric B. Smith, Stuart Stinson, Jim Trigg, Craig Roth, Orion Adrian, Shawn M. Kelley, Dan Sugalski, Marzo Sette Torres Junior, and Alexander Grimgoth. In fact, David L. Watkins wrote the initial Basic Set data file, and Craig Roth wrote up a bunch of equipment for me to work with, before Eric B. Smith came along and wrote up pretty much the whole equipment list. Eric is also really good at finding all sorts of mistakes I made in various places while working on updates to the data file.
And, speaking of the data file, not everything has gone smoothly there, either, as there are some things in GURPS Fourth Edition that just don't quite seem to want to work smoothly with the way things were designed in GCA.
One big example of this is Magery. Magery is a leveled trait, like many others, but it is the only trait that has a cost for level zero. To have a cost for no levels in something is a feature that GCA simply wasn't designed to handle. To make matters worse, most enhancements and limitations that might be applied to Magery aren't meant to apply to the 5 points that level zero costs. As a result, the "Magery 0" trait was created as a separate trait in GCA, which is a prerequisite for the leveled "Magery" trait.
There's also the issue of naming certain traits, and in some cases, whether a trait is meant to be treated as a sub-trait (or a different level of the trait), or a full trait of its own. This is complicated by the fact that the book frequently doesn't make it clear whether certain traits have multiple types of sub-traits, or they are actually full traits listed under a common heading. This means that whatever method is chosen for the program to use, there will be some users who are expecting something different, and will have trouble finding certain traits. For example, the No Legs disadvantage (p. 145) has several different "forms," including Aerial and Aquatic, which would imply that the trait would be recorded as "No Legs (Aerial)" or "No Legs (Aquatic)". However, the text for the Amphibious advantage (p. 40) refers you to the Aquatic disadvantage, not the No Legs (Aquatic) disadvantage. I wish I had a solution for that right now, but I don't. The best solution for now has simply been to work on the basis that any trait without its own listing in the trait listings at the back of the book is, instead, a sub-trait of the trait it's listed under.
Over all, I've enjoyed working on GURPS Character Assistant 4. There's nothing quite like being in the zone while programming, and finding a whole new, working feature when you're done. I get a real kick out of that, and I hope to enjoy that feeling a lot in the time ahead. GCA has already been around for 10 years, and most of its growth through that time has come from suggestions and comments from users, and I hope to see that continue for a long time to come.
Article publication date: July 8, 2005
Copyright © 2005 by Steve Jackson Games. All rights reserved. Pyramid subscribers are permitted to read this article online, or download it and print out a single hardcopy for personal use. Copying this text to any other online system or BBS, or making more than one hardcopy, is strictly prohibited. So please don't. And if you encounter copies of this article elsewhere on the web, please report it to firstname.lastname@example.org.