

Show HN: Rocket Renegade, a Space Shooter for iOS in Swift - Arjuna
https://itunes.apple.com/us/app/rocket-renegade/id955229059?mt=8

======
Arjuna
Boys and girls, I present my first game, Rocket Renegade.

"Don't you want a little taste of the glory, see what it tastes like?" [1]

I rocked all of the code and the music [2], so you can run and tell that.

The sprite-based graphics appear courtesy of Daniel Cook [3]. Thank you,
Daniel, for the graphics that you lovingly created nearly 20 years ago on the
Amiga 1200. I hope that my game makes you feel proud and nostalgic.

Thank you, John Dunbar [4]. John created Plasma Sky. He was kind enough to
answer a number of development-related questions that I had. I'll add that you
really need Plasma Sky in your line-up if you love you some shmups.

I wanted to talk about a feeling I've been experiencing. I think that you may
be able to relate, but the most notable experience that I had during
development was working to get comfortable with hardcore, radical, relentless
persistence. What I mean here is, I worked incredibly hard to make this game a
reality. I hit many roadblocks with Swift in the early betas, and it was
tough. Near launch, I hit a bug where things ran flawlessly on hardware, but
would have a yard-sale on some, but not all, simulators. Beyond a single
hardware unit, I had to rely on simulators due to budget constraints. I've
logged millions of points playing this game so that it could be the very best
that I could deliver. _Millions of points_. I've broken down in tears, for a
complex reason that's hard to explain, but I'll try, because I feel like it's
important to talk about this; I can't be the only one:

It's this feeling that, overall, you just want to be a success. You know you
want to finish, but at the same time, you want to rest, but the reality is you
can't stop. Actually, you feel like you have the mental capacity and power to
stop, you feel like you have complete control to sit back and relax a bit, but
when you lift your foot off the accelerator, you find that the F1 vehicle
keeps traveling at ~322 km/h (~200 mph) because you can't fight your very DNA;
it turns out that you're wired that way. Or, at least the perception that
you're wired that way is so strong that you might as well be, even if it's
actually all mental. It's as if you know you need to rest, and you want to
rest; you want to rein in elements of your life that you've let spiral out of
control because of your game, but, simultaneously, while you are cognizant of
this fact, there is a higher-order, autonomic function that is axiomatically
in control, and overrides any of your attempts to stop working, to stop
perfecting, to stop bringing it with everything that you have within you.

You retire to bed at a reasonable hour, but you are "eyes wide open" at 2:00am
or 3:00am, literally waking up from a dream that's an answer to a problem in
the code. The urgency kicks in... you try to fall back asleep, but it's
futile, so you throw yourself in the shower, get dressed and light the fuse.

Unfortunately, too many nights like this cause your immune system to be
compromised.

Being trapped between those two worlds (i.e., being driven to deliver and
trying to rest) is absolutely heart-breaking. This feeling is exacerbated near
launch, because you're literally a few hundred meters from the summit, but
you're exhausted, delirious, hungry, thirsty, sleep-deprived, and everything
else. The wind and the cold is cutting through your gear, making it feel as if
you are wearing nothing but your small-clothes. Your visor is completely
frozen over, and nightfall is looming, but you still have to summon everything
from within you to bring it, because there is no one who can bring it but you.
No one is going to summit for you. No one is going to slide their stacks "all
in" but you.

Even the people around you won't understand the mental suffering that you are
silently muscling through; you, torn between two worlds as the aforementioned
autonomic function pushes and strains you to your personal limits. You measure
the day's progress in centimeters rather than meters. You will either summit,
or freeze to death on the mountain in your boots; the summit in sight, but
just out of reach. Which-ever event happens, you feel alone, either way,
because no one is carrying the sheer weight of The Vision than you. It is all
you. It has only ever been you. There is no one to save you.

I'm starting to tear up just trying to put this feeling into words. Has anyone
experienced this?

So, this really is the story (perhaps not unlike yours) of grinding at the
mine during the day, returning home, spending time with and cooking for the
family... then, quietly donning the white coat and slipping into The Lab and
clocking back in after dark to bring it for the next several, precious hours,
working to make the dream real... then, catching some sleep, waking up,
turning around and dropping the hammer all over again. It would be absolutely
romantic for me to be able to headline this as a, "move-fast-and-break-things-
built-in-N-hours-MVP", but I've no such lock and load glam-story to recount
for you here.

I share all of this because I know that you are the type of people that can
appreciate what goes into creating, developing and shipping a commercially-
viable game; not just the technical aspects, but the personal aspects: the
sweat, the tears, the schedule juggling, the grinding, etc.

Through it all, I've learned even more to _embrace the grind_.

In closing, I have two items that I wanted to ask you:

1\. Have you bootstrapped game development to the point that you were able to
launch out on your own? I'd enjoy hearing your thoughts and your story. I'm so
far away from those shores that I can't see land at this point, but I hold
hope, no matter how implausible it may seem. From my time here on HN, I know
that some of you are stacking from a taste of that sweet SaaS, but have any of
you rolled a knot in games?

2\. Have you "gone functional" in your game development? I would like to
travel this path eventually. As you likely know, Swift does offer functional
elements. Plus, I've listened to John Carmack talk about his experiments with
Haskell [5], and it sounds interesting. However, I'm simply not there yet. My
simple, first-step was to be as immutable as possible where I could, and start
becoming more aware of immutability as I developed, overall. A small start,
but admittedly, a far cry from, "Warp speed, Mr. Sulu!" functional.

Finally, I would certainly field your questions, if you are so gracious enough
to have any. I enjoy answering questions, so AMA and you'll likely find
yourself diving delightfully deep into a quite heavily-frosted TIL.

Thank you for reading this far, and for checking out the game. Here's wishing
you a wonderful and productive 2015!

[1]
[https://www.youtube.com/watch?v=tkRvLFdrbTU#t=63](https://www.youtube.com/watch?v=tkRvLFdrbTU#t=63)

[2] Slip on your headphones, FTW!

[3] [http://www.lostgarden.com](http://www.lostgarden.com)

[4] [http://plasma-sky.com](http://plasma-sky.com)

[5]
[https://www.youtube.com/watch?v=Uooh0Y9fC_M#t=4876](https://www.youtube.com/watch?v=Uooh0Y9fC_M#t=4876)

