The End

Begin with the end in mind.

That’s what Stephen Covey taught me when I read his masterful self-help book in the ’90s.

As I began my mini-retirement (a.k.a. extended sabbatical) back in December, I had three things I wanted to accomplish.

  1. Get my game platform, StoryTime, into working condition with at least a few active players.
  2. Create an online training course that would sell long into the future.
  3. Turn all of this into a viable business that could last until I am ready to retire for real at a ripe old age somewhere north of 60.

Okay, only the last point looks something like an ending. The first two are competing ideas for how to accomplish the third.

StoryTime went pretty well. I built a working prototype, and a few dozen people have tried my story-game. Nobody has written a game of their own, though. Not the rousing success I had imagined, but I can see what it lacks. More attention than I am able to give it anytime soon.

The Create a Game training course came out but in no condition to charge for it and maintain my squeaky-clean integrity. So there it rests on my external hard drive. Meanwhile, I discover better material for free on YouTube all of the time.

I snuck in a voice-driven game for Alexa. That gave me a chance to code a game I invented and try out some cutting-edge tech. I don’t think a single person has tried my game. Not much of a reception, so that’s that.

This is my perennial problem, trying to do too much too quickly. Or maybe the problem is doing too many things. Or maybe the problem is that I try to go it alone.

Or maybe I don’t know enough to know what my problem is.

I need a team. I need mono-maniacal focus. I need a customer or two with the same problem to solve. And I need to create something those customers wanted, something they would value enough to pay for. That’s a business.

What I ended up doing was having a full-time hobby. Enjoyable, relaxing, fulfilling in many ways. But with barely a customer in sight, let alone a sale, it’s not a business.

Being honest with myself, this is precisely one of the possible endings I had in mind when I started. To play out some ideas. To satisfy my curiosity. To boss myself around for a while. And then to figure out what was next.

I prefer not to go it alone, and I tend not to persist on a path that is no longer right for me.

So the time has come. Time to join a team and make a contribution that matters. I am going to work for an established company. That beginning requires an ending.

And so I bring you…

The End.


Life Hacking—Little Adjustments to Make the Most of Life

Memento Mori

Remember, you will die.

A week ago, I went for a walk through a graveyard. It was kind of an accident. I was in the historic part of Dublin, California, waiting for my bank to open and had some time to kill, so to speak. When I visit that branch, I often look over at the neighboring Dublin Heritage Park and Museums. The visible part of the park is a big old barn with some picnic tables. Turns out that’s the Kolb Sunday School Barn.

All of the exciting parts are behind the barn. The Murray Schoolhouse (1856), Old Saint Raymond’s Church (1859), and Dublin Pioneer Cemetery.  The first occupant of the cemetery was Tom Donlon, who died while helping to construct the church. He fell off of the roof, and that was that. He was in his twenties.

Others include prominent families with names that are easily recognizable to anyone who lives in the Tri-Valley region. For instance, the Dougherty family, whose plot is one of the most prominent, also have a valley, road, and high school named after them. Poor Donlon got his own school, in a manner of speaking. The Fallon family got a shopping mall and residential area built out in their name.

History buffs would be thrilled to spend an hour or so checking out the tomb stones and placards. You can get a glimpse of what life was like, how many early settlers came from Ireland (it’s not a coincidence that the city is named Dublin), and what a struggle life must have been. What stood out for me was the proportion of people who died young, at least younger than I am now.

For instance, Mr. Dougherty died at 42. At the time, that was probably considered to be a ripe old age. He literally made a name for himself and completed his successful life journey in a tad over 4 decades. Here I stand at 47 thinking I have at least half of my life before me.

Of course, one never knows how much time is left. But the odds are in my favor of having at least a few more decades at this point. Gotta remember to stay off of my roof.

Life Hacks

What Are They?

That brings me to today’s topic, life hacks. As a software engineer, the word “hack” is emotionally charged. On one hand, the classic hacker carries a sense of intrigue, a certain panache. (That’s a fun word meaning “flamboyant confidence of style or manner.” You’re welcome.) A glorified, rogue programmer who slips in and out of computers undetected, acting as a vigilante, righting the wrongs of society or starting revolutions.

Think of the Matrix, where the ultimate hacker literally frees the world. At least for a while.

Or consider the protagonist in Mr. Robot going up against Evil Corp.

In a darker form, hackers are known to wear black hats, sit in poorly lit rooms, steal information or your identity, and influence elections. Hackers and hacks don’t often work for the forces of good.

Life hacks involve adjusting your behavior so that you might be able to extract more enjoyment out of life or even have more life to enjoy.

For example, remembering that you will die is a kind of life hack. This is the essence of stoicism. It’s also the basis for giving thanks to your maker, especially as you get older. Simply realizing that today is a gift helps you focus on the positive aspects of your day, which makes your experience better than if you spend all day griping and fussing over petty details.

On Optimization

Life hacks are a way to optimize the life experience. Optimization means trade-offs. You have to give a little to get a little. The trick is in turning trade-offs into trade-ups, where you exchange, say, suffering that you can tolerate for an outcome that you have been dreaming of.

