Sometimes being able to ‘unplug’ is exactly what I need to recharge my motivation. This past weekend I did just that. Adam and I headed up to DC to attend the “Rally to Restore Sanity And/Or Fear”. I use to live in DC so ti was great visiting and meeting up with old friends and just exploring the city.

I tweeted maybe 1 or 2 times the entire weekend. My laptop never came on, and I actually didn’t randomly browse my RSS feed or facebook until I got back home in Montgomery. It was pretty close to unplugging from the internet…

…Ok I couldn’t get on twitter or SMS for the entire rally because the network was overloaded. But it was more of a desire to truly ‘share’ something special happening rather than habitually check the net.

In any case, I think much clearer after being away from a computer for a few days. I certainly don’t stop thinking about work but it definitely helps me reflect on upcoming tasks and projects much more clearly and with a clearer ‘big picture’. Sometimes I’m so close to the monitor and keyboard I have a hard time standing back and looking at where I’m going.

I should maybe do this more often…

The downside? While being mentally recharged I’m still somewhat physically ‘recovering’ from the late nigh traveling :p. If you’re wanting a few minutes of amusement, check out my flickr gallery of some of the humorous signs I saw at the rally. More general pictures I took of the rally can be found here.

One Man Left Studios is over a year old, but it’s been about 4-5 months since I’ve gone ‘full time’ indie. It’s been an awesome experience thus far and each new day brings a lot of joy and excitement. It’s really hard to describe the feeling of going from a job you simply ‘show up for’ and one that you can’t wait to start working on. But looking back to how I felt about certain aspects of the working life to what I feel now, a lot has changed:

Time Accelerates

The saying “time flies when you’re having fun” couldn’t be more true. Weeks have gone by without me noticing. I felt October only started yesterday. During my old day jobs, getting through a month seemed like it took forever. I think it’s a lot different now because my focus has shifted from looking at the clock, to looking at what I’m doing. Weekends are no longer an “end goal” for me. Wednesdays come and I’m not pining for the weekend to arrive. This probably contributes a lot to why things are feeling faster. I’m not waiting for the weekend to start living, I’m living everyday now.

Days feel shorter as well. I suddenly feel there isn’t enough hours in the day to get everything done. The very reason I went full-time was so I could get “everything done”, so the irony isn’t lost on me. But in reality, I went from working non-stop with little time to enjoy myself or spend time with friends, to working MORE on what I love, but still having plenty of time to spend with friends and family.

I have a slightly better understanding to the phrase “life is short” :).

More meaningful interactions

This may be just who I am or the people I hang out with, but come sundays there was always at least a little bit of moaning and groaning about the week starting. It doesn’t happen anymore. It did at first, but when others realized I actually enjoyed mondays the topic usually shifted rather quickly :).

Work becomes consuming

This is more of a ‘dark side’ to being indie. The guys over at Retrodreamer touched on this subject rather well. When you’re in a creative business, ideas can strike at any time. My impulse before was to try to pursue it ASAP. This could get in the way of other life duties if you let your work hours just go flying into the night. The habit was mostly born out of extreme lack of time. When facing another week at the day job, I simply may not have time to explore that idea unless I do it now. Nowadays? I just jot it down on my phone with Evernote. Whenever I have some ‘mess around’ time where I want to code something but not necessarily for our current project, I just pop open evernote and take an idea and run with it.

Time Off Really Recharges You

I’ve come to appreciate the weekends and time off. It’s gone from a frantic “catch up with everything I put off during the week” to a much more relaxed state and just reflecting on the week’s events and planning for next week’s. I start each week actually refreshed, whereas before I typically had the “need a vacation from the vacation” feeling where it’s hard to get back into “work mode” because I still feel burned out. Vacation time and “paid time off” accrual I felt was something I was constantly trying to earn more of. Nowadays I haven’t even considered taking a vacation…

The Clock and Me

My day no longer revolves around a clock. When I want to work on an idea, I just…do. Want to work a littler later to get it done? Sure. Want to stop early because I’ve hit a stopping point? Sure. No one is forcing me to ‘fill up’ 8 hours in the work day just for the sake of working. Tasks are now more completion oriented than time oriented. I work on what makes sense.

It Only Gets Better

I’m sure there are going to be some rough spots in our future as a small company. But the fact that our success hinges squarely on both Adam and my shoulders makes it far more compelling to succeed; as opposed to a small incremental pay bump and an extra day off. Thinking about going indie yourself? I would say when all is said and done, the positives vastly overwhelm the negatives. But like any idea, you need to have a plan. As long as you have a good plan and remain positive, even if your venture fails you’ll come out of it with a lot more life experience and a better perspective on what it means when someone says “I do X for a living” ;).

