Subtitle: Ode to Knife Toss, thy free days I remember you well

Since you probably heard or read on the wall of some truck stop [possibly even the truck stop outside of Des Moines where I ate a four pound burger and my picture is on the wall] Knife Toss was OpenFeint’s Free Game of the Day on February 22, 2010. At this point I would like to pull over the Winnebago and thank the OpenFeint folks for allowing a bunch of greenhorn game designers and hobos to take part in their giveaway. Considering no one has heard of Crawl Space Games or our game, Knife Toss, we thought that the giveaway would be the perfect way to get some exposure. And we were right for the most part.

**that was a really choppy opening paragraph and I apologize. Please read on, I’ll try and find a rhythm

With much fanfare, Knife Toss was released on the app store on February 4th, 2010. And after receiving the keys to various cities and dancing all night, we discovered that 50 people had paid for our game. As the week progressed the sales dipped down to between 12 and 20 a day. That’s where sales pretty much stayed until we went free.

Now from the time the game was released in the app store up to this day, we have been working hard get some exposure in the sea of apps our game is flailing around in. Hundreds of emails were sent in an attempt to get sites to review our game. And to our delight, pretty much every website that reviewed our game gave it a favorable review. Thanks again to everyone that has taken the time to review our game. (You can see the list of sites that reviewed our game here.) So going into the free giveaway we had very high hopes that most gamers would like the game as well.

We were scheduled to be the free on a Monday and because there is a delay in the Apple system when you change prices, we decided to just to make the game free Saturday night to be safe and pick up some extra exposure. Also, I was all hopped up on Chris Anderson’s book Free at the time. (Download it, it’s a great book and free). In two and a quarter days we had over 120,000 downloads. On the OpenFeint day we had around 100,000 downloads. We may have had more than 120,000 but its close enough and I’m too tired to check the records. We made it up to #5 on the free games list before we switched back to paid.

So a few people have been wondering how are sales are doing since the sale. Drum Roll………………..maybe a little cymbal……..our sales are now between 50 – 100 a day. Sales have picked up and we are happy. A lot more people have heard about our game and of Crawl Space. And a lot of people find our game fun to play. Positive results. Now, do we still cry ourselves to sleep at night? Do we still wake up in the middle of the night in a cold sweat remembering the time being pushed out of the locker room into the high school hallway in our underwear? Of course we do. Have we made it onto Apple’s New and Noteworthy list?(**We made it on the New and Noteworthy List March 2, 2010) Or What’s Hot? Or even What We’re Playing? No yet.

Taking the game free was great exposure, but along with it came a lot of one star ratings and bad reviews. The increase of players brought to light a problem that never surfaced during testing. Some people actually struggle with the controls of our game. We tried making it as simple as we could—simply tilt to aim and tap anywhere on the screen to throw. It was designed to automatically calibrate, but for some people it must not have functioned quite right or we didn’t communicate clearly. As a result we received around 1,000 one star ratings. This unfortunate fact brings to light one of the problems with the rating system.

I am not claiming the game does not have any problems, but since customer reviews started coming in, we have taken actions to correct problems. Two consecutive updates have been pushed out trying to improve the calibration and correct issues people were experiencing. If you are one the folks that has experienced problems with the game I apologize and ask that you give the game another look. But one of the short comings of the rating system is that there is no in game rating module. Ratings tend to polarize to 5 stars or 1 star…….that statement is totally unscientific and merely my observations. Either people are zealots for the game and endure the hassle of going through the rating process, these are the folks that typically give very positive reviews. Or you have the people that are dissatisfied with the game and are deleting it off their device—1 star on the way out. Only 1% of people that downloaded our game have taken the time to rate or review our game. Its understandable, it’s a hassle. Its just unfortunate that the majority of the one percent seem to have been people rating the game in frustration as they were deleting it. While 98+% of people that like our game or think it so so haven’t voted.

So where are we, and more importantly what happened to these boxers I have on? Knife toss sits at 3 stars and we’re continually trying to push out updates to improve game play and get back some of those lost stars. We’ve learned so much in the process of making our first iphone game and jumping into the murky water of the app store. We come from the services industry, shameless plug for our design studio Paper Tower, and Knife Toss is our first trip off the diving board. If anyone has any advice or comments on these humble thoughts shoot me an email: brock@crawlspacegames.com

Coming from a background in web programming and databases, my first experience with game programming was a surprisingly pleasant one. While “Knife Toss” isn’t exactly “Call of Duty: Modern Warfare,” I was still initially concerned that I would have no idea how to even begin working on a video game. But in the end things became very intuitive and I was able to use my prior software engineering skills to adapt quickly to the environment of game development. That is not to say there wasn’t a learning curve throughout the process.

