Half-Bit Software

How I Make App Icons

Art is a pain in the butt. I flinch whenever I have to do anything substantial any kind of image editor - Pixelmator, Photoshop, or whatever. It’s always been kind of a goal to minimize the number and size of assets in my app bundle. In general, smaller apps are good for everyone.

For The Dungeon, one of the few outright app rejections was because my app icon didn’t match my big-icon. This kind of surprised and annoyed me at the time, but now I feel like Apple was probably doing me a favor. For Panic Attack, I wanted to try something different with my icons, and render them in code rather than doing anything in an art program.

Which brings me to today! I’ve been working on a pixel editor for far, far too long a little while, and finally got around to putting together an icon for it. I’m doing it all in code with pretty simple, straightforward Core Graphics calls. It might not be all that optimal, but it lets me specify sizes and point/pixel scaling at whim, which makes editing and regenerating all my icons at all required sizes remarkably painless.

Procedural Content

I’m not an artist. Really, really. Despite my not-best-efforts, I’m still not any good at, well, drawing, or sketching, or pixel-art-ing. For The Dungeon, I pretty much used the Roguelike Tiles as best I could, and found pre-made GUI art elsewhere. I did some of the in-game UI border art in Photoshop, but it’s all pretty much not-me.

For Panic Attack, at first, I used a few things from subtlepatterns.com, but eventually decided the backgrounds kind of clashed - so, I made my own. Not in Photoshop, though. Still not an artist, remember? Instead, I rendered graphics myself, procedurally. The non-pixel-art in-game styles are, actually, all rendered procedurally too. (For those keeping track, those styles are Default, Seven, and Seven Symbols). Up until Block Party and Block Symbols, Seven was actually my favorite style.

So! What in the hell are procedural graphics, anyways? Well, to me - and hopefully, to everyone else, too - procedural graphics are, duh, graphics (art, but not capital-A Art) you generate algorithmically. This means, someone who doesn’t really have the art skills, like me, can still have reasonable art and graphics without killing myself in Photoshop or Pixelmator or what have you.

And since I brought it up, Pixelmator is freaking sweet. I don’t know if I’d go back to Photoshop after using it, at least, for the pixel art kinds of things I do.

Procedural art is great if you have absolutely no art chops and enjoy lots of iteration.

Random Grab-Bag 1

It’s been awhile, and I’ve been anything but idle, so I figured it’d be a good idea to drop a quick note about the silly things I’ve been up to lately. For starters, I pushed iOS7 friendly versions of The Dungeon and Panic Attack up to the App Store. I also made the latter free for a week - get it quick, folks!

Panic Attack Theme!

For Panic Attack, I also wanted to modernize its look a bit, so I updated my theme a bit. This was actually something I really wanted to do before iOS7 came out, but it didn’t quite make the cut. I regret it a bit now, but I’m glad that it turned out well. It’s kind of hard for me not to use it. Check it out! I also spent a bit of time just doing a little bit of cleanup and polish on Panic Attack. Despite my best efforts and all common sense, I’m not quite done with the poor game yet.

Screenshot_360 by halfbitsoftware

Shiny!

Angraxian

I’ve also been working a bit on a little SHMUP idea, more or less inspired by Chillaxian, a mellow, groovy riff on Galaxian. Mine goes pretty much whole-hog in the opposite direction, hoping to be a fast, angry, almost psychotic take on the space shooter. It’s also my first foray into SpriteKit. (Hence the quiet - most of the things I’ve been working on have been under NDA!)

And More?

I’ve also kind of started playing around with another little SpriteKit project. Last night was a public Art/Code night thing for the local indie gamedev scene, and I started futzing with…well, just look. It’s a bit silly right now, but I’m hoping to make it cooler soon!

Tappy Swipey

One of the early feature requests for Panic Attack, even before it was called that, revolved around user input. People expected to slide, and were surprised and annoyed when their expectations weren’t met. I’m a people-pleaser, and I like trying to make things that people will enjoy using, so the next update will include a second, likely more-popular control scheme that closely mimics the one found in Planet Puzzle League, a Tetris Attack clone for the Nintendo DS.

It seems like a not-bad idea to describe why I built things the way I did. I came at this project with a couple of strong biases: first, the original Tetris Attack for the SNES, and a freeware game called Crack Attack for desktop PCs. Both had a kind of reticule thing - hitting a button would swap the two wrapped blocks. My thinking, for my iOS version, was to just nuke the reticule and have the blocks swap if you tapped between them. The context seemed obvious in my eyes, but - whoops! - hasn’t been to others.

Now, one of the little details about my current scheme revolves around timing. It’s an important thing, for all of the versions I’ve played and enjoyed. Things happen at a particular time, and take a bit of time for the animations to run through. I lock blocks for a quarter of a second, giving the animation time to complete. If you try to swap a locked block, you’ll get a wiggle that says, hey, Cool It. With this, the game seemed to play pretty well.

Enter the Swipe. I’ve got it working now, actually, and…goddamnit. It plays better than the tap. I don’t know if it’s more intuitive, but it’s definitely faster, because, at the moment, I’ve got a lot of the timing stuff sort of turned off. You can press your finger down on a block to grab it, then tug the thing over, and everything just slides and is completely happy. The quarter-second delay is broken. The game seems to feel better for it, but now I’m worried that it’ll completely break the feel of the game. It’ll certainly make tap-mode less appealing, since I don’t think you can do as many things as quickly.

So - either I can force a delay into swipe mode and cripple it like taps, leave it as is and have a lame tap mode, or try to disable the delay for tap mode. There’s one little animation glitch with the current swipe mode, but it doesn’t seem like a good enough reason not to turn something on for the sake of better gameplay.

Woof. Compromises.

Waterfight Pre-Mortem