For example, I decided in December to optimize my time by eliminating my daily commute to the office, saving up to 3 hours per day. In exchange, I merely had to quit my stable, well-paying job. That’s a trade-off: more time at the cost of some anxiety.

The anxiety comes from the worry that I will run out of money and never be able to get another job because of the “gap in my resume.” While I could have spent my time fretting and imaging doom and gloom scenarios, I used meditation and positive imagery to suppress my concerns. Those life hacks allowed myself the freedom to work on my favorite software projects without not having to suffer (much).

Notably, on days when I skip my morning meditation, my anxiety rises a little. Changing behavior takes effort because old habits return in moments of weakness. Life hacking requires conscious time and attention until the hacks become part of your identity. At that point, you won’t have to think about them any more.

Then you can find more areas to hack. Or simply enjoy your improved lifestyle.

Finding Hacks to Try

Knowing what to hack is a matter of learning what others have tried and personal experimentation. At best, you can find a way to improve your life without making unsustainable trade-offs. At worst, well, you’re going to die anyway at some point, so the downside is limited. (*removes tongue from cheek*)

Somewhere in the middle, you can drive yourself a bit nutty in an attempt to layer on too many new behaviors at once. Life hacks are often in conflict with each other. Should I start the day with a full breakfast? Or is it better to skip breakfast? Or just delay breakfast? Eat only two meals per day, or nibble on small snacks throughout the day?

Side Effects

I have found an insidious side effect of having a better life. The more time I spend in a productive flow state, in living comfortably in the now, the faster time seems to pass. Would it be better to remain idle and suffer boredom so that life would seem to go more slowly?

My answer is no. My training in physics taught me that the actual passage of time is relative to the speed you are traveling. Psychology has taught me that perceptions are not to be trusted. Armed with this knowledge, I can assume that my perception that time is moving at different rates is an illusion, since my speed is relatively constant, primarily influenced by the rotation of the Earth and other cosmic movement.

So I want to enjoy as much time as I can while I’m still here to enjoy it, even if it seems to whiz by. That’s the bottom line on my ledger of life.

With that premise, let me take you on a tour of a typical work when things are going well. As I explain my day, I will point out the life hacks that I am trying. Where I can remember, I’ll tell you where I got the ideas. And I will wrap this post in a bow with suggestions on where to find ideas to try.

A Day in the Life of Hacks

Wake Up

I tend to wake up without an alarm. That’s because I am pretty good at knowing the time. Even when I set an alarm, I usually wake up about a minute before it goes off. That how my simulation works.

Most days I aim to wake up at 6:00 or 6:15 AM.

Scott Adams of Dilbert fame is one of my heroes. He’s a proponent of the idea that life is a giant simulation. Since proving a negative is impossible—that is, I cannot prove that life is not a simulation—let’s say that it’s possible. Everything we are and experience could be the result of some massive computer system. That frame of reference is a useful life hack for reasoning about why things happen.

In fact, when I was a teenager, I bought a booklet by mail order that told me about “Mind Power.” The booklet espoused the notion that the brain has unlimited potential, and one could use auto-suggestion to tap into that power. The book prescribed an exercise where you would tell yourself at night to go into deep sleep and to wake up precisely at whatever time you specified. It worked, and now it’s part of what I can do!

So rather than taking credit by saying “I’m a master at waking up on time,” I’ll just say I am programmed that way. That booklet helped me program myself.

Maybe you thought “waking up” couldn’t be hacked.


Now that I am awake, it’s time for a little exercise. I like to start with a short routine that combines stretching, isometrics (push-ups, sit-ups, lunges) and karate moves (orchestrated blocking, punching, kicking).

Every part of the routine could be considered an exercise hack. Stretching is a hack against stiffness that accompanies the ripe old age of 40-something and beyond. Sit-ups and push-ups were someone’s idea for retaining muscle mass once humankind invented too many labor-saving devices. Karate is a specialized set of movement hacks for putting down attackers and defending your village.

In high school, my track coach showed us how to stretch for running. In college, I took fencing for one semester and learned to exhale while reaching to touch my toes. Now, over the course of 10 breaths, I can usually get my nose pretty close to my knee. Yoga taught me how to stretch my spine. Karate taught me to build strength and flexibility by holding bent-knee stances and moving in unnatural ways.

You have probably picked up many life hacks without realizing it.

When I started, my minimum routine included at least 20 sit-ups and 20 push-ups per day. That was all I expected of myself, so it was easy to achieve. And once I got started, it was easy to add more repetitions and more kinds of exercise.

To increase the likelihood of exercising, I might put out my shorts and t-shirt the night before.


After 15 to 20 minutes of light exercise, it’s time for 15 to 20 minutes of meditation. I put on a long, flowing robe, light some incense, and…

Okay, just kidding. What I do is very simple. I attempt to think of nothing other than a few things: my breathing, how my body feels, awareness of sounds around me, and specific calming and empowering visualizations.

I sit on the floor with my legs folded under (i.e., seiza style) and close my eyes. I try to count my breaths and get to ten without losing focus. When my thoughts stray, I simply notice and calmly return focus to my breath or the sounds around me.

