Half-Bit Software

Habits

New Years’ Resolutions, by and large, are a crock of shit. Most people who make them don’t follow them, and they’re just a fantastic source of guilt for just about everyone. Boring. Write about something else.

This year, instead of making resolutions I won’t keep, I’m just trying to passively do little things that’ll help me as I go. One of the things that took me nearly two weeks to notice was a brief nightly journal. Every night, assuming I’ve done something, I jot down a few sentences, maybe a paragraph or two, into my journal. GTD folks might call it a decompression, or a dump, or a hull breach, but for me, it’s just a way to kind of vomit a few words onto the page.

Another thing, and this is kind of a bigger one, is to just do a little bit every day. It’s hard when you’ve had a lingering, stupid little cold since November, but it’s getting easier as time passes. This might be something like start a refactor of past stupidities, or twiddle with how buttons look, or even crack open a fresh prototype. Any progress is good progress.

These have actually helped me build and keep more momentum, assuming that I manage to keep it up. Only 11 more months to go, though, right? Then I can go back to being an awful person. I can hardly wait!

2013 Plans and Goals

Okay, let’s get this show on the road. Next year, I promise, I’ll do this a month earlier!

What do I actually want to get done in 2013? Basically, the same plans as 2012 - it’d be nice to actually make something and send it out into the world to get ripped apart. This year, though, I’ve got some new ideas and some different plans.

For one thing, I’ve been working on something based on an odd idea I had over the summer. That’s not quite ready to show yet, unless you’ve been following on twitter, in which case, uh, you’ve seen it. Same with a bullet hell-esque shooter. That one’s a pure mechanical nightmare. There’s also another clone that’s in the works, but way too early to talk about.

The odd thing about all of those? They’re basically clones, with a minor twist. Yes, that’s sort of intentional, for reasons which deserve their own post.

But, all is not boring and dull! One neat thing that I’m pursuing is sort of tertiary to all of this game development stuff. I’ve had a fascination with games for people of different tastes and persuasions - one of my favorite things to ponder is how, exactly, I’d write a game for someone who was visually impaired. I’ve actually considered making The Dungeon easier to play for non-sighted users, but I don’t think any of them would actually want to play it. (If that’s not the case, please yell at me, and I can try to make it happen. Honest.)

So, games for…not 10-50 year olds. Who does that leave us with? Well, either slower games, or…hm. Early education? Surely nobody buys software for toddlers and pre-kindergarden…

2012 Retrospective

Because this went so well, it seemed like a good idea to take a look through last year’s as I start to think about what to do this year. In no particular order, they were basically:

* Ship The Dungeon 2.0
* Mac version of TD?
* Make a Not-Game
* Write more

Woof. One out of, uh, four ain’t bad, right? If nothing else, there’s room for improvement, and to be fair, the 2.0 update (and .0.1 and .0.2) ended up being pretty damned big. It’s almost gotten to the point where I’m not completely ashamed of it, either, so that’s bonus awesome.

The Mac version ended up being a bit of a quagmire, and interest petered out pretty quickly. It really is better suited for a quick, 30 second play experience, not the kind of deep game that most desktop players are accustomed to.

The Not-Game projects both petered out as well due to lack of interest, as did writing more. This started to pick up a little as I switched away from Posterous and over towards this static site thing with Octopress (couldn’t you tell?) I’d like to write more, because I really do enjoy it. I’ve got a few things that’ve needed doing for a few months now, but am finally hitting a stride where things are actually being accomplished on a night-to-night basis.

That’s not to say I’m disappointed with how 2012 went. It was kind of a colossal year, with a huge change right near the end. I prototyped a few things, one of which is still being developed, and deserves its own little chunk of space. All done looking backwards now - time to look ahead. Woof!

Dome Rotation

I’ve been playing around a bit with a few little iOS apps, and one of the annoying things I’ve come across is how rotation is handled: specifically, how it isn’t quite handled by your views. It is, from a certain point of view, just fine, but from another, it’s completely nuts.

Every UIView has what’s called a transform - the linear algebra explanation is that it’s a 3x3 matrix that mucks about with your UIView’s box in 3d-space. This is all well and good, until you ask for your view’s center after rotating.

Read that again. Okay.

So, time for a quick test. Portrait mode, iPad, what’s my center? {384, 512}. Width, height, all well and good.

Rotate to landscape (so now we’re wider than we are tall). What’s the view’s center? {384, 512}? Uh. Hm.

Were you expecting that? I sure as heck wasn’t. I don’t really have a great solution for this yet, either, so if you’re like me, and enjoy positioning crap based on your view’s coordinates, you might be a little sad. Fear not, however! There’s a semi-awful solution that isn’t too hardcore stupid. In your view controller, just add a few methods:

1
2
3
4
5
6
7
8
9
-(CGPoint)center
{
  return CGPointApplyAffineTransform(self.view.center, self.view.transform);
}

-(CGRect)frame
{
  return CGRectApplyAffineTransform(self.view.frame, self.view.transform);
}

As always, test and log thoroughly before taking this at face value. Also, this means that instead of doing self.view.center, you’d end up with just self.center. Both’ll work fine in portrait, but only one’ll be happy with all rotations.

Buildiness

For quite some time now, I’ve had a bit of a wild hare about something incredibly stupid. After being pestered a few too many times about getting a TestFlight build while away from my computer, I thought, hey, it’d be sweet if I could, from my phone, tell the damned machine to make a new build and push it up to TestFlight.

So, one weekend when I was particularly full of beans, I gave it a quick, vicious stab.

Ramblings

A few months after my son was born (this would have been September, 2011), circumstances dictated that my office become a guest bedroom once more. This really was a great thing, because it meant that the person occupying it was helping life not devolve into some kind of horror flick. An interesting side-effect was that I moved my laptop into the kitchen and did most of my fun work there (the 2.0 update for TD, at the time).

This also meant that I did a fair bit of writing, too. I actually really enjoy it, partly as a means of expressing and organizing my scattered thoughts, and partly as a measure of “things made”. I like making things, and I’m slowly starting to believe that the more things I make, the better I’ll be at making them.

Back to writing, though. I played around briefly - three or four days, at most - on 750words.com, and actually really enjoyed the experience. Spending fifteen minutes to write 750 words was incredibly cathartic, especially given how much work-related stress I was under at the time. It made me want to write more, which ended up making writing circle back around to a source of guilt instead.

“Guilt?!” you say. “How can this possibly make you feel guilty?” Well, you see, I don’t do it. I can sit down at my desk and not write shit. That’s where I program, you see, or browse reddit, or do any number of things that aren’t “write some goddamned prose, you monkey.” And, yet, this is being written, right now! How can that be?!

Well, I’m at the kitchen table right now. Obviously.

The Dungeon 2.0.2 Update

The 2.0.2 was submitted last night. I decided to do the app store update in limerick form and post a more detailed list here.

  • Potions now give a little bit of hunger back, depending on difficulty level.
  • The twitter button on the main menu now redirects to halfbitsoftware.com because I’m certain nobody cares about @halfbitsoftware.
  • Minor Twitter text formatting bug fixed.
  • Removed a few megs of unused images and compressed existing images.
  • Added retina splash screen
  • Fixed view screen bug.
  • Wizards now start with more wand charges to make the early game a bit more fair.
  • Animation fix on wand blasts.
  • Fixed minor high scores list issue.
  • Fixed empty name error.

How I Get Stuff Done

I’ve been meaning to write this for awhile, mostly because I find it interesting seeing how other people work and figured someone might find this useful. I actually keep my task list, for the most part, in a physical journal, written with an actual pen (a fountain pen, because that’s just how I roll). It’s a system I’ve been fumbling with for almost a decade now, and it’s absolutely not perfect yet, but it’s certainly good enough for right now.

I pretty much do all of my todo listing and heavy thinking in a little journal. I’m always tempted by technical solutions, like the many, many todo list apps on iOS and OS X, but I feel like they’ll let me do too much, too quickly. I need something that’ll slow me down and force me to think hard, rather than something that’ll just let me spew thoughts uncontrollably. Often, in the course of writing down what I have to do, I’ll actually figure out how the hell to do it, too. It’s rare, but still counts as bonus awesome.