After reading Noel’s post on prototyping I realized I was drifting away from that mind set and getting into dangerous territory of just “thinking up a game and running with it.” Tilt to Live itself spawned into a full game from being discovered in a rough prototype. Since then we’ve just had rough documents and ideas that we wished to pursue after TTL. The past few weeks we’ve been gearing up more heavily for our next game and I’ve been getting back into the habit of whipping out fast prototypes.  I finished one prototype for an arcade/action shooter and another one over the past weekend for  a turn-based strategy game. My methods for prototyping each were very different. Ultimately, as I experiment with different tech and methods I’m trying to optimize the time from “concept” to “on the screen and working” so that we can fail quickly or move forward with the idea.

Action Shooter

With this one I had a series of prototypes I wanted to explore before we would deem it ‘good enough’. The first one was trying to see if our tilt mechanic would work. We had an idea that was a slight evolution of Tilt to Live’s controls but allowed for shooting while still avoiding annoying ‘floating D-Pads’ issue. It took about 15 minutes to do the mechanic prototype. After getting it implemented and in the hands of some friends, they actually liked the feel of the controls, which made us pretty excited about it. My next question was whether a scrolling view worked with a tilt mechanic. It made perfect sense to me in my head, but for some reason I felt that not being able to view the whole field while tilting to move (somewhat losing that 1-to-1 feel) would ruin the experience. 40 minutes later I had a camera system and some basic map trinkets scrolling by and it still felt good.

The next several hours became more of an educational exercise by implementing bluetooth multiplayer in it, and admittedly it was wasted hours in the prototype sense but very useful in a general sense. So I did go off track here a bit, but corrected myself soon after indulging in that little fun :). The tech used was the iPhone itself and objective-c as it’s hard to test very device-specific controls on anything other than the device. The next prototype in this series would be player/enemy interactions and seeing if simple enemies would suffice or would we need varied, sophisticated enemy behaviors to make it compelling (a difficult road to go down, as disposable content is not something I’m a fan of), so this’ll be a rather telling iteration.

Turn-Based Game

This was an interesting prototype to make. The game consists of a hexagonal grid where two players have bases, spawn points, and a set of different character classes. The game’s core idea was to make a very simple-to-play turn-based game but introduce interesting twists to the character classes that didn’t require some extra knowledge or rigorous ‘book keeping’ of different types of stats for each pawn to use effectively. So while the action of ‘moving’ a pawn was simple, the outcome would be varied and hopefully pose interesting choices to the players that are playing.

About Friday mid-afternoon I decided I wanted to see this turn-based game idea Adam had in an more automated form so we could give it more play time and start getting feedback from more people. The first prototype of this game was done by Adam in Adobe Illustrator. He did it in Illustrator because he was most comfortable with manipulating graphics in that program, and also (being the artist he is) had some pretty mock ups to play on top of. It was a series of duplicating object-groups to move objects, editing text boxes to adjust hit point values, deleting and adding layers and all sorts of madness. It was slow, tedious, but the game was still pretty compelling. It also goes to show that you can prototype a game with just about anything.

Having only about 3-4 hours before leaving to the beach for the weekend I had to decide what was the quickest way for me to get a more complete version of this game’s rules running on a screen. Ideally I wanted an iPad prototype, but I had almost zero framework to work with (barring using something like cocos2D) and the tediousness of C++/Objective-C slows things down. I opted for writing a prototype in Blitzmax. I ran the simple Blitzmax IDE on my mac (Blitzmax works on mac/pc/linux) and started coding away. No header files, no include dependencies, lots of high level modules to load graphics, draw graphics, draw text, load text, load data, handle mouse/key events. I feel I eliminated like about an hour of working on ‘boilerplate’ code to get a prototype up and running on a laptop.

Not having done a hexagonal-grid based game before, it was time to hit the books and just quickly skim over the basics of how to manipulate objects in that space. This was more of the ‘technical education’ part of the prototype. And this is usually the part that takes the most time in any of my prototypes. Transforming between hex and mouse coordinates, moving and calculating distances took up the rest of the time to develop.

