Author Archives: Matt Roszak

So Good They Can’t Ignore You

Just finished reading So Good They Can’t Ignore You by Cal Newport, and his career advice mostly lines up with my personal experience.

The book’s advice for finding work that you love is to build up skills through years of *deliberate practice*, until your skills are rare and valuable enough to afford you control over your work. Being good at something and having connections will give you more opportunities and make your work feel more meaningful.

It tries to debunk the idea that boldly following your passions will lead to satisfying work. That approach won’t work if your skills aren’t valuable enough to support you, or earn you enough autonomy to enjoy your work.

“Working right matters more than finding the right work”, as the author puts it. The most interesting and rewarding work lies at the cutting edge of your field, where there’s room for new innovations, and plenty of consumers looking for those innovations. But to get there you need to have a strong knowledge of what you’re building upon, and you’ll need to be able to specialize in a small area that few others do.

Anyone who follows the indie game development scene will know how many new developers fail to make a living off of their passion, because they jump on the bandwagon without enough experience, or with unreasonably high expectations.

In my case, I didn’t consider doing game development full time until I was consistently making good money off of it, and it took me a long time to get there. Before that I spent a lifetime on learning how to draw, 7 years playing around with Flash and animations, and 4 years getting a software engineering degree – and not getting paid for any of that, but instead gaining skills and reputation. At first the effort wasn’t deliberate – game development was only a hobby – but after highschool I became more serious about looking at career options, and started measuring my progress and setting goals.

As I’ve learned recently, the most useful skills were often the ones that were the toughest to learn. I didn’t endure through University because I enjoyed learning about design patterns or project management, or because programming was my “passion”; I did it because I wanted some valuable skills which would make me a better game developer, or at least get me some other job if that path didn’t work out.
(Though I did begin to enjoy University once I gained control over my 4th year projects, which was only allowed because I had plenty of game dev experience by then.)

For a while, I became complacent with developing medium-sized web games, and stopped making an effort to improve my skills, opting to stick to what I knew and what was easy for me. Luckily, the market for web games started to shrink, and I was forced to look at the long-term viability of my career. I started looking at developing games for other platforms, including mobile devices and Steam, and although the process of adapting was difficult, I’ve gained a ton of valuable experience as a result, and feel more confident than ever. I’ve begun to make an effort to network with other game developers, to do more research on current market trends, and read boring textbooks. Most people never see the work that goes on behind the scenes.

Anyway, I think the main message to take away is that if you’re comfortable with the work you’re doing, that means you’re not challenging yourself enough, and you probably won’t get to where the most satisfying jobs are at. You should always take time off from being productive and instead squeeze in some time for research and practice, and concentrate more on what you can offer to the world, rather than what the world can offer to you.

Anyway, enough ranting from me.

BH2: World 1 Finished

I’ve finished the first 5 levels! Hurray!
I think BH2 looks much prettier than the previous game, and I hope everyone agrees. Though I guess you’ll have to see it in action to appreciate it.

Now it’s time to work on the player’s animations and weapons, and power-up items.
Once those are done it’ll be almost time to publish a demo!

lvl3

hearts

boss copy

BH2: Progress

Here’s what BH2 currently looks like. This is the resolution I’ll be using for the web version (800×600).
The border artwork is currently from EBF4, but I’ll get some original artwork in there later, and give the player some options for it.

The background is just a bunch of falling leaves, that go faster the further you get into the level. It’s just a particle effect. I think it looks pretty cool, and isn’t as distracting as you might think. The best thing about it is that’s it’s incredibly easy to do, so I can actually make a unique background for every level without too much work!

GREEN

BH2: Optimizations

I’ve been playing around with an awesome tool called Adobe Scout, which tells you exactly what your Flash games are doing – All the way down to memory allocations, CPU time, and low level GPU calls. It makes fancy graphs of this data, and you can identify where performance sucks, and see exactly what code is causing it. It’s so detailed that running Bullet Heaven 2 for one minute will generate *gigabytes* of data.

I’ve used it to identify a memory leak and a lot of wasted GPU draw calls, and after tidying things up, BH2 runs better than ever. The screenshot below shows around 3,000 bullets running at 60fps in 1080p.

Obviously my computer is pretty good (but not amazing), but in practice you won’t need this much power. BH2 will rarely need more than 1,000 bullets (much less on easier difficulties), and can be played at 30fps, in a lower resolution. So the minimum requirements will be tiny – easily low enough to run on older mobile devices.

I’m pretty happy.

I do still have a few major features to add though – so we’ll see how much those effect performance later.

3k