I’m currently messing around with bluetooth multiplayer and it’s been a blast so far. The only downside is the much longer turn-around cycles for developing the network code to test on two devices. On the PC it was a bit cumbersome as well, but I could always just run 2 instances side by side locally. I guess if I had spent a little extra time to allow for Wi-fi AND bluetooth I could test with one device and 1 simulator, but it’s still always going to be slower than single device testing.

I had made a post about this a little while ago with running from a single project in XCode. Brian Stormont mentioned I could have multiple copies of the project all referencing the same source files. I finally gave that a try and it does make things a bit easier and allows for simultaneous debugging, but speed of deployment only seems a tad faster, if at all. When compiling from both projects it appears the 2nd project to be compiled is significantly slower and/or waits until the first one is finished. I guess that’s the problem with running a single instance of XCode with multiple projects.

Also if you try to compile at the same time while targeting 2 different devices but with the same configuration you’ll run into a lot of build errors. Creating a new configuration (akin to Debug-2 or something similar) allows the copied project to output it’s files separately without having any contention of the original project for file handles and such.

Thanks to all for their support on this blog and support for Tilt to Live! It’s been an awesome year and lots of exciting stuff coming up as we roll into 2011. You probably won’t see another post here until early January, so have a happy holiday!

(image courtesy of rooter)

About to head out for a week into the rockies for some fun snowboarding :D. So I won’t be able to keep up with e-mail, twitter, or the blog for the next week and I’m currently in a rush to pack. I didn’t want to just leave for a week without explanation though.

In any case, I still use iSimulate for testing Tilt to Live on the simulator. Having already written about the great benefits of using something like iSimulate I won’t go into the details again. Recently, I was trying to create a trailer for our upcoming ‘Viva La Turret’ DLC for Tilt to Live. I was using ScreenFlow along with iSimulate to capture video and iSimulate was performing extremely poorly. Knowing iSimulate uses Wi-fi to transmite the tilt data I turned off all wi-fi devices in my apartment thinking there was some sort of interference. Then I looked at my phone and realized bluetooth was enabled. Turning it off solved the problem. Googling for bluetooth and wifi intereference turns up a lot of similar cases, I just haven’t experienced it in development yet. I figured I’d pass that along.

‘Til next week!

I’ve started holding a particular mindset in regards to game design a little while after I started working on iPhone games, but I could never really articulate what I was feeling without sounding like a lazy game developer or religious nut. Danc’s article over at lostgarden reflects a lot of what I think about games as a medium, and what they can do, and where they are heading (good or bad). I’ve had this strange aversion to creating a gameplay ‘space’ where the amount of time spent playing a game almost directly correlates to the exact number of levels the game has.

Of course, any outsider looking in would probably see the flawed logic in that when you have the poster children of mobile games being heavily content driven. Danc argues that content heavy games aren’t the way to go and are inefficient game design. But just looking at the iPhone market, what he’s saying seems at odds with what is garnering consumer attention.  But then again, games like Angry Birds and Cut the Rope may simply be outliers. A glance at the top of the charts reveals Fruit Ninja, Bejeweled 2 (most likely due to Bejeweled 3’s release), and the ever present Doodle Jump. All of these games very light on ‘content’ and steeped deep in core mechanics. So maybe hope isn’t lost :).

The reason I was feeling a bit of concern is there seems to be an influx of games trying to replicate the Angry Birds formula. Tons of levels, quick to go through, and a simple mechanic to play with. This may be playing a dangerous game, especially if you’re an indie. An indie’s time is extremely limited, and getting on that ‘endless treadmill’ to churn out levels is definitely not something you want to find yourself in if you wish to move on from a game and pursue something new.

There is something to be said for content-driven games created by indies though. They can work, but the path is extremely long and grueling. And in the end, you’re creating an experience that borders more on a book, or movie, rather than a game. I loved Braid and Limbo to death as they were amazing experiences and I’m glad they exist. But in all honesty, it’ll be a very long time before I ever revisit either. Their memory is more like a movie in my mind, not a game. I recall scenes, imagery, atmosphere, and mood. Oddly, I barely recall the puzzles in either and the platforming mechanics are forgettable. The very things that differentiate them as games versus other mediums are the things I recall the least about them.