The biggest obstacle for me was getting a grasp on game objects in Unity3d. A novice game developer might find this task extremely simple. But I had never worked with 3D graphics, textures, materials, colliders, meshes or anything related to modeling or gaming. Once I was able to figure out how all of that worked, and how to wire up the code to it, things became comprehensible. It was challenging enough to make me think, but not so hard that it would take the fun out of it.

We did all of our coding in in Mono – A Open Source implementation of C#. I had never worked with C# previously, but this wasn’t an issue at all due to my past experience with Java. Unity also allows code to be written in a Unity version of Javascript, which happens to be what all their documentation is shown with. This was an issue a few times when the javascript implementation of a Unity Engine function was actually quite different then what was needed with C#. Something I found interesting was that it seems most people in the Unity community use C#. Although little Object Oriented Programming was used in “Knife Toss,” I see it as the obvious advantage of C# over Javascript. (Side Note: The non-iPhone version of Unity3d allows for a third scripting language based on Python called “Boo”. If they ever bring this to Unity iPhone I’m going to switch and never look back) The programming process overall was pretty straight forward. We did have big issues throughout the process, but they were seldom due to coding.

Textures are what killed us. We got to the final stages of finishing the game when I discovered that we were using up huge amounts of RAM. I had never thought to check before because the game always ran fine on my device. It turns out it did not run fine on other devices, specifically the first generation iPod Touch and the original iPhone. We ended up having to redo all the texture sprites and consolidate them down to two 1028×1028 sheets. This began the most frustrating week and a half of the whole development process for me. I had to redo all of our menus, GUI elements and on screen displays by readjusting all of their coordinates. Finally we got everything back in place and as a result we cut our RAM usage by almost 20MB.

Now that our game was optimized and working well on all compatible devices, we were ready to put on the finishing touches and begin intensive testing. When the game finally was complete, I carefully went through Apple’s process to submit to the App Store. This process is not as difficult as it seems when you first glance over their set of procedures. Our first game was finally submitted and it felt great. I still wasn’t fully satisfied though. I had read so many horror stories about the App Store submission process that in the back of my mind, I actually was expecting to be rejected the first time around. I was wrong. The game was accepted a few days later. After working through a bit of a mix-up with the contracts our game was finally for sale across the world.

My first experience with game development was an excellent learning process. Now that our team has the first game out of the way, look for us to begin pumping out games left and right. Here is a list of tips I have for any first time game developer, specifically using Unity3d for iPhone:

* Go through the tutorials that are provided for you. I read through them, started them, but then became to impatient to finish. Had I actually finished, I would have saved a lot of time instead of having to go back and figure out how to do certain things which actually were covered very well in the tutorials. 
* Plan out your game as detailed as possible before beginning. If you are working with a team, make sure this idea is stressed. What may seem like a minor change or addition to someone who didn't program the game, may be very difficult or may require completely redoing certain aspects of the game on the programming side. This also will prevent "band-aid programming." 
* Use texture atlases and use as few sheets as possible. 
* If possible, do all testing on a first generation device. If it works on that it'll work on the faster devices. 
* Use the Unity Remote. It'll save you tons of time. 
* Create a copy or a pseudo "version" of your project at least once a day. Sometimes things will get messed up and you won't be able to figure out what you changed to cause it. Always have something to fall back to. 
* Use Object Oriented Programming often. Nothing is more irritating then searching through   your huge, single class file to find one of the hundreds of variables that have been accumulated. 
* Use the profiler and Apple's "Instruments" often to check your games performance and resource usage. 
* Read through the documentation in Unity. Especially the optimization sections. It contains plenty of useful and sometimes absolutely necessary tips to make your game ready for sale.
* Avoid allocating memory during game play if possible. 
* Use the Unity forums. For the most part everyone is very helpful and they are not rude to  beginners as long as you aren't asking questions that are readily available in the documentation. Also, the search feature is your friend. 

I’d love to help out the best I can if anyone is looking for help getting started. Feel free to email me at pat@crawlspacegames.com or just post to the Unity forum. I always reply to post if I think I can help out.

Knife Toss on AppGiveaway.com

Head over to www.AppGiveaway.com and you’ll have a chance to get Knife Toss for free. Make sure to follow them on Twitter.

Socialize

Crawl Space

Stalk Stick

Games

Comics

Good Ol' Sites

Elevate Entertainment