Twenty minutes is a long time to consciously think of nothing. After I have my breathing in check and am settled, I will turn my attention to some form of imagery. In one form, I imagine that my breath is clearing out and energizing my body. Light comes in, exposes the crud that has built up, and it everything flows out when I exhale.

I am often a little surprised at the effort it takes to clean and polish my mental image. As I do this on consecutive days, it gets easier, though I can always find some dark spots or smudges to work on.

Sometime I imagine that I am floating in white clouds. That’s one of the easiest ways I have found to clear my mind. An endless sheet of white paper, an expansive fluffy cloud, looking out on the ocean from a cliff. It helps to have something to image that is essentially a view of nothing.

When I started, I set my timer for five minutes. Over time, I increased to ten minutes, then fifteen. Now I can do twenty minutes, but I’ll dial it back to fifteen if I am in a hurry. I have heard that even ten minutes a day has life-changing effects.

I am certainly much more calm these days, though I question the wisdom of removing all stress, as I have written before. Again, it comes back to trade-offs. Humans developed anxiety for a reason. Perhaps the right balance is to be aware of dangers but not to carry around that worry. So I continue to meditate.


Then it’s time to feed the cats.

Unless you are in a depressurized cabin of an airplane, it is good to help others before you help yourself. Also, my cats are pretty direct with me about wanting to be fed. Although I make them wait until I’ve gotten my blood flowing and my brain is fully alert, they always get their breakfast before I get mine.

Studying Japanese

About three years ago, I started my day by studying Japanese. That worked well, too. I learned more kanji and vocabulary in 12 months than I learned since I first started studying 25 years ago.

The book Fluent Forever by Gabriel Wyner offers an amazing assortment of hacks for learning languages. The best is to use variable-spaced repetition, which is a technique my grandfather taught me when I was growing up. The other key is to make your own flash cards. That way you are studying as you put together the materials you are going to study.

This is a good example of conflicting life hacks. One set of hacks said, “The first thing you should do every day while your mind is clear and attentive is study.” Another set of hacks said, “The first thing you should do every day is exercise.” Yet another said, “The first thing you should do every day is meditate.”

But I couldn’t squeeze in all three and also start my long commute on time. So I ended up dropping Japanese practice.

Later I tried picking it up again as a mid-day practice, but it wasn’t integrated well with the demands of my day. It was overwhelming, and I had to stop.

It’s all about trade-offs.


When I was growing up in the 70s and 80s, breakfast usually meant cereal, milk, orange juice and toast. As kids, my sister and I rarely ate blatant sugar cereals: no Cocoa Puffs or Fruity Pebbles. Instead we ate adult forms of sugar cereals: Raisin Bran, Life, Nature Valley granola. Most Sundays, we had pancakes with syrup, or sometimes waffles or French toast. Tasty stuff.

These days, we know that carbohydrates are a poor form of nutrition. No wonder they have to fortify cereal with all of those vitamins.

When we visited my grandparents, we would have bacon and eggs with Freihofer’s boxed donuts. Plain, cinnamon or powdered sugar. Mmmm. That was a rare treat, the kind of breakfast you should only have once in a long while because bacon and eggs had been branded as “unhealthy” by the FDA.

Turns out that bacon and eggs are good for you. Donuts, not so much.

Around 2010, we dealt with a health-related emergency that forced us to rethink our diet. My wife cleverly found a book called Good Calories, Bad Calories by Gary Taubes, which explains the history of nutritional misinformation that led to my traditional breakfast choices.

Now I stick to eggs, yogurt, fruit, peanuts, and coffee for breakfast. Sometimes bread or toast with peanut butter. Sometime a piece of cheese. In contrast with days where I skip breakfast (one of the life hacks I tried for a while) or eat a majority of carbs, the protein-based breakfast keeps me from getting hungry until lunch time.

I didn’t used to drink coffee, but I find that it boosts my creative capacity, which is perfect for my morning work routine. Two to three “cups” (scoops of ground coffee) is about right for me. More than that makes me anxious and flighty, jumping from one task to the next.

Getting Ready

The big news here is that learned that cold showers offer a health benefit. Many people take long ice baths. Apparently, the shock to the body makes you more resilient to germs.

But cold showers are unpleasant, so I have been trying a compromise. I get into the shower before turning on the water. During the first minute or so, my head, shoulders and torso get their jolt, while I wash my hair.

Has this hack kept me from getting sick? Not entirely. I have caught a couple of colds in the past year. Other factors influence health, too. At least it wakes me up and saves water since I’m not waiting for the water to get hot.

I am lucky to have hair, so I comb it. Gel is a hack I tend to avoid. Maybe I would be a better salesman if I started using it.

I am lucky to have teeth, so I brush them. I got a free electric toothbrush when I switched dentists a few months back. I tend to daydream and brush too hard, which is rough on my poor gums. So my new toothbrush leaves things to the vibrating bristles, which is a pretty good hack for keeping my teeth clean while sparing my gums.

