I’m making Procedurally Generated Spaceships again. I’ve been doing it for 12 YEARS NOW! Yikes! I suppose I’m getting good?

I was working at Interplay when I first got the idea. I was using a copy of Max2, and trying to….generate geometry that I could load into it. It could (slowly) read and write DXF, which was human-readable, so I experimented with that. From there I realized that I could make simple "ship parts" in Max2, save them as DXF files, load them into MY program, randomly shift and scale them, mirror them left to right, output the whole thing as another DXF, and load the results back into Max.

The results were astounding. I was just jamming simple shapes together, but my "hit" rate was 50%! In no time I had a sheet full of cool looking space ships! I haven’t really gone to a new level with this technique, but since that day I’ve refined my technique and learned many lessons.

EVERYONE who sees my ships and my tools is wowed. I once showed an earlier ship generator to an ex-producer at Origin, and he said, "Now I hate every artist who worked on Wing Commander." I don’t think he really did, he was just seeing me generate 2 ships per second, and remembering when ships took months to get built.

In fact, about 4 years ago I gave a lecture on Procedurally Generated Content at the Austin Game Conference and the Texas Indie Game Con. I’ll have to dredge up that Powerpoint and share it.

Although I haven’t gotten rich off it, Procedurally Generated Spaceships seems to be my BIG IDEA. Perhaps I need to take it to the next level. Hmmm….

Oscar, what?

The "Oscars" are on TV tonight. Not that I care. My wife and I are working hard in the study. But all the news websites are aglow with Oscar news.

I worked in L.A. from ’95 to ’97, and here’s how I feel about Hollywood. Hollywood is a rickety scaffolding of hard-working tradespeople, supporting a thin layer of gilt on top, all floating in a sea of crap. And the only reason Hollywood has tradespeople at all is a patchwork of guilds and unions. In short, I think Hollywood is no place for man or beast.

Now, if you love making movies and…all you ever think about is making movies and you can’t wait to make another movie, then… still think twice about going to Hollywood. TV isn’t much better, but its geographical center is New York. Plus, being an auteur indie is more valid and profitable than ever before, and you only need the internet for that.

In Hollywood, everyone’s a writer with a script under their arm. So many people have so many scripts, that there are services you can PAY to READ YOUR SCRIPT. Because no one else will.

Anyone who works with cameras, lights, vehicles, food, or other equipment will be worked like a dog and then dropped like a dirty rag. They’ll be paid well, but that just helps them get through the lean times, when no work is available.

And since every young, pretty, talented woman in America wants to chase her moviestar dreams, they all come to Hollywood. And the casting couch is very much alive and busy. Just the way it is.

But L.A. is a vast concrete jungle, so there are lots of parts of it which aren’t Hollywood. And there are lots of nice people who live there. But Hollywood?

No sir, ah don’t like it.


Small BASIC is a new BASIC interpreter/IDE from Microsoft ( ).

It’s quite nice, for what it is, also considering that it’s version 0.3 right now.

Apparently, MSoft has been…blowing wads of money lately on small teams pursuing R&D projects like this. Some of the results have been risible (like Songsmith), and I’m sure most haven’t seen the light of day (and won’t). Some MSoft investors have been threatening suit, saying that MSoft has no right to spend its cash on frivolous R&D when it should be spending its cash crushing opponents, like the old days.

For myself, I LIKE the thought behind Small BASIC (which is why I’m blogging about it). Back when I was a lad, we had Apple II, C-64, Ti-994a, and Tandy CoCos. Each of these machines had the same magical attribute. When you turned them on, you could IMMEDIATELY start programming them. Turn the power switch, and BOOM you were creating. The BBC computer (in the UK) was the same, but also came with a powerful monitor/assembler, and I’ve heard it said that the machine launched thousands of assembly language coders over there.

Computers haven’t been like that for years, perhaps decades, and when I’ve jumped through hoops to get dev environments installed on my nephews’ machines, I’ve keenly felt the loss of that simplicity.

The dev blog for Small BASIC sez that they feel the same way, so Small BASIC is simple to install, and has a monolithic UI environment, that evokes the "turn it on and code" pattern of old. BUT, it’s still got fancy intellisense, for command-completion and context-sensitive help, which we would dearly have loved on those old machines.

