Motivation? [Game Design, Intro]

12 Feb

I would be willing to bet that there is not a single video gamer in the world who has not thought about making their own game at some point. I say this because, using a very sound and scientific method (talking to a bunch of people on the internet), I have noticed that most of us have thought about making our own games.

Johnny - the one, the only, the original

Speaking of fever dreams...

Chances are, you’ve at least had an idea. Perhaps it is a concept which would absolutely redefine the video game industry. Perhaps it is a wretched fever dream which begs to be forgotten in a dark corner of the basement, next to your Twilight fanfiction and crumpled porn. Whatever the idea is, though, you’ve had it. You’ve rolled it around, and you’ve seen a bit of it play out in your head. What’s stopping you from seeing it become a reality?

You probably already know, even if you’ve never bothered to think about it: a lot of hard work. Video games are simple to describe, but incredibly hard to flesh out into a final product. Somewhere between “awesome idea” and “awesome game,” you will find countless hours of things that are not even a little bit awesome.

 

If you’re anything like me (read: possibly mentally ill), then you are not daunted by the challenges – it’s just a matter of finding your motivation. Spend an entire weekend turning down social engagements and scribbling math equations in a sketchbook? No problem! Just remember to have a witty response cooked up by Monday, when your co-workers ask how your weekend was. Do that every weekend for six months, though, with no immediate reward and no end in sight? Now we have an issue. I want a hobby – not a complete redefinition of my free time.

Except… Wait a minute. That’s what schedules are for. I know what those are; I schedule things all the time to great effect. What’s so scary about that? There’s no rule saying that this project needs to consume you. And if we really want to look at it objectively… None of it is less of a chore than backtracking seventeen times through the same hallway in the latest Zelda. Thanks, Nintendo.

About a month ago, I opted to take a serious crack at it. Yesterday, for the first time, I unexpectedly heard the words: “wait, you made that?!”

People have stopped asking about my evenings and weekends. I enjoy the daily challenges, but nobody really cares about physics, and they don’t care how data structures interact with each other. It’s just not in them to get worked up over the sublime beauty of a sound algorithm. But they do see this crude little sprite, bouncing and trundling around the screen… The motion is fluid and organic; it looks like it might be fun, and now they know a person who is able to make that happen. Already, they are a little excited to see how it’s going to turn out.

The first screenshot I've taken, I think

Wheeeeeeeee.

…And that’s the payoff. That’s the reward I was always missing. It’s not measured in pride, in personal achievements, or in dollars and cents. It’s measured in the level of excitement, anticipation, and (hopefully) gratification that you can bring to others. If, after all of your hard work, you have produced emotion - you have succeeded. That’s the goal.

So, back to that idea of yours: why not? I’m assuming for a moment that if you’ve read this far, game design actually appeals to you. Why haven’t you started? The long hours and awful pay? The zero-chance of market success? The technical challenges? The overwhelming scope of the project? Fear of failure? These are all selfish considerations. Being selfish is fine. Healthy, even, in the right amounts. It just means you need a motivator that overrides your personal demotivators.

In other words, you can’t make a video game for your own sake. To do it right, it must obviously be something that you would enjoy, but the ultimate motivation must be for others to feel the same kind of excitement that drew you in long ago. If that concept appeals to you, I encourage you: the path between your idea and the finished product… It’s more rewarding than you might think.

This series – which I have witlessly decided to call the “Game Design” series – will be about that. Although I am not exactly a stranger to design or programming, this will be my first video game. The troubles, the triumphs, the successes and shortcomings of the craft will be documented as I experience them. I don’t plan on dumping a lot of code samples or programmer jargon; there is plenty of that out there already. Rather, this is about the ethos of game design, the non-technical challenges and trains of thought that surround it.

Next article: Where to begin?

 

Tags: , , ,

Efficiency in video games

29 Jan

I am programming a video game. No, for real. It’s a (relatively) simple side-scroller, loosely based on a childhood favorite. And at one point in the process – figuring out how to turn a huge list of numbers into something that resembles terrain – I had a conversation with one of my good friends.

It went like this: for every single frame that is displayed on the screen, the game has to go through a list of 250-300 values which represent the “ground height,” and draw a tiny little strip of the ground based on each height-value. In his words, “that works fine, it’s just really inefficient.” Which was my thought exactly; shouldn’t there be a better way to do this?

Some discussion later, there was no clear answer (though to be fair, we didn’t try all that hard). No worries; this is a personal project, so there aren’t any deadlines. Plenty of time to figure things like this out. I went home, went to bed, got up in the morning, and then — as I sat down to take another crack at it — a thought struck me.

Who cares?

Instead of doing some research, as I had originally planned, I set up a performance measurement to see how much time was actually being spent drawing the ground. The result? Roughly 0.2 milliseconds per frame. If a game wants to display 60 frames per second, it must render each frame in under 16 milliseconds. The big scary ground-height list is taking 1.25% of that time.

Is that any excuse for doing things inefficiently? Yes. Yes it is. Even if the rest of the stuff that this game calculates will use up 98% of the processing time per frame, then there’s still plenty of time to inefficiently render the ground (and probably other areas that would benefit more from the tweaking).

  1. We don’t need to be kind to the other programs on this computer; video games tend to be in front and in focus while they’re running.
  2. We’re not crunching humongous volumes of data, where a slightly-faster calculation is the difference between one and two weeks of total runtime.
  3. We’re not putting the extra processor cycles on a shelf in the basement, to be pulled out and used later when the computer needs them.
  4. We’re not even saving electricity – the hardware was kicked into high-power-consumption mode the moment we decided to run a game in the first place.

In other words, there is literally nothing that will be gained by optimizing this method. In fact, I stand to lose: I would almost certainly end up sacrificing simplicity, readability, and maintainability for the sake of letting clock cycles go unused, down the drain. This is not to say that programs in general (or video games in particular) should be put together with no regard for efficiency. But where is the line? Where do you go from sensible things like “don’t thrash the garbage collector” to silly things like  ”a cross product would be 3% faster than a cosine?”

 

Tags: , ,

SOPA, PIPA and Hypocrisy

23 Jan Schoolhouse rock VETO

…Because what better way to inagurate a new WordPress installation than by bringing up the hot-button issue of the day?

First things first: I don’t like the SOPA, not one bit. It’s hard to imagine anyone (besides a technophobe or record executive) supporting the bill in its present state. But as I was furiously weaving the most powerful letter I could think of, in the hopes of sending it to my congressman and changing his mind and altering the course of American politics forever, a few things happened.

  1. The bill’s supporters thought twice about supporting it (no doubt owing to the enormous backlash on January 18th),
  2. I paused, wondering if my efforts were necessary at that point,
  3. After half an hour of reading on the internet, I realized that a lot of us are misguided. Or, in some cases, just plain wrong.

Why? You tell me. What’s wrong with the SOPA? What bothers you so much about it? Do you actually know what the bill’s problem is, beyond a cute analogy about China and some vague hand-waving toward the First Amendment? What is your reason for opposing SOPA?

As far as I can tell, it’s because the internet is our “home turf.” The government can trounce on other people until they’re blue in the face, but the moment someone pisses in YOUR cereal… Holy shit guys, this is serious.

What exactly are you trying to preserve? The security of the internet? Baloney. It’s certainly a convenient argument that the SOPA/PIPA would undermine security, but it’s not like that ever mattered to you. If you cared about security, even a little bit, then I wouldn’t have to be reminded that strong passwords are 8-12 characters long and are a mix of numbers, symbols, uppercase, and lowercase characters every single time I needed to create a user account.

Is this about your first amendment rights? Then why are you ignoring other (equally serious) civil rights violations? And why not simply call your legislator and ask them to amend the offending portions? If you read the actual text of the actual legislation, there’s virtually nothing about censorship – the threat lies in the fact that it allows copyright holders to notify third parties of the possibility of legal action. This is itself a first amendment violation because it will indirectly lead to suppression, but the entirety of the legislation hardly hinges on this one point.

So, again, what is the big problem? Oh, right. The internet is about freedom of intelligence, the exchange of ideas, and open enterprise and such. The lofty ideal of a perfectly open and neutral network, and so on. Government oversight would change the way the internet works, and that would ruin everything, and that’s just not the way it was meant to be.

And on that point – you’re exactly right. The internet became big and profitable one day, and big money realized that they wanted a slice of the pie, and once big money was involved, the government had to be involved. Things are changing, and not in our direction.

But back to the MPAA. The insult-added-to-injury is that they’re just plain wrong. It would be nice to stop piracy, yeah, but they’re not doing this for the sake of justice — they’re just convinced that the elimination of piracy would revive their old, dead, broken business model. The problem is, piracy is not the problem. They have simply failed to adapt as content distribution mechanisms have evolved, and they are dying as a result.

So we fight the SOPA. Less because it’s a civil rights violation or a security risk or whatever, and more on the principle of the thing. It’s our internet. Stop trying to take it away.

 Isn’t this hypocritical? In lobbying for the preservation of “our” internet, aren’t we too just trying to preserve the old way of doing things? Failing to account for the fact that the internet is big, and powerful, and that the powers that be can’t be kept out of it forever? This is not our personal playground anymore. It never will be again, no matter how badly anyone wants it to be. SOPA was beaten back, but others will come in its place. Wouldn’t it be more productive to take an active role in the evolution of internet legislation, instead of just screaming like a child who had his sucker taken away when someone else tries to take the reins?

If the internet actually matters to you – and the whole thing, not just your little corner of it – I implore you to put your money where your mouth is. Otherwise you’re no better than them. I, for one, am going to scrap the letter I wrote to my legislator and come up with a new one. A better one. Something useful for a change.

 

Tags: , , , ,