This, sadly, leads to a bit of angst every 3-6 months when I start to get dissatisfied with the system. The biggest bummer, at the moment, is that if my notebook isn’t here, I can’t really record anything for later, which is why I’ve also started using Elements on iPhone and having it poke into nvALT’s text directory, which syncs to Dropbox. It isn’t bad for little notes, but I don’t think it’s good for much else than jotting down quick notes for later digestion.

My favorite pen/ink combination, thus far, is also the first pen I tried. It’s a boring Lamy Safari, in charcoal, with a black EF nib. Because it’s not black enough, I also use Sailor Nano black ink, which is an incredibly dark, durable ink. It also flows really well, though has a tendency to clog on thinner, crappier pens.

My journal of choice, because I’m a dipshit, are those trendy, floofy moleskine journals from various reputable retailers. I like the graph paper ones for general project tracking and todo listing, and the plain ones for when I…don’t really want lines. They’re better for drawing, too. Their paper is plenty good for my needs, I like the feel of them, and it’s a cheap thrill to see the finished ones lined up, all nice and neat on my shelf.

Every once in awhile, I flip through old journals, but that’s a different post.

Ship, Damnit!

This comes as a very belated response to an iDevBlogAWhatever here.  The gist of the article is that releasing your first app is a terrible idea, and a complete waste of your time.

I say: bullshit!

Shipping is, at the end of the day, all that really matters.  It validates every difficult decision you made, every nail-biting, bug-triaging, hair-pulling, sanity-losing moment.  Some people might not like what you make, and, yes, it might be turn out to be crap. Shoot, that’s true for the AAA guys, too, with huge teams and millions of dollars behind them.  Look at the Fable series!  It’s been steadily going downhill for awhile now! (I kid.)

Not releasing your first app is not the important part.  We’ve all (hopefully) got a little voice inside telling us just how good (or shitty) whatever we’re looking at is.  We judge everything, all the time, without even thinking about it.  If you don’t have that voice, you’re lying to yourself and you probably just need to find a good editor/reviewer/tester.  There’s no shame in it, either – external feedback is incredibly useful, at every stage of creation.  The trick, here, is that your first app is totally releasable – as long as it isn’t a total piece of shit.

Hell, even if it is total schwarbage, going through the motions of something, from start to finish, is an incredible experience. Figuring out all the little details prepares you for the next time, where you really get to go nuts.

And going nuts is a great thing, eventually.  When you haven’t figured everything (or anything) out, though, you’re way better off scaling back.  What’s keeping you from putting whatever you’re making into people’s hands?  Art?  Music?  Too slow?  Not fun?

Fix what you can, then shove it out there for people.  Force people to tell you how much you suck, instead of just assuming that you do.

2012 Plans & Goals

With both feet firmly in the new year, it’s time to throw out a few plans and goals!

The stuff I’ve been working on (roughly explained here) has been going pretty darn well.  Posting progress screenshots and vague updates to twitter has helped progress, as has breaking things down into little bite-sized chunks.

That’s not to say there isn’t quite a lot left to do, but the light at the end of the tunnel is a hell of a lot less dim than it was a few short months ago.  My hope/goal is to only need another couple of months before I can push the next big, and possibly final, update for The Dungeon.  It was never my goal to keep iterating on the game forever, and nothing I’ve seen or done recently has changed my mind. I’d like to fix all of the dumb, broken stuff, push it out, then move on to something new.

Still, all that being said, one of the things I’ve been toying with is a version of TD that’d live on the Mac App Store.  The Iconfactory made this great project called Chameleon that might make that nearly trivial, or at least not as massive a pain in the ass as it could have been.

I’d like to release one (or both) of my non-game projects.  Something that’ll shuffle albums the way I want and play podcasts in a sensible order would probably be worth a buck, and a grocery list app that works the way I want might be useful to someone else, too.

It’s also a goal of mine to write more publicly.  I’m not terrible at building technical things, but growing a community and marketing a product are not things I’ve had a great deal of practice with.  My limited understanding is that this kind of free-form writing can help with that, and I enjoy it when I get the chance, so writing more seems like a no brainer.  The first year I did this, I wrote 6 posts, then last year I had 12.  I don’t know if I’d like to double that number again, but I’d certainly like to try.

tl;dr: release dungeon 2.0, release something else™, write more