Lastronaut: A Love Letter
Today, my friend Stephan Leroux and I are releasing our first game, Lastronaut.
This game is my love-letter to an industry, my way of saying “thanks” to the makers and players of games that have continually entertained and inspired me. I want nothing to stand between it and the kids (and adults!) who may want to play it. There are no ads and no in-app purchases. It is not a blockbuster 3D adventure with a huge budget and large team behind it; but it is a hand-crafted experience built with passion by myself and a good friend. Every pixel, animation, and note of music you hear is the result of 2 years of hard work.
I still remember the amazement I had as a child, witnessing Super Mario Bros. for the first time. The fluidity of the animation, the infectious 8-bit soundtrack, all supported by such dynamic level design and a loveable cast of characters made for something truly inspiring. To me, as a kid (and still!), it was nothing short of magic. I envisioned these artists, musicians and crazy computer scientists in these huge dark labs surrounded by these massive machines and monitors, all working effortlessly towards this incredibly concerted artistic endeavour. It was a romantic notion, but how else could such things be made? It was the ultimate artistic expression, combining animation with matte painting, sound effects and special effects, all combined into a highly interactive piece — all set to a timeless score. I was hooked, and have continued to be inspired and awed by the art to be found in the video game medium.
More importantly, I was hooked. I dreamed of my own games, how they would play out, who the characters would be, and how the theme song would sound. But it was always just a dream — I did not know how to write code until later in high school, and besides, these games were made by professionals, right? I couldn’t have been more wrong.
I recently finished Lastronaut, and it is easily the biggest project I have ever completed. This is not a post about how games are made, or what technology I used (those posts will come later). It began as a small side-project, a way for me to learn how games were made while simultaneously forcing me to learn a new programming language (or two, as it would turn out). I started piecing things together from various tutorials. I spent an hour on the train here, and a late weeknight there as I hacked my way towards something that achieved what I had set out to do — I had a playable, moderately enjoyable game.
Now, if you don’t already know me, it is important to understand that I do not like to leave things half-baked. It was evidently impossible for me to abandon that work-in-progress prototype, leaving it to wither and disappear on my vast hard drive. I just couldn’t do it. This game needed to grow up and leave the house on it’s own two feet. So, I continued to nurture it, adding new gameplay mechanics, refining animation loops, and drawing more artwork.
Around that time I began thinking: what good is a game without someone playing it? I began beta-testing Lastronaut with friends and family, if only for my own curiosity — would people actually like it? Comments of “it’s too hard” or “I don’t know what the controls are” lead to more development. A gameplay-specific analytics implementation was built so I could quantify “too hard” from release to release, watching to see if my tweaks and changes were helping people progress further. A full user-interface, with menus, gameplay tips, and accompanying sounds was added. I drew up a logo. The feedback continued to come in, and it was encouraging.
Pretty soon I had a game that was no longer a side-project, but had before my eyes grown and matured into something I was proud of. We decided that we would submit it to the App Store, for the world to see. We were proud of what we had accomplished. Music was written for the 3 main scenes, and all the rough edges were smoothed out and polished. The challenge was not making a playable game; that turned out to be relatively straightforward. The hardest part, by far, was finishing it. Balancing the difficulty, fixing all the edge cases, and refining the user flows through the app. Making sure our achievements were working in various combinations, and being reported correctly. Maintaining the motivation to push through the nitty-gritty stuff. Our playable prototype was a far cry from the finished product that proudly bears our names.
During the time we spent building Lastronaut, I had a beautiful daughter and Stephan got married. We were both employed full-time. The first weeks of development were full of excitement and new things, as was the final month when the end was in sight. Aside from that though, it took an extraordinary level of dedication and perseverance to even finish this game. There is a lot we left on the cutting room floor. There were months where I didn’t even open the project once. I’ve truly gained a tremendous level of respect for anyone who has shipped a piece of software, however small.
You have to be burning with an idea, or a problem, or a wrong that you want to right. If you’re not passionate enough from the start, you’ll never stick it out.
- Steve Jobs
There is a certain extraordinary and indescribable sensation that comes with making things. In many ways this journey of crafting something from nothing, and then in the end releasing it, can be likened to the experience of owning a pair of shoes. At first, there is a guarded hesitation — you take your time, you feel things out. When you try on a new pair of shoes, you do your best to gauge the promise they hold with what initially may not be a perfect fit. There is hesitation to commit, reasoning that its easier to give up now before you have much invested — your old shoes are fine, right? You hope, and trust, that things will become more comfortable with time, and little by little you embrace their hold on you, and each step becomes a little bit easier. You start to give a little back, see where they will take you. The further you go, the more comfortable it gets, and you start to form a genuine attachment to these pieces of leather and rubber. You can’t imagine how you ever survived without them.
Eventually though, an impending sense of finality begins to loom. One of the seams on the left heel begins to split. These shoes that have given you so much are starting to become a burden. As unfortunate as it may be, the only strategy is to stall, all in a vain effort to delay the inevitable. We must move on though, and as much as we’d love to hold on to them forever, we must cast those shoes aside. We are abruptly left barefoot again, with a cold draft where there once existed only warmth and comfort. The difference is that now we are able to glance backward, over our shoulder, and see how far we’ve come on those worn soles. And of course, we are left with a new direction and an outlook on how to go forward. It can truly be a life-changing experience.
Today I let go of this project that has kept me company through many late nights, occupied my mind through hours and days, at times frustrated me beyond reason, and ultimately taught me so much about not only programming, but about myself and the challenge of following things through to completion. I fully expect there to be a small, astronaut-shaped hole in my life tomorrow morning, and until I find the energy to start something new. I will miss the comfort I now find in Lastronaut’s 7,000+ lines of code and millions of pixels. But I will, and must, move on. I never would have imagined the exhilaration of casting something I’ve created entirely from my own ideas out into the world. It’s nerve-wracking and exciting. Finishing things is hard. But it’s always, always worth it.
A lot of heart went into this game and this article. If you enjoyed it, feel free to recommend it (below) and share it with others. Thanks! ☺
Darrin Henein is a designer and developer from Toronto. He is currently the Lead Designer for Firefox Mobile at Mozilla, and spends his spare time teaching, hacking side-projects together and making games. Find him at darrinhenein.com.