What makes a good quest?

Many RPGs (role-playing games), especially computer RPGs, emphasize quests. In fact, one computer game, EverQuest, even has “quest” in its name. Often completing quests is one of the main ways to for characters to advance. There are other ways to advance, but often the other ways are repetitive and tedious and amount to little more than wandering around and killing whatever monsters the character encounters. The term used to refer to that kind of repetitive and tedious activity is “grinding”.

Quests are not supposed to be repetitive and tedious, but unfortunately they often are, and they end up just being another kind of grind: kill 10 goblins, kill 10 gnolls, kill 10 orcs, etc. True, quests usually have some kind of story, but reading the stories isn’t necessary for completing the quests, so they are often ignored. Rather than reading a quest story and looking for clues in the game world, players often search the Web for information about the quest, leaving a beautiful, immersive game world for a third-party web site cluttered with advertisements.

Is there a way to make quests more interesting and fun? I like to think so. But before I get into that, I’m going to define the target by looking at what makes a good quest.

A good quest system provides variety: a variety of quests and (perhaps more importantly) a variety of ways to achieve quests. That means that there are interesting decisions for the player to make. I’m not talking about decisions like “Should I use my +5 axe of decapitation or my +5 sword of walloping?” I’m talking about “Do I kill the guard, disable it, bribe it, sneak past it, or try to find another way in?” Do I try to cross the mountain pass in a blizzard or go through the mines that are full of monsters. (Okay, that’s not my idea, but it is my idea of an interesting decision.)

Good quests are challenging. That means that failure is possible, but there’s a big difference between “challenging” and “hard”. A quest can be hard to complete because it requires the player to make more than one attempt, but if each attempt is the same except for the outcome of simulated die rolls, then the quest isn’t challenging, it’s just hard. It’s a grind. With a challenging quest, there might be only one attempt. That means that failure is that much more painful but success is that much more sweet.

Adding story elements to quests is a way to make quests better. A player won’t care about a character that he or she sees once when getting the quest and again when completing the quest, especially when no information about that character is necessary for the quest. On the other hand if a player character interacts a character from time to time, and hears stories and rumors about that character, and needs information about the character to complete the quest, then it’s a different story. The player will pay more attention to the character and is more likely to care about what happens to the character. Characters are one story element that can make quests better. Other story elements that can make quests better are pacing, timing, drama, and narrative tension.

Good quests draw players deeper into the game world instead of encouraging them to go on a scavenger hunt on the Web. And, completing a quest makes a difference in the world, even if it’s a small one. A change that lasts longer than the respawn timer of the quest monsters.

Is it possible to make good quests? Of course. Then why aren’t there good quests in EverQuest? There are some good ones, but a lot of them are so-so or ho-hum because of the time and expense that creating good quests requires.

Is it possible to reduce the time and expense required to make good quests? Stay tuned…

Drawing and doodling

My mom stopped by this week to deliver the family calendar that my sister’s family made for 2017. The calendar is great, as every family calendar for the past 20 years has been. At least I think it’s been twenty years. Anyhow, along with a few copies of the calendar my mom also handed me a newspaper headline and one paragraph cut out from the middle of the story. The headline, from the Deseret News, is:

Of fantasy and faith: LDS artist James C. Christensen dies at 74

(You can read the article here Naturally, when I tried searching on deseretnews.com I didn’t find it, but when I tried a Google search I found it.)

I’ve heard of James C. Christensen before and seen his work now and then, but the thing I remember most is the story that was told in the one paragraph my mom gave me. Here it is:

When he served as an LDS bishop, he got a sketchbook that was black and formal-looking to use as he sat on the stand. “Then I got busted,” recalled Christensen in a 2013 interview with the Deseret News. “The next week on the back of the program was a box titled ‘Bishop’s Doodle Area.’”

Why did my mom cut out that one paragraph and give it to me? Because she knows, as do lots of other people, about my habit of drawing during church meetings. It’s a habit that started when I was in high school. I didn’t just draw in church meetings, though. I also drew in my high school classes, and later, in my classes at the University of Utah and my other college classes. Later still, I drew in faculty meetings and committee meetings at work.

