Unity Breakout Clone: Level Editor

I’ve not forgotten about the Breakout clone that I was working on. Truth be told, I haven’t looked at it in over a month.

Since the last post, I re-implemented the exploding brick type and the SFX that I lost, and created a level editor that imports .tmx level layouts from Tiled. I have a layer for brick colours, a layer for brick types (1hp, 2hp, multiball, indestructible bricks, etc), and a layer for powerups. There’s also an ‘extend paddle’ powerup.

I’d say this is somewhere in between Breakout and Arkanoid/Brickout in terms of features. I think I’ve learned everything that I set out to learn from it, so I’m going to shelve it for now.

A bit more progress…


It’s getting better, but I’ll still need to redraw it another 10 times to work out all the problems. In an odd sort of way, being awful at drawing has it’s advantages – I can see a visible improvement with each iteration.

It seems a little premature to post such early stage work for all to see, but I’m taking my cues from one of the talks at Develop Conf. Simon emphasised the need for communication – “marketing should begin on day one.” I have nothing to lose, so I’m giving it a try :)


Attack Ships on Fire

I went to the Develop Conference in Brighton yesterday. I’ve never been to a game developer conference before – it was a good experience. Lit a fire under my backside :)

@tha_rami – “your games don’t have to appeal to everyone” (paraphrased).

Today I started work on an idea I’ve had composting for a while. It’s a sci-fi visual novel. I kinda like the idea of scavengers building a wrecking yard around a crashed civilian transport ship.


I don’t know if it’ll go anywhere – I might spend a couple of days concepting and then decide that it’s not worthwhile. But at least I’m working on something original for a change, rather than spending all my time on client work/maintaining legacy projects.

A Minor Setback

I haven’t made a great deal of progress since my last post. This is mainly because it was a bank holiday weekend (which entails lots of gardening) but also because I f*cked up and lost half a days’ work.

I don’t want to talk about it.

Oh, okay. Fine. If you really want to know: I was setting up source control and I – due to what I like to call “The Windows Fog of Confusion(tm)” – did something really stupid with Git. Which would totally never have happened if I was using a Mac as my game dev machine.

(Which is something else that’s never going to happen – I may be an Apple fangirl, but I’m not stupid. I ain’t paying two and a half grand for a Mac Pro when I can build a decent spec PC for five hundred quid.)

I only lost a few sound effects and an exploding brick that takes out surrounding bricks, but it annoyed me enough that I didn’t want to work on it for a couple of days. Tonight it’ll be back to the grindstone.

Unity Live Training: Breakout

It’s funny how I started making games with a Breakout tutorial… and here I am, four years later, following a Breakout tutorial *sigh*. The more things change, the more things stay the same :)

It was easier than I expected it to be tbh, but I do have a *teensy little bit* of experience with Unity already (more on that later).

(Apologies for the slight stutter in the video – my Mac is old and tired :))

I took the results of the live training tutorial, and ran with them; adding an indestructible block, a block that spawns a multiball powerup, and better (but still ropey) paddle physics. Not bad for a few hours’ work!

I think I’m going to continue building on it. A level editor will be the next order of business I expect.

Learning, Faster

I’ve only started making games relatively recently, so I can trace my progress over the course of a few blog posts.

The first game I ever made was a Breakout clone in 2011. I followed a tutorial; I was learning the (then new) HTML5 Canvas API at the time.

The first version of Breakout. It had ten levels, a laser powerup, a starfield background, and a catchy trance soundtrack.

Ever since then, whenever I set out to learn a new engine or API, I’ll use it to do one of two things: I’ll either make a match-3 game, or I’ll build a Breakout clone.

Brickout! came next, in 2012.  I created it so I could learn the latest batch of HTML5 APIs – Web Audio, Touch Events, localStorage, etc.  I improved upon Breakout by introducing multi-hit and indestructible bricks; five new powerups; the ‘nuke’ ability; and a global leaderboard. Amazingly, it’s still really popular!

[Play Brickout!]

As I’ve written and rewritten the same core mechanics numerous times, the process has become second nature. I’ve learned to leverage this knowledge to help me learn new skills quicker. When you remove design decisions from the equation, you pick up the API faster; the game ‘gets out of the way’, and you can focus your efforts on what’s important.

In 2014 I rewrote Brickout in ImpactJS; my intention was to release it as a mobile game using Ejecta. A few little niggles aside, it worked quite well. There was one major deal-breaker though: audio. Without the Web Audio API, you’re *really* limited as to what you can do, and I sure as hell wasn’t going back to using audio sprites. Project: abandoned :(

You can guess where this is heading :] I’m going to learn Unity by writing a Breakout clone. Guess I’d best get started!