Oh no, so I had no prototype before the weekend! Luckily, trusty Adam was driving so I spent about 1.5 hours just putting together a state-machine type framework trying to get the ruleset and player interaction working. This is one of those dangerous situations as well, as Noel and others mention, that many can get caught up in the “technical beauty” and try to create an all encompassing FSM framework of some sort. Putting a 3 hour constraint on this really helped mitigate that urge.

Then the battery died. Oh well, instead of spending some untold number of hours cooped up in a condo instead of enjoying the weekend with friends at the beach I limited myself to 30 minutes a night right before going to bed to work on it. The awesome part was knowing how little time I had to work on it allowed me to make coding decisions much more quickly. Of course the downside is the amount of ‘shortcuts’ I took code-wise to get the prototype up and running. But the thing for me to remember is it’s a prototype, not  final code. Further practice and experience will yield better code and solutions for quicker turn-arounds in prototypes. I finished that prototype after 2 30-minute sessions, and 2 players can play it on a laptop on mac or windows.

Not having it on an ipad kind of sucked as it does have a certain novel feel to it, but that “feeling” is probably more like sugar on top than having a solid design that works on any screen.

Faster, Faster, Faster!

Indeed, getting something up and running and being able to play with it holds more answers than any time spent thinking about it in your head. Things like the Experimental Gameplay project really shows what volume of ideas can be realized with very focused, short efforts. I had been doing these prototypes all the while working on finishing up TTL HD. With this newly rediscovered “do it as quickly as possible” mentality I may be able to incorporate a weekly prototype into my schedule to break up the week of working (happily, mind you) on whatever our current long term project is. Strangely, both prototypes show promise, but it may come down to how “well” we can make whatever fun prototype we choose in a short development period since we are aiming to release at least 1 more title in 2010.

While I was working at a day job for the past couple of years I was gobbling up any info I could find on going fully independent and the what it takes not only from a business perspective, but what you have to change about your personal life, ideals, and expectations in order to make it sustainable. One of things that stuck out a lot was managing my burn rate. Minimizing the amount of money leaving my account wasn’t just a matter of not buying a Starbucks coffee (I don’t even drink coffee, but you get the idea). It required some fundamental changes in the way I thought about money and how it related to my daily life. Jeff Tunnell I think articulated it very well in his article, where he talks about “Right Sizing Your Life“:

The bottom line is that you cannot live downtown San Francisco, drive a Porsche, have three kids, eat out every night, have Starbucks two times per day, charge up the credit cards, and live the way most of society tells you to. If you want this stuff, start coding in Java and go to work for IBM. But if you want to enjoy your work, feel creative every day, and make games for a living, you will have to pay a price.

Adjusting Your Daily Life

It sounds pretty obvious and seems straightforward. But it’s definitely easier said than done. The biggest problem being that if you are working a day job, if a decent one at that, you can afford a lot of extra expenses. Having a “steady paycheck” at a day job numbs that feeling of loss when I spent money. I would always spend within my means, but when my means don’t match up with what my “means” will be by the time I’m independent, I imagined I’de be in for a tough transition.

I tried all the obvious things: Stop eating out. Stop buying food/drinks at bars every weekend. Start cooking at home. Start watching less TV (canceling cable). Doing any of these cold turkey was a difficult feat. But like any sensible diet/exercise plan you should do it in moderation until you’ve achieved your goal. One of the things I noticed is when I find myself hanging around friends and socializing a lot, spending went up. It’s an obvious and natural occurrence, but I would think most people believe they are in control of how they spend their money. But in fact, at least in my case, where and how I spend my money is heavily influenced by what I am doing and with whom. You go to bars, movies, play games, eat out with friends. That’s not to say you should become an anti-social either. You just need to plan accordingly and figure out a way to fit your new goals in with your current social circle. For me, it became less of a spontaneous thing and more scheduled. If I knew I had plans later in the week to go out, I spent/saved accordingly to make it happen if it was possible.

Technology to the…rescue?

I also tried a lot of money management software with mixed success. Mint was a popular choice and one I had used initially. It’s great for tracking where you’re money is going. But it’s biggest strength may be the weakest link in trying to change your spending habits. It’s a passive way of keeping track of your money. You have to be vigilante in looking back on what you spent after the fact to see why the numbers worked out the way they are. I decided to try a different approach by creating a habit of logging expenses as I went throughout the day spending money. Since I had my iPhone with me everywhere I went, it seemed natural that there’d be an app for that.