In some ways, my time at the University of Utah was my golden age of doodling. The folders I bought to take notes in always had the kind of cover I could draw on. Because one folder had to last the entire quarter, I drew pictures that were time-consuming.

Most of my teachers didn’t notice my drawing and consequently didn’t comment on them. In one of my German classes, the teacher noticed my drawing and said some nice things about it, which I appreciated. When I was in the MTC (the Missionary Training Center of the Church of Jesus Christ of Latter-Day Saints) one of my teachers had a different reaction. He said I should learn to focus. That was more than 35 years ago, and I guess I still haven’t learned to focus yet. I’m not sure I want to.

The thing is that drawing does for me what meditation or medication does for some other people: It relaxes and calms me. Unlike meditation I can draw and still pay close attention to what’s going on. And unlike medication there are no negative side effects (unless you count mild criticism from an MTC instructor) and no bills to pay (paper and ink are pretty cheap).

Okay, I suppose that in a perfect world, or if I were a perfect person, I would be able to focus on a meeting, even a boring meeting without drawing, or fidgeting, or falling asleep, or (in the case of some department meetings at work, although no recent ones) getting frustrated and upset. But would I really gain a lot by doing that? It isn’t like I have to draw in meetings. From time to time I sit through long and/or boring meetings without drawing just to prove I can do it. (Although more often I do it because I don’t have my drawing materials with me.)

I don’t think I would gain much by not drawing, and I would definitely lose something: the drawings themselves. The process of drawing is great, but it’s also nice to have the product of that process. One of my missionary journals (which were kept in the same kind of drawable folders that I used in college) is a case in point. The cover that I drew on brings back memories just as effectively as the words written inside, but in a different way. The particular journal I’m thinking of is one of my favorite notebook covers ever, and I remember sitting on my bed at night and drawing before I went to sleep. It was a way of working things out and winding down.

But really what I like is the synergy. Last spring I missed the April LDS general conference because I went on a week-end field trip with my wife and her geology class. I listened to the talks later, and they were good, but I have to admit I had a hard time finding the time to go back and listen to them all. For the October conference I watched and listened in the usual way. Then one Sunday afternoon I decided to listen to the conference talks while drawing, sitting in the comfy chair I have in Studio D (which is the pretentious name I use for my basement hideout). In no time at all, it seemed, I had gone through a conference sesion or two.

Just to clarify, I don’t mean to downplay the spiritual aspect of church or church meetings. I admit I have a lot of room to improve in that regard. But I never draw during the sacrament service, which is the most spiritual part of LDS church meetings, and the pictures that I draw are about church topics (scriptures and hymns) or neutral (abstract and nature). I have a lot of room to improve, but like Bishop Christensen (presumably), I don’t believe that improvement is mutually exclusive with drawing. In fact, I think the two go together just fine.


The great thing about listening is that you can do it while you’re doing all sorts of other things: driving a car, washing dishes, walking to the bus stop, picking raspberries, and so on. Back in 2009 I got started listening to audio books, but I quickly found that there were relatively few free audio books that I liked. Then in 2013 I decided to plant a garden. It was a pretty small garden, but it had more than its fair share of weeds. I quickly realized I needed something to do while pulling weeds and watering and decided that podcasts were just what I needed.

I was not impressed with some of the first ones I tried. The iOS podcast I listened to was way too specialized and talked about all sorts of trivia. The Android one was even worse because there were a lot more devices to talk about. I tried a writing podcast that was okay but too vague and rambling to stick with very long. I liked a few of the “Stuff You Should Know” episodes that I listened to, but most of their topics are too obscure to be interesting to me. The only podcast that I listened to back then and still listen to now is Writing Excuses, which is a classic.

What podcasts do I listen to now? I’m glad you asked. Without further ado I will present my top five list of podcasts (with apologies to David Letterman for not making it a top ten list):

1. Writing Excuses

“Fifteen minutes long, because you’re in a hurry, and we’re not that smart”.

I like writing, or maybe I like to pretend that I like writing, so the subject matter is interesting to me, and it is usually educational and entertaining.

One nice thing about this podcast is that the ads are (or were) for books. Really they were ads for Audible, but that amounted to one or two sentences about starting an account and getting a free audio book. Now days they are supported by Patreon so they have a book of the week but no ad.

