Building and releasing Swift was undoubtedly one of the biggest challenges I’ve ever tackled. Many things were learned, and much needed experience was gained. But sadly, the nerve racking lifestyle that ensued took its toll on me, both physically and mentally. So let’s start with the dreaded “what went wrong” list. This is a long one.
What went wrong
The things that went wrong with Swift’s development cycle were quite multifaceted, but ultimately came down to inexperience working without the conveniences of an overseeing publisher’s guidance and funding. Not knowing what a healthy work/life balance is didn’t help either.
The most noticeable thing to go horribly wrong over the course of Swift’s development was my failing health during the second half of the project. I was working nearly non-stop, only breaking to eat, sleep, and shower. Since I had a roommate to go shopping for me, I never left my home office. I would literally not go outside for up to six months at a time. And let me tell you… that lifestyle will REALLY mess you up.
No physical activity
The lack of physical activity from working fourteen hours or more a day was especially draining. I tried a number of ways to remedy this: taking walks around the block, doing yoga for a few minutes everyday, using a standing desk so I wouldn’t be sitting so much, etc. Ultimately it was not enough to make an impact. I had chest pains, was extremely short of breath for no reason, and occasionally would have random seizures. I would also get symptoms of motion sickness just from walking around outside. This was all very distracting while trying to actually get work done.
The other problem I didn’t see coming was the effects of prolonged social isolation. Being an extreme introvert, I didn’t think being alone for over a year straight would be an issue. After spending so much time communicating strictly through text, remembering how to talk became difficult. When I did have to speak, my face muscles hurt since they weren’t used to the exercise. That was especially weird.
With the above mentioned issues already in full swing, another recurring problem I’ve had to deal with for as long as I can remember came back to bite me: social anxiety. With everything going downhill, I had a very hard time talking (or typing) to anyone– even when it came to promoting to my own game. It was just so hard to build up the courage to do it, that quite frankly it just never happened.
The whole reason I started my own business in the first place was because I got laid off from my previous job when our publisher was about to file for bankruptcy. I wanted something to do to keep my sanity while looking for new work. However, I had this sinking suspicion that I wasn’t going to land a new job anytime soon. Almost four years later, I now realize just how right I was about that.
I had repeatedly looked for a “day job” while trying to get Phanatix off the ground. But alas, the best I could find was part-time nearly minimum wage retail work and the occasional freelance gig. The only plus side was that I got to pick hours that worked around my game development schedule. And as of this writing, I’m still doing the part-time retail thing to stay afloat.
Looking back on it, I kind of wished that I had kept up a part-time job during the crunch at the end. I probably would have been healthier if I had gotten out of the house a few days a week.
When I started working on Swift, I was still living near Chicago. Then I moved to Seattle, which was an AMAZING place to be working on an indie game. I had a lot of support from game developer friends and even random strangers who just liked new and unique games. But when my unemployment benefits were coming to an end, I needed to move somewhere that I could actually afford. Unfortunately, that meant moving in with my mother in the-middle-of-nowhere, Wisconsin. Much of my above mentioned lack of social activity problems stemmed from living in such an isolated rural environment.
Although moving home saved me a bunch of money, the resulting depression and isolation from residing in one of my most hated environments was maddening. I would have worked much more efficiently (and happily) if I had stayed in Seattle.
Lack of communication
As a result of this, the game’s ownership was heavily skewed in my direction toward the end of the project’s lifespan. With no regular feedback or collaboration between team members, I ended up doing most of the project myself just to get it done and over with.
Inadequate tools for the job
Another setback was my poor taste in game engines. Adobe Flash is a great tool for many purposes, but this was not one of them. Trying to develop a graphics heavy shooter game in Flash was the cause of numerous headaches.
Why pick Flash in the first place?
After a while I began to realize that Flash’s built-in features for handling movieclips on the stage was not very well optimized for mobile devices. The performance was abysmal, with frame rates plummeting well below ten frames per second as soon as there were more than two objects on the screen. It made the game virtually unplayable.
To cope with this, I had to handle the bitmaps manually through Actionscript. After scouring the web for a solution, I found some tutorials on bitmap blitting and caching for Flash sprites as an alternative to using movieclips. I also had to cut the sprite animations in half (and sometimes in half again) to fit them all in Flash’s limited memory. This did the trick, and I got my frame rates between twenty to thirty frames per second on most mobile devices. However, it took months of putzing around with this before I got it to work properly, which really put me behind schedule.
Not enough third party support
Another setback that I didn’t realize at the time was the lack of third party support for Flash. And by that I mean add-ons that could speed up development. I used a few native extensions where they were available, but it didn’t help much in the grand scheme of things. Compared to other game engines out there (like say, Unity 3d), I can’t just go out and buy the bulk of my game’s code and call it a day. Being on such a tight budget and schedule, I should have looked into what other game engines had to offer before committing to Flash for an entire mobile game.
Post launch problems
Despite all of the development difficulties, I managed to release Swift for Android and iOS platforms. But the problems didn’t stop at launch time, they just kept rolling.
There were a few of the features in the game that I should have saved for later updates. For example, all of the language translations included in the game. These took a long time to assemble, from actually writing the translations to implementing their usage. Granted that my analytics tracking showed that these got heavy use, they were still a “nice to have” feature that could have been put off for a later version.
Another area that needed improvement was the timing of the promotional website launch. It made sense at the time; I was about to move from Seattle to Wisconsin, and I wanted a website for my game so that my Seattle friends would have an easy way to follow my progress after I left. However, it became clear that I should have waited a bit closer to the game’s launch window before making a promotional website. It took a considerable amount of time away from the game’s core development to maintain the site.
And another thing– updates to the game itself and updates to the accompanying websites that promote it– didn’t really ever happen. I would often procrastinate updating things in favor of working on Swift’s iOS port, and sometimes updates for anything would just fall off my radar entirely.
I also found out how devastating it can be to name your game too early. I came up with the name “Swift” in February of 2011 when I first started working on it. I wanted something abstract and flowing, light and airy– like the style of the art that I wanted it to have. However, a number of other things out there shared the name “Swift,” including other apps in the marketplace. Whenever someone looked for the game, it was buried along with a few hundred other apps with the word “swift” in their names.
Where’s the other platforms?
I had mentioned in earlier articles that I had planned on releasing Swift on different platforms, including a PC version. That never really materialized. Mostly because I figured it wasn’t going to do anyone any favors. People who wanted to play the game already had it. And aftering porting the game to iOS, I was getting REALLY sick of porting Swift. Not to mention that each version needed maintenance after it hit the storefront. By the time I had the main mobile platforms covered, I was more interested in starting new projects. A PC version of Swift could still happen, but it’s very low on my priority list right now.
Between the health problems, little to no income, conflicts among the team, the prolonged stress of trying to make Flash do what I wanted it to do, and living in a depressing location… I just broke down. I couldn’t do it anymore. I managed to launch Swift on its second platform a year after its Android debut, but by that time I was so exhausted that I couldn’t keep up the charade any longer. So I quit. Hence the long silence.
What went right
Now let’s change the subject to something more… uplifting. This is a much shorter list, but the things that went well, went REALLY well.
A learning experience
I learned A LOT. Seriously. Not just about game development and publishing, but also about what I am capable (and not so capable) of as a human being. The health problems I ran into proved my physical and mental limitations are greater than what I expected, and I need to pace myself from now on. I learned that I need to be very careful about who I trust, not just in who I choose to work with, but also when dealing with business advice from other professionals. And most importantly, I learned to never give up, no matter how many obstacles might stand in my way. I may have taken a year long hiatus to recover, but I came back refreshed and ready to go.
I may have done almost everything wrong, but at least I was organized about it! I meticulously maintained accurate schedules on Google Calendar so that I always knew what I was currently working on and what I would be doing next. Looking back on my calendar, I can see how long it took me to complete a given feature. This makes it easier to schedule similar tasks going forward, since I have a record of how long it took me to do something in a previous project.
Good ratings and reviews
Did I mention I learned a lot?
The bottom line here is that I learned a ton about how to develop and publish a game under my own company license. It was a rough ride, but I’m ready to move on to bigger and better challenges in my next game. But that’s a story for another day.
This was kind of a brief overview of things. I plan to write up separate articles in more detail later on, but I think this should suffice for now. Stay tuned for a follow up article on what I’m what I’m doing differently now that I’m starting a new project.