Category: Role Playing

Traveller, Cepheus Light and The Perfect RPG Mechanic

So, I think I may have mentioned that I love the classic RPG Traveller. I think I also mentioned that long ago, I wrote a very simple RPG to play with my daughters that used one of Traveller‘s rules. Because I have come to the conclusion that Traveller‘s basic task resolution mechanic is perfect.

So what is the mechanic? You have skill ratings for whatever your character can do. Skill ratings range from skill-0 (newbie) to skill-4 (seasoned veteran). In order to find out if you succeed at doing something, you throw two six-sided dice, add your skill rating, add any modifiers the GM assigns (for difficulty, etc) and try to hit 8 or higher. This mechanic was simply called 8+.

But…that rule was only used for combat skills. For reasons I cannot fathom, the designers of Classic Traveller did not use that lovely, lovely 8+ mechanic for general skill checks. Instead, each skill had its own mechanics, resulting in a horrible mish-mash. How bad was it? Allow me to quote from Classic Traveller Book 1, Characters & Combat, 1981 edition:

Gambling: The individual is well informed on games of chance, and wise in their play. He or she has an advantage over non-experts, and is generally capable of winning when engaged in such games. Gambling, however, should not be confused with general risk-taking.

Organized games (as at casinos) allow bets of up to Cr5000, and require a throw of 9+ to win. Private games allow bets ranging from Cr50 to Cr5000, and require a throw of 8+ to win. Gambling skill allows a DM of +1 per level, but the house will always win on a throw of 2 exactly. Games may be crooked (throw 10+ to be dishonest) in which case the referee will stack the odds against the players. Gambling-3 or better will usually detect crooked games (throw 7+ to detect). Gambling-4 or better may be suspected of cheating and ejected (or worse) due to the finesse of the skill involved (throw 9+ to be suspected; DM -1 per level over 4). Characters may elect to use a lower expertise level in some cases in order to avoid detection of true skill level. Referee: Characters’ die rolls should not be divulged when gambling; instead merely inform the individual of wins and losses. This will serve to conceal any manipulation of the throws.

Most of the other skills aren’t much better; it’s all 9+ this and 3- that. It actually caused me physical pain to read the original Classic Traveller rulebooks and see them get this so wrong. Why not just use 8+ everywhere? It made no sense to me.

So, ever since, all us fans have been waiting for a “fixed” version of Classic Traveller.

Then MegaTraveller came out. Its designers wanted to more thoroughly integrate stats into the game. In Classic Traveller, stats almost didn’t matter once your character was created. It was very rare that any stat other than Education or Social Status was referenced in gameplay, and there were no mechanics for making a check against a stat as opposed to one against a skill.

So MegaTraveller introduced the idea of stat bonuses. A character’s stat bonus for any stat was stat/5, round down. This means that a below-average stat of 5 gives characters a permanent +1 bonus on any success roll that pertains to that stat – in addition to any skill that also applied. This had the result of inflating the success rate of rolls, prompting MegaTraveller to abandon the simple 8+ mechanic in favor of a system of four values, for Simple, Routine, Difficult and Formidable tasks.

Now, MegaTraveller is a good game. Its task resolution system is highly regarded because it provides very clear details on what modifications to success rolls mean and how they should be calculated. But not only does MegaTraveller not fix Classic Traveller, it isn’t even really compatible with it.

Then Traveller had kind of a dark age. Traveller: The New Era switched up the mechanics and made drastic changes to the Third Imperium setting that few fans seemed to like. Marc Miller, the original designer, tried to give us the “fixed Classic Traveller” with Marc Miller’s Traveller, but incomplete rules and a host of production problems prevented the product from clicking with players. Steve Jackson Games’ GURPS Traveller married the Third Imperium setting to GURPS’ realistic rules to great effect, producing some very good sourcebooks. But fans were still wanting a new version of the old rules.

Then things started getting better. In 2008, Mongoose Publishing came on the scene and produced a frankly excellent set of Traveller rules. Mongoose Traveller is well-regarded, but it leans towards the MegaTraveller rules, with characteristic modifiers still added to skills. It’s not as bad as MegaTraveller, since even getting a +1 modifier requires an above-average characteristic of 9, but it’s still an inflation of the original resolution curve.

Enter, at last, Cepheus Light, from Stellagama Publishing. Cepheus Light is Classic Traveller all the way, with several improvements. While there are task difficulty levels like in MegaTraveller, they are compatible with Classic Traveller‘s success distribution, and the majority of rolls during play will still be 8+ rolls. All skills use the same mechanics. While stats do have bonuses, they are never combined with skills, instead being used for things more like saving throws. And the system still only requires two six-sided dice.