I am lucky to have clothes, so I put some on. Yeah, that’s not really a life hack.

Commuting to Work

I can think of two hacks I use to get to work. The first is not to go anywhere at all. Working from home is a great way to save time and have a semi-controlled environment. On the down side, it drives my wife a little batty having me around all of the time. So I started using a co-working space that’s only 20 minutes from home. All of the benefits (and distractions) of a professional office at a fraction of the cost.

The other hack is that I bought myself a Tesla last year. With semi-autonomous driving, my car removes most of the stress of stop-and-go traffic. I don’t have to worry nearly as much about the car in front of me suddenly braking because my car adjusts its speed based on distance. That takes a load off mentally.

Also, I like not having to burn fuel. The roof of my house is loaded with solar panels, so my electricity usage is net zero, straight from the sun.

The trade-off is that I picked up a significant car payment.


I suppose my work habits are full of life hacks. I will not go into them all.

Having full control over my schedule is a mixed bag. My best work days tend to happen when 80% of what I will do is on the calendar. During creative periods, I like to reserve two blocks of time in the morning for creative work. Usually that means writing prose or developing software. I might do 90 minutes of each before switching to email and errands.

Setting aside long blocks of uninterrupted time is a good hack to ensure that you achieve a state of flow. My best work tends to come out when my objectives are clear and my mind is completely immersed in the act of creation.

A complementary trick is to batch up outbound communications. On good days, I pick a couple of times per day to respond to email and make phone calls.

I have also tried work days that are unscheduled. These tend to be a disaster in terms of productivity. From time to time, I am not sure what to work on, so productivity is not really the issue. Wallow a little helps me find a threat to pick up that leads back to something productive.

Not exactly a hack. More like an anti-hack.

Evening Routine

This review has helped me notice that my life hacks cluster toward the beginning of the day. I suppose that morning is when I have the most control over what happens. Work is driven by all kinds of changing priorities and interruptions. After work is taken by getting kids to hockey practice, having dinner, relaxing and getting ready for bed.

By the end of the day, my will power is shot. I know that I should avoid dessert most nights, but it’s so tasty. I know that I shouldn’t look at a screen 30 minutes or more before trying to fall asleep, yet Netflix is so tempting.

I learned in college how to hack my sleep. Psychology 101 taught me that our sleep cycles last roughly 90 minutes long. Waking mid-cycle is counter-productive in terms of the restorative effects of sleep.

For years, I only slept 6 hours (4 cycles) per night. While attending a concussion clinic (my kids play hockey), I volunteered to get tested as part of a demonstration of some new high-tech equipment. The idea is to gather a baseline that can be contrasted with the results after a future blow to the head. The concussion test easily exposed my sleep deprivation. That’s when I changed my sleep pattern and bumped up to 5 cycles.

So if I intend to wake at 6 AM, I need to be asleep by 10:30 PM. The older my kids get, the tougher that is to do. I’m in no hurry for them to grow up and leave. Trade-offs.

Discover Hacks for Yourself

Just about everything new that I have tried over the past 5 years comes from four or five sources.

I credit Tim Ferriss and his cast of Titans for ideas about fitness, diet, stoicism, and amped-up modes of thinking. Tim’s podcast is a virtually endless source of information. You can never cram all of the ideas into your life, so be choosy.

James Altucher teaches his daily practice of caring for physical, mental, emotional and spiritual self. He’s also a master at idea generation. You can learn a ton from his podcasts, too.

Scott Adams is more than a famous cartoonist. Has a sensible approach to trying and failing, as well as a masterful grasp on psychology. Now Scott offers a daily dose of psychology via Periscope using political current events as a rich source of material for discussion.

TED talks are good, though the more formulaic talks make you feel good without leading to action.

I like the Hidden Brain podcast for new thoughts on psychology.

And of course, the world is full of books written by people. Brilliant people. A majority of whom are dead. Spend some time reading and applying what you learn to make the most of the time you have left.

Happy hacking.


Why I Abandoned My Course About Game Design

Photo by Cindy Tang on Unsplash

What does it mean to fail?

We see failure in little things. My kids get loaded with standard-issue plastic junk at birthday parties. It’s colorful. It works for about 2 minutes. Then it breaks, left in a pile on the floor. Eventually the pieces find their way to the garbage.

Clothing can fail, revealing a bit more than intended. The accidental view may be stimulating or grotesque for the innocent bystanders. I’ll leave it to your imagination.

On a more serious note, failures of infrastructure are inconvenient and sometimes catastrophic. Think of the power going out or a gas line explosion.

Or think of what happens when a freeway bridge fails. We usually drive over bridges without considering the amazing benefit they provide. While the most famous bridges stand blatantly tall, with their elaborate suspension cables and lighted towers, most bridges inconspicuously support traffic from below.

I remember a bridge that went out on the New York State Thruway in the late 1980s. The river it spanned was swollen from the winter thaw and a heavy spring rain. The current washed out the supports, leaving a wide gap in both directions. A number of cars and trucks went over before someone realized what had happened and stopped traffic. According to reports, ten people died.

