Isaac and I have been pretty busy working on the game. Right now he’s refactoring something, and I’m kind of blocked. Actually that’s an excuse–there’s always something that needs doing when you’re writing a game. That’s true of pretty much all software, really. But I don’t feel like doing anything especially productive at the moment, so instead I’m going to start a new series of internet posts: Aaron Barrett Says Things About 2D Mobile Game Development. 🗣
I’ve mentioned this before, but… when I was a kid, I really liked playing video games.
I became sort of obsessed with them, and it wasn’t long before I started looking into creating my own games. I was, of course, disappointed to learn that writing games is very hard. Even at a young age, I understood a good deal about computers and what makes them tick. I knew about filesystems and pixels and resolutions and memory and processors. Yet even with all this knowledge, the art of game development always seemed to be hopelessly inaccessible.
In those days you had to learn this computer language called C, which I assumed stood for Complicated. It doesn’t, but most C developers today would probably agree that it should. Later I’d discover that a lot of game operation was actually composed on an even more distant plane of incomprehensible gibberish: assembly code. I certainly wasn’t interested in anything so arcane. I just wanted to make pictures move around the screen. I couldn’t fathom why that was so much to ask. The barriers to entry were so infuriatingly high. And I was crushed.
I was persistent, and I had outrageous advantages, and eventually everything turned out okay. Over many years, I learned everything that I needed to in order to get started in game development. I got to go to computer school. Ultimately I snagged a good job in the industry, and today I’m finally living the dream. But there are so many things I wish someone had told me along the way. So many points where I could have saved myself time and frustration.
When I got a little older and the internet became a thing, at least there were some resources available to me. That helped. Nevertheless, the only way to learn most of what I had to learn was to jump in, try it, and fail. Again and again and again. To some degree, I fear this will always be the case with game development. There’s no way around it–it’s a complicated field. But there are certainly many areas where it didn’t have to be so opaque.
Developers are often smart people. Without a doubt, the programmers who devised the technology behind the video game industry are some of the smartest humans ever to live. But with intelligence often comes arrogance and elitism. Smart developers love to build walls around their knowledge–to make it difficult for others to learn what they’ve learned, to become as smart as they are.
I’m certain that this tendency of smarter developers has hindered my own growth as a programmer in ways that can never be measured. And I’m sure on some level I myself am guilty. Perhaps knowledge hoarding is a fundamental problem with human nature, and perhaps it’s so pervasive that I’ll never be able to fight it in any meaningful way. Still, I’d like to try to address it. I’ll rest easier knowing that I’ve done what I can to make learning easier for the next guy (or gal!).
I’m going to start saying more things at you. More things about game development. Game development in the only area where I can be useful: 2D games for mobile devices. And right now that’s just another way of saying iPhones, Androids, and maybe some tablets.
I’m sure a lot of it will just be Aaron rambling. I’m pretty good at that. But hopefully somewhere within the many words somebody else will someday find something of value.