And that’s that. Cepheus Light completely fixes Classic Traveller and I love it. Why? Why is a coherent ruleset based on the 8+ mechanic so important to me?

  • Easy to remember. If you understand the mechanic and have done any roleplaying, you’ll probably remember the mechanic forever, even if you never play Traveller in any form.
  • Easily obtainable hardware. Polyhedral dice are awesome and can be very pretty, but if someone is just getting into the hobby they can seem like a barrier to entry. “I’ll try it when I get some dice” can easily turn into “I never got around to trying it”. With this mechanic, all the dice you need can be filched from that Monopoly set in the closet.
  • You can do the math in your head. The low die rolls and skill modifiers mean that the totals rarely come out to above 20.
  • Players always want to roll high. Some systems use low rolls for some parts of the system like task resolution and saves, but high rolls for things like damage and reactions. It can be confusing, especially for new players. Cepheus Light makes it simple – you always want to roll high.

Does it have any drawbacks? Of course it does; nothing is perfect. (Yes, I know, I said it was perfect above. I may have exaggerated slightly for humorous effect.)

The main drawback is that the numbers are very “crunchy”. The use of 2d6 as the base roll means that success percentages jump radically as players gain their first levels of skill. Going from skill-0 to skill-1 raises your chance to succeed by almost 17%, and while the jumps get smaller as you increase skill, they are still significant. Because of this, games based off of these mechanics tend to have very slow character growth, which can seem unsatisfying to players familiar with other systems. Still, good GMing can mitigate this and I feel all the benefits outweigh this drawback.

Well, you read to the bottom of this article, so you probably have an interest in Traveller and/or Cepheus Light and you deserve a reward. While the main rulebook for Cepheus Light has a suggested price of $10, you can download a free version called Cepheus Faster Than Light, which covers the basic task rules, character creation and combat. It’s a great way to find out if you’re interested in the main game and makes a great handout for new players if you’re GMing a game.

And there’s already Cepheus Modern, a Cepheus Light spinoff set in the modern age…


JRPGS (Jewel’s RPG System)

I ran a game for my youngest child, Jewel, this weekend. She’s eight, and in the second grade.

Now, just like her older sister, she has been immersed in Dungeons & Dragons and roleplaying concepts in general for her whole life. Hitpoints, mana, elves, orcs, swords, sorcery – she’s seen it all in video games and movies. Ever since she saw me buy the D&D Basic Set for her older sister Megan, she’s been asking if she could play Dungeons & Dragons.

And I’d been putting her off, for two reasons. First, she couldn’t do the math. Second, she really didn’t have the attention span.

Now that she’s eight I felt she was ready to experience roleplaying in some fashion, but I still didn’t want to let her play Dungeons & Dragons. Why? It’s just too heavy and confusing for a young roleplayer. In order to play that particular game she’d need to be able to read and do math at a much higher level than she can now.

But I felt that she was more than ready for the roleplaying experience itself, especially since she would have her older sister helping her along. What I needed was a simple, easy-to-understand roleplaying system. My goals were:

* Based on 2D6; I didn’t want to introduce polyhedral dice yet
* Low modifiers to make the math easier
* Fast-playing. I mean, really fast-playing. No charts or tables for the players.

Now, I had written up what I thought was a pretty good system based on the old Traveller rules. It had rules for buying stats and skills and general task resolution. I asked Megan to read it and she said something brilliant. She noted that high stats gave bonuses and low stats penalties when buying skills, and asked the question, “Why are there skills at all? Why don’t we just add or subtract those stat bonuses when we’re trying to do something related to that stat?”

“Well,” I huffed, “it would mean that someone with a high Intelligence, for example, would be able to do everything Intelligence-related well. They’d be able to program a computer, solve a Rubik’s cube, do theoretical physics…”

“Oh, please,” she retorted. “You effectively pick what you’re good at when you pick your class. If you’re trying to do something very different from your class description then you’d get a penalty. There isn’t any real reason to have skills; they just make things more complicated.”

I’d already had a nagging suspicion that the system I was coming up with was more complicated than it needed to be, and buying skills was one of the worst parts. Megan’s one question allowed me to greatly reduce the complexity of the system without it being any less fun. She is definitely my daughter.

I hereby present the system for your perusal and critique.

JRPGS (Jewel’s RPG System)

Characters

