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.
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.
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.
I’ve been wanting to write this for awhile. I dunno what stopped me, honestly. So, confession time: I like pens. And not just any pens - fancy-pants, hoity-toidy fountain pens. For now, I’m just gonna talk pens, probably. Inks can come later.
I’m just gonna go from bottom to top. These are pretty much just the ones that live on my desk. I’ve got a handful of others, but these’re the ones I’d really recommend to anyone, depending on budget.
Pentel Twist-Erase, 0.5mm. Uh. It’s a mechanical pencil, for when…I want to erase, I guess?
Pilot Metropolitan, F nib. A recent addition, but one that I’m not all that happy with, so far. It puts down a bit more ink than I usually like, so my cramped writing ends up pretty muddy and gross. The Metro has a pretty great heft to it and a nice, clicky cap, and comes with a converter. Great starter pen. A recent purchase, along with…
Pilot Penmanship, EF nib. This one didn’t come with a converter, but makes up for it with a really great feel and a super, super thin line. Japanese pens tend to run narrower than usual, and this one’s certainly living up to that. Mine’s a clear demonstrator, but I might end up getting the black one at some point. It’s got these rad red flanges! Can’t beat that!
Lamy Safari, Charcoal, EF nib. My very first fountain pen! You’ve all got this guy to blame. It’s still one of my favorites - puts down a narrow line, but still thick enough for the more entertaining inks to show off some nice shading. I’ve got a blacker-than-black ink in it pretty much permanently at this point.
Lamy 2000, EF nib I recently discovered that this beauty has a unique red cousin - though, that one’s way, way, way out of my price bracket. Sheesh, that’s more than most cars. This puts down the smoothest line of any of my pens, and has a massive reservoir, too.
Montblanc, EF nib. This one never leaves my desk. Nuff said.
They’re all sitting on a Moleskine. I’ve tried other notebooks, but I like these the best, so far. I usually go squared rather than ruled or blank. Most of my project planning, brainstormed ideas and todos go into these. I usually label the spines with a silver sharpie so I can keep track of what’s living where. Recently I’ve gotten more daring about - gasp! - putting stickers on the fronts, or little pixel-esque stencils done with sharpie. You can just barely see the Pixatronic robo-dude peeking through in the picture.
Finally. That’s a load off my mind! Maybe someday I’ll do a fancy-pants picture of my other pens, and definitely a list of the inks I usually use.
Pretty slick, huh?This is going to be kind of a silly story. Buckle up.
So, Summer 2013, I played around a little bit with this - just a little territory control game with levels built with cellular automata and a neat little colors system based off of slight shifts in saturation and brightness. This was originally from a silly little Ludum Dare entry, but that’s neither here nor there.
I used this little trick in a few other places. Panic Attack’s background has a little variation, as does Pixatronic, though sans lines drawn in. It’s great for adding a little noise and texture without breaking off from the relatively flat, clean look that iOS7 is inflicting on everyone.
So, as a kind of joke a few weeks ago, I thought, self, let’s make an actual wallpaper with our silly little algorithms. So I did that! And once I did, I realized, hey, these aren’t actually that bad. So I made a few more. It started as just squares, but quickly moved to triangles and diamonds and hexagons and…wowsers. After a few hours of hacking and twiddling, it was actually making some pretty neat, usable, dare I say it attractive things.
Oooh, the colors!So I kept at it. Maybe 24 hours, wall-clock time later, I actually had something that a few people wanted to play around with which, well, is why I’m here! I think my wallpaper silliness (yes, that is the actual project name) is pretty much done, so I’m gonna put up some screenshots. This’ll be free with silly IAP, but no limits on saving or making wallpapers. I haven’t decided on the full list of sliders and modifiers yet, but I’m getting pretty close to calling it good.
I hope people like using it! I’m already using some of the stuff it’s spit out, so I figure that’s a pretty good sign already. And, hey, if people really seem to like it, I’d be tempted to do an OS X port. Shoot. Never done that before, have I?
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.
I’m not an artist. Really, really. Despite my not-very-good best efforts, I’m still not any good at 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, initially, I used a few things from Subtle Patterns, 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.
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.
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!)
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!
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.
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.
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?
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.
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.
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.