Monthly Archives: March 2015

For Immediate Release

Beaver Smash Icon

Beaver Smash Icon

In-Game Beaver

In-Game Beaver

Today I woke up and went for a two mile run and thought through all the things I could do while waiting on that DUNS number. Obviously I need to stay away from new features, but there were certainly some polish things I’d like to squeeze in since I have just a little more time.

So here’s my new short list:

  • New chapter and beaver type added. A little known secret is that I’ve actually had one beaver that was rigged and ready to go but unused. The chapter the beaver is in would require more programming than the other chapters, and I just ran out of time to implement it. The reason I’m being so vague about the beaver and its chapter is that it will likely be at the very end of the game. And if you get there — you’ll know why it took more to make it work!
  • Revamped iOS icon. Look, it’s not that our icon isn’t cool. It just doesn’t exactly fit the game, really. The beaver in the icon is a bit too cartoonish with its smaller, wide apart eyes, a rounder head and fat neck, which are counter to our rigged 3D beavers with big eyes, oblong head with big ears and skinnier necks. This won’t be a small task as it is truly the most important art you make for the game.
  •  Revamped gameplay video. This one is a no-brainer. Many graphic and effects have changed since I last captured, so I’ll need to recapture and reedit for our 30 second app store submission.

I was able to get the first task bullet mostly done, but then I had to switch gears and work on the new press release instead. (Guess which of these I enjoyed the least!)

What the DUNS?

It’s now less than two days from our intended submission date, and I’m starting to think we’re not going to make it. You might be assuming, as I would have, that it is due to us being unfinished with the work for finalizing the build. But actually it is in a pretty stable place now.

This time the bottleneck is in another’s hands, Dun and Bradstreet’s approval of our DUNS number.

If you’ve never heard of a DUNS number, you aren’t alone. I myself only learned of them six years ago when involved in some government contracting bids, which is what it is typically for. But Apple also requires them as easy screening method (on their part, not ours) to further verify the legitimacy of a business.

When I initially called them a couple weeks ago, I was pleasantly surprised that they had a special email address, appdeveloper@dnb.com, that would “expedite the process of getting a DUNS” number. I emailed them right after and got a response just a couple hours later. So far, so good!

The response pointed out that I couldn’t register “Iron Ninja Games” under the Apple app store as a Sole Proprietorship using a DBA (as I mentioned in this post earlier), which is what led me to convert us to an LLC. The conversion to LLC was a major pain and took a while, but once done I figured I could get back on that magic D&B connection and resolve the DUNS number ASAP.

But naaaaaaah.

I’ve emailed them three times over the last week and haven’t gotten a single response yet. Not feeling the expeditiousness.

Tomorrow I’m calling them again until I speak to a human. It wouldn’t be the worst thing in the world if we had to delay just a little longer, but I’d prefer it wasn’t due to something like this.

A Tale of Three Bugs

Today has been extremely productive. But to be sure, much of that productivity would be less obvious from a distance. Here’s a few examples all developers could relate to.

The Might-As-Well-Refactor Bug

I had the end credits in a “Scene” on its own in Unity, which is all well and good, but it turns out that my third party sound manager doesn’t play well with multiple scenes. Sure, I could set it up so it was persistent across scenes with a bit more coding, but instead I decided I might as well tailor the credits in the main scene anyway.

This required some refactoring of the original credits objects and the code that supported it. All in all, I think I ended up redoing about half the work I originally built. But the credits are much, much better now.

The Less-Is-More-Anyway Bug

The Video Settings page has three options, “No Video Capture”, “Buffer One Level At A Time” and “Buffer The Last 5 Minutes”. The bug was with the final choice, but ultimately it became obvious that almost no one would use it anyway, so I just subtracted the option altogether — which makes the page look better and easier anyway.

The You-Lie-Computer!!! Bug

Every single programmer deals with this, I don’t care what they say. It’s the bug that you keep rereading the same lines of code over and over and over again certain that you’re reading it properly and that everything is in order. You feel so confident that the computer is just flat wrong or maybe the application you’re building it with has a true bug in it. Sure… that’s it…

But years of experience tells us time and again that the fault lies with us, the programmer, 99.99% of the time. And most of these times it is something so small and innocuous, we can’t believe our ability to overlook it.

That was my last bug of the evening. The last level on Normal Mode wasn’t recording to disk properly and it turned out the culprit was just an extra character in one of the functions. It took an hour and a half to track that little sucker down.

Okay, computer, you win this time…

Will Our App Size Be An Issue?

Earlier this week Xcode gave the “estimated size” of our app for the App Store at 127mb. Too much! We have to be under 100mb to allow for downloads over the air, so it’s a no-brainer to optimize that last 27mb+ off.

One of the last big tasks I was set to hit was progressive download of our music. Since the music takes up 12 megs compressed and 2-3 times that uncompressed, I figured I’d get some good savings with this new structure. But after completing it, the new estimate came in at 120mb. Cue the sad violin.

What rattles me is the .ipa file — the actual app file for Ad Hoc builds — is just 48mb. These files decompress when installed onto the iOS device to become much larger of course. But I’d presume the App Store size would be more like the .ipa file than this larger estimate Xcode is giving me.

I guess as our first submission, we’ll get to find out the reality soon enough…

Level Editor Detour

To help with making the Impossible Mode levels, I decided to build a quick level editor module for my beta tester, Bruce. I figured it would take maybe 2 to 3 hours tops given it was mainly just shifting variables on a flat config file through a simple UI.

Except it didn’t turn out that way.

Instead, I’ve been doing a ton of new work to get it up and going, even learning and using C# reflection for the needed dynamic control (don’t ask!). I was finally able to complete it in the wee hours of the night after working a much larger multiple than what I first assumed.

iOS Illustrations

Bri Leahy has once again provided us awesome art for the overlay illustrations to our iOS gameplay screen shots. Here are two of them…

Wily Beaver

Wily Beaver

Zombie Beaver

Zombie Beaver

Crunch Week

The current plan is to submit to Apple on March 31st with the hopes of having an April 9th release. Which means there are just seven more days to crunch on the remaining bugs.

I took my two beta testers to lunch today and talked over the plan. I also marveled at how far we’ve come. So much has been added and refined since the first days I was tinkering with it last year in June.

High Scores

High Scores and Total Medals

High Scores and Total Medals

Somehow amid my new Stats and Achievement pages I managed to forget to plot a location for high scores. (I’m kinda amazing that way)

I went through four iterations of the Achievement page before I finally got it looking just the way I wanted it. The rest of the day has been writing the code that supports it in each of the respective modes.

Impossible Mode-ness

Beaver Smash has three modes: Normal, Infinite, and Impossible.

Normal and Infinite have gotten the lion’s share of attention up to this point, but I’m now wiring in more and more to the Impossible Mode. I didn’t have much of a choice but to hold off given the base modes kept changing in configuration and core programming.

One thing that I’m excited about with Impossible Mode is that I can really let the hurt fly. Often hard core gamers complain the most difficult settings for their game aren’t really tough enough to keep them down (this includes me sometimes). I intend to make Impossible Mode truly worthy of this challenge.

Today I finished coding in the larger infrastructure that supports the mode, it’s unlock (currently at 120 silver medals), and all menu items related to it.

Soon my poor testers will be giving it a spin.

Video and Visual Tweaks

It’s been mostly a bolt-tightening day.

  • Updated the Video Settings page and added smart detection on the video button in the Level Completed and Game Over screens.
  • Refreshed the vortex graphics and added code to present “Double Tap” text when left alone for a few seconds.
  • Also did a number of tweaks to the shaders for mobile optimization.