Despite thinking ‘static levels’ are bad, the market can and will reward a game that has a decently fun mechanic and just pumps out content for it, very much like a season on a TV show. So as an indie, the market won’t punish you for it. Although you may soon find you’re punishing yourself :). Another way to look at it is a meter of progress. Some players prefers games with discrete levels because it gives them a sense of progress and direction. High score games have little direction in their minds because the ‘end goal’ is to get #1 on the leaderboards, which in most cases is impossible so the game loses value and becomes more of a toy. It’s purely a mindset and expectation those players enter the game with and something a less ‘content’ driven game has to deal with.

Disposable Games

One of the lines in the article that hit home the hardest for me was:

“As a designer, I feel like I’m wasting my life when I create a disposable game.”

What’s interesting is that above thought is far less pronounced in my mind when I think about developing for say…The DS, Xbox 360, PC, Mac, etc. In the App Store there are literally thousands of games that can probably qualify as ‘disposable games’. I’ve played plenty of them, my friends have played plenty. And it’s not that they are bad games by any means, as we tend to get enjoyment out of them. It’s just that the amount of time we enjoy them is for but a fleeting second and then we move on. Gone are the months of hard work that designer/developer has put into that experience. Is it worth it? Why does this feel more relevant in the App Store? Is it because it’s harder to swallow that a $60 dollar game is disposable? Do those other platforms promote ‘deeper’ gameplay in general vs the more diverse App Store?

It’s not lost on me the context in which these games are played. Most are played a couple of minutes at a time, often times while the player is outside their home. So any long term investment needs to come from several play sessions over a very long time period as opposed to a more traditional game where investment usually comes in blocks of hours. Just because you’ll only have a few spare moments to entertain the player when they open the game doesn’t mean they also have to be the last. Words with Friends is an amazing example of this very concept, but I don’t think asynchronous play is the only answer to this, and beyond turn-based games isn’t a very good one.

Games like Angry Birds and Cut the Rope thrive on that concept by creating “tons” of static content that is consumable in very small time periods. Guess what? Once the player is done with all the levels, there’s little incentive to come back beyond the pure ‘fun’ of the mechanics. The question is, would players play the same puzzle again knowing the solution just for the sake of playing it? They seem to be in the content business now, which I guess isn’t a bad thing when business is good.

Some of the warmest comments I’ve received about Tilt to Live have been from players that begin their e-mails saying they’ve been playing this game since release. That’s 10 months and counting. If people are still playing it today, maybe we’ve created a game that isn’t disposable? I think Danc said it best about creating a deep game versus a content heavy game:

At a certain level of depth, a game transcends being a disposable blip and turns into a life-long hobby

That’s definitely a goal to keep in mind when I’m trying to create a meaningful game.

Wow. I think I’m still digesting thanksgiving dinner. Anyway, we just recently announced our newest game mode for Tilt to Live and it’s a doozy. In the midst of getting it all tested and ready to submit to Apple I had a bug lurking about the loading screen code. At seemingly random times the game would crash with an EXEC_BAD_ACCESS error somewhere in my loading assets functions usually stopping at CGContextDrawImage. The fact that I couldn’t replicate it with any sort of consistency really concerned me.

So what did I do? I put it off. hah! Through some beta testing our users submitted a few crash reports and after the pain of getting them to symbolicate (I can never get it to work on the first try) I wasn’t left with much to go off of. Then I noticed a peculiar thing in each of the different crash reports:

  • Thread 7 crashed
  • Thread 8 crashed
  • Thread 9 crashed

Wait what? Why am I crashing in different threads each…oh my. Apparently I haven’t learned my lesson. I wrote that post over a year ago mind you. I eventually went from libpng back to using CGImage loading for performance reasons. Most of my graphics were in texture atlases, but the new ones in turret’s syndrome were not. As a result they were lazy loaded in a background thread when I was pooling objects. The result? 95% of the time it worked without a hitch. Every now and then I would crash while loading some random asset from that method. *Face palm*.

Since I wrote that post I never really looked into any more info as to whether CoreGraphics or the methods usually used in UIImage were thread safe. In any case, it appears it’s not. For anyone that does want some sort of flexibility in loading assets in the background I’ve uploaded the small PNG loader code I wrote and used for a while in Tilt to Live. It’s a bit slower than using CoreGraphics libraries, but is thread safe. The main function of interest is LoadImagePNG(const char *path). It returns a struct called PNGImage that has all the data you should need to use the image. The function loads the image data into OpenGL so the struct contains the textureID if you need it. Pretty basic, and in order to get the same behavior on the iPhone I wrote a small transform that the loader uses to pre-multiply the alpha of the png’s.