That bridge was along the over-the-river-and-through-the-woods path that we always took to visit my grandparents for the holidays. It’s shocking when something you have depended on fails so badly.

What else can fail? How about human failure? Schools threaten us with it. We can fail a test or a paper, fail a class, fail a grade, fail to graduate. Even if you manage to get through school without failing, you can still fail to accomplish anything important in life.

Even if you do accomplish something important, you can fail to spend enough time with your family. Or the important thing you accomplished can eventually fail. Apparently failure to drive the bridge supports deep enough in the 1950s is what led to its collapse some 30 years later.

So even those who manage to do incredible good, say by constructing time-saving, super convenient infrastructure, make mistakes that lead to failure.

Life is messy and unforgiving. Entropy is always against us. To survive, we find ways to cope.

If you read lofty quotes, you know the feel-good adage that failure only comes when we give up. Clearly that is not true in the sense that many failures occur despite perseverance. Nevertheless, that mindset is more productive than one of permanent hopelessness and despair. We need encouragement to keep going, to keep trying until things work out.

With that as a backdrop, let me tell you about my latest failure. It’s a good story, and I think you can use it to keep yourself going with whatever you are trying to do.

I took a course last year that teaches people how to make money selling online courses. Yes, that is something of a twist, that someone can sell a course about how to sell courses. You might expect the punchline to be that the whole things was a scam. That couldn’t be further from the truth.

Still, it’s not easy to find a subject that enough people will pay for to make an profitable business out of it. I tried to follow the formula. It goes something like this.

  1. Think of all of the ways to make money online. Put them into buckets, and realize that one of the best ways to make money is by selling knowledge. Better than ads, better than games (believe me!), better than large-scale software systems (for the solo-preneur, that is). Better than cat videos.
  2. Pick a topic that you know well enough to teach others who are less knowledgable. You just have to be more of an expert than the people you intend to teach. Since I have designed a few games, game design for beginners is a good choice.
  3. Find a market with a burning need or pain point. Blog about interesting things “where your market hangs out online,” and build up a list of followers. Get at least 100 of “the right people” to follow you. It’s not enough to have a bunch of your buddies. You need access to potential customers.
  4. Create a course that solves a burning problem of your market. Make it a work of art, a masterpiece that you can sell for about $50 with a clean conscience. You’re going to offer a money-back guarantee, so it needs to be solid.
  5. Launch the course, and enjoy months of success as people benefit from enlightenment and tell their buddies with similar needs. This is the part where you make money while you sleep. Notice all of the work it took to get to this point? No one said it would be quick or easy.

I did bits and bites of all of the steps, but I have to admit that I skimped on step #3. I never found my real market before creating my course. Only my imagined market of beginners who want to start designing games.

Now, it turns out that they really are out there. A couple of times a week, someone new will ask on Reddit how to become a game designer. Usually the advice is to “watch free videos on YouTube” and “just get started.”

My course has a few additional benefits over the standard advice. It covers the fundamentals and provides structure for coming up with game designs. By the time you finish the course, you will have designed your first game. I think most people could use the help, which is why they are asking for it.

So I charged ahead and spent a week sharing “interesting content” with folks on Reddit. With just a few posts, I managed to attract hundreds of readers and got one pre-order. That’s right. I only managed to get a single serious prospect for the course that I wanted to launch by the end of the month.

Figuring that it could just be a matter of time and marketing effort, I considered launching my course anyway. If nothing else, I would learn the remaining aspects of the business.

So, I moved on to step #5. That’s when I realized that hosting my course would cost about $35 per month. Heh, with my one student, I would be making about $27 at the discounted “introductory” rate. That came with a money-back guarantee and a promise for a full year of access. I would have felt better with at least ten prospects.

However, it turned out that the real kicker was that I also skimped on step #4. The videos I produced are packed with information, but my delivery skills are pretty bad. I failed to create a masterful work of art.

Originally, I figured I the lower price point would compensate for the lack of quality, but that was before I watched the free videos. They are so well produced, they made me blush. There’s no way I would charge for my rough-cut videos.

To recap, here’s a summary of the issues with Design a Game.

  • I have practically no one to sell to.
  • I don’t think anyone is suffering for not knowing how to start designing games.
  • My production quality is too low. I need a lot more practice to become a decent presenter on video. Also, my scripts could use some polish and pizzazz.
  • The economics are wrong.

Doing a better job and getting things right would easily take 3 to 6 months. Meanwhile, the mortgage payment keeps popping up, my kids need to eat, and life in California is expensive. In other words, I need a real source of income.

As it stands, enough of the elements are wrong that I decided it would make more sense to put the whole thing on hold while I put myself back on the job market.

Did I fail? Sure. Am I stressed about it? Nope. Much better to recognize what was happening and cut my losses than to continue stubbornly along the wrong path.

So that’s that, and life goes on.

Want to hear about what I am trying next? Subscribe, and I’ll write about it next time.


How Prototyping Saves My Sanity

