Holedown is a lovely little ball-bouncing game. Blocks come up from the bottom of the screen; rather than being individual squares, though, they’re somewhat more irregularly shaped (think Tetris pieces, but with more variation); frequently with space between them, frequently right next to each other. You shoot a stream of balls down at them, and they bounce around; each block has a number on it, which goes down each time a ball hits a block, the number goes down 1, and if it hits zero, the block vanishes.

Blocks come in two different types: fixed ones and resting ones. Fixed ones only disappear if the count hits zero; resting ones can be destroyed the same way, but they also get destroyed if all of the fixed blocks they’re on top of (either directly or through a chain of resting blocks) get destroyed. So, if you can get your stream of balls to bounce halfway down the screen to where it hits a fixed block, then, by destroying that block, you might clear out a large chunk of the top half of the screen.

After that stream of balls stops bouncing around, the remaining blocks move up one; if they hit the top of the screen, your game is over. Also, the numbers on new blocks get higher, so they’re harder to destroy; counterbalancing that, the number of balls in your stream increases (more slowly than the numbers on the blocks, but quickly enough to make a difference), though if you play long enough, you’ll eventually hit a cap. (But the numbers on the blocks don’t get capped, so the game gets harder and harder at that point.)


That’s the basic idea (and a core idea that’s not unique to this game, it’s a mini-genre); and Holedown turns out to be a really well executed instance of this idea. The visuals are unassumingly charming; the sounds do a great job of giving a bouncy feel; the animations of blocks being hit or disappearing provide constant low-key fun. And there are other more subtle signs of care in the interactions: e.g. when you lift your finger from the screen to launch the shot, it’s almost always the case that your contact point with the screen changes as you lift it, but the game is very good at figuring out what the angle was from the contact point right before you started lifting and using that instead of the final contact point.

And the underlying systems are equally well thought out. Randomness is a key to doing games like this well: you want lots of randomness to provide variety, to increase the range of situations that you have to respond to. But you don’t want the randomness to feel unfair, like you hit a situation that nobody could deal with (at least until you hit the cap on the size of the stream of balls, because after that it’s only a matter of time before it gets too hard); and you want scope to get better by improving your skills at dealing with that randomness.


Some sources of randomness, and similar areas where you can increase your skill:

  • The irregular shape of the blocks.
  • The positioning of blocks in relationship to each other: are there spaces you can slip balls through, are there two blocks near each other with a space between them where you can get a ball bouncing back and forth repeatedly, is there a whole row of blocks with no gaps that you’ll have to drill away at, etc.
  • The two types of blocks, and the strategies that evolve from that: do you always want to target the top block (lower risk, but too low a reward to be right in general) or do you want to target the lower blocks (with an increased risk of getting your angles wrong, but with potential benefits of setting up massive cascade effects)?
  • The curved corners of the blocks, and the difficulty of prediction that arises from that. (According to a podcast interview with the developer, they’re not actually modeled as curves in the physics model, but there’s enough variation to be interesting; after listening to that, I was curious to see what it would feel like if the physics modeling matched the visuals, would that make it too hard to predict?)
  • The fact that, if you clear out too much of the top of the screen, then the screen will move up multiple rows at once, adding in risk to balance out the potential of big plays. (Including the risk that you don’t know what the shape will be of the new blocks that arrive: will they have lots of gaps or will they all be stuck in a row?)


That last point turns out, for me, to be the key to how I feel about the game in the long run. There are actually two different modes in the game: at first, you’re going through specific challenges (reach a certain depth, basically), with pretty serious constraints on the number of balls you can have in place, and with an added mechanic to let you learn level ups. So that’s fun as a teaching tool for the game, and fixed-scope challenges are certainly pleasant to overcome. But, after a few hours, you’ll make it through all of those challenges and earn all the level ups; at that point, you’re in an infinite mode, that always starts with 32-ball streams and where you can never get more than 99 balls. So, there, the challenge is whether you can make it up to 99 balls and then how long you can stay at that level.

And the mechanic of having the screen move up a bunch if you clear out too much is key to the infinite mode. Something like that is absolutely necessary to make the game interesting: otherwise you’d spend way too much time in a mode where only a couple of lines of blocks were present, because once enough blocks appeared, chances are that that would give you enough scope to bounce balls through a gap to reach underneath them and bounce around repeatedly, clearing things out. And that would be boring.

The flip side, though, is that encouraging conservative play, of not always trying to destroy as many balls as possible, is also a little boring. Of the two potential problems arising from how to handle screen movement mechanically, it’s the better problem to have, because it does give you an added option in how to play tactically and hence another opportunity for skill development. But still: so much of the game does such a great job of making it fun to have balls bounce around a lot that it’s a pity to see that worked against in this instance.


I’d assumed that the developer thought of the infinite mode as the core of the game and the earlier steps as tutorials, but, according to that podcast interview, that’s not the case: his goal was to make the experience of those fixed levels a very satisfying experience (which it is!), and the infinite mode is a bonus.

And this shows: the infinite mode is where the question above becomes important, and while the game’s solution is fine, I suspect there’s something lurking out there that could be a little better?

Also, the arc of a session in the infinite mode is not quite as good as it could be: there’s the initial wonder as to whether you’ll be able to survive at the start at all (which I usually can but which I fail at a not-insignificant portion of time), then there’s a fairly long period where you get more balls and where the game gets noticeably easier (I still die in this period sometimes, probably most of the time, but any individual portion of it is not going to be too bad), and then you hit the 99 ball cap and there’s a question of how long it will take to come up against a randomly generated hard-to-deal-with configuration that outstrips your skill.

And that’s a fine arc, though having the middle part be easier than the beginning is a little unusual; the problem is that the most rewarding part of that arc is where you’re at the 99 ball cap, and it takes a while (I haven’t measured, but I feel like 10–20 minutes? Certainly a long time for an arcadey game) to get there. So the learning cycle is curtailed, because you don’t get nudges to adjust your strategy / improve your skill in response to failure as frequently as I’d like. (And, also, individual sessions get a little long for a game that could otherwise be an iPhone play-in-spare-moments game.)


Anyways: very solid game at its core, with really good production values. It doesn’t quite reach evergreen status for me, but it’s very close indeed.

Post Revisions:

This post has not been revised since publication.