The zip contains all the files needed to compile the loader. Just drop the files in a project and you should be good to go. If you’re wanting a more ‘official’ version, just download the latest libpng library to get the latest png.h and pngconf.h files. Enjoy!

Download: opengl-pngloader.zip

With December quickly approaching we’re finishing up our next major update to Tilt to Live. We just finished putting in the new achievements and I figured I’d share with you some of the guidelines I try to follow more or less. Maybe you’ll find some good ideas for achievements for your own game if you happen to be working on one, or maybe re-think some of them.

Bad Idea

Don’t make the player grind (actively)

This might be fine in a hardcore RPG (I don’t think it is personally, and just a sign of an outdated design philosophy), but in the mobile games arena time is of the essence. Most games have a very short life span in regards to how long a player will play it before moving on. Using your achievements to artificially pad out the time spent on a game doesn’t not improve the quality of the game. I’m referring to achievements where players have to simply spend  X amount of time doing Y and there is zero challenge to doing Y other than overcoming boredom.

I put the ‘actively’ qualifier because there are certainly some achievements that could be considered ‘grinding’ in Tilt to Live, yet I feel they are still fun to have. But I tend to think of those as passive achievements. There is one, for example, for traversing a few hundred thousand pixels (the pixels equivalent of a quarter mile or something). Players don’t actively go into a game trying to get that achievement. They simply accumulate that from playing the game normally and enjoying it. It’s comes as a surprise, a nice milestone, and interesting fact all rolled into one!

Don’t reward the player for things that are inheritant to the game.

Beat level 3? Achievement! Bah! It kind of annoys me that a lot of Xbox console games do this, but I’m not sure if it’s from sort of political pressure to make the 1k gamer points easily attainable or just lack of interest. I haven’t seen this much in mobile games yet, but in case you were considering it….don’t. The few exceptions I would grant this case would be in tutorials. And the reason would be to not only reward the player for learning some skill set for how to play the game, but also introduce them to the concept of ‘achievements’ overall so they are familiar with the system and sequence of events.

Don’t make achievements for the ‘hardcore’ only

Keep an eye out for the less experienced players out there. Don’t make the difficulty curve for your achievements flat and high. This one is definitely hard to gauge on your own and will probably require some user testing. Despite what you may think, if you’re making the game you are an expert player. We recently ran into this when assessing our new achievements and had to introduce some new ones and tweak the current ones to get a more varied difficulty curve. Having developed the game for so long it’s hard to really judge what is easy and hard now.

Good Idea

Think outside the normal play mechanics

What is a fun thing to do in your game but doesn’t necessarily make the player get any closer to finishing the game? Encouraging exploration with the game mechanics and tools at hand I think is usually a good thing. If the player loves the game enough they’ll take to these achievements and have fun with them, and feel like  the game acknowledges their dedication and curiousity. If another player simply wants to blaze through your game, there isn’t anything lost here. Any example of this is in the picture above for one of the Tilt to Live achievements. Putting an artificial constraint the player has to enforce in his or her head makes the game play at a slightly more deliberate pace, but still frantic and fun regardless.

Softening the blow

We recently added one that falls in this theme to the new Tilt to Live update. We made it hard enough where most players will have to consciously achieve some ‘massive’ goal and in hilarious fashion lose it all. Acknowledging the player just royally screwed up can help lighten the situation and reduce the frustration. This is probably a hard one to fit in most contexts, but I think can be fun in the right places.

Badges of Honor

I like to think of these as just more of the old-school ‘OMG I R 1337’ achievements. They are so hard that only the truly dedicated will have the skills to earn the achievement.

Outside the Box

What about achievements that are accomplished not in-game but inside the menu systems themselves? Or externally somewhere (with mobile devices and location API’s this could get really fun). Here’s one: Hey! You just played Game X at 400 MPH!!! (assuming the player is playing the game on an airplane)

Meta Achievements

There seems to be huge potential here for some fun achievements involving not the game itself, but some sort of factor influenced by the game. This would really put the ‘social’ in social gaming platforms. A straight forward example is having some aggregate number of enemies killed between all players who own the game and once that number is reached everyone unlocks that achievement as a community. They are pretty much community milestone markers. Noby Noby Boy has a similar meta game. With iPhones being constantly connected it seems this could be a really good fit for this market.

