I’ve been working with the MediaPlayer framework for the last couple of years, bumping my shins into its rough corners early and often. I file radars for what I find, but it always feels like shouting into the void, so I figured I might as well double-dip and write stuff over here, too! On today’s exciting episode: the delightful setQueueWithItemCollection: method, and how it does something I really didn’t expect.
This isn’t exactly a postmortem, because most jam games feel kind of unfinished. (At least, mine usually feel that way to me.) So when this jam was first announced back in early June, I got pretty stoked. The technical theme - I tend to do better at those - was Minigames, which seemed great! My mind jumped first to the kind of dinky little silly-ass Warioware games, with just ridiculous hooks and gimmicks and 4 or 5 seconds of gameplay per screen.
I’ve been doing the occasional game jam for awhile now. They’re fun! It’s nice to throw yourself at something for a short amount of time just to see if anything good comes of it - more often than not, it’s totally worth the minor time investment. One thing that’s been a little annoying, though, comes down to infrastructure. There’s a few different types of infrastructure, too, and maybe that’s a weird way to put it, but it’s the term I’m gonna use, so whatever!
Don’t buy the MacBook Pros even on sale, in my opinion | The Outline So, that doesn’t seem great, does it? I really, really want to like that keyboard, I promise. I like the clicky feel of it, short-throw keys are my jam, I could even get used to the narrower gaps between keys. (Don’t get me started on the inverted-T.) But the reliability issues are maddening - key’s that would double fire, or not fire at all, or only fire at a particular angle or from a particular spot.
I’m going to start this tiny bit of controversy with a warning: don’t @ me. You know what that means, so don’t. I liked the game just fine, don’t hassle me about any of this. Your efforts are better spent elsewhere. Okay. So. Breath of the Wild was pretty great. I’ve put hundreds of hours into it and I’m still finding new stuff in it - little groves of trees, koroks (naturally), characters just hiding out in the middle of friggin’ nowhere.
I’ve been thinking about writing on here more, which is a thing I think about often and then never actually do anything about. Oops. The fact that it’s an ongoing concern is a more interesting part, and maybe the whys behind that, too. It’s neat looking back at the nonsense, and knowing I have basically zero audience means that I’m doing it just for me, which is kind of great from an intrinsic motivational perspective.
I’m a pretty big music fan. If I’m working at a computer, odds are good I’ve got music playing. If I’m writing, same thing, only it’ll all be instrumental stuff. (For whatever reason, I can’t write fiction and listen to something with vocals at the same time.) My habits are pretty straightforward. I like listening to albums, complete albums, all the way through. I like sticking to particular genres or artists depending on my mood that day.
I (sorta) finished another jam, this time (mostly) making Lode Jogger! Hooboy. This one was a doozy. What Is It? Lode Jogger is a gameboy jam game designed to be a near-copy of Lode Runner, one of my favorite childhood games. Players must run around a level, collecting treasure and avoiding the deadly monks, before escaping through the exit. What Went Right Mechanics - Mostly All of the bits of Lode Runner are here!
I’ve been wanting to do another jam for awhile. I like the two week cycle, but haven’t seen any themes or jams that really struck my fancy. The technical limitations ones went well in the past, so those are the ones I tend to go after. This time, it was a 1-bit (black and white graphics) clicker (mouse only) jam. Perfect! My idea was to go after something that was a little bit like Spaceplan or a cookie clicker-esque game.
I finished another jam, this time making oneshot! What Is It It’s a little arena-y shooter thing, I guess? 2-4 people jump around in a little room and try to shoot each other. Everyone only gets one bullet before having to scramble for another one. What Went Right Finished! It’s done, and playable, and doesn’t seem to blow up! Kudos, me. Simple! I stuck to the bounds of the theme, once again bolstered by a technical, rather than creative, limitation.
I’ve been pretty sloppy in the past about recapping when I’ve actually managed to finish something. This is an attempt to be a bit more proactive and a bit less “oh right, I should’ve done that weeks ago” about a project. This time around: LZRS for #lowrezjam2016! What Is It LZRS started out due to an interest in the laser section from Mega Man 2. Yes, this whole game is basically just poking and prodding at a single mechanic.
There’s an incredibly common, useful design paradigm called ‘target-action’, one I first encountered on iOS. Basically, you’ve got a button that calls a function when something specific happens: maybe a touch or a drag or something. This is the basis of all of iOS’ user input. So I thought it’d be handy to recreate something similar using the entity-component model. It’s pretty braindead-simple, but it seems to work okay for my purposes.
I didn’t expect to write more of these, but here I am! I wanted to document a bit of interesting behavior I found in the process of building/rebuilding a shmup. I had this cool effect for making a sprite kind of flicker and glow a bit by adding a duplicate and making it expand and contract rapidly. I think the old way in SpriteKit used a parent/child relationship with an SKAction for the animation.
I’m not dead! A shock, I know, but between real-life obligations and a decline in my general state of gives-a-crap, my fun little hobby life has suffered in recent months. Shucks. Doesn’t mean I can’t bounce back, though, right? Spring 2015-ish, I was on the hunt for something new to tinker with, and I found this rad stuff. First off, a dumb, semi-obvious one. For anyone loading textures in config, using something like config.
Some people like to carefully proofread what they write and post on the Great Wide Internet™. It’s a good philosophy! It leads to quality content (for your braaaand) and, in general, it’s how things ought to be done. This is not gonna be one of those things. Strap yourselves in, folks, I’m going completely free association, here. Backing up a step, I’ve been playing around with luxe for the last few weeks, hence the silence.
This week was pretty slow. Most of it was spent fiddling and playing around with luxe and trying different things out. It’s going pretty well, and - hilariously enough - my first sample projects are rebuilding old stuff. I’m starting with bullet heck. Not really pictured, here, are a few of the things I’m still wrapping my head around. Input works pretty well with just the keyboard, but it might take a bit of effort to get playing nicely on mobile.
This week I did…stuff? Ostensibly? Mostly just playing around with the pattern wallpaper thing. So far it really doesn’t work very well at all, which is a bit disappointing. The dials and knobs are too fiddly, and I’m not getting results I like, so it’s not looking good for this stupid thing. Same deal with blur on wallomatic, actually. It’s…good, occasionally? And other times it’s just kind of a blurry mess (obviously) that hurts my eyes.
This was a bit of a slow week. I’m still learning about haxe, snowkit, luxe, the works, so there’s not much to show for my efforts (so far). It’s a bit odd, jumping into a completely alien thing, but I’ll get competent sooner or later. Hopefully sooner - Ludum Dare’s right around the corner. I also did a bit of fiddling with the wallpaper generators, and finally got around to starting an idea I’ve been kicking around.
This week was spent partially hating on SpriteKit and partially loving Fastlane. The latter is awesome. The former makes me sad. Bullet Heck was built in SpriteKit, and it’ll probably be my last project built with it, too. Moving on. Research into snowkit and haxe continues. I’m really liking it, and plan on having some kind of prototype-y thing built before too long. I don’t want to use it for the next Ludum Dare (at least, not before I’ve got a bit more experience using it) but it might be fun to see what I can cobble together.
This week was another brisk one. I spent a bit of time hammering at the asteroids in Bullet Heck to make them a bit more sensible and a bit more game-y. Just having a constant, endless wave of asteroids is a bit exhausting so I’m setting them up to do occasional bursts based on the asteroid density of that particular wave. I also did a bit of work on Wallomatic this week, adding a neat blur filter toggle.
Ages ago, I had a post about pens! (Hah. Post. Pens. Moving on.) I had two surprises from that, revolving around the Pilot pens - specifically, the Metropolitan and the Penmanship. One’s a fairly classic black, with pretty great weight to it, and the other is this odd clear plastic thing with grip-ridges and an odd cap. They’re both pretty good pens, and especially at their prices, but I was always disappointed with how thick the Fine nib was in the Metropolitan.
This week, I did a bit more work on both Bullet Heck and my luxe evaluation. I was a little bummed out by the wiimote not being a good controller for luxe’s gamepad support, but I’ve got some spare 360 controllers that seem to do great. When I carve out the time I’m going to try to do a kind of physics-based arena Marble Madness kind of…thing. It’s still pretty nebulous but I think I’ve got enough of a hook that I should be able to fake something up.
This week went by in a flash, and not a whole lot got done! Er. Crap. That’s, uh, precisely the opposite of what I should be saying, huh? It’s true, though! I was sick through most of the week, and Bullet Heck is starting to wind down in terms of features. There are still a few bugs left to squash, and some rough edges to polish, and - oh. Game Center, Leaderboards, score reporting, blech.
This week started out strong with a fairly productive Art/Code night hosted by a local gamedev meetup group. I twiddled a bit on a traditional pixel editor for iOS, a procedural hero generator thingie, and finished it off with more tweaks and work on Bullet Heck. Bullet Heck might be mechanics-complete at this point. The asteroid stages turned out pretty fun, and they add a lot of chaos that isn’t necessarily detrimental to the player.
This week I started digging into Unity’s massive tutorial-o-rama. Cripes, you people loves you some videos, huh? Not a single text/picture intro tutorial in sight. Most of the effort’s been focused on getting Bullet Heck done and fun. I added a new, silly gameplay mechanic this week that’s already cracking me up. Asteroids can fly in and ruin people’s day now, including the aliens. Should be pretty fun. Informal playtest feedback has been pretty helpful, too.
This week was busy, so I’ll keep this brief. Did a bit more work on sounds for Bullet Heck and threw in music, too. Did a bitcrusher pass against it to make things nice and crunchy, but might’ve taken it a bit too far. Will probably tweak it more. Not quite feature complete yet, but getting there. I’ve got a few more things I want to add before calling it done enough.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.