Characters consist of five stats – Strength (STR), Dexterity (DEX), Intelligence(INT), Endurance (END) and Personality (PER). Stats range from 2 to 12. Characters start with 7 (an average score) in each stat and players take away and add points to stats until they’re happy with what they have. Every point of a stat above 7 gives a bonus and every point below 7 gives you a penalty. Characters have (END * 3) hitpoints and (INT * 3) mana points to begin with.

Examples:

I asked Jewel what kind of character she wanted to play and she said a wizard (of course). To make things even easier, I asked Jewel what two stats she felt would be most useful to her character and she picked Intelligence and Personality, surprising me. Then I asked her what two stats she wanted to give up; she chose Strength and Endurance. So I simply gave her a +2 for the ones she picked and a -2 for the ones she gave up. I gave her three times her Intelligence in mana and three times her Endurance in hitpoints so, she ended up with this:

Name: Nyan
Race: High Elf
Class: Wizard

STR: 5 (-2)
DEX: 7
INT: 9 (+2)
END: 5 (-2)
PER: 9 (+2)

Hitpoints: 15
Mana: 27

Her sister Megan wanted to play a rogue, and she juggled her numbers herself to get this:

Name: Dahlia
Race: Half-Elf
Class: Rogue

STR: 7
DEX: 10 (+3)
INT: 4 (-3)
END: 5 (-2)
PER: 9 (+2)

Hitpoints: 15

Task Resolution

The basic throw to succeed at a task is 8+ on two six-sided dice. Based on the type of task you are resolving, you will add or subtract whatever stat bonus or penalty the DM thinks is relevant to that task.

For instance, Jewel’s spellcasting would pretty obviously be an INT-based task, so in order to successfully cast a spell she would roll two dice, add her +2 INT bonus and try to roll 8 or higher.

The GM can make tasks more difficult two ways – they can assign penalties or they can have tasks be opposed. Penalties are fairly obvious, so let’s talk about opposed tasks.

An opposed task is one where another character is trying to stop you. A good example would be attempting to lie to someone convincingly. You would roll a Personality task to do so – if you roll 8+ then you have spoken well and there’s a chance the other character will believe you. But then they roll against their Intelligence. If they also roll 8+ then your attempt fails – they’re too smart for you.

Combat

I initially thought about having all combat rolls be opposed – a player would roll a Dexterity task to see if they hit, then the enemy would roll a Dexterity task to see if they could dodge the attack. I realized this would be slow and frustrating (I could hear Jewel saying “But I hit!” in my mind).

So melee attacks are Dexterity tasks; succeed and you hit. A basic attack does 1d6 worth of damage. If you have a Strength bonus, you add that bonus to your damage. Damage can be reduced by wearing armor; one point of armor negates one point of damage from each attack.

Magic

This required the most work and imagination on my part. I absolutely did not want a huge list of spells with their effects cluttering up everything so I gave Jewel a basic attack spell and a sleep spell and went from there.

What I did was allow her to tell me what she wanted to do, and then based on how effective that task was I would assign it a mana cost of 1, 2 or 3. (If I felt it was too game-breaking, I didn’t allow it at all.)

She would then roll an Intelligence task to cast the spell. Her attack spell would do the same damage as a weapon attack – 1d6 – plus however much mana she used to cast it.

Armed with this system, I was ready to run Jewel’s first roleplaying session. Since this is already a bit long, I’ll save that for the next post…


Dungeons of the World and the Craft of War Dragons

So. Dungeons & Dragons Fourth Edition has certainly raised some ire, hasn’t it?

New roleplaying game, roleplaying not included…

World of Warcraft Refit…

D&D for Dummies

This is NOT D&D!

D&D 4th Ed. is a travesty. It’s a terrible game with terrible mechanics.

Et cetera, et cetera, et cetera.

D&D 4’s detractors tend to hammer on three points:

1. The new edition is inspired by MMORPGs, most specifically World of Warcraft.

2. The new edition doesn’t actually promote roleplaying (with some going so far as to say that it doesn’t even allow it).

3. The new edition isn’t Dungeons & Dragons.

How valid are these points?

While I haven’t had a chance to play D&D 4 yet (Hi, Tom!) I’ve read the Player’s Handbook and The Keep on the Shadowfell quite thoroughly. I’ve also listened to the complete D&D podcast where Scott Kurtz and Gabe and Tycho play D&D 4 for the first time. Gabe had never played a paper-and-pencil RPG before but is an experienced World of Warcraft player, and he was continually finding parallels between the two.

Gabe: I should have gone with “[Jim] Felmagic”.
Tycho: No, you’d get a call from Blizzard. “‘Fel‘ is our word for dark magic!”