I  used Spend [iTunes] to keep track of my spending but also try to enforce some sort of budgeting. When I think about it, the idea here isn’t so much as to just “keep a log” of what I’ve spent, but to encourage a habit where the act of spending money requires me to reflect on it for at least the briefest moment. Spending with a debit/credit card is easy, but when I have to pull out my phone, load up the app, type in a description and price, the entire time I’m thinking about the act of spending money. It becomes a bit more painful, similar to spending real cash. This had a much better impact on my spending habits than Mint did. I could more visibly see in real-time where my spending was heading and how much room I had left in my budget. I become much more aware of all the “small things” I would spend money on throughout the day like vending machines, snacks, sports drinks while working out, etc. The specific app I use isn’t important, it’s more about developing a habit to be conscious at all times of where your money is going.

Keeping At It

Having friends and family that support your goals goes a long way as well, not only in your spending habits but also in what you consider good ways to spend your free time. Fast forward a few years later, my day job is making indie games, my views on what I feel is important financially and personally has changed a lot and I feel a lot less stressed out about money in general. Just by trying to reduce my burn rate for several years I have a very clear picture of what I need in terms of finances in order to make this indie business sustainable. So in essence, I have a very good gauge as to whether I’m in trouble or not relative to how much I’m taking in. Also in an effort to reduce my costs even further, I moved back down to the deep south (Alabama). Living near DC is pretty expensive. It’s a pretty big move leaving DC behind because I loved that city. But in the end, being closer to family and life long friends in the south was a great bonus to saving a lot of money on living costs. I consider myself pretty mobile at this point in my life being single with no kids or spouse to look out for; so up and moving may not be an option for everyone.

Stepping outside the “rat race” is more than just becoming independent. You have to be willing to fight the pressure from those around you to change your thinking. Managing and minimizing your burn rate is one of many aspects of making the transition from “employee” to “self-employed”. Not the most detailed post, but hopefully will give those working-by-day-indie-by-night a few ideas to step a little closer to full-time.

Looking back at some of my old blog posts where I contemplate and muse about long term career goals; I would have never guessed 9 months later I would sitting here having accomplished one of my ‘loftier’ ones: Become a full time independent game developer. It’s been 23 days since I cut the chord and went full time indie. And the range of emotions are wild and varied as I flail about trying to get settled into a new and super exciting lifestyle. Having been laser focused on such a goal for what seems like forever, it’s a bit jarring at times to think that challenge of “going indie” is over and done with. I now have to come to terms with my new found freedom, and stay focused while trying to switch gears to newer long term goals.

It feels like a weight has been lifted as I haven’t had to make some decisions for the past few weeks as I did for the past several years: Do I hang out with friends, or work on that feature for game X? Do I call person Y back to catch up on things or keep working for the next hour before I have to sleep and get up to go to my day job? Do I skip working out today to squeeze in an extra hour to finish up this last build? Do I work through the weekend to catch up on lost dev time or take the time to get to know person Y better?

From all the indie devs I’ve talked to, doing this type of work is a 24/7 job. And it certainly feels that way, but less ‘compressed’ so to speak. I’m constantly thinking of what needs to be done next, whether it’s send out press e-mails, catch up on support e-mails, bug hunting, developing, prototyping, yadda yadda yadda. But having those extra 8-12 hours in the day now certainly helps keep me sane. And I’m aware I’m probably feeling a bit more relaxed right now because we’re at the tail-end of development of Tilt to Live, instead of in a ‘crunch time’ period for another game. So I’m enjoying it while it lasts. But I can’t shake the feeling that the last 5 years of my life has felt like crunch time, and I’m only now returning to some semblance of normalcy. That’s if you can consider a career in making indie games normal.

I’ve made some serious progress as of late with Tilt To Live. The age old saying “I’m 90% done…” is rearing its head and  yet it feels like there’s 90% more to go! This is a bit regurgitated, but saw an interesting bit in a post on burnout and motivation at Zen Habits:

1. Achieve in increments. When you only focus on a big goal someday, it’s easy to get burned out by the daily grind. It’s like driving toward a mountain in the distance. You can drive for hours, but the mountain doesn’t seem to get any closer. And spinning your wheels gets real tiring real fast.

The solution is to give yourself a way to measure and record every little step forward you take. Here’s how:

  • Get a journal, notebook, or calendar. Writing things down is important.

While I’ve been doing the above for a while now, I’m finding the advice becoming more critical as I polish up the game and there are only smaller, less visible changes  to the gameplay or code. Along with all the milestone tracking, to-do lists, and time logs I tend to write down where I stand on the project at a high level almost on a daily basis. It gives me a good “whole picture” look at the game to see what else is coming up on the horizon or if I’m finding myself focusing too much on any single feature. Anyway, back to work… :]