bugatti-1612389_1280I am a firm believer in “good enough” mentality. When creating something, it helps to decide what would be good enough for the purpose you have in mind. Then you intentionally aim for that target. I would say that is the crux of any “lean” approach to writing software or starting a company. You do just enough to reach your objective and no more. That way you can avoid waste. Reasonable people can agree that avoiding waste is generally a good thing.

Still, the phrase “good enough” can be an excuse to avoid difficult work. It might also be used to rationalize being stingy, holding back what would benefit others. When striving to exceed expectations, an abundance mentality is more appropriate than squeaking by with something that is “good enough.”

To be effective, the phrase “good enough” has to be followed by the question “for what?”

If your purpose is to sell something, it has to meet a need that people will pay for. If your purpose is to gain notoriety or to build a legacy so that you are remembered for generations, you are setting the bar quite high. Whatever you create had better be outstanding.

As a solo-preneur—that is, someone working alone on bootstrapping a business around game design and development—my bar for good enough has to be relatively low. I am continuously testing ideas for viability. The ideas need to be good enough to gain even a little attention and to see what might work in a grander scale. I do not count on selling much in the early stages.

In my mind, ideas evolve quickly, and before long a vision begins to crystallize. Imagine with me that I have attracted thousands of followers. People are happy to use my amazing software and pay for it without hesitation. I have grow my company to a half-dozen people, and we are busy creating ever more software people love.

Hollywood has conditioned me to suspend my disbelief, so believing in my fantasies is easy. The hard parts are ignored, risks are dismissed. Would it be prudent to go all-in based on the movie of success in my mind? No, that would be crazy, or at least rather foolish.

Others would think so, too. They might whisper behind my back. You can almost hear the critique.

  • “Is that guy nuts?”
  • “What was he thinking?”
  • “He thought this drivel would draw an audience?”

On the other hand, all I need to do to keep my sanity is prove that the idea can work. Engaging in research and development toward in the pursuit of an idea is certainly reasonable. If it works, I’ll have something to show that others can understand. If I cannot find a way, or if it does not work as well as I imagined, I can use that evidence to adjust my idea or walk away from it.

With any non-trivial project, such as putting together an online game, I like to work in stages. The first stage is intended to answer a few questions.

  1. Can my idea work?
  2. What kind of effort will it require?
    • What skills?
    • What creative elements?
  3. Will the idea be interesting enough for others?
    • To try?
    • To pay for?

This first stage is a great time to build a prototype. Our ideas can be full of magic that needs to be turned into moving parts based on physical reality. A good prototype does the trick.

An Analogy

Think about a car manufacturer who wants to develop its first electric car. Does the company sell the first car it produces? No. Does it even have an assembly line for the first car? No. Although the car company knows how to produce cars, an electric car is fundamentally different than those that burns fuel. That requires some new ideas.

A team in a research lab might start by assembling by hand a wheel, an axle, an electric motor, and a battery. Someone might write software to control the motor. Although far from being a complete car, this is a basis for learning how an electric car might work.

Once those pieces are working together, the team might add a brake, updating the wheel and controller to accommodate. The team might try cutting-edge technology as well as something more traditional. In fact, they would consider the technology choices for each component, whether to stick with what has worked, to try something ground-breaking, or to invent their own technology specifically for this new purpose.

They probably have things wired to test and measure their attempts. Do the breaks get too hot? Can they overpower a runaway motor? Can a bug in the controller software lead to a safety issue?

The point is to learn, to push the boundaries, and to prove what can work. This is the essence of prototyping. See if your ideas can work, get a sense of the effort involved, and give yourself a way out before spending too much on full development and the trappings of a production launch.

Decisions about paint colors and interior fabrics can probably wait. Adding a rocket booster is probably also out of scope, as tempting as it might be to explore.

A True Story

Back in December, I wrote and launched my first release of StoryTime, which is a game platform for writing and playing interactive, text-based adventures. The first release was good enough in about two weeks.

By now you know to ask, “Good enough for what?”

Glad you asked. My target was to launch a “reader” application for playing story-games, with one complete story loaded and ready to play. The launch was merely a matter of hosting the system where anyone with an Internet connection could try it.

I did that.

Then I needed a way to register authors, so I added a database to the back-end and hooked up an identity provider to handle sign up and authentication. That work included a feature for players to opt-in and become authors.

Once it was working, I released it.

The release was nothing fancy. Real authors would probably want to provide a lot more information about themselves, like the write-up that you find on the back of a book cover. I only wanted to show that I could save any information about the author. What I had was good enough as a proof.

Then I added the Writing Desk, where authors go to write their story-games. It’s slightly more complicated than using a word processor because you have to hook up the scenes in a certain way. However, there’s no coding involved for the author. Just type and save.

So I released that.

The Writing Desk also lacked features that would make for a carefree user experience. One problem was the way the story was organized. The layout made it possible to get to everything but not necessarily intuitive. Also, the editors lacked feedback cues, and without auto-save, it would be easy to lose work.

Still, it was good enough to show how all of the pieces of a story-game could be written and connected.

Then I added a way to publish story-games. That promotes a game into the library where anyone can find it and try it out. Although the UI had a couple of refresh issues where updates were not being displayed immediately, nothing was broken fundamentally.