Like a lot of indies and hobbyists, I play around with a lot of prototypes. Most of the time, these don’t see the light of day, and for good reason - they’re generally awful. It’s occurred to me more and more recently, though, that the cone of shamesilence might be more appropriate for, say, Apple, and less appropriate for someone nobody’s heard of.

So with that in mind, I thought it’d be a fun exercise to share some of my less-awful fiddlings, on the off-chance that someone finds them interesting. If nothing else, these are great mistakes to learn from. There’s also the slim chance that they’ll encourage me to actually finish them - finishing stuff’s always a good thing, even if it’s complete garbage.

Initial Motivation

Screenshot_297 by halfbitsoftware

An early test with hue shifting.

There was a great article about making caves with cellular automata from…sheesh, back in March, I think. @madgarden, one of my many nemeses, wrote a quick little C implementation and pushed a neat little toy game of life up onto the App Store. When I saw this thing make caves, for some reason, my first thought was how they’d look if they were full of water, and you could drop ink into it to see it spread. You’d have a fun little set of restrictions on where the water could go, and a bit of falloff as the ring lost momentum.

Crackpot idea, huh? But it seemed like something that’d be neat to see working, so I promptly forgot about the idea for a month or two while I was trying to get Panic Attack shipped. Eventually, I came back to it in the middle of May. According to screenshots, it looks like I spent about a week playing around with it before interest fizzled. It looks like this was, more or less, while Panic Attack was in review. Go figure.

What’d I Build?

iOS Simulator Screen shot May 18, 2013 7.36.04 PM by halfbitsoftware

Territorial spread in action. I like the pretty teal.

What exists now is actually remarkably close to what the original idea was. You can mark points on a 2d grid of colored cells, taking turns with your opponent in an attempt to control as much of the available space as possible. Some of the mechanics don’t work quite as you’d expect, but this is…techno…something, not water.

What Went Right, and Why?

The cellular automata stuff got hooked up and working really, stupidly fast. I pretty much have @madgarden to thank for that. I also tried doing something a little different. For nerd talk, the game is pretty much just a big grid of CALayers. I overlap them slightly, such that their borders rest on top of their neighbors. I offset the colors just slightly on each, fiddling with small deltas on saturation and luminance, and I think it turned out really kind of pretty.

Doing colors with HSB rather than RGB is something I’m probably going to do more and more going forward, particularly in places where I want to keep a fairly distinctive color scheme but want to keep some kind of interesting noise. This was a trick I first tried playing with on the dumb LD26 project - that’ll get one of these pre-mortems, too, at some point.

What Sucked, and Why?

The game itself was kind of slow. This is because I’m doing things in a thickheaded way. It’s definitely not shippable as it stands now, but maybe moving to some of the new iOS7 stuff will make it tolerable.

The UI/interaction stuff is also godawful. It was getting better near the end, but it was really hard to tell what the hell was going on, and what various taps would do. It was barely usable for me, and certainly doesn’t pass the Spouse Test.

What’s Next?

Maybe iOS7, but probably nothing. It looked pretty, at least, so it has that going for it. I’m not even sure there’s much of a market for this, so at best it’d probably just be a free app.

iOS7 Automatic Updates

Automatic App Update is one of the new headline features in iOS 7. Part of me is thrilled, particularly as a developer - now, I’m less likely to wonder whether a customer is running the latest version of my software. Sure, that particular class of defects is still going to be something to consider, but now it’ll hopefully be less prevalent.

A snooty part of my personality, though, wondered how necessary it was. I mean, we get a badge and everything, and people who don’t pay attention to their home screen or don’t bother to update apps don’t deserve special privilege. Right?

Except, today, I spent all day bouncing between apps. Never touched Springboard once, and had a few things in the background that’d been updated - apps I actually use and enjoy, no less. Uh. Whoops.

This, if nothing else, is really a step in the same direction as a lack of task manager and some (basic on a traditional PC) features, like rich storage management controls. It advocates that users shouldn’t have to give any kind of a shit, and their stuff’ll just work, and be new, bright and shiny.

This, of course, begs the question about what happens when a developer, inevitably, ships the DO NOT UPDATE! update, but time’ll tell if Apple has something new for that particular issue. As far as I’m aware, a developer can issue a rollback for an update, but this is still problematic if you’re using Core Data and its handy, helpful automatic migration (I’ll spare you the boring details). In most apps, though, this’ll probably work out just fine.

All in all, I’m actually really looking forward to 7.

Panic Attack

Panic Attack is out!

Which is pretty neat. It’s kind of weird thinking that, like, 3 years ago, I didn’t really have a whole lot going on. 3 years ago, this October, I pushed an app that people seemed to like, which was a little staggering. It wasn’t exactly an easy time, but it was easier than it is now. It’s easy to get overwhelmed by the flood of competitors.

The remarkable thing to me is how little competition there actually is - when the choice is a buck here or there, a lot of the economics of the $60 game just kind of fall apart. At $60, yeah, you had to choose between JumbleFight and MarvelCapcom2k3, but at a buck or two, why not get, like, every game in a genre? Hell, I probably spent more on lunch today than it’d take me to buy every single roguelike on iOS.

That’s not to say I’m completely blaming the store for being steamrolled - heavens, no! It’s possible to get attention, but I think (yet to be proven, here) that it takes persistence, volume (both loud and lots), and, well, a bit of luck. At least that hasn’t changed too much.

The last post on here was about setting and maintaining habits. I wrote that from a position of trying to keep momentum going in order to finish a project, but I’m starting to think there’s value in a different kind of momentum. I sort of model myself off of Apple - never showing something to anyone before it’s really ready to be seen, but I’m no longer sure if that’s the right move or not. It’s worth thinking about, at least.

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!