Gabe: This reads very much like a [Final Fantasy] Tactics game.
Tycho: Doesn’t it?

Gabe: What did you give me?
Scott: I gave you a +2 against this target – so my attack gives an ally +2.
Tycho: He buffed you.
Gabe: Okay.

Gabe: I cast Arcane Missiles. I mean Magic Missile.
Tycho: Same thing.

(after several encounters in which his character is the only effectual one)
Gabe: I’m going to one-man this instance.

As an exercise, let’s compare a famous spell as it matured through the editions. Let’s use the classic first-level magic-user spell Burning Hands.

Here’s the description of Burning Hands from the first edition of the Player’s Handbook:

Burning Hands (Alteration)
Level: 1
Range: 0
Duration: 1 round
Area of Effect: Special
Components: Verbal, Somatic
Casting Time: 1 segment
Saving Throw: None

When the magic-user casts this spell, jets of searing flame shoot from his or her fingertips. Hands can only be held so as to send forth a fan-like sheet of flames, as the magic-user’s thumbs must touch each other and fingers must be spread. The burning hands send out flame jets of 3′ length in a horizontal arc of about 120″ in front of the magic-user. Any creature in the area of flames takes 1 hit point of damage for each level of experience of the spellcaster, and no saving throw is possible. Inflammable materials touched by the fire will burn, i.e. cloth, paper, parchment, thin wood, etc.

Here’s the description of the same spell from 3.5 edition:

Burning Hands
Evocation [Fire]
Level: Fire 1, Sor/Wiz 1
Components: Verbal, Somatic
Casting Time: 1 standard action
Range: 15 ft.
Area: Cone-shaped burst
Duration: Instantaneous
Saving Throw: Reflex half
Spell Resistance: Yes

A cone of searing flame shoots from your fingertips. Any creature in the area of the flames takes 1d4 points of fire damage per caster level (maximum 5d4). Flammable materials burn if the flames touch them. A character can extinguish burning items as a full-round action.

Sorry, but I don’t have a second-edition player’s handbook. But notice that the spell isn’t that different. The range has been increased from the first edition version and it does more damage (1d4 per caster level instead of one point per caster level) and the target now gets a saving throw. But the spell isn’t that fundamentally different.

Here’s the description from the fourth edition player’s handbook:

Burning Hands
Wizard Attack 1
A fierce burst of flame erupts from your hands and scorches nearby foes.
Encounter ✦ Arcane, Fire, Implement
Standard Action
Close blast 5
Target: Each creature in blast
Attack: Intelligence vs. Reflex
Hit: 2d6 + Intelligence modifier fire damage.

That’s a nice impenetrable description, isn’t it? It’s pretty much just a bunch of keywords. So let’s go over them.

Encounter means that the power can only be used once per a combat encounter. Arcane is the power type of the spell, so it can only be used by characters with access to arcane power. Fire is the type of damage it does and Implement means that if you have a wand, staff or orb that improves your rolls you can use it on this spell (for instance, Gabe could use his +2 Wand of Accuracy in conjunction with this spell). Standard Action means that you must have a standard action available to use it (every player gets a standard action, a minor action and a move action in a single turn). Close means that the area affected must be right next to the character. Blast 5 means that the area affected is a square five tiles on a side. The wizard then makes an Intelligence attack on all characters (friend or foe, PC or NPC) in the square, which is compared against the target character’s Reflex. Any affected character takes 2d6 + the wizard’s intelligence modifier in fire damage.

Notice how incredibly defined that description is. Notice also that it refers to tiles on a grid. D&D 4 completely integrates miniatures into the base game – it’s no longer possible to play without miniatures.

So the detractors’ first point is confirmed in my mind. The goals of the designers of D&D 4 were to make the game both easier and faster to play and they achieved that goal by studying how computer role-playing games had done just that. (I’ve no doubt that this will make Bioware‘s job easier when they make Neverwinter Nights 3.)

But does conceding point one prove points two and three? Is it such a bad thing that D&D 4 has stolen mechanics from computer RPGs? After all, computer RPGs have been stealing from D&D for thirty-five years – and I don’t mean “taking it as inspiration”. I mean directly ripping it the eff off. Practically every designer of classic RPGs says that they started by trying to program the Dungeons & Dragons experience into a computer and the entire industry progressed from there. What’s wrong with D&D finally taking some of those improvements back for itself?

I think the explicit definition of each power is what prompts comments like the “no roleplaying required” one I quoted above. Such definitions take away options from both the player and the GM.

