Skip to content

Search Strings: “Do game designers need to know programming”

December 5, 2007

Today, I’ll start an ongoing series on search strings I find in my blog stats – questions or topics that land people here.

To answer the question: no, designers don’t need to know code, but depending on what kind of designer you are, your life will be a whole lot easier if you do code. Here’s why:

  • Code for a designer is like paint for a painter. If you want to make digital games, it lets you express your ideas and try them out.
  • You’re going to work with programmers, and it’s helpful to understand what they’re using to build the game.
  • If you plan to be a level designer, you need to know a scripting language.
  • If you plan to be a technical designer, you most definitely need to code.
  • Even narrative designers might get into a bit of scripting when dealing with NPC interaction, quest termination and initiation, item use and the like.

I have been able to use various scripting languages for a long time, mostly proprietary ones that were used at the companies where I worked. I didn’t know how to code in C++ for years, and am presently teaching myself along with a like-minded group of designers. I consider it my single biggest weakness as a game designer, and I can’t tell you how many times I’ve wished I could code something that was in my head.

So, the short answer is no, you don’t need to. But I strongly recommend you learn it anyway.

Advertisements
8 Comments leave one →
  1. December 5, 2007 8:05 am

    I think that programming is very important for game designers. Programming is not just typing code, it is type of mind and you must to learn certain level of abstraction, which you need for designing games.

    Of course you can be designer without programming knowledge, but your life be much easier if you can program especially if you work on non-story based game.

  2. December 5, 2007 4:36 pm

    Two other advantages of knowing how to code:

    1) If you know general programming/scripting concepts and common game algorithms (in ANY language), this helps you make designs that are easy to program. Consider a situation where you’ve got a perfectly balanced set of items, where Item A costs 1 Gold and Item B costs 2 Gold, and you realize that Item C should cost 1.5 Gold.

    If you’re a programmer, you realize that Gold is better as an integer than a floating point, so you’d just scale things: now A costs 2, B costs 4 and C costs 3. If you have no concept of the difference between int and float, you’d never even think of this.

    2) If you know the specific language that the programmers on your team are using (i.e. probably C++ for a large project), you can actually read the sections of the source code that implement your designs, and verify that they are implemented correctly! I’ve had several times during my career where I designed a formula or gameplay mechanic of some kind, and when I looked at the code I saw a bug in the implementation, and was able to get it fixed. If you can read code, this kind of bug fix takes five seconds to spot and fix; if you can’t read code, it takes dozens of hours of testing instead.

  3. Brian Shurtleff permalink
    December 9, 2007 7:43 pm

    Also, when writing up the design doc for me and Jeff’s Applied project, I know that having had previously done at least some coding/scripting let me know approximately the level of detail I needed for the doc, and that (the level of detail) was what you praised most about it.

  4. David permalink
    December 11, 2007 2:15 pm

    This post, and the subsequent agreeals do not bode well for me. I have tried for years to pick up coding, be it Pascal, QuakeC, C, C++, PHP… It has never really stuck to my mind, even though it always seems like I understand the concepts. My many coder friends all seem to agree that I have coding potential, as I think procedurally and have a firm grip on logic and inheritance, but my mind doesn’t get past the syntax, and if it does I am coming into a hastily coded system (QuakeC).

    I do try to work into my design documents a certain amount of pseudo code, but I always feel hampered by my inability. Like speaking just English at a party full of fluent multinationals (which has happened to me as well, alas).

  5. December 12, 2007 5:20 am

    It’s true that for a game designer having coding skills is useful to avoid certain problems, but it could become a brake for designers mind, since they can restrict their own ideas knowing the cost of development.

    I think that the game designer must not necessary to know about the code, he only has to be professional, he must ask to the programmer about the cost of the features, he must ask to the artist about the cost of the art, he must plan and organize all his work from all the feedback from their partners, he must be flexible to think about alternative solutions for different problems. In conclusion, he must be a good team worker, because from his communication skills depends the mental health of the team.

  6. December 12, 2007 8:02 am

    David,

    I wouldn’t worry about that. I know *many* game designers who don’t code.

  7. December 12, 2007 3:29 pm

    I’d say knowing to code is about as important as being skilled at art. Sometimes the only way to convey a thought is through an image, and words simply won’t suffice (or aren’t concise enough to be worthwhile). Both help to SHOW rather than TELL your design ideas. However, there comes a point where you have to ask yourself how far your design job spans, and where you need to draw the line. Speaking to other people on the development team (assuming the development team is already mostly decided) is arguably a better alternative to being a codeslinger yourself. In that respect, I agree whole-heartedly with Urkel.

    To David,

    If you’re really serious about coding (which you don’t have to be, don’t take it like that), I’d suggest looking into Python. The syntax is arguably the easiest to get around, but the theory behind what you code is the same as C++ for example.

  8. December 13, 2007 2:09 pm

    David;

    At the risk of chiming in with an unhelpful “Me too!” I echo everything that has been said in response to your post. In the college I teach at, we do have programming courses for our design students – C# and Torque Script currently – but the goal is not to teach them to be programmers per se, but to be thinkers. If some of them latch on to be more fully-formed programmers, more power to them. I’ve been in the game industry for 20+ years, shipped a million+ seller, and I consider myself a code hack at best and need a pile of references books close at hand when I code up a tool or test-case.

    The one piece of advice I will pass on is that, in my experience (your mileage may vary depending on your team), you don’t need to put pseudo-code in your design documents. Think logically about how the data would be structured, and what the data itself will need to be, and if you explain it systematically any coder worth his or her salt should be able to code it. As a designer, you care about the relationships between your data and how that data is being applied, but frankly you shouldn’t be particularly worried about how that code is written. The only exception to that is that you need to be sure that the code is data-driven and as much can be manipulated as possible in the data without recompliing the source code.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: