Weekly Links #258: impatient learner edition



Hello, and welcome to my weekly gamedev newsletter. This Sunday I'm a little short on news again. Between finishing up another interpreter, and writing a piece of flash fiction, not many news managed to hold my attention. Might as well take the time to write about an issue I've been noticing lately.

Look, we all have to start somewhere, and in the beginning it's normal to trip and stumble a lot. So when you know you're still learning? Maybe don't rush. Lately I see people trying to get started making games with Pygame who clearly haven't yet mastered, not just Python, but elementary programming concepts like loops and lists. And they don't seem to take the hint when gently pointed in that direction.

And you know what? I've been through the "gonna make the ultimate MMORPG" stage. It never went anywhere either, of course. But that was after 8-9 years of programming as a hobby, and another 3 or 4 profesionally. At least I had a reason to be overconfident. And a team of friends with similar or better skill level.

Kids are growing up so fast these days. With that however seems to come a degree of impatience. Which isn't helped by "easy" tools like Scratch, which do nothing but sweep complexity under the rug. At least Love2D won't let you forget there's a game loop behind the scenes, even if it's normally hidden from sight and not under your control. Even better, you can pop the hood open and fiddle with it if you know what you're doing.

Back in my day, the entire computer was like that. You wanted a loop? You'd use a GO TO. Keeping track of multiple sprites? Use an array of X and Y coordinates. It was damn hard. I wouldn't go back for anything but the simplest games. (There's a reason shoot'em ups were so popular in the 1980s.) But the moment when I got a friend's explanation that the complex clockwork movement of a game like Dizzy resulted from every single sprite being updated little by little in turn, while music played one note at a time?

That flash of revelation is going to stay with me until death. And this level of understanding makes all the difference.

In the way of extended news, we have a new tool for retrogaming enthusiasts, and advice for launching a career in games writing. Details after the cut.

This week starts late, but with news of great interest for retrogaming enthusiasts. Via the FreeDOS blog comes the news of a new tool for making DOS games in a modern way. Specifically, DOjS: a small Javascript interpreter with libraries for input, graphics and sound, that can be used to make real-time games. I just downloaded release 2, that's only a few days old as of this writing, and it works out of the box in DOSBox at least. The examples, anyway; haven't tried to make anything yet. Documentation is hurried, but more than enough to give you a head start, and the API should look familiar enough to anyone who's played with, say, Love2D or PICO-8. (Author says it's inspired by Processing, so that makes sense.) The interpreter is only 700K in size, but comes with 2 megabytes worth of Javascript libraries, including a generous font pack in the one format it supports. Speaking of formats, you can also load BMP images, and WAV audio. JSON support is built-in as well.

As the whole thing is open source, you can readily distribute it with your own games, though the crazy mix of different licenses means you'll have to keep the original README around. A nitpick at most. Now where do people share new DOS games?

(Turns out one answer is doshaven.eu, which in turn promptly reminded me about LoveDOS. Which hasn't been updated in two years, but also seems to work fine.)

On Saturday, Alexis Kennedy posts a write-up about getting started in games writing, and the gist of it is (surprise surprise), there's no One True Way and no magical recipe for success. Just hard work, knowing the right people, and luck. But there's another theme I see: if you want to get into, ya'know, games writing? Maybe don't turn your nose at interactive fiction. Grab Twine, Inform 7, whatever, and make something. Maybe many somethings. That's how you 1) show people what you can do, and 2) learn what it takes, because it takes skill, and may not work like you think.

"But that's not what I want to do! I want to make the epic RPG of my dreams!"

And I want to scale the Himalaya, dude. Nope, never climbed a rock before in my life. Which route up the Himalaya you think is the easiest? What gear should I buy?

If you'd rather end up not scaling a single peak in your life because it wasn't the tallest in the world, suit yourself. I've scaled enough smaller peaks that people marvel at the count. And sure, it took me a long time. But you can't climb a taller mountain until you first go down from the one you just conquered. And that means giving something up. Choose wisely.

Enjoy the Sunday, and see you next time.


Tags: retrogaming, tools, personal, philosophy