You might be tempted to think this is what it means to learn programming. But all of these are just specific tools and cultural conventions. They’re a confusing irrelevant mess.

With new technologies, new frameworks, and new management fads coming and going every year, I feel pretty badly for beginners. Here you are, just trying to learn to code, and you’re getting overwhelmed with all of these different learning paths.

Do you learn web development? React Native? Native iOS? Android? Unity? Unreal? PHP? Javascript? What about Swift?

On top of that, you’re being hit on both sides from people promoting various programming ideologies. Is object oriented programming The One True Way? Shall we renounce it and embrace functional programming as the path to enlightenment?

All of these seem like important…

It does not involve simply using the nearest neighbor filter

A screenshot from my 2D game, Cove Kid. It uses Metal as the renderer on Mac OS, and it uses the custom pixel art shader from this article.

If you create games on any of Apple’s platforms, there’s a decent chance your game is using Metal as the renderer. This not only applies to games you create with a third party engine like Unity or Unreal. It also applies to Apple’s game tools like Sprite Kit and Scene Kit.

Even if you’re nutty enough to create your own game engine like I have, and you’re shipping to one of Apple’s platforms, you will likely be working with Metal as well.

In this article I will show you how to render perfect pixel art that scales by any arbitrary…

It is more stupid and straightforward than you think

An army of robots is already here, and people need to hire you to tell the robots what do. That is what a software engineer does.

There are roughly 8 billion people on planet Earth. Every single one of them needs to eat, be clothed, and stay sheltered from nature and disease. We require expensive medical care. To do all of these things, we need money.

Money is a form of leverage which allows you to hire people to help you with these most basic of needs and more. You hire people to ship food from all over the world to a single location so you can eat it and stay alive. You pay your government to keep foreign invaders at bay, so you can have…

A 2D Puzzle Platformer where you edit the level to solve puzzles

If you’ve been reading my articles, you may wonder if all of this advice is backed up by any real world accomplishments. It’s a reasonable question to ask. Indeed it is the only question you should ask of anyone whom you might consider a mentor or source of learning.

I’ve been working on this game since last September, and it is the most ambitious project to date. …

Your code actually runs on one of these, and it does not care about how abstract, elegant, or interesting your code is

I’ve been making software for nearly twenty years now. It’s amazing to reflect back on my early days and to see myself as someone just learning how to code.

The character of that experience is punctuated with moments of confusion about the structure of the software I was writing. I would often stare at the screen while my mind raced trying to think of how the various code modules I was about to write would fit together. I was, in effect, trying to solve big code organization problems before actually writing a single line of code.

Indeed, my story is…

Even if it takes more time

snowboarder in mid-air on a snowboarding course
snowboarder in mid-air on a snowboarding course
This kind of thing makes you a different person. There’s no escaping it (Image by author)

About a year ago, I received a mildly discouraging comment on one of my YouTube videos.

At the time, I had been working on my indie game and game engine for about a year. I’d made some progress, but it wasn’t totally obvious how far along I had come, so the guy writing the comment seemed justified in some way in what he was saying.

Here’s what he said:

“What’s wrong with just using a commercial game engine? I have a feeling you will have great-great-grand children before a game is ever done with this.”

Now, I don’t want to…

Contrasting the way I hire artists with the way recruiters find software talent

Adam Smith had this crazy idea that if you let people work things out amongst themselves and specialize, we will all gain from the net increase in productivity

Believe it or not, I am in the business of hiring people. I have been working on a video game project for the past six months, and it has finally gotten to a place where I can start bringing other people onto the team.

And this is a rather refreshing feeling because it’s nice to work with other people and not be totally alone on this journey. It’s also great to look over the work of these artists. I’m frankly blown away with their skill and talent, and I can only wish that I could possess such talents.

My father…

Thanks for writing this. You put it way more diplomatically than I would have, and for that reason I think your message will have more reach.

In my experience, design patterns turn otherwise brilliant engineers into drooling morons. Instead of simply solving the problem at hand, we waste precious hours debating MVVM vs MVC or maybe considering a "reactive architecture" for what probably only needs a few hundred lines of code.

Patterns often fetishize code and elevate it above problem solving, leading to all sorts of tangled messes and needless complexity.

I'll paraphrase Jonathan Blow, the famous independent game creator…

About two years ago, I was starting to get more solidly into game programming. I was doing some of it on the side, and I had been using popular game engines like Unity and Apple’s SpriteKit.

Unfortunately, none of those tools (at the time) really fit the sort of thing I was trying to make, and I never seemed to create anything that felt truly playable.

The controls would be kinda sluggish, the rendering not quite right, overall the whole experience could be described with one word: soupy.

It’s right around then that I decided I would try something different…

For almost ten years, I have held contracting and consulting jobs in the software industry, mostly calling myself an “iOS developer.” If I want to sound fancy, I’ll put the word “senior” in front of it.

This gives me the ability to say what everyone seems to want to hear, that I have “ten years of experience,” and in the special thing they think they need right now.

How couldn’t it be a fit? My “experience” and their need for someone with programming skills that apply to a specific hardware platform, seems to be the ideal match.

Except I’m bored…

Ted Bendixson

Game designer and engine programmer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store