But again, is that such a bad thing? Notice that the “sets flammable stuff on fire” part of the description for Burning Hands is gone. Why? Well, what GM hasn’t had a conversation like this?

Player: Okay, I cast Burning Hands on the enemy wizard.
DM: Okay, he takes three points of damage.
Player: And he’s on fire now, right?
DM: What? No.
Player: What?! He’s wearing cloth armor, right? He can’t wear anything else!
DM: Yeah, he’s wearing cloth armor.
Player: Well then I set him on fire! The spell description explicitly states that…

Et cetera. Another trick I’ve seen players use is to try to use Burning Hands to ignite any lanterns or flasks of oil an enemy character was carrying. The previous rule editions don’t say anything about this, which means it’s up to the GM. The only problem is, what does the GM do? Let the spell become horribly overpowered or piss off a player? This way no one gets pissed – but if the GM wants to allow the player to use the spell in a non-standard way, he still can. I can imagine a situation where a player needs to burn a rope and says he wants to use Burning Hands to do it, and the GM allows the player to do it if he can beat a target number on his attack roll and also gives up his use of Burning Hands in his next encounter. That’s the kind of flexibility that comes from both the players and the GM having the necessary imagination – and in the end, that’s the real component of roleplaying. With enough imagination and goodwill around the table, you could roleplay just with Toon’s fifty-percent rule (though I doubt my own roleplaying skills are good enough for that).

So while point one is valid, I think point two is very weak.

Which brings us to point three. Is this game Dungeons & Dragons? You’ll be casting Magic Missile on kobolds and using Great Cleave on umber hulks…is that enough? Wizards knows that the game is vulnerable on this front, which is why the first adventure they’ve released for it pays direct homage to the classic D&D adventure The Keep on the Borderlands. They also released a fourth edition version of the Forgotten Realms very quickly and are working to get Eberron upgraded, though that won’t be out until 2009.

But of course point three is all perception. Some people will say yes and some no. My opinion is that Dungeons & Dragons Fourth Edition is definitely Dungeons & Dragons. My only wish is that they hadn’t dropped the name “Advanced Dungeons & Dragons” with the third edition…I think it would be much clearer (and inspire less ire) if 3.5 were still Advanced Dungeons & Dragons and this new edition were the new “basic” Dungeons & Dragons. As for the haters…well, I’m reminded of one day back in the early nineties when I was in an arcade watching this guy play the Dungeons & Dragons arcade game. He cast Magic Missile but died before it hit its target. He sniffed, “I thought Magic Missile never missed and instantly hit.” At which point I knew I was in the presence of snotty geek greatness.

But I’ll leave the last word to Scott Kurtz:

Scott: I guess the guys I play with at home are idiots. I am having such a good time.


Frayed Knights Pilot is now out!

Jay Barnson, the man who inspired me to write an RPG in 40 hours with this article, has a new RPG of his own out! It’s called Frayed Knights and it combines Wizardry 8-style gameplay with as much snarky humor as you could want.

Get the “pilot episode” here. The price of admission is that you must fill out a short survey about the game so he can make it and later episodes better.


Hee hee…

My older daughter occasionally reads this blog, which is why I try to keep the cursing to a minimum.

She recently read the post I wrote up about her first roleplaying experience. When she got to the part about “voluntarily reading and doing math” she said, “Hey! You tricked me!”

Hee hee…yep.


First Character

Last night my older daughter made her first D&D character, a female human chaotic good cleric named Yue.

They grow up so fast…sniff…I promised myself I wouldn’t cry…

Actually, she expressed interest in trying out “real” D&D recently (although this technically isn’t her first experience with the D&D system since she’s a huge Neverwinter Nights fan). Since I didn’t have a copy of the most recent rules I opted for the D&D Basic Game, which I purchased at a local Toys R Us.

We played through the first very short programmed adventure with a precreated character and she really enjoyed it. Wizards of the Coast went ahead and integrated the D&D miniatures game into the basic rules, so the basic game we bought came with a whole bunch of plastic miniatures and mapboards. She had no trouble picking up the rules and she thoroughly enjoyed bashing some kobold brains out.

Ah, kobolds…I remember when I…sniff…no, must be strong!

But she didn’t like any of the pregenerated characters and wanted to make her own, so she cracked open the advanced rulebook, which has character creation rules for the four basic classes (fighter, rogue, cleric and sorceror) and the four basic races (human, elf, dwarf and halfling).

Then she sat at the table for about two hours voluntarily reading and doing math. God I love paper and pencil RPGs!