It’s not pure and beautiful (like say, Ruby). Its included libraries read like passing arguments into function members of classes, BUT all variables YOU create are of global scope, and you can’t pass arguments into or out of your own functions. Also, they just made the jump from 0.2 to 0.3, invalidating a lot of programs you can find on the forums. That’s expected, but still confusing to beginners.

Still, if you know a kid (of any age) who needs a gentle start to programming (and owns a Windows PC), try Small BASIC.…

Class Update

This semester, I teach 3 (now 4) students on Monday and Wednesday. We’re in our 4th week now, and I couldn’t be happier.

My students are smart, they do the work, and they listen attentively to me. What more could a teacher ask?

I just got a new student, who…Still hasn’t gotten his book yet, but he will, and then he’ll have some catching up to do. Books were difficult for all of them, and we’re also dealing with some technical issues.

First, the book on 3D level design uses the free version of UnrealEd. The book comes with lots of labs, and lots of pre-made bridges and bots to use with them. But UnrealEd has some DRM, which dis-allows use of pre-made stuff in the free editor, IF the stuff was made with a purchased copy of the editor. And more than half of the book’s extra content has that problem. Grrr.

Second, my class on advanced game programming with engines is using a C# XNA book. Not the best fit in the world, but I was assured that my students were really only trained on C# (turns out, not true). Still, I’m teaching about the production pathway and the different broad types of data that make up a game, and week 7 will be about loading, displaying, and animating boned and rigged characters. But the book (and the basic XNA release) doesn’t have code to do that. So I’ve got to bring in an open-source solution. Not un-doable, just another wrinkle that I didn’t plan on at the beginning.

Don’t let me whine, though. It’s going great.

What I saw at the Global Game Jam 09

I drove to Pittsburgh last weekend, and attended the First Global Game Jam. Here are my pictures:

And here’s a link to the game my team made in 48 hours:

It was exhausting, but I’d never experienced a game jam before, and I got good things out of it. But generally, I’m not sure if I’d go again, or how I’d approach it if I did.

I know I was a bit disappointed by…the lack of inspiration. I mean that I went looking for inspiration, was looking for other people showing me amazing things and cool new tools, and I didn’t find that. It wasn’t my peers; it was all college students. It wasn’t that they weren’t excited, hardworking and creative; it’s that they couldn’t speak to me from a similar frame of reference. So it was a bit awkward and lonely.

The place was swimming in Game Engines. It seems self-evident to me that you shouldn’t attempt to learn to use a new game engine while trying to produce a 48-hour project. Even if the game engine is the best, easiest, most well-documented system on the planet, there’s still a learning curve. And a couple of local, BETA engines were being actively hawked to the participants! Most teams would up using Flash, which is a fine engine. When it came to making teams, I told everyone in ear shot that I preferred my own custom "engine"; it was what I’m most familiar with. This may be why my team was one of the smallest.

I slept twice, 3 hours each. It was exhausting. In fact, it took so much out of me I was still exhausted days later. The rest of the team was in similar shape, except for one artist who went home at night (we wound up not using any of his work).

Talking with people, I learned that Pittsburgh was home to two small game dev studios (I forget their names). Cleveland has only one (that I know of). I suspect every city has at least one, created by two students with ambition and a garage. That’s a Good Thing.

I’ve told my students, and I tell every young, aspiring game developer reading this; you should go do a game jam. It’s not my peers, but it IS yours. Plus, you’ll experience things that are very similar to the game industry.

– You’ll work to an impossible deadline, and put in crazy hours to meet it.

– You’ll be forced into ad-hoc teams of strangers that you’ll have to work with and get along with.

– You’ll get only vague guidance about the important things, and very specific instructions about things that don’t seem that important.

– You’ll be forced to make tough choices about what to work on, what great ideas you have to leave out, and when to ship, knowing you aren’t finished.

– But most importantly, you’ll learn how you work when you’re tired. Everyone in the game industry gets into situations where they’re dog tired, they’ve been working for 12 hours straight, and they still need to get things done NOW, so they HAVE to keep working.

And everyone does it different. Some close their office door and blast their music. Some chug the caffeine like it’s banned. Some get really silly. Some get really surly. And until you’ve done it, you don’t know how you react, and how best to set yourself up for success.

Not bragging here, but I already knew all that stuff. The only surprise for me was that I’m still able to keep up with the young guys.…