Before I start, I just want to mention that after 18 straight weeks of making iDevBlogADay posts, that this will be my last one. I’m following Noel Llopis’s lead and making room for that LARGE waiting list of developers waiting their turn. The point of iDevBlogADay was to encourage developers to blog regularly and help them get in the habit of blogging. I’ll still be making regular posts, so be sure to check back each week!

Coming into the App Store as new comers and even from an outsider’s view, rank seemed to be king. If you were in the upper echelons of the charts then you supposedly were making $$$$. And if you were no where near the top of the charts, then you’re probably making peanuts. For the most part, this holds true in the early days of a game’s launch. But over the past several months, our focus has shifted from ‘topping the charts’ to a much more sustainable view of getting as much ‘reach’ as possible.

From all the media, blogs, and podcasts I got the sense that once you drop out of the top 100 the app is more or less ‘dead’. Ok, that’s a slight exaggeration, but on the iPad this is far more pronounced due to the structure of the iPad app store. When looking at the performance of Tilt to Live, it seemed to be completely untrue. We’ve barely hit the 400-300 ranks in ‘All Games’ for several months, but sales never seemed to be effected by it. They held steady. Regardless if we had a higher than normal rankings on weekends or holidays, our sales per day stayed very close to a steady, but healthy number. Why?

We were fortunate in the early months to garner a decently large player base of Tilt to Live by letting it go ‘free’ for a week, which gave us about 500k more players. We were disappointed that this didn’t translate to a higher up take when we switched to back paid, but as time goes on I’m starting to think that large influx of players is paying off more in the long term than short term. With each update, we get another chance to re-engage players in our game and let them know of any upcoming titles or updates. And with the larger player base, ‘word of mouth’ tends to have a much longer lasting and stronger effect. This is one of the biggest reasons we’ve been able to support Tilt to Live and expand on it for so long.

So to help explore that a bit more, we decided to try a slightly different approach with Tilt to Live HD. With the power of in-app purchases, we tried to create a seamless upgrade experience for players playing a free demo version of our game. The guiding thought here is, the less amount of taps and thinking a player has to do to upgrade to the full version, the better chance we have at making a sale. Now our method of tracking a player’s path is crude (ie, nonexistent), but it’s mostly because we didn’t care to implement anything sophisticated. Hell, just having an IAP to unlock a full version is already a lot more sophisticated the ‘Lite app’ route. This is a better situation compared to doing a “Lite” version  because you wouldn’t be able to easily see where your users are coming from  even if you wanted to. Random aside: on the PC end of things for example, Cliff Harris obsesses over this stuff, because that market is very reliant on getting your own game out there as opposed to a centralized distribution. And reading some of his take on marketing could probably do some good for the indies on the app store surviving on apple features and rank alone (me included).

Doing an IAP for a ‘full version’ for a game seems to be going against the grain of the culture of the app store. Most games do a separate version, but again, I feel doing that is more short sighted and focused on app store rank than the ‘long tail’ of a game’s life.

Some of the benefits we’ve felt when we changed our mentality were:

  • Development became less of a fast pace “DO IT NOW OR DIE” feeling. Constantly sending out press emails, review requests, forum posting/lurking, was all time sensitive and a very “gotta get this done now” mentality. I use to constantly watch the ranks of our game and keep thinking of ways to boost it because the idea of “Rank = Revenue” was engrained in my head. Now I’ve gone weeks without really know what our rank is and don’t care too much as we won’t be seeing the top of the charts for a long while..if ever.
  • Early on when we were “blue sky” thinking of follow up projects, I was constantly obsessed with trying to find something that would fit the “Top of the charts” type mold. It’s as if we were giving up the very thing we went indie for: creative freedom.  Now, it still is a business and we’d be crazy not to give due diligence to market research prior to making a game, but the game we’ve settled on currently is something we’re both super excited about and feel we can reach a nice size audience and still come out ok on the other end :). Chasing the top of the charts isn’t for me.
  • With IAP of a full version, each app update not only notifies your current customers of new content/fixes but a large pool of potentially paying customers as well. The free customers get to see what fun they are missing out on!