Now, overall the quality of the D&D Basic Game is quite high, but in the player section of the advanced rulebook there is one vital omission…nowhere does it tell you what your starting Armor Class is! There are tons of rules about how to modify your starting AC based on your race, your Dexterity score and your armor, but nowhere in the book do they tell you that your base AC is 10! That seems like a weird omission. That one stymied us for a bit…I knew in previous versions that the starting AC was 10 but I didn’t know if it was still the case. I was able to look at the pregenerated characters and figure out from them that base AC was still 10, and she was finally able to finish her character.

Who will probably go on her first adventure tonight!

For the record:

Name: Yue
Race: Human
Class: Cleric
Alignment: Chaotic Good
Deity: Pelor

Ability Scores:

STR: 16 +3
DEX: 14 +2
CON: 15 +2
INT: 12 +1
WIS: 17 +3
CHA: 16 +3

Saving Throws:
Fortitude: 14
Reflex: 16
Will: 18

Skills:
Diplomacy: d20
Hide: d20
Listen: d20
Move Silently: d20
Search: d20
Spot: d20+2

Combat Stats:
HP: 13
AC: 14
To-Hit: d20+3
Damage: d8+3
Initiative: 12

Feats:
Iron Will
Toughness

Spells:
Detect Magic
Light
Read Magic
Bless
Cure Light Wounds (heals d8+2)
Cure Light Wounds (heals d8+2)

Equipment:
Holy Symbol
Morningstar
Leather Armor


The Order of the Stick

The Order of the Stick is a webcomic that has been running for about three years now. (And I just found out about it from Rob Fermier’s blog – thanks, Rob!) It started out as just a simple “make fun of the rules of D&D” comic – and it did its job very well. But as I read it, I was surprised to watch it grow out of that and into a pretty darn good general action/adventure/comedy comic set firmly inside the D&D universe.

One of the great things about The Order of the Stick is that all the characters know they are characters in a role playing game, but the entire story is told from their perspective – we never see the players who are presumably playing the characters or the GM who is presumably running the campaign. The characters all know how the D&D rules work and they know their own stats. They continually talk about failing Spot checks, rolling natural 20s and what Feats they should take for their next level. And the author, Rich Burlew, seems to know a whole lot about D&D. A whole lot. Reading the comic can actually help you figure out how some rules (like attacks of opportunity) work.

The other great thing about The Order of the Stick is that it’s drawn in a stick-figure style. This is great because it goes a long way to covering up the unbelievability of how RPGs are played – it doesn’t seem that weird when a character one hit point away from death is healed back up to full hit points instantly because all that really happens is that the red mark on his chest disappears and he stands up. If the toon were more realistic, it would actually be less believable. This is very, very important. The other benefit of the stick figure style is that Rich can give us a full page on every update which allows him to tell really big stories – and tell them he does!

The only downside is that I’d rate the strip PG-13 for violence, adult language and adult situations. So I’m not letting my daughter read it quite yet. But if you’re old enough and would like to read a great fantasy adventure comic, you really should give it a shot.


Inaria Postmortem

Around the end of October 2005, I decided to try to write a complete computer role-playing game in forty hours. I was inspired by this article by Jay Barnson on GameDev.net, Jeff Vogel‘s excellent work, and by my own love of RPGs. I am a professional game developer, but I’d never written an RPG engine and considered that a “hole” in my experience.

I picked a time limit because I’ve also been fascinated by people being forced to do the best they can with their skills under such limits; this was one reason why I wrote my Iron Gamedev article (the other reason was that I was feeling really goofy that day). And of course competions like the Ludum Dare also inspired me.

The project is now complete. You can download the game here, and the source files for both the game and the editor here. Here’s a screenshot:

Mmmm...pixels.

Now, the point of this project was to learn, not necessarily to make a complete and fun game. That said, I did want to make the game as good as it could be in the time I had. Here’s an excerpt from my original design doc with my goals:

We need four things to be able to call the project a success.

We need to create the map structure and populate it with an initial terrain layout.
We need to allow the player to walk around the map and be blocked by passability data.
We need to create monsters and have them move toward the player and attack him when they get in range.
We need to allow the player to attack back, and to have the player somehow gain in abilities when he succeeds in killing monsters.

That’s it. If we get that, we can publish it without fear of too much ridicule.

But that’s not enough. What I want is:

A map structure where every map cell is a list of critters placed on that cell. When the cell is drawn, all objects in that cell are drawn, from bottom to top. Since the terrain object will be pushed on the map on load, it will always be drawn first, on the bottom.

