Half-Bit Software

Periodic Update: 1-25-2015

Shoot! It’s 11PM, and I nearly forgot to do my weekly progress update!

This week was spent giving Bullet Heck a lot of polish and effort. I improved performance a bit by pushing stuff onto the background and totally redid how audio works. Anyone who thinks they can ship a straight-up, boring SpriteKit game with just the stuff they give you is…well, not me, apparently. I was pleased that the stuff I wrote for Panic Attack slid over pretty easily. It all uses ObjectAL (which is just a wrapper over OpenAL - mostly) so sound hums along happily.

I had the bright idea to test the game on the train one commute home, and boy howdy, did I see a lot of silly little things - things I’ve fixed! Mostly! There are still a few little lingering dumb UI things, but it’s getting closer to ‘done’. Why all the work? Well, there’s a Pitch Party thing this Wednesday, and I was looking forward to showing it off a bit.

I also spent a very, very small amount of time twiddling with a little prototype idea. Basically, it’s sorta-kinda like pong, except with shooting balls? I don’t know, we’ll see if it goes anywhere.

Periodic Update: 1-18-2015

I’ve been sick all week, so this’ll be brief. More churn and minor improvements to The Dungeon’s codebase. There’s a lot of stupid to pick through. I also remembered something I really wanted to add to Panic Attack’s game over screen. The Dungeon was smart, because it let you share your score with the world. Crossy Road does this, too. Panic Attack ought to.

Most of the semi-productive time this week was spent thinking and improving Bullet Heck. It’s got a few little bugs that ought to be squashed before I show it off to more people, and one thing in particular I’d like to add are environmental hazards. (Those are my favorite.)

I’m also spinning up a little bit of time on a hero generator idea that Will from PIGSquad pitched at me. It’s pretty early yet, but it’ll probably be pretty cool and funny.

Periodic Update: 1-11-2015

Farva, your suspension…continues. As does work on getting things up and running with the new device sizes on The Dungeon. That work was pretty straightforward. There are still a few little deprecations that I need to deal with (mostly involving Game Center) but hopefully won’t require too much heavy thinking.

As for The Dungeon, most of the work I did this week had to do with general cleanup. I’ve said this in the past, but a few key facts bear repeating: this was my first iOS project, my first independent app, it was written pre-iPad and largely not updated for code quality along the way, and - most importantly - my last day job was a pretty great experience, in terms of seeing what good code ought to look like, and how it ought to be structured.

From that perspective, The Dungeon’s codebase is pretty tortured, but the good news is that it isn’t impossible to fix. It does feel like the last hurrah for it, in all likelihood, but slowly I’m learning not to assume that I’ll completely abandon anything. That does make it tricky to decide on new projects, knowing that there’ll probably be a non-zero support cost in the future, but I can live with that.

I had a couple of neat-ish ideas for wallpaper generators, too. One’ll mimic the kind of trendy soft-blur holiday photo, with floating lights, and the other is kind of a faked-up landscape mesh thing. I’ll get to those eventually, but I’ve been pretty pleasantly surprised at how well the app has done. I’m pretty proud of it, at this point, which means in six months I’ll get to hate it again. Sweet.

Periodic Update: 1-4-2015

My god. Three weeks? Sooner or later the novelty’ll wear off.

Had a reasonably productive week dredging through very, very crummy old code. Panic Attack’s in not-awful shape! The Dungeon is…coming along. One thing I’m going to have to spend some time fighting with is the general style. I did the in-game borders in Photoshop last time. I don’t want to do that again, because it was a massive nightmare.

This time I’ve got a lot more experience under my belt to maybe drop some of the assets for that. A simpler UI might be okay post-iOS 7. Fingers crossed.

Once I get off my butt, Panic Attack’ll get updated. I’ve got some Game Center deprecations to handle and maybe a tile style or two - heck, maybe even a new song!

The Dungeon is gonna take a fair bit more time than that. I’m finally dealing with all of the old, terrible code smell. Cripes, it’s bad. At least I did some work when the Obj-C literals stuff happened. Thank goodness for that.

Wallpaper Dump