Tilt To Live

Tangible goals are key to any project. Without them I feel like I’m peddling up a steep hill just so I can peddle up some more. Scheduling and time logs showing time spent are great for statistical and historical purposes, but in the scheme of things can do little to save a project if you and your team lack that motivation needed to push the last mile. Countless indie games die from loss of interest. I’ve had several of my own projects fall by the wayside as other opportunities popped up that seemed more “fun”. As they say, the grass is greener on the other side :). But I would argue the overall motivation for those failed projects didn’t dropped per-say. It was just that a particular type of motivation wasn’t effective at getting that project done, and that the person failed to cultivate the right type of motivation to see it through…

Short Term Vs. Long Term Goals

When it comes to goal setting I tend to write my short-term, concrete goals down in some form. That list takes the form of a weekly schedule and to-do list. The longer term goals, such as “Finish game X” or even loftier ones such as “become a full-time independent developer” or even “Travel…somewhere…anywhere” kind of stay in my head constantly nagging away at me :). I find that when I’m not working directly on my game for a period of time the long term goals rear their head and eventually guide me back on course. But interestingly enough, the second I sit down in front of the computer to work my long term goals go out the window and short term goals kick in. This has had some pretty compelling implications on my work habits.

Some weeks I tend to faff about a good bit on YouTube, TED, RSS, IM, and other things throughout the work session. This happens even when I’m fully aware of the devil that is the internet. Now what happened between the time I was driving home from errands all hyped up about getting my game done and sitting down in front of my computer to make that dream a reality? I feel like my long term goals aren’t pushing me along anymore once I’m in a position to do actual work. What I’m finding is that I’m constantly looking at my to-do list and reminding myself how great it’ll be to finally have a a a good GUI system implemented this week to make the game hopefully look a little more…professional? I’m looking forward that following weekend to have a new build to push out to beta testers. I’m not looking forward to finishing game X on any given week, but finishing feature Y or bug Z. The important distinction here is that those short term goals have tangible results that are more easy to visualize while working.

Yes, I’m saying I have no idea how Tilt To Live will end up, I can only guess at that. I have a clearer image of how feature Y should work though. Maybe I should chalk this up to inexperience? It just seems so weird to me that there’s some sort of internal switch in my motivation based on the context of where I am at or doing at the moment that decides whether short term or long term goals will be the most effective. Realizing this will help push me more to create better weekly schedules so that my short-term goals are more tangible.

This seems obvious when you think about it, but I started thinking about how this applies to other things in life when I came across The Buried Life while listening to an Adam Corolla Podcast (doing laundry at the same time so not completely faffing about!). How many goals do people never see become a reality because they experienced my errand-to-computer dilemma? They got all hyped up about an idea, but when they were on that edge of opportunity they backed away not because they didn’t want to do it, but because they simply didn’t have any short term goals to push them over that edge? I’ll leave at that for now as it’s a bit heavier topic that I simply don’t have the time or qualifications to fully analyze at the moment. Back to my indie task at hand…

Gravity Well

Work in Progress Screenshot of "Tilt To Live"

As I’m approaching the final legs of production (and starting to get my shit together for promotion and marketing) tangible goals are harder to find and smaller. In the beginning, having a playable mock up was a huge step forward that could be completed in a single week. Nowadays it’s about getting X animation doing Y exactly correct so it’s timed with the audio to give the best feedback for the user. The amount of effort for both tasks is about the same, but the return on investment for me as a programmer is much smaller when doing these polishing tasks. But I know polish on a good game is what pushes it past “ok” to “good” and gets people talking about it.

In a large project, such as indie game, having long term goals are essential to getting you and/or your team to jump on the project. Without those short-term goals feeding your long term motivation, your motivation eventually starves and the project slowly dies.

This week’s partial tangible goal list:

tangibles

By Saturday that list will hopefully be empty, but it’s not the empty list I’m excited to see, but the fact that I’ll have a first pass of a tutorial system in the game by the end of the week :). Looking at this list I can tell my “scheduling skills” were a bit lacking and I know most if not all of the priority #2 cases will be moved to the following week because this week’s goal is to implement and polish a tutorial system. Hopefully, this won’t translate to another hour long fall through the rabbit hole they call the internet :|.

Oh, and in case anyone is wondering what task management system I’m using, it is called FogBugz. It’s been a treat to be able to use such a robust system, even if I’m a single developer.