A map structure that contains data for map links.

An inventory and a current equipment screen.

If we get all this implemented, I will consider the experiment a resounding success.

Finally, what I’d really like is:

An overworld, three towns, two castles, and eight dungeon maps.

An overall plot, no matter how thin.

Quests and quest objects.

If we get all this implemented, I’ll be damn suprised.

Well, I didn’t get quite everything on my list done, but I’m still very surprised at how much I accomplished. I got the map structure I wanted, an inventory, buying and selling, NPCs with different AI behaviors, levelling up, one town, two castles and eight dungeons. And a very, very thin plot, but not quests or quest items.

I kept rigorous track of my time, but since I have a full-time job and a family, I wasn’t able to spend my hours over the course of a weekend or even a week or two. It took me about three months to finish the project, and I actually feel I did well completing it in that time. I am actually alloting myself four months to complete my next forty-hour project.

I would break down my time spent as follows: about five hours was spent fiddling with graphics, about thirty hours was spent writing code, and about five hours was spent creating the NPC data files and game levels.

What Went Right

Kicking it Old-School

Emulating an old Ultima-style RPG was the right tack to take. If I’d tried to write a 3D RPG, I simply would have gotten overwhelmed and probably quit. The feature set I wanted fell into the “tough but doable” range and made for a perfect forty-hour challenge.

Using the SDL

I wouldn’t have completed what I did if I had not used the SDL and instead just used DirectDraw. End of story. I cannot imagine why someone would not want to use it for a project like this, it was so easy to use and saved me so much time.

Grabbing Graphics off the Web

All the items, monsters and NPCs in the game came from this page of free RPG tiles. This was a lifesaver – if I’d had to create the graphics myself, not only would they have looked like crap, I would have burned so much time on them that I would not have had any chance of completing my goal. As it was, I could not find any decent terrain tiles that I liked, so I ended up grabbing a lot of the ones I used out of Ultima VI. This cost me at least two hours, unfortunately.

Making an Editor

I spent about five hours making an editor for the engine – you can see a screenshot of it here and it’s included with the source package linked above. I think this may have been my smartest move. I ended up spending far too much time on the code and far too little on the maps (see What Went Wrong, below), but if I hadn’t had the editor I probably wouldn’t have gotten more than one or two maps into the game.

Using my PDA to Sync Projects

I have an Asus A620 PocketPC-based PDA. I love it, and one of the things I use it for is to keep projects synched between work and home. This way I was able to work on my project at work, sync my PDA, take it home, sync it at home, and pick right up where I left off. Now that I’ve got some webspace, though, I’ll probably set up a Subversion server to make it even easier, and give me real source control features like versioning.

Blogging the Process

This was vital. The fact that I knew people were watching kept me going when I got really tired of the project 🙂 I’d like to thank my friends Ryan Clark and Tom Mauer from work who tracked the progress of the project with interest, as well as Andrew Wooldridge and Gianfranco Berardi who linked to me, and to Sol who piped up with helpful suggestions when I mentioned I was using his tutorials.

What Went Wrong

Hoo boy, where to start?

Well, first, here’s a screenshot of the most visually interesting bug I encountered during development:

I'm walking on mouths.

Multiple Mistakes with the Editor

I made two huge mistakes with the editor. First off, I made it too early in the project. I made the editor when I felt I needed map data to work on, but once I had the map I then added lots of features to the map structure…which the editor then didn’t support. I had to add the map level number, map name and map links all by hand. The editor still saved me time, but it could have been even better if I’d just made a temp map by hand to work on, finalized my map data structure, and then made the editor.

My second mistake was a doozy. I split the editor off into its own project, instead of simply creating a new editor source file in the base project. By splitting the editor off, I ensured that all maps would have to be moved from the editor folder to the actual game folder before they could be tested – and then moved back if additional work was needed. Maps quickly got out of date and filenames got confused. I finally fixed this by putting a hardcoded path into the editor source so that it saved and loaded from the game folder, a terribly hacky solution.

Secondly, I ensured that all the changes to the source files I made while writing the editor had to be merged back over to the game project, and then changes made there had to be merged back into the editor…it was just bad. Still much better than no editor at all, but these mistakes caused me to eat up time that could have been spent making the maps better. Which leads me to…

Too Much Time on Infrastructure, Not Enough on Content

Now…this is a thing that went wrong, but in the end, this was a learning exercise, not an attempt to make a publishable game. I wanted the game to be as good as it could be, but in the end the quality of the game is not that important.