So how is the Tilt to Live HD experiment going? Surprisingly well. We’ve got a 5% conversion rate right now since release, and within the first month of downloads we recouped our expenses and time. The daily download numbers and rankings are dwindling, but the daily sales are having a far less steep decline. I like to think we’ve decoupled our rank from revenue :).

I’m not going into detail in this post on specific numbers and revenue on purpose because I’m saving it for a “Numbers post” closer to the end of this year, but hopefully those about to launch a game or just coming into the market will know at least one thing: You’re biggest volume of sales will happen at launch due to release date, category, and rank charts. You should really have a plan beyond that to be able to exist “outside” the hustle and bustle of the app store chart monster :).

This post is more of a public service announcement. Prior to Tilt to Live’s Game Center/Retina update we wanted to extensively test the game with a wider tester base. So we ran a small ‘open beta’ (as open as Apple’s ad-hoc program would allow us). Prior to iOS 4.0 users had to do a cumbersome dance to get an ad-hoc game on their devices. And by cumbersome, I mean anything dealing with the desktop iTunes client. There was a lot of room for error, and for those (like me) that loathe syncing with iTunes, it creates a barrier because the act of adding an ad-hoc pretty much wipes my personal device since I buy all my apps 100% on the device and never sync.

Enter iOS 4.0. I discovered this tidbit on Twitter one day. Sadly, I can’t recall who tweeted or retweeted it, but thanks!

With the new iPhone iOS 4, you can distribute apps wirelessly without iTunes intervention. You still need to collect the appropriate devices id’s and create the appropriate provisioning profiles but if you already have those sending out files is easy.

The benefit? Oh where to start? Your testers no longer need to be tethered to a desktop to actually test your app! Our beta e-mails contains direct links to the provisioning and ipa file. The user simply has to tap on both and the game installs over the air! It’s almost easier than buying an app on the app store. The barrier to beta testing has been dramatically lowered because of just this one feature. You can almost coin it as ‘one-click beta installs’. It’s good stuff.

The other upshot? You get more feedback. Some beta testers may simply be out and about and won’t remember to connect to their iTunes client when they return home for the day. We had a lot more responses this go around and even some quick back and forth e-mail discussions as people installed, played, and replied all in one sitting.

Another good thing is we were able to get some ‘field data’ on our Game Center implementation. I would imagine most people have wifi on their homes nowadays. We were getting some feedback from some testers that were on EDGE or 3G that Game Center was causing a long ‘pause’ between games. This was something that didn’t turn up in our internal testing because we’re always on Wifi. Turning over to 3G to test still didn’t give me any hang ups. So just the knowledge that a good portion of people were getting a significantly slower response from GC prompted me to investigate better ways to mitigate this and ‘hide’ the response time delay so users weren’t met with an unresponsive UI.

Downsides? It’s a bit cumbersome to create a build for wireless distro as you’re required to do a ‘build and archive’ from XCode. I have an automated build process for the old-school ad-hoc way. I wish there was a way to automate this as well. I feel that there might be a way, but not sure if ‘build and archive’ is doing any magic behind the scenes. If anyone’s got any info on this or whether xcodebuild has some way of doing this all through the command line please let me know!

A quick guide to build a wireless distro game or app

1. Choose Build->Build and Archive

2. If it already isn’t open, open the Organizer window (window->Organizer) and choose ‘Archived Applications.

3. Highlight the build you just archived and click on “Share Application”

4. Select “Distribute for Enterprise”. The correct provisioning profile should be automatically selected. If not, correct it.

5. At this point you’re presented with a form (pictured below) that you need to fill out.

  • URL: You need to decide beforehand what the name of the ipa and the location on a webserver the file will reside at. For this example we’ll use ‘http://www.onemanleft.com/tilttotlive/Tilt_to_Live.ipa’
  • Title/Subtitle: self explanatory.
  • Large/Small image URL: not needed. But since I had this on hand I just put them in the same folder on the web server as the ipa file.

Now when you click ‘OK’ it will ask you to save the file. Be sure to save it as the same file name you gave it in the URL (in our previous example it was ‘Tilt_to_Live.ipa’).

Now upload both the ipa and plist file to the URL you put in the form. Drop the index.php file created by Jeffrey Sambells in this post to the directory you uploaded the IPA file and you’re good to go. This index file will generate the links for both the provisioning and ipa files.

Now any user that is in the provisioning profile can visit that link in safari on their device and download the app directly. Or more conveniently, you can just copy and those links into an e-mail :).

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” ;).