So I pushed that out, too.

The publishing step involves categorizing the story-game by assigning a rating (for age-appropriateness) and one or more genre. While capturing the information was import to show how stories might be grouped and searched, new features are needed to make use of the information. That didn’t stop me from releasing.

And there it stands, a working example of a simple gaming platform. Is it good enough? Well now, that depends, as you know. Good enough for what?

If I believed the movie in my head, the fantasy that I was creating something thousands would love and pay to play, my only option at this point would be to break down and cry. StoryTime is nowhere near good enough for commercial purposes.

Luckily, I have a mindset that allows me to appreciate what I have done and use that to understand what I could do next.

What I have done is to build a prototype of the gaming system I imagined.

  • The prototype is not colorful, at least not in an artful sense. At least I used Bootstrap for styling, so it isn’t horrible. Unless you don’t like Bootstrap.
  • It is not elegant. As I mentioned, it’s pretty easy to lose work, which is about the worst thing that can happen to a writer.
  • The library is still nearly empty. It’s got the one story-game that I wrote back in December. I have been too distracted to write another. Also, droves of writers have not decided to invest irrationally in a game platform without players, an ecosystem, or an obvious payout. Go figure.
  • Mostly players don’t want to become writers. In fact, players want graphics. A text-only game is a tough sell these days.

A game designer ask if StoryTime could be used as the story line in Unity, a popular game platform. That’s a good idea. So perhaps what I have done is assemble a new mechanism that could be built into a larger system. Like figuring out a drive train based on electricity.

As a stand-alone gaming platform, StoryTime could use so many more features. What about illustrations, at least for the cover art? How about collaboration? Shouldn’t there be a review process to make sure what’s being published meets community standards?

Say authors actually used StoryTime to create alternate-universe games. How would games be sold? What’s the business model? Some companies have made this work. Others have closed their doors.

In short, the gap to realize my dream for StoryTime is huge. Finishing will involve a lot more work. It will also take more talent than I have. To see it through, I will need that six-person team. And I still don’t know if would be worth it.

Meanwhile, something else happened that would be enough to drive a normal person bonkers.

Who Moved My Technology Cheese?

The last release of StoryTime was in April. Since then, I have been busy with other concerns. As I returned to my little coding project last week (now July), I found what has become a familiar scene. The software still runs, but everything it relies on has moved. Allow me to explain.

When I started this incarnation (let’s call it the 3rd go) of StoryTime, I made some choices for the underlying software technology. First, I decided to go 100% JavaScript. StoryTime uses ReactJS and its ecosystem of modules for single-page-app support. On the back end, StoryTime offers a service with a REST API defined using Open API 3.0 (a.k.a. Swagger). The service uses Express on NodeJS 8. That connects to a PostgreSQL database where the stories and data are kept. As any React developer might guess, the app uses React Router for navigation and Redux to manage UI state. I also chose Bootstrap for styling, as I mentioned before.

Everything is written using es6+. That’s a relatively new form of JavaScript that anyone serious has been using for a while, with Babel transpiling down to something that older Web browsers can understand. Of course, it’s all built by Webpack, with as many unit tests as I could remember to write (not enough).

The whole thing is hosted on Heroku, which had just introduced pipelines. So I check my code into Git and pushed to GitHub, where Heroku notices the update, pulls it down and builds it on my staging server in the cloud. After that, I try my changes in staging, which is as close to production as you can get. In fact, when things check out, I simple move that build to production using a little button on the pipeline. Easy.

Also, I installed PaperTrail in order to see the last few days of logs. After all, I want to know when people are using the game.

Even if you don’t write software for a living, you can see that there are a lot of parts. Many of these parts are moving, too, in that they are supported by communities of active developers who keep changing things.

So I am used to having to upgrade components rather frequently. But stepping away for a bit changed my perspective. Here are a few of the shocking revelations.

  • JavaScript is losing favor to TypeScript.

TypeScript is a superset of JavaScript that introduces type safety, a much-needed measure of control, to JavaScript. Now you can ensure that an object conforms to the shape that is expected. All the flexibility of a scripting language with the safety of something that gets compiled, like C, C# or Java.

  • Redux sucks.

Redux is the “recommended” approach to managing client-side state. A Redux store is a good place to keep facts that you want to show in the UI. For instance, the fact that an edited scene needs to be saved might be recorded in a Redux store.

The truth is that the Redux approach is hard. I’m not just whining about it. It adds overhead and comes with a mental tax. I waited as long as I could before adding it into StoryTime because I knew that it would slow me down. Now every time I return to add something else to the store, I have to remember the gymnastics to make it happen.

  • Bootstrap looks horrible.

I mean it’s okay, but not really. Certainly not with my limited skill at styling. Also, I tried using reactstrap with its React-ready components for applying Bootstrap styles, but the documentation was insufficient for someone in a hurry. I had to keep looking at their code to know what was ready and how to use it. Bah.

  • Node is on to version 10.