One of the things that I ended up doing for Wallomatic was needing to dump a whole lot of random variations with one particular generator to make sure that stuff looked pretty okay in a lot of different circumstances. Debug builds have a snazzy little button that dumps 40 random renders in a row straight to disk, with half having lines enabled and the other half disabled. I’d dump them, push them up to imgur, then show them off to friends to see what they thought.

It occurred to me that, hey, why not share these with everyone? With that in mind, here’re a bunch of album links after the page break.

Periodic Update: 12-28-2014

Whoa. Two weeks in a row? I’m on a roll!

So! The holidays happened, which were good! We’re not gonna talk about that.

We’re gonna talk about progress and what I’ve been up to. A kindly soul contacted me awhile ago on Facebook saying that, er, the audio in The Dungeon was not great. He’s pretty much 100% correct - and better still, offered to contribute new stuff for it! Not being a complete nitwit, I accepted.

This means, of course, that the time has come for a fairly big update to the game. This is a hobby, but one I take fairly seriously in certain ways. This is a great opportunity to update for the new phone sizes and new iOS updates. I’m planning on bumping the minimum version to 7.0 just to reduce the amount of hair pulled from my head. I’d love to go straight to 8.0 but I’m not sure I can get away with that, sadly.

I’m also going to do a bump for Panic Attack at the same time, since a lot of the updates/deprecations/warnings/code improvement efforts will apply to both products. It’s going to be a boatload of work but it ought to be worth it, in the end. In terms of sales, Panic Attack was pretty much a dud, so that one might end up moving to 8.0 just so I have less to maintain/worry about.

Because stats are fun, here’s some output from cloc for both Panic Attack and The Dungeon!

The Dungeon

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 220 text files.
 179 unique files.
  47 files ignored.

http://cloc.sourceforge.net v 1.62  T=9.39 s (14.3 files/s, 2492.1 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Objective C                     68           3240           2941          13977
C/C++ Header                    62            582            713           1386
XML                              1              1              0            266
JSON                             2              0              0            144
HTML                             1             37              0            106
-------------------------------------------------------------------------------
SUM:                           134           3860           3654          15879
-------------------------------------------------------------------------------

Panic Attack

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 172 text files.
 160 unique files.
  57 files ignored.

http://cloc.sourceforge.net v 1.62  T=3.04 s (38.5 files/s, 8884.5 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Objective C                     51           3010           2278          13072
C/C++ Header                    63           1457           4755           2279
JSON                             2              0              0            139
C                                1              5              8             16
-------------------------------------------------------------------------------
SUM:                           117           4472           7041          15506
-------------------------------------------------------------------------------

There’s plenty of open-source stuff in there, but fwhoosh, that’s a lot of stuff to check over and improve. Panic Attack, at least, is recent enough to be in a not-too-tortured state. Pray for Mojo.

Periodic Update: 12-21-2014

Whew.

When last I did something pseudo-productive, I blathered about being stuck. Oh, woe is me, I don’t know what I wanna do. Whine, bitch, piss, moan.

Nuts to that.

A few weeks ago I pushed out a much-needed, pretty-rad update to Wall-o-Matic and kinda changed the name. Feedback from a trusted source basically said “you idiot, it’s not ‘wall of matic’, it’s ‘wallomatic’”. She was right about pretty much both parts. It added a boatload of new styles, though sadly I don’t remember how many. Oops.

It also made a couple of changes that I’m really proud of. The first was simple and straightforward - do the wallpaper rendering on a background thread, check to see if you’ve done any new requests, then return if you’re still at that point in line. It keeps the UI nice and snappy regardless of how much monkeying you’ve done with the sliders.

The other thing I did - probably a better change - was to add an easier to use gallery mode for picking which kind of wallpaper you want to make. The first one relied on a user being curious about all the options, and being aware of when they looped. It was a dumb, programmer solution. This one shows you big honkin’ pictures of what they’ll look like on a big, responsive scrolling list. It’s what I should’ve done the first time around, but there weren’t really enough of the things to warrant the effort. Adding more generators only made the problem worse over time, so I’m kind of a victim of my own enthusiasm, I guess.

