Wednesday, 1 August 2012

You Can Make Videogames

You Can Make Videogames - a handy site created by Richard Perrin, a good place to look if you're interested in making games but you don't know where to start.

No You Can't Make Videogames - don't read this, it's silly.

You absolutely can make games.
(Videogames if you want. There's not a categorical difference. Cardboard is a great place to start.)

I've been making games for as long as I can remember.

My first games were terrible, and completely derivative. "Fan-fiction", if you like. I remember one, Snakes and Ladders with the squares randomly scattered across the board in different shapes and sizes, different instructions written in each, roll and move, no decisions. Another, Chess with all the movement rules changed - no reasoning behind them, just all every different pattern I could think of. Terrible terrible games, but I still had a lot of fun making them (and playing them, when I could convince my always-skeptical parents or siblings to give them a try).

Later, I found a book about BASIC programming in the library and learnt from it. My first videogame was typed in from a code listing in the book. This is as derivative as you can possibly get: an exact copy of someone else's game. But then I tried out changing numbers and seeing what happened, modified it, made it my own - totally broke it in the process of course, made it worse and worse until I reached a point where it didn't run at all and I didn't know how to fix it.

So I made terrible games. But I got better.

Eventually I was able to program my own games from scratch. I made text adventures (not worth being glorified by the term "interactive fiction"), copying ADVENTURE. They were very bad in many ways. The gameplay combined the worst of "guess the word" puzzles, unnecessarily complicated mazes, and brute force solving. But the code, the code.. I had no idea how to organise things, no conception of data structures and algorithms, but I didn't let that stop me. For every single room in the game, I had a separate block of code, with its own input loop, looking something like this:
    100 PRINT "You are in a dark maze."
    110 IF GOTLASER=0 THEN PRINT "There is a glowing laser gun here."
    120 PRINT "You can go south or west"
    130 INPUT WORD$
    140 IF WORD$="get laser" THEN GOTLASER = 1
    150 IF WORD$="south" THEN GOTO 190
    160 IF WORD$="west" THEN GOTO 420
    170 PRINT "I don't understand."
    180 GOTO 100
If you're a programmer, you're wincing. If not, you probably don't see what's supposed to be bad about this. And in a sense, there is nothing bad about it: it worked. There are good reasons for the ways programmers like things to be done; they're less prone to error, they save time once you know what you're doing, they're easier to modify. But when you're just starting out, all that you should worry about is whether something works.

Now, after 20 or so years of making games, I think I'm pretty good at it. I've made some games that I'm very proud of, that I consider worthwhile contributions to the medium (whether others agree or not) - and many more that are terrible, but were satisfying to make. But it's been a long process, and there's still room for improvement, I'm still getting better. You can't expect to change the world with the very first thing you make, but it can still be a step towards it.

If you're reading this, you have access to much better resources than I started with. An internet full of programming tutorials, source code, willing helpful people, and tools that are both much more powerful and much easier to use than a stupid BASIC prompt. You're in a much better position than I was as a kid trying to figure this out by myself.
At the very least, you can make something silly that nobody else wants to play. Why would you want to do that? Because it's fun. It's not easy, it's time-consuming and sometimes hard work, but making your own videogames is the most fun you can have with a computer. Forget playing games, making them is where it's at!
But also, because you'll get better. Everyone starts out terrible at everything, we only improve with practice. If your goal is to make a good game, you have to start by making bad games - it's the only way. When you're doing something that's hard for you, you're not wasting your time. Making games isn't easy, but it's something you can do if you want.

"We have created a situation where -everyone- creates things, all the time."

No we haven't. Not yet. I hope we do though.
More people are creating things, and that's great, but so many are not. They get discouraged because they think they're "not creative" (creativity is not a talent, it's a way of operating - John Cleese), because they think it's hard work, because they worry they'll never be good enough. Don't be discouraged. Creation is good for you: it's worth doing even if you just do it as a hobby and even if you never make anything that anybody else cares about (although you will, if you persist).

Make games.


  1. Nice post. New subscriber here.

    That crappy article on Gamasutra was unfortunately framed as an objective piece, when it's clearly the subjective, bitter, narcissistic ranting of someone who is either threatened by the rising popularity of indie development, or failed miserably and assumes it's an endemic rather than individual problem.

  2. Hear hear! Every game I've made, no matter how crap, has been both an enjoyable challenge and an important learning experience. Everyone should be encouraged to try it out. They might fail, but so what? Life is about failing, learning, improving, and having fun.

  3. I got the impression the Gamasutra piece was mostly intended as trolling to get a response and start a discussion. It's so obviously false so say 'No, You Can't Make Video Games'. The real statement should be 'No, You'll find it really to make good Video Games'.

    Also, 'If you're reading this, you have access etc.' I bet you'll find most of the people even reading the 'no you can't' article are in their 30s-40s and had the same problems as you. (How old are you?)

    1. Yeah, I know it was a bit of a troll but I couldn't help responding anyway. Anyway, as long as people are still intimidated from making games, this is a message worth repeating.

      Sure it's hard to make good VIDEOGAMES (or good anything), but the way to get there is by just starting out making any VIDEOGAMES you can.

      I'm 27.

  4. Been there, done that, with copying code from David Ahl's 100 Basic Computer Games and from '80s computer magazines.

  5. It goes without saying that one has to make bad games before one has to make good games. It also goes without saying that one can make whatever one wants to make (yet, people still insist that articles like this are somehow taking away this right, to which I can only respond with one big LOL).

    Perrin goes on to give a couple of misleading advices.

    Let's see:

    1. You don't need to educate yourself (implied by Tip #1)
    2. Don't think about theory/design (implied by Tip #5)
    3. There are no design rules
    4. Your games will be good (implied when he says "I want to play your games" and "We need more voices")

    So it's a one big lie, a lie that if you follow his advice you will make good games. You most definitively won't. Not until you take theory and design rules seriously.

    Now, if his video was perfectly honest and was titled something like "Making Crap Games is Fun", then that would be totally rad.

    1. Articles like that can very much take something away, unfortunately. Making a game looks intimidating if you've never done it. It can be really easy to discourage someone from trying. If that article stops just one kid from playing around in RPGMaker trying to make something, we might have lost something extremely valuable.

      These things do *not* go without saying. I wish they did, but the way our society is structured there's a small number of creators and a large number of consumers. Making art has become a specialised activity, not something for everybody to participate in. This is unhealthy, and the only way to counter it is by exposing people to opposing viewpoints. These things have to be said!

    2. The point is that Perrin's article is misleading, not that we shouldn't encourage others to make games.

  6. I've made a couple of so-so games (though some people have really enjoyed them) with a group of friends. And while I see them as my ugly children, they're mine in some way. I couldn't agree more with you.

    And yeah, eff that pessimistic dude who wrote the Gamasutra article.

  7. Great post. I used to program games in BASIC back in middle school (the code was a nightmare, of course), and I made a few in Java for a computer science course in college. I've meant to get back into it lately, but mostly I'm running into two obstacles:

    (1) As a grad student, I've always got a lot of things I'm supposed to be doing (like maybe working on that dissertation), so while it's easy to procrastinate playing games, it's harder to procrastinate with something that requires a substantial time committment from the outset.

    (2) BASIC and Java were great because they were thrust upon me as the language to learn for a programming class. The few times I've tried to sit down and make games lately, I feel inundated by the options for how to go about it. I'm also pretty good at programming but a complete idiot when it comes to how computers actually work, so everything involving graphics and sounds that isn't just a plot() command or whatever seems really intimidating.

    Probably I'll get over these things eventually (e.g. after I graduate). In the meantime, articles like this are a nice reminder of what's out there, so thanks.

  8. I don't think it's an easy to build games. We need to learn lots of languages to understand the logic behind games coding. But yes there are many best coders in the world who have build amazing games with superb graphics.

    M. Moses