Devlog-01: The Paper Dragon

Alexander Avery

Thu | Feb 15, 2024

A waterway in nanjing china.

Returning to Game Development

It’s been nearly five years since I’ve completed making a video game, and I’m committed to changing that. In that time, I’ve advanced on a path of software development I wasn’t even aware of when I began working on SpaceMail. Guided by the ideas of Rob Pike, Ryan Fleury, Casey Muratori, and others, my outlook on programming has never been more optimistic. What I learned in those years dramatically improved my career, but I’ve yet to fully return to game development, the field that first sparked my interest in programming.

Here I’m going to outline the practices that are helping me get back in the game-dev seat. If you would like to just read about the game details, they begin here

What’s hard about getting started

I haven’t been making games, but I’ve certainly been thinking about making them. Around four or more ideas must have passed me by, but none took hold. I’ve already made a game, and since then my skills have compounded, so I found my hesitance to execute on an idea rather odd.

Why did I suddenly find it many times more difficult than when I knew practically nothing about programming? I write all kinds of software every day; nothing truly feels out of my reach, but sitting down to make games either didn’t happen at all, or felt fruitless. After months of reflection and wrestling with ideas, I’ve come to realize there is a crucial skill I haven’t been honing.

Taking the next step

When it comes to making games, my passion has repeatedly let large visions obscure my “next step”. Nebulous ideas floating around in one’s mind are exciting, but when it comes time to formalize that idea into a program, where do you even begin? Eventually I realized: You don’t begin; not with that approach, anyway.

What I needed to do was reduce the scope of my focus to the very next step. As long as the list of things to do remains comprehensible, the work can begin. All I needed was a target I could see and break into steps.

Paper dragon prototype

A video game is nothing more than a game running on a computer. To me, this is a crucial insight that helped get things moving. When I was a kid, I loved playing Empire Earth. I did not always have access to a computer, so on occasion, I drew tanks and soldiers on paper instead. I knew the rules of Empire Earth, and if I wanted to, I could run through the steps of the computer program in my mind.

As it turns out, if you flip this process upside down, you can make new games on paper first.

This is incredibly cheap to do, and it’s far easier to change rules on paper than change a program. The video game I am developing is not a video game first. By envisioning the video game first, I seem to overwhelm myself. By contrast, what I am doing is “discovering” a game by playing on paper and in my imagination.

This allows me to do the following things really quickly and cheaply:

  1. Discover if my game idea is fun.
  2. Discover if my game rules are consistent.
  3. Discover how to break the game rules into small steps!

Introducing the game and demo target

This yet-unnamed game is a visual novel/RPG that takes place in a fictional, ancient China. The core game will follow a handwritten, and procedurally generated story line in which player actions are only limited by their skill. That means no character, item, or plot point will require the player to take certain actions to advance the game.

Non-player characters and personalities

NPCs are going to be the cornerstone of getting visual novel and RPG elements to blend cleanly. They should be able to take predefined actions, or choose their own actions from a list of possibilities. Systems like these are fairly easy to model and have been used in games such as The Sims.

Each character may have three or so personality traits. These traits will be used to filter out the desired actions from a list of all possible actions that a character can take. If a character personality consists of three personality traits out of a pool of nine traits, that results in 84 unique character personalities.

Character actions may also be influenced by their mood. Mood acts as a temporary tag on a player’s personality that alters their action choices in the short term.

Skills, items, and knowledge

The actions that an NPC or player can take are determined entirely by skills, items, and knowledge. Actions can alter items, the environment, and even other characters.

Player actions

Where NPC actions are limited by personality traits, player actions are only limited by skill, items, and knowledge. Actions are the way in which the player interacts with the game world, and include dialogue with other characters. Through dialogue, players can attempt to convince NPCs to use their skill, item, or knowledge on behalf of the player.

In this regard, the player is not even required to gain skills or items to advance the story. They can rely entirely on their relationships with non-player characters, and leverage their abilities to play the game.

Resolving chapters

In order to advance the game, the player will have to “resolve” each chapter, and they can do so in any way they like. In the first chapter, the player comes across a mysterious item in the possession of a high-ranking noble. There are rumors that another artifact of similar appearance is on its way to the foreign trading port. Should the player manage to get possession of either item, they can resolve the chapter by deciding the fate of the sought-after artifact.

Refining rules

The concepts outlined above may not make it into the final game, but they are actionable. I must emphasize that these ideas did not fall randomly onto the document you’re reading. The real magic happened in the few hours I spent scribbling and scratching out ideas on paper. Here is the proof:

Ultimately, I am playing this game just as much as I am designing it. The result is that I get to discover this game over time, gradually focusing my lens until the idea is clear enough to formalize into a program.

>> Home