As far as games are concerned, I’ve been working more on the shmup, now called Bullet Heck. It started because I wanted to be @madgarden when I grew up, but now it’s kinda something different? It’s also pretty embarrassing/mortifying that I started it in July 2013. I’m going to blame my cluelessness about action games, SpriteKit and a whole other host of problems for taking so long. It just wasn’t any fun to work on, and I really didn’t know what the heck I was doing. I’m a bit less clueless now, so I’m hopeful to get it done, uh, eventually? It’ll be done someday. There’s really not that much to do, but I’m anxious that it’s not really all that much fun to play. People seem to like it, though, so I’ve got that going for me.

Halt and Oh Dear I Am on Fire

I’m stuck.

Not physically, at least. I haven’t managed to gain quite that much weight yet. There’s a great pie chart that I reference occasionally and throw at people who want to make stuff. Make things you want to make, that you’re good at making, and that ought to be made, and you’ll do fine.

Except - and this is the part where I get stuck - I think I want to make stuff different than what I might be good at. I’ve had this weird, nagging feeling that I want to make something, well, nonviolent, but also non-abstract. Panic Attack was the former, but not the latter, sadly. I don’t think I want to make a game where you put a sword through someone’s dome, but I’m a little scared that, uh, violent games are what I should stick with.

Hence the stuck. I’ve got plenty of ideas and hooks and things for, well, the kind of thing that plenty of other people are making, only theirs are all better than mine. So do I focus on something I’ll suck at for a long while, or ignore the dumb voices telling me to do something new?

It’s a conundrum, that’s for sure.

Wall-o-Matic

On Friday, I shipped another app. Bully for me!

This post heralds the silliness. It’s a wallpaper app! It makes wallpapers!

No, seriously. That’s all it does. I already talked a bit about why I was doing it, and what it was good for, so now seems like the right time to look at the present and future for this thing. To start, this is my first foray into free apps. The other three were paid up front, and, well, so far (after three days) the download numbers aren’t all that disappointing. I’m getting ~50 a day, which is pretty neat for me!

Sales aren’t quite as strong, but, well, it’s early days yet. This wasn’t an app I expected much from, truthfully. It was just something I wanted to use for myself, and the reactions from fairly critical people were all pretty positive. I’m tempted to make it work on iOS 7 as well, given how little 8-only stuff I’m using, too, for anyone nervous about jumping to the latest and…latest.

The other thing I’m aiming for is the occasional rolling release. I actually like writing the little snippets that draw the silly wallpapers. It’s kind of soothing in the same way a quine is, as just a kind of “mess-around, see what you can make a computer do” exercise. My process, more or less, is to poke through minimalist/vector wallpaper message boards and pick up what I like, to see if I can recreate it in pure code. Adding new styles is pretty brain-dead simple at this point.

Long story short: I’m gonna keep making new wallpapers, hopefully a few every month, until I get bored.

Silly Design

Along the same lines as my pen post, I’ve wanted to write about this for ages. Ever see stuff in your day to day life that makes you pause and wonder what someone was thinking? Or why something was done a certain way? If you haven’t, you’re a Zen master, because there’s weird, questionable crap all around. Take, for example, this remote. It controls a ceiling fan, and the buttons look like this:

Ignore the snazzy green Elevation dock.Ignore the snazzy green Elevation dock.

Points in its favor: the buttons are big. There’s a light at the top that blinks when it receives input, so you know that it got the message.

Points against: why - and this is my big quibble with the damned thing - why are the buttons in a circular ring? Without looking, which one’ll turn off the fan completely? Which one’ll set it to medium? I’ve lived with this fan for four years, and I still can’t tell you. I have to read the buttons to figure out which one to press. Every. Single. Time.

Why aren’t they in a big stack, with “fast” at the top and “off” at the bottom? There’s even a light button - have the fan speed buttons get wider as it gets faster, and have the light at the top! Maybe even shape it like a stupid lightbulb!

This remote is my design nemesis. It irks me. It’s irksome.

Minor update: The lovely people from Fracture agreed with me on Twitter! They also brought up a point that I meant to mention on here, that the buttons are laid out to mimic the appearance of a fan. Because they reminded me, they get complete credit. The remote is absolutely supposed to look like the spinning blades of a fan. It’s the only thing that’d make any sense - it’s neat from a skeuomorphic perspective, but pretty awful usability.