Speaking of ads, here’s a compensated link to amazon.com for my favorite book by Brandon Sanderson, who is one of the hosts of the Writing Excuses podcast: Elantris

2. The Allusionist

For a while I listened to Grammar Girl fairly often. Most of the episodes are about grammar and usage and punctuation, which are at best mildly interesting to me. The episodes I really liked were about linguistics, and those are relatively rare. The other thing about Grammar Girl that I didn’t especially like was the ratio of advertisement time to content time, which seems a little high to me. For the most part I don’t mind advertisements and usually just tune them out, but for some reason I found GG’s ads to more obtrusive than the ads in my favorite podcasts.

Then I found The Allusionist, where every episode has the kind of things that I liked in occasional Grammar Girl episodes. The title is great and I like the way the episode titles are shown in Boggle boards. Every episode begins with an “in which”, like

“This is the Allusionist, in which I, Helen Zaltzman, make the leftovers of language into a big sandwich.”

3. 99% Invisible

The web site has this description of the podcast:

“99% Invisible is about all the thought that goes into the things we don’t think about — the unnoticed architecture and design that shape our world.”

There are definitely some episodes about architecture and design, but to me it seems like some of the episodes are just random. Which is fine with me.

4. Freakonomics


Freakonomics had a series of episodes on productivity that was especially interesting. In particular, the episode about “How to Become Great at Just About Anything” was great. It talked about talent versus practice, and told the story of a lady in Denmark who became a singer in her 40s.

Here’s a compensated link to amazon.com for the book that Stephen Dubner, the host of the podcast, and Steven Levitt, an economist, wrote: Freakonomics

5. Planet Money


Don’t ask me why numbers 4 and 5 are related to economics. In general I would say that Planet Money is less academic than Freakonomics. I particularly liked the episodes about truffles and about buying 100 barrels of oil.

Honorable Mentions

Here are a few more podcasts that I like. I suppose I could have just made a top ten list, and then I wouldn’t have had to apologize to David Letterman.

The TED Radio Hour

This podcast covers a lot of territory. In some ways it reminds me of This American Life, which I used to listen to occasionally, but I like The TED Radio Hour better. I guess that’s because This American Life is interesting, but I wouldn’t really change what I think or do because of what I hear (or heard) in the episodes. When it comes right down to it, I probably don’t really change what I think or do because of the TED talks, but it seems to have a lot more potential in that regard.

I would like to watch video of some of the TED talks, but the time I have for watching video is much less than the time I have for listening.

Lexicon Valley

Like The Allusionist, this is a podcast about linguistics, but it’s more from an academic point of view. It has more information but isn’t as whimsical or entertaining.

NPR Politics

I started listening to this podcast fairly early in 2016 and really liked it during the primaries. The “Can’t Let It Go” part is interesting and amusing. However, for some reason when it got into the general election I lost interest. I guess it seemed like they were rehashing the same things. Maybe I’ll give it another try…

Story Grid

This is a writing podcast where an unpublished writer consults with the author of The Story Grid book. It’s interesting to hear them discuss different aspects of the story. I bought the book in ebook format. I like it pretty well, but I didn’t finish it. At least not yet. Maybe if I could listen to it…

Here’s a compensated link to the book on amazon.com:
The Story Grid by Shawn Coyne

The Naked Scientists

This podcast covers a lot of territory in terms of science. One thing I like about it is that it’s produced in the UK, so it has a different slant. For instance, in this podcast and in Naked Astronomers, they talk a lot about the European Space Agency, which I wouldn’t normally hear much about.


For the past six years or so I’ve been programming apps for iOS and Android. I’ve never published anything in the App Store or Google Play, but it’s been interesting and fun.

I learned Java in the mid nineties when it was still new and have been programming in Java ever since, so using Java in Android apps has never been an issue. The iOS languages are another story.

First there was Objective-C. I’m good with the C part, and it was nice that Objective-C was a superset of C instead of being a kinda-maybe-sorta superset like C++. The problem was the things that they added to C to get Objective-C. I don’t like all the nested brackets or trying to remember when I can use dots or when I can’t.

