Find the fun

Good games can rarely be created in a vacuum, which is why many designers advocate an iterative design process, during which a simple prototype of the game is built very early and then iterated on repeatedly until the game becomes a shippable product. 

Sid called this process “finding the fun,” and the probability of success is often directly related to the number of times a team can turn the crank on the loop of developing an idea, play-testing the results, and then adjusting based on feedback. 

As the number of times a team can go through this cycle is finite, developers should not waste time with small changes. Instead, when making gameplay adjustments, developers should aim for significant changes that will provoke a tangible response.

If a unit seems too weak, don’t lower its cost by 5%; instead, double its strength. If players feel overwhelmed by too many upgrades, try removing half of them. In the original Civilization, the gameplay kept slowing down to a painful crawl, which Sid solved by shrinking the map in half. The point is not that the new values are likely to be correct – the goal is to stake out more design territory with each successive iteration.

Imagine the design space of a new game to be an undiscovered world. The designers may have a vague notion of what exists beyond the horizon, but without experimentation and testing, these assumptions remain purely theoretically. Thus, each radical change opens up a new piece of land for the team to consider before settling down for the final product.

Sid Meier’s game design guidelines

I’m trying to figure out how to adapt this to my work and to the work developers do at Xero. We don’t make games but that doesn’t mean we shouldn’t be trying to inject some joy into the experiences we create for our customers. Iterating to make stuff that people genuinely like using has always been my motivation, be it websites for bands or tax returns for builders in the UK. Helping people find the fun in that is just as rewarding.

And that’s why it’s so hard

…rules are code; they change the behavior of the system. Rules interact in ways that are hard to anticipate. It’s harder to write rules than to write code.

It seems like we make business decisions in terms of rules, because we talk about them that way.

People make uncomplicated decisions by rule. We make complicated decisions by aesthetic (from expertise), and these are difficult or impossible to express in rules.

If you think “Rules are declarative, they’re easier to reason about than imperative code” then go format a complicated web site with CSS. Make changes in the hundreds of lines of CSS, and see if you can predict the results. Now see if you can predict the results of changing someone else’s CSS.

Jessitron

This post really resonated with me, not because I’m a programmer who deals with CSS (thank goodness) but because maybe the only thing about managing people that seams easier is that you learn pretty much right away that there’s no generic thing that works for everyone. There’s no rules engine you can follow. Few decisions are simple and all decision making comes from expertise.

Jessie’s been on a roll lately. You should subscribe to her RSS feed.

Exercising the logic muscles

There is a path here

I’ve been playing more with level generation in SPADE. I dug up a link to Darius Kazemi’s excellent explanation of how the levels are made in Spelunky and have got the path generation replicated in some rough and tumble pico-8 code.

This took me longer than I would have liked. To be fair on myself I did most of the implementation at my daughter’s dance classes over the weekend, without internet, without a debugger, and with the distractions of a dance studio. Still, my logic muscles are somewhat atrophied.

Last night I finally googled ‘pico-8 debugger’ and found out about the printh() function and how to view the output in DebugView. Thirty minutes of reading my game’s output tonight and things are looking much better.

Debug output showing where I’ve gone wrong

Thirty days of stretching

I injured myself almost a year ago. I used very poor form to lift something heavy. My back was a bit sore the next day and the day after that. I took it easy and went back to my normal routine a few days later. A couple weeks after that I reached down to pick something up and noticed a shooting pain in my leg. Four hours later I could either stand up or lie flat and anything in between was excruciating. My upper right leg was quite numb. The diagnosis was two pinched nerves.

Rest, physio, dry needling, and a regimen of stretching helped me recover. I got back to the point where there was numbness but no pain. I don’t lift heavy things now. The gym is about lots of lighter reps with good form rather than aiming for PRs.

After a while stretching fell by the wayside. I’ve always been pretty lazy when it comes to post-workout care and some months ago I realised the lack of stretching was contributing to a plateau in my recovery from my injury. When I committed to lifeguard training I decided to get more serious about stretching.

In started going to some Sunday yoga classes at my gym and enjoyed them. Then I subscribed to ROMWOD, a daily yoga-like routine aimed squarely at people who do Crossfit. There’s a bajillion free yin yoga videos on YouTube that I could have gone with but paying for ROMWOD gives me some encouragement to do it regularly.

Until just over a month ago I was doing a ROMWOD routine a couple times a week. Better than before but not a habit and not enough to really get good results. Not worth the subscription either! Then a post from Austin Kleon’s archive about keeping a Seinfeld calendar struck a chord. I decided to make stretching a habit.

“After a few days you’ll have a chain. Just keep at it and the chain will grow longer every day. You’ll like seeing that chain, especially when you get a few weeks under your belt. Your only job next is to not break the chain.”

Jerry Seinfeld

I drew up a thirty day grid in my brain dump notebook and committed to doing a ROMWOD routine every day. I’d mark an X in the grid whenever I completed a routine. I wrote DON’T BREAK THE CHAIN at the top.

Thirty days later, I’d done a routine every day, the chain unbroken. I saw some results: more feeling in my leg; more flexibility in my arms and shoulders; less soreness. Stretching, along with swimming, and drinking water has paid dividends.

Keeping up the chain was difficult. I got sick twice and the congestion and headaches weren’t super conducive to yoga moves. I did the shorter workouts on some of those days. I had to plan around a night away: an early morning routine one day followed by a late one the next.

Crossing off the grid every day was very satisfying. And I genuinely think the stretching helps. It’s a habit now and I look forward to getting out my mat a blocks and stretching as Daniel Head’s baritone encourages me along.