Pathways Redux Part II


To read Part I of this writeup, click here.

In 2004 I made a Doom 3 mod called Pathways Redux - a mini-remake of Bungie’s Pathways into Darkness. Here are some notes on its development.

Scope control

One summer, I took a television production course. The instructor showed us a pie graph with three sections:

He then told us that a production could have two of those things. Just two; never all three. He was a real cheery guy.

Me being young and idealistic, I didn’t entirely agree with him. But it made something click in my head. My hard drive had (and still has) a bewildering amount of incomplete game prototypes. I realized all I had to do was cut the scope of the game in half. Shorter project = less bugs, more polish, higher quality. And you get to actually _finish_ making it!

Pathways into Darkness is a huge game. There was no way I was going to remake the entirety of PiD, so I focused on a tiny section. For Pathways Redux, I decided to tackle no more than an intro sequence and the first few levels.

First Impressions

PiD has a fairly elaborate series of events preceding the game.

That’s a lot of information! PiD starts you inside the pyramid. I decided to have some fun and try to pack all that information through an in-game sequence.

My first thought was to start you off in a military hangar in North Carolina. You and your crew would be briefed on the situation, then board the transport plane.

Then I realized: a slideshow briefing? Listening to some commander-type guy talk about a mission? This was lazy design. It was a boring, unimaginative way to convey a ton of information. Also, I’d already done this in a previous project, Bootleg Squadrog. So that’s strike two!

When I start a game, I want to _play_ it. I do not want to watch a cutscene or listen to inane backstory. So I decided to instead start by throwing the player into the deep end of the pool: falling through the sky with a broken parachute. Way better than a slideshow!

Of course, the parachute sequence is soon followed by a page-long wall of text describing the backstory.  Nope, I have no good excuse for that.

Script-fu

Pathways Redux and Barista 3 (and Barista 1) were my first forays into text-driven scripting. Prior to this, I had used visual scripting systems. Visual scripting generally looks something like this:

  

Objects are are visually displayed. These objects are scripted via GUI-driven windows.

Text-driven scripting is done via plain ol’ text files. Here is the script to Pathways Redux’s first level: pathways_para1.txt

Depending on how your brain is wired, you’ll like one more than the other. Visual scripting gets the benefit of better error-checking and sanity checks, and, well, being able to visually see the connections between your script objects. Text-driven scripting grants you more control and flexibility. Doom 3’s scripting system gives a tremendous amount of control over the game world - it’s remarkable how much freedom you get.

I enjoy both systems, though I lean toward text scripting. Once a level or game reaches a certain level of complexity, I find visual scripting becomes cumbersome. It starts to feel like a middle-man you’re forced to talk to - a mild-mannered, helpful middle man, but a middle man nonetheless.

Level persistence

Doom 3 consists of a series of levels played in a linear order. Pathways, on the other hand, is a series of connected levels the player can visit and backtrack as they please.

The most straight-forward approach was to just connect the levels the same way Doom 3 did. If they want to revisit a previous level, just re-load that previous level. Right?

The problem with that is persistence. For example, let’s say the player picks up an ammo clip in level 1. If the player later decides to re-visit level 1, the game has to “remember” the player had taken that ammo clip earlier. If I just directly re-load level 1, that ammo clip will always re-appear at the same spot - that’s bad.

I got around this by taking advantage of Doom 3’s scripting system. Here’s a sample script chunk when level 1 is loaded:

        if (sys.getPersistantFloat("got_stepammo2") > 0 )
{
$ammo_bullets_small_8.remove();
}

When the level is loaded, it checks the flag “got_stepammo2”. If the flag is True (the player has already acquired that ammo clip), then I remove that ammo clip from the world. Otherwise, that ammo clip is left untouched.

Is this a ridiculous way to do things and totally unfit for a production-length game? Yes! But for this mini-production, it was fine.

Dogfooding

When making a game, it’s important you’re also playing it yourself. This sounds like a no-brainer, right? Why would you possibly not want play the game that you’re making? Because: it can get extremely frustrating and demoralizing to play something incomplete, ugly, buggy, crash-prone, and un-fun.

It’s tempting to put off your testing until you get further along into the game. But you’d just be sabotaging yourself. By the time the project is that far along, the infastructure will be too rigid and it’ll be too late to do any course-correcting.

As I play through my own game, I jot down notes on things to fix or add. Afterwards, I address each item one-by-one like a grocery list. Here’s a page from Pathways Redux:

Most of it is written in spur-of-the-moment shorthand. This can get embarrassing when I finish the playtest and don’t remember what something is supposed to mean or find something illegible. On the bottom row is “SKELETON”, followed by a “(?)” because I no longer had any idea what the hell that item referred to.

Cubans

I intended to include Pedro, Juan, Javier and Carlos. Alas, the Cuban explorers never made it into the temple.

Et al

Pathways Redux was the first remake I’d ever attempted. On one hand, you have a clear template to build upon. “Finding the fun” is the riskiest part of game development, and it’s comforting to have that automatically done.

On the other hand, it did come to a point where I got bored on a creative level. I had a lot of fun re-thinking the UI, environment design, dialogue system, and storytelling methods; this was not a one-to-one remake. But ultimately, re-treading someone else’s work - no matter how absolutely amazing that work is, a la PiD - doesn’t have that same spark as springing something brand new.

In Pathways Redux, the action is meant to take a backseat to the story, characters, and environment. This action-light narrative-heavy type of game is sorely under-served. I’d love experience the hustle and bustle of booking guests for a late-night talk show. I’d love to fall into a web of intrigue and deceit in the Holy Roman Empire. Let me know when you finish making that - I’d love to play it!