You can still use 8, although it’s now on long-term support (LTS). Might as well start thinking about upgrading and what that will mean.

  • auth0 has a pricing model that will crush me beyond 6,000 (or so) users.

I knew this going in, but figured I would adjust if I ever got close to that level of adoption.

Any one of these gaps might not be worth a full-scale rewrite. Yet combined with the realization that I have been building a prototype and that no one has even tried to write a story-game yet (aside from my dad. Thanks, Dad!), I feel completely at ease walking away from this PROTOTYPE and starting over with a better idea.

Once again, prototyping has saved my sanity. I get to chalk it up to learning and decide what to try next.



Doing Something Valuable

For most of my adult life, I have believed that I will be compensated in direct proportion to the value I provide.  People will pay for things they value, so if I put in the work and deliver valuable things, I ought to be paid a fraction of that value.

In a perfect exchange, I would receive exactly as much compensation as the value I provide.  However, most good shoppers are looking for deals.  They want to get more value than they are paying for.  An ethical sales strategy is to point out all of the aspects that might be of value.  As the perceived value goes up, the buyer becomes willing to pay more, getting closer to the perfect exchange.

The lazy part of me wants the compensation-to-value ratio to skew in my favor.  That is, I would love to be paid more than the value I give.  While this is possible (consider extreme examples like welfare or stealing), that kind of situation is does not lead to a sustainable, positive lifestyle.

When the buyer pays too much, the exchange is out of balance.  Not getting the expected value, the savvy buyer will feel cheated.  She will either return to demand a refund or never return.  Regardless, she will only mention you to her friends as a conniving villain, not quite the referral you were hoping for.

Over promising, under delivering, or being deceptive in any way are value problems that lead to over compensation and erode trust.  That is why I try to ignore the lazy part of me.

Instead, I get to my desk every day and work on things that others will value, someday.  People like to play games.  Many like to create games.  Writers need to find popular outlets for their work.  Collaboration allows groups to create things that are more valuable than when people work alone.  By providing a safe, nurturing place to create and play, I intend to bring value to millions.

Here’s the math.  Say I can bring an average of $25 of value to a million people.  Even if they are only willing to paying $20 each, that’s a pretty good exchange.  How to provide such a massive amount of value is the trick.

Or if I could sell just one bridge…


The Hammer and Anvil of Creation

Think back to the last time you created something new.  How long ago was it?  Perhaps it was this morning when you made breakfast.  Perhaps you are lucky enough to have a job that requires creativity.  Or maybe you have not created anything of significance in a good long while.  The act of creation can be thrilling or terrifying.  On one hand, turning our ideas into reality feels good.  On the other hand, creation comes with the social risks of criticism and failure.

For many people, life is centered around the daily grind.  Repetitive, predictable, safe, the daily grind has its place in getting things done with a minimum of mental anguish.  When the grind gets too monotonous, we daydream, which kindles creativity and relieves our boredom.

I am a maker.  I seek the satisfaction of creating something with my own thoughts and fingers despite the risk of criticism.  In fact, I frame criticism as an essential element of feedback, which is simply information about what you have created.  Using feedback, you can decide if things are good enough or need to change in some respect.  Feedback is the hammer and anvil of creation.

For inspiration, I like to think big, and mythology offers a rich supply of big ideas.  Take Hephaestus, the Greek god of fire and volcanoes.  Taking a quick look at the pictures in this article, you will notice that the primary tools of this god are the hammer and anvil.  Together they induce feedback on some item of heated metal until it becomes something useful.

While looking for pictures of Hephaestus, I learned a few things.  This god was ugly.  His face was unshaven and dark with soot.  His chest and arms were huge, but his legs were weak and his foot crippled.  This is not the typical image of a god, yet his power was in his ability to create.  While he made many items for himself, he was also generous with his creations, giving them to the gods as well as to mortals.

Likewise, the act of creation is ugly.  Early results are lacking.  Feedback is required to know what to improve.  Once enough feedback is applied, the results can be enjoyed by many.

Since launching StoryTime, a dozen people have played The Mission.  A handful have given feedback, and I have read every word.  Thank you for sharing your thoughts.  Those are ideas I need to shape my plans.

Obviously, this is early days for the game, and things are still quite ugly.  For one, there are no pictures, aside from my mugshot on the Library page.  For another, the game is still a bit rough, without enough detail to ensure that most understand what is going on.  (Hmm, what are the Golden Bars, by the way?)  Also, the game is quite short, and there’s only one to play.

So why would I release a product that still needs so much work?  Since you have read this far, you already know the answer.  Releasing gave me a chance to collect feedback.  Now, not only do I have a sample of opinions about the game, I also have information about the paths people chose through the game, and how long people spent playing.  Also the most critical feedback was whether anyone would bother to play at all.  So far so good.

Here’s a bit of fun to look forward to.  In the coming months, I will be adding a Writing Desk that will allow people to create and contribute their own choose-your-destiny stories.  I am also working on ways to add pictures.

Do you enjoy creative writing?  Are you an illustrator?  Leave a comment, or sign up for the Insiders Newsletter.  I will be looking for beta testers soon, and you will want to be in the loop.