That said, the game could have been twice as good with just one or two more hours spent on the content – and I’d have had those hours if I’d both planned better and not made those boneheaded mistakes with the editor. There are features in the engine that the player will never see…because I didn’t have time to write content that uses them. Yay!

Schizophrenic Source Code

I almost didn’t want to post the source…in just about every case, I started doing things the “right” OOP-ish way, and then reverted to procedural programming when time got tight.

For instance, there is an NPC class. Great! Do I subclass from that for all my NPC types so that I can program in individual unique NPC actions? Nope, I simply use that one class and have the Update() function determine the NPC’s type and perform actions based on a classically bad switch/case statement. The input code is atrocious; I’m doing tons of stuff there that have nothing to do with input. I felt like crying when I put the code to draw the hit marker and projectile marker inside the input function with their own frame pumps…but it was either do that or cut them completely. I guess I can console myself with at least knowing that it was bad.

Conclusion

Despite all of that, I do consider the project a success. I learned a lot and created a fair amount of code that can and will be reused for other projects. And I’m planning on doing three more of these forty-hour learning exercises over the course of the next year.


Pencils Down

It’s finished!

Woohoo!

You can download a version to play here. A full postmortem is forthcoming…after I recuperate a bit 🙂

Here’s the readme file:

Inaria Readme File

This is a role-playing game I wrote from scratch in forty hours over the course of three months. To read more about the game’s development, please visit my weblog at https://viridiangames.com/blog !

BASIC CONTROLS

Inaria can be played with the keyboard and the mouse, or the mouse alone (sorry, there is no way to play it just with the keyboard).

You can move your character by pressing the arrow keys, using the WASD cluster, or left-clicking on the map where you want your character to go.

You can pick up items in the world by left-clicking on them. They will appear in your inventory. Left-clicking chests opens them, revealing their contents.

You can use items in your inventory by left-clicking on them. Left-clicking arms and armor equips them and gives you stat bonuses. Left-clicking potions drinks them.

The GUI pane in the bottom-right, right above the text area, is your main interface with the game. The four buttons on the left allow you to talk to, look at, pick up or attack anything or anyone in the game. The four buttons to the right of those are your spell buttons (although initially you don’t have any spells). The three buttons on the far right allow you to load, save and quit the game. All of these buttons work by left-clicking.

This game also uses smart right-clicking. Right-clicking an enemy automatically attempts to attack that enemy. Right-clicking a friendly NPC talks to that NPC.

OPTIONS

You can change the game to run fullscreen by opening the engine.cfg file and changing the line

full_screen = 0

to

full_screen = 1

I wouldn’t recommend playing around with any of the other options…they could very easily lead to crashes.

GAME TIPS

You start off with a little money, just outside a town. Run inside and visit the merchant. Buy a dagger and some leather armor; this will make you a bit more effective in combat.

When you find a dungeon entrance and go inside, look at the text displayed in the text area. This will tell you the name of the dungeon and its level. If the dungeon is significantly higher than your level, it’s probably a good idea to leave it and come back to it later.

Try talking to monsters!

The Clever Merchant in town is the only place where you can buy potions. If you’re having trouble finding them, sell all the weapons and armor you’re not using and use that money to buy more.

When you level up, clicking the muscle symbol increases your attack power, making you more likely to hit. Do NOT level up your speed, that statistic isn’t used in the game (sigh).

The game honestly is not well-balanced. I just didn’t have the time. As a result, it’s not that hard a game. If you play smart, you should beat it pretty quickly.


40-Hour RPG Update 12: 35 Hours

I think I’m ready to call myself finished with the engine. There are known bugs in it, but they aren’t severe, and I could easily blow all my remaining time on fixing them. In which case you’d get to play an RPG with one map with no enemies on it.

Here’s what I’ve gotten done:

  • Buying
  • Loading
  • Dying (death is now fatal)
  • The Smite spell
  • Getting objects (you must now be next to an object)
  • Moving with the mouse (left click in the direction you wish to move
  • Smart right-clicking (right-clicking an object picks it up; right-clicking a friendly talks to it, and right-clicking a monster attacks it)
  • Hit marker
  • Missile marker (buggy, but I don’t have time to fix it)

What’s left:

  • Make the two remaining town maps
  • Make the eight dungeon maps
  • Make the final boss castle map
  • Tweak the monsters

I’ll probably start with the overworld, then do the final castle. Then I’ll do as many dungeons as I can. If I get all the dungeons done, I’ll do the other towns (you really only need one town, as Diablo proved). I believe that the project is still on track.