Sunday, 17 March 2013

Racing Game development

A few months ago I started thinking about writing a new roleplaying game. My current groups aren't so big on short games or one-shots, but I prefer those to very long campaigns. I decided to try for an episodic structure. This would guarantee closure by the end of a session no matter how short, but would also allow for an extended story to be told. In addition, it would make the game easier to pick up or put down at short notice.

Possibly inspired by the anime Redline, and by my years of playing WipeOut games on the PlayStation, I settled on the concept of a futuristic anti-grav racing league. The RPG currently has no name.

I'm currently in the middle of testing mechanical resolution methods for the race, which has been a major sticking point for a while now. I'm going to start blogging about the development process so I have a record of how things go.

Although I began brainstorming elements for a completely original game, the recent Kickstarter for the Cortex Plus Hacker's Guide made me realise that a lot of my design goals and ideas are possible within the Cortex Plus framework. At the moment, I'm approaching the game as a Cortex Plus hack, using elements of both the Drama and Action versions.

Design Goals
  • Episodic - Each session contains character development and climaxes with a race.
  • Engaging - Something for all the players to do, both off-track and during a race.
  • Adaptable - Easily modified for various types of racing (A-G, car, bike, horse; circuit, rally, drag, street; combat).
  • Instructional - Game rules actually tell you HOW to play the game!
  • Simple - Fast resolution, and able to handle a dynamic field of NPC racers without slowing down.

Episode Structure
  • Arrive at next race location
    • Group designs the track
  • Prepare for the race
    • Develop relationships, mechanical work, adjust vehicle for local conditions, local colour, engage rivalries, subterfuge and sabotage.
    • Practice lap, qualifying?
  • Race Time!
    • Everyone engages with the racing mechanics.
Race Time would be determined by real-world time, given a known end-of-session time. Obviously I'll need to figure out how long the races actually tend to last.

It's very important to me that all the players have something to do at race time, to avoid people just sitting around watching the Driver roll dice for half an hour.

The Team

My initial thoughts included relationship mechanics - shifting attitudes towards people in the team, and rivalries with other teams. Now, I'm not so sure - largely because I think that during the race the Driver will be able to rely solely on their single highest Relationship.

Currently, I have a few ideas for the two "core" sets of Traits.
  • Roles
    • Driver, Navigator, Gunner, Mechanic, Pit Crew, Coach, Publicist.
    • Not all leagues would contain all these Roles; for example, only rallies need Navigators, and only Combat leagues need Gunners.
    • The GM would be cast as the Manager, as they handle most of the administrative and off-screen duties.
  • Relationships
    • Other Team members, rival Teams.
    • I think it would be good for people to get fired up and inspired by their Relationships, but I'm not sure I want to promote the sort of constant "Challenge and change" cycle that happens in Smallville
  • Approaches
    • Aggressive, Defensive, Indirect, Technical, Persistent.
I'll probably attach Talents (special dice tricks) to Roles, and maybe to Distinctions as well somehow. I have yet to figure those out, or write a list of Distinctions. I think Talents will be a big way that most characters will be able to help out during a Race; in fact, I may either make all Role Talents only work during a Race, or I may divide them into Race/Non-Race Talents, but maybe require at least one be a Race Talent. However, I can see Publicists and Mechanics needing off-track Talents too. It may be better just to say your first Role Talent must be applicable during a Race.

The Vehicle

I would like the Vehicle to have different performance ratings in different areas. At the moment I have:
  • Speed: Acceleration and top speed.
  • Handling: Cornering and agility.
  • Stability: Off-road handling, resistance to losing control.
  • Lift: Aerial manoeuvrability and jump performance.
  • Resilience: Resistance to physical damage.
The mechanical team will be able to tweak the Vehicle's performance to make it better suited for specific Tracks.

The Track

At the start of each Episode, the team arrives at a new race location and finds out what the Track's like. Currently, I plan to provide random tables of track segments. Random Tracks can then be quickly made by rolling for and combining four to twelve segments. The length will be determined by group consensus, probably largely influenced by the session length and how much time people want to spend on the race itself.

Different types of Track segments (straights, corners, offroad, jumps) may require the application of different Vehicle stats, and will most likely vary in difficulty and consequences of failure.

The Race

This is currently a developmental sticking point. I've tried a few different approaches, which all satisfy some design goals while rendering others more difficult or impossible.

Races are the climax of the Episode. The PCs are not guaranteed a win, or even a place, so the opponents need to be skilled and require luck, teamwork, and dedication to overcome.

At first I tried abstracting the "Field" of racers into a Trouble-like pool of dice, which works quite well against a single PC and keeps things simple. The main problem with this approach is that it's difficult to extract placement data for NPC racers, which would be handy for constructor leagues. It's also hard to compare the performance of individual racers during Rallies.

Next, I thought maybe it would be better to track each NPC racer separately, with a simple statblock giving them a consistent dice pool for ease of use. I re-cast the Field pool as the Track pool, representing the difficulty of the current Track Segment. Failure to beat the Track's roll would result in a slipping position and possible Stress from collisions. It would also work fairly well for Rallies. In practice, however, having to roll a separate dice pool for each racer is fiddly and time consuming, even for a field of three or four racers. The "handling time" for each Segment was too long, and I had to abandon this approach too.

Thinking about it though, I really like the escalating Cortex Plus Contests. In order to make a Contest deep and meaningful though, you really need at least some basic ratings for your NPC - it's a little dull to try and escalate against an abstract Field pool.

I haven't written anything down for my new idea yet, but in my headspace it's a hybrid of both the previous approaches. I'll go back to a Field pool, and have yet to decide whether to have a separate Track pool or combine the Field and Track pools. I'll have simple stats for each NPC racer, but they'll only come into play when the player's Vehicle is directly engaging them. I'll keep track of which NPC is in which place, but I'll use the interaction of the PC racer and the Field pool to decide what their relative situations are - do you have a chance to overtake, or do you need to fend off someone approaching from behind? To avoid having to overtake each NPC racer one at a time, I'd like to maybe have vehicles share the same placing so you can theoretically deal with maybe one, two, or three opponents at the same time.

Whatever I end up doing, I need to make sure the Race mechanics work for Rallies (no other Vehicles on the Track) and Combat leagues (using weapons to take Vehicles out).