Despite the brackets and other quirks of the language, my biggest complaint with Objective-C was that it had limited use. Other than iOS and Mac apps, there didn’t seem to be much use for it. Not only that, but it was easy to play around with and try things out.

Then Swift came along. Xcode playgrounds provided a way to try things out, which was a good thing. Some aspects of playgrounds aren’t intuitive to me, but they are a step in the right direction. Even so, I still felt like I didn’t have a good way to learn the language. The problem is that a lot of mobile programming is about learning to use the APIs, and I always ended up learning just enough Objective-C or Swift to get by, rather than learning the language well.

For me, the best way to learn a programming language is to choose a project that I’m interested in and then use the new programming language to implement that project. I decided it was time to do that with Swift.

The project that I chose is an adventure game. (The adventure game itself is a topic for another post, so I won’t say anything more about it here.) Although I would like to make an adventure game that’s a mobile app some time, I wanted to focus on Swift rather than the iOS APIs, so I decided to make a command-line program. I’d never tried writing that kind of Swift program before, so I started searching the Web.

One post I found was this tutorial on raywenderlich.com: Command Line Programs on macOS Tutorial I wanted to write a command-line program and it’s a good tutorial, but the first thing it says to do is to start up Xcode. I am not a fan of IDEs. Maybe that comes from being an old-school programmer. (I learned how to program when dinosaurs roamed the earth in the mid seventies.) I put up with Xcode when I’m writing iOS apps, but I did not want to use it for this project. I wanted to write my code in Emacs, not Xcode. (There’s that old-school-programmer thing again.)

I continued my search and found this: Scripting in Swift Is Pretty Awesome Yes, it does have a screen shot of making a Command Line Tool in Xcode, but then it talks about putting a shebang line (#!/usr/bin/swift) to run things from the command line. That’s what I was looking for: no IDE required and a shebang line just like I can do with Python.

The author of the post mentions Python near the beginning of the post, which caught my attention because Python is my favorite programming language and has been for a long time. There are some things in Swift that are reminiscent of Python: No semicolons at the ends of statements, and no parentheses on conditions, to name a couple of syntax things. Swift does use braces rather than using indentation the way Python does. That’s fine by me because I like Python in spite of the whole indentation thing, not because of it. Like Python and JavaScript, and unlike Objective-C (at least the early versions), writing a dictionary literal is quick and easy. That’s a big thing for me, and is the reason I use dictionaries all of the time in Python and JavaScript but only use maps in Java occasionally.

I started to wonder if maybe in a few months I would have a new favorite programming language. Could it be? Alas, no. (Actually I probably shouldn’t say “alas” because I’m not particularly interested in finding a new favorite programming language.) Swift has some nice features, but there’s a problem that I ran into when I started writing my adventure game (which at this point is still pretty short).

In a word, that problem is “Foundation”.

You see, when you use the Swift interpreter from the command line, you can’t use frameworks. I didn’t think that would be an issue, but then I started to do things that any respectable scripting language should be able to do blindfolded with one hand tied behind its back. Things like splitting up a string or trimming extra white space from the end of the string. You can do those things pretty easily in Swift, as long as you have the Foundation framework. (Yes, there is a split global function in Swift, but it’s changed, and it seems to require the use of closures, and seemed a lot messier than it should be.)

The Krakendev post tells how you can use the Foundation framework in compiled command-line programs. It’s relatively painless, especially if you use make files like I do. (Did I mention I’m an old-school programmer?) But that’s only for compiled programs. It’s not like compiling a program takes a long time (although that was the motvation for the Krakendev author looking for a scripting language) but it is an extra step and it’s a big step away from the basic idea of scripting languages.

I’m still working on my adventure game project in Swift. Overall, I like the language. It’s possible that at some point a question about how to split a string might not cause arguments on Stack Overflow with 17 different answers (and counting?) to a question, but for now I’m resigned to using Foundation for my “learn Swift” project and sticking with Python as my favorite language, scripting or otherwise.

Here are compensated links to amazon.com for the Big Nerd Ranch guides to Swift and iOS programming:
Swift Programming: The Big Nerd Ranch Guide by Matthew Mathias and John Gallagher
iOS Programming: The Big Nerd Ranch Guide by Christian Keur and Aaron Hillegass