Adventure awaits

Dungeons & Dragons: Let us embark upon a fantastical adventure in this collaborative storytelling social game! Vim: Let’s code with terse editor commands! What? No, I’m not making a vim based Dungeons and Dragons game - I’m using vim to keep notes and write story elements (and blog posts). This is probably the driest and tech-hipstery blog post related to D&D you’ve come across.

I prefer vim. Or rather, after having used it in work I chose to stick with it. Then on reading “The Pragmatic Programmer” by Hunt & Thomas I decided not only to stick with it but to use it everywhere I could and make it my choice. When I set about writing up notes for my first ever Dungeon Mastering experience - the characters, settings, and encounters that define Dungeons & Dragons - Vim wasn’t so much a choice as a reflex.

Typing stuff is still typing stuff

Vim is a wonderful code editor. It is tiny and quick. It also has an expansive wealth of plugins that extend its feature set and improve usability in a multitude of ways. vimawesome.com does a fine job of collecting these plugins under useful categories and tags. A clever combination of plugins can transform vim into a fully fledged IDE. Which is nice for coding on a daily basis. But what about writing? Why would any sane person write fiction in an editor?

But what editor would a Bard use?

Writing and coding can look the same on the outside but they differ greatly. I can tell you that when I sat down with my laptop and began writing up a story - for other people to experience - my brain felt a whole lot different. It felt quite different than when I normally sit down to hand-jam functions, variables and conditional statements into a code-base. Some of it was familiar - the part or parts of your brain that imagines meanings and constructs in some manner of inner-space beholden to your minds-eye also chugs away when programming - but it feels stronger. Consider the difference a dancer might experience moving to an instrumental psychedelic rock song versus swing dancing jam session. It’s this new groovy element. A whole new consideration: The Player. The player’s experience. It is huge. Sure, it’s not too dissimilar from a client or customer but I feel it as real as night and day. Work and play. Up until that moment, my typing at a keyboard has mostly been to instruct computers to do things. Now I was typing words, sentences and lists to create notes of an experience for other people’s imaginations. What am I doing? I’m programming new human experiences by referencing others and putting them into an order that makes sense for me to reference mid-game. “Great”, my logic brain said to itself, “I can code, so I put some order on top of this mess of information and any ideas I have”. But, on opening up vim and dropping in a few lines I still had no messy idea to work from. I had to make it up - a story. Pretty soon I was thinking less about referencing lore and more “What is the player doing here?”. That weird feeling surfaced. Then the ‘on-the-fly’ aspect of DMing was beginning to dawn on me. Welcome the beginning of the creative process. My brain threw an exception right out my mouth; “…huh.”.

I just started my journey into preparing the first game. I was nervous! Vim is familiar, it is safe for me to mess things up, it is easy for me to find things and change things. I chose the editor to use, chose the format to write in and began writing with a single reflexive terminal command vim session-01.md. I decided to write it in Markdown! Just like these blog posts. I immediately got to writing up a little notion about where to start - a port town kind of like the tiny city I live in now.

Very quickly the feeling for the setting was getting defined - great. I know next to nothing about D&D, but I had the guidebook to help with the mechanics of running a game. Next, I want to make the players feel like they are in the Forgotten Realms, in Faerún - time to browse the internet for knowledge. I download a few maps of Faerún. I read wiki articles written by the esteemed lore keepers of the supreme geekdom and took notes of little details that stuck out to me as potential hooks and plot points.

While researching I was constantly evaluating and re-evaluating what I thought would be fun for the player, what setting I wanted, what the story ought to be based around. I felt kind of like Gandalf pouring over ancient scrolls in the depths of an archive in Minis Tirith searching for knowledge - tracing family histories and historical accounts of note to gain a greater understanding of the threat before him and any clues to evade or destroy that threat. This is a nice feeling. It will be revisited whenever conducting deep D&D research. I put the priority on general story outline first, taking notes in vim for main characters and their roles. At the same time, I started to flesh out the first session, the locations where I wanted the players to go. I briefly considered the locations that the players could go to if they choose, but decided against detailing those too much. I eventually had two files, one for the various plot points and important characters of the session, the other an info dump on the setting. Lots of sub-headings and lists.

Being somewhat prepared and mostly terrified

When game night arrived I was a nervous wreck. I had my notes prepared and my laptop with me, in vim. I also had printed out pre-generated character sheets and a map of the main encounter sketched out on A4 foolscap with annotations for my reference. The sheer immensity of Dungeons & Dragons is overwhelming - so many books with rules and opinions and lore, so many expectations. I now awaited the first Galway Gaming Tribes event of the year to commence. I laid out the character sheets along the table where this game would begin and new players would join who I’ve never met in my life. Three friends from a previous Dark Heresy campaign joined the game - two of whom are experienced Game Masters. Two new-comers joined too. It was terrifying for me. Hand-shakingly so.

Luckily the folks who joined were absolutely lovely people simply happy to be playing D&D for the first time in years. With the knowledge that the session was my first session I was granted a lot of support from everyone. The anxious feeling half-subsided and came back in waves throughout the night. I acknowledged those moments and let it happen. It had a kind of energizing effect too, I was busy having fun and making sure everyone else was having fun. That nervousness was similar in many ways to the breathless, heart-stuttering excitement I got earlier in the year when playing the drums live on stage for the first time in my life. So you know, a few deep breaths, a drink of water and I was grand. After my first session was wrapped up it was this great relief. I became very excited as I began stringing together more story elements factoring in the actions of the players during the game.

After my second session, I can say that it gets easier, just like when you’ve practised a tune loads your confidence builds. That covers the anxiety bit. However, GMing is a whole new level of social skill and awareness. You keep pace. You control when a scene may start and end. You are a lens into an imaginary world, exposing its reality through dice rolls and decisions. You are cooperating with other people to create this world with their characters and develop a sense of internally consistent reality. It demands a lot of social skills, compassion, empathy, perspective and decision making. It exercises one of my weakest skills quite heavily: storytelling. GMing is a serious occupation or hobby to get into. You will learn a lot about yourself and about other people, you will get to have some of the most fun inside your own head that is possible. Building up stories and encounters and then springing them on eager players, who react to it in their own way and collaborate in the act of storytelling is such a rewarding experience. I suppose GMing can be simplified to storytelling with rules. I can imagine humans have been doing this forever.

Vim is for Wizards AND Sorcerers

In using vim for the task of writing and note-taking I experimented with some plugins for creative writing. Winners: Goyo with Limelight. Distraction free writing with Goyo has been great for moments when I want to purely write up plot and setting without any fuss from my other code-focused plugins. As for note taking duty, well my plain old set up is fine for that. If you write code and are thinking about writing fiction, why not give vim or your code editor a go and see if it works for you? You can find those plugins I mentioned on vimawesome.com and GitHub.

Here are some useful links for your vim based first-draft: