Sunday, December 18, 2011

I spent the last few hours scrambling to pack some last-minute polish in. I was cranking out sound effects from a Roland XP-60, frantically paging through the manual for the soundbank listings, punching it into Audacity, saving, hooking up instances.

And there was a ton of worrying about invisible features. Should I hook in Playtomic? Nah, too risky with only 40 minutes to go. A trackback link? Oh yeah, definitely. Sitelocking? Duh, what am I thinking? That'll just backfire. I'll just have to search the net and see where it ends up.

The main game screen.

Man, my head is a bit scattered right now. I'll come back to talk about the experience some more in a while, but I need a break. For now, if you want to see it in action (or even try it and rate it!), here's my LD48 entry page.

Monday, December 5, 2011

Both Christina's and Gareth's tweets this morning reminded me of a blog topic I've been meaning to write. Back when I was first considering becoming an indie game developer, I had a lot of questions about indie development. I found a number of blogs started by other indies, and read them ravenously.

One area that I found particularly interesting was indie life. What was it like to wake up as an indie? What types of problems did they confront? What was their workday like? What did their desk look like? Their room? I guess it was sort of fantasy fulfillment to read others' blogs. A few minutes of escapism before I had to get back to my then reality.

I figured when I finally got around to going indie myself, I'd do a post with just those details. I dunno how many folks are as into it as I was, but maybe there are a few who enjoy peering into the fishbowl. Plus, a friend of mine has been asking about how I keep up my work ethic, so this'll be good prep for answering that question.

My schedule is actually quite consistent. I treat my work day pretty much like I did at previous employers. I work Mondays through Fridays, about 40 hours per week. I take the same holidays BioWare does: roughly 10 stat days, 3 weeks "paid" vacation, 1-2 weeks "paid" break at Christmas (likely only 1 for Christmas this year). (Note: I say "paid" in quotes because I haven't made dollar one yet as an indie. BioWare does pay employees for regularly scheduled time off.)

I'm actually protective of both my work time and my play time. When I miss an hour or more of work, I log it. When I work overtime to cover the missed work, I log it. I log everything I do in a day in a big text file. It reads kinda like a changelog for a game patch, but with dates. Here's an example:

2011/12/03
made hexes show appropriate random scavenge locations
made hexes have finite scavenge locations that slowly replenish over time
made scavenging button only appear if current hex has available scavenging, and no creatures nearby
Created mushroom items (poison and edible, incl unidentified)
Created crowbar and related attackmode.
Created poisoning condition (for use with poison plants)

Typical daily schedule

My days are also quite consistent. I've sort of setup my days around short, regularly scheduled islands of rest and reward. It's never more than an hour or two until something I'm looking forward to, like food, coffee, chatting with Rochelle, etc. Here's how a typical day looks:

06:30 - Wake up, throw on pjs, turn on PC, make some English Breakfast tea.

09:30ish - Launch FlashDevelop, Photoshop, and Windows Explorer. Close all other windows, including browsers. Browser use exclusively for AS3 documentation, phpMyAdmin, and other work research.

12:00 - Lunch time. Turn off monitor and go into kitchen for some lunch. Usually read Twitter and Gamasutra on a laptop at the kitchen table while I eat.

13:00 - Back to work. I may afford myself a few minutes to check email again at this time. But then browsers are off, and work is on.

14:00ish - Take a break and make some coffee. I often try to push this until 15:00ish instead, so it divides the afternoon better.

14:10ish - Coffee made, back to work.

16:00ish - Rochelle comes home from school between 12:00 and 17:00, depending on the day. I usually take about 10-15 minutes to chat with her before getting back to work.

16:15ish - Back to work.

18:30 - Work finished. Close FlashDevelop, Photoshop. Verify work log is up-to-date, then check-in all files to version control. Most days, check-ins are working code. Large refactors may mean skipping nightly check-ins until game is stable again. In those cases, usually no more than 2-3 days between check-ins.

20:15ish - Free time begins. Usually a mix of watching shows with Rochelle, playing games, or reading stuff on the web. Dishes usually need doing sometime before bed, so there's a bit of dish time in here somewhere too.

22:30ish - Start getting ready for bed. Usually asleep before 23:00.

There are a number of bathroom breaks in there too, of course (all that tea and coffee has to go somewhere!).

The view from my seat. This is a bit more like how the desk normally looks, with a few random things spread around. The digital picture frame on the left cycles through inspirational art.

Staying focused

I have to admit, my mind isn't always cooperative. My focus and effectiveness tends to drain the longer I sit at the computer. And the end of the day can sometimes be trying. However, there are a few things I do to mitigate distractions and lack of motivation.

I find that keeping regularly scheduled work and break times helps me focus and not get distracted. It's always clear whether I should be working or not. I think that without a consistent schedule, it'd be easy for me to lose track of how much work I'm doing (or not doing).

I've learned to recognize times when I've been staring at a problem, cyclically running through the same thought process, and not making any progress. When that happens, I have to force myself to get up and walk away. Simply standing up and walking around seems to clear my head. So the breaks (whether they be coffee, bathroom, or whatever) do a lot to keep me on task.

Decision fatigue can also plague me from time-to-time. Sometimes, I feel overwhelmed by the sheer amount of stuff left to do, and I can't focus on anything. This is where having a prioritized backlog can be a big help. I keep a running "to do" list in an Excel sheet, and any time something comes to mind that I won't immediately address, I add it to that sheet. And periodically, I'll go over the list, deciding on each item's value and effort.

The benefit of this exercise is that I can turn to this sheet in times of indecision or lack of direction. One quick data sort later, and I can see a list of "best bang for the buck" tasks, or "biggest risks." Then, I don't have to decide what to work on next, I just run down the list, sniping each task in turn.

When I'm having a particularly hard time focusing at the end of a day, it's usually because I've been stuck on the same problem for too long. The backlog can also help here. The previously mentioned "best bang for the buck" sorting means I can get a list of short, meaningful tasks to work on at a moment's notice. Often, these are a good break from the day-long task I've been on, and I manage to squeeze productivity out of that last hour.

Which reminds me, there are even some mornings where it can be hard to get back to work. On such days, it's usually because I'm dreading the task at hand, especially if I'm picking up from the previous day, and not sure how to continue. One trick I've used a bunch to avoid morning malaise is something Hemingway did: quit while you're ahead. (And, as it turns out, so did Roald Dahl!)

Or, when all else fails, look out the window.

So there you have it. A brief glimpse into my life as an indie, and some of the tips I use to stay on-task. If you have any tips of your own, I'd love to hear them! Or if you've seen other blog posts along this vein, those too. (Especially with workspace pictures and window views, yum.)

Oh, and immigration!

Also, as mentioned in November, I had a meeting with immigration. It's official: I'm a permanent resident! I sort of expected I'd be told to wait another 2 months for my card to arrive, but it turns out the card is just for airlines. I am a landed immigrant as of last week!

Now starts the deluge of questions about forming and running a company, on top of building a game. But hey, that's a better problem to have than waiting in the dark for an answer ;-)