Understanding the Difference Between Game Design and Game Programming

In this article, I explain the difference between a game designer and a programmer, and why you need need at least one person who specializes in both to help you build your game.

If you’ve been working in game development for a length of time, you’ve probably heard these terms “game designer” or “game programmer”. (Or maybe you’ve come across of the more umbrella term, “game developer”.) But is there an actual difference between a game designer and programmer, and if so, what are those differences?

In very simple terms, game programming makes the game work, while game design makes the game fun.

Now, let’s have a more in-depth look at both professions.

Roles of Game Design

This profession involves the creative process of deciding what the game will be about. The designer is responsible for coming up with the game’s general idea, what type of game it will be, and who the game is for (think target market). The game’s design also includes what each screen will look like, how any levels are built, and the setting/environment/story.

You can think of the game designer as the glue, binding all other technical aspects of the game together to create one gaming experience that player will enjoy playing.

The designer creates the “flow” of the game. The flow of the game could be illustrated using the following chart, and might and look something like:

Please excuse my flowchart-makin’ skills. (:

As you can see, the designer decides what happens during each stage of the game. Of course, you could delve deeper into any of these boxes, especially if your game is large. You might have even heard of a game design document, which goes into heavy detail on how the game will work. Everyone on the team should be aware of this, though the designer, programmer, and likely artist will be using this the most.

In addition to the programmer, the designer works with team member in other professions like the artist, writer (for games with story), audio engineer (music and/or sound effects), and producer (there could be other members as well). Eventually, the design specs will need to be relayed to the programmer so he/she knows what the game should do at every stage.

The designer is responsible for determine how the game will be monetized. They’d be work more on the marketing side, and what strategies will be used (in-app purchases, one-time app purchase, subscriptions, ads, etc.) The decided strategies will be relayed back to the programmer to implement.

Some other tasks of the designer can include:

  • Come up with game ideas that are fun and engaging.
  • Decide the genre of the game. What kind of game is it? Puzzle, platformer, shooter, RPG, cards? Is it a single-player or multiplayer? Of course, it gets more specific than that, but that’s the general idea.
  • Decide what the main objective of the game is. What will the player spend the most time doing, and is this a fun activity? Bonus points if it’s addictive! 👍🏾
  • Craft a player experience. What should the player feel or experience while playing the game?
  • Understand what the players/market wants.
  • Come up with the game’s narrative, plot and characters, for example, if the game is an RPG. The designer can work closely with story writers for this.
  • Decides how the game should look (this is NOT the artist’s responsibility, unless the artist is also the designer, but the artists can of course assist).
  • Ensure the challenge of the game is balanced (not too easy or hard, doesn’t get too hard too quickly, or stay too easy for too long).
  • Decide how many levels the game has, and what each level looks like.
  • Maintain open communication with other team members
  • Decide how the game “flows”. For example, when this button is pressed, what should it do? (See the flowchart above/) It sounds trivial, but do not leave this up to your programmer. Often, the programmer’s interpretation will not be the same as the designer’s.
  • Decide what each screen looks like, for example, menus, intro/outro screens, where the player’s health is located, which fonts to use.
  • Decide what the game sounds like. When a button is pressed, does it play a “click” sound? If so, what? Does the game use BGM (background music)? If so, use music appropriate for whatever player experience the game aims to create.

Tips for designers working with programmers

  • Simple games can get away with just a designer, and a programmer. Graphics and audio can be purchased or free resources can be found online.
  • But do not expect your programmer to build a fun game, or to come up with the immersive elements themselves! In my experience, programmers make lousy designers, as their games are usually not very fun. Sure, they can put together lots of gameplay mechanics, but will the game keep the players’ interests? Probably not. Also, the designer will need to break down steps to the other team members, especially your programmer (and artist, if applicable) as to what each element of the game should do. They’re not mind readers. Sure, you may encounter a programmer who can also design a badass game, but again, that are the exception.
  • Likewise, do not expect your programmer to provide art for the game. If your programmer does produce art (link to programmer art) on their own, especially if they are artistically challenged, it should be treated as temporary, until the final elements.

These are some roles and responsibilities of a game designer. These are not written in stone, as a designer may do more or less than these. Very (and I mean very) games may only need a few of these, and depending on the game’s genre, the designer may be involved with more or less tasks as well.

Next, let’s have a quick look at game programming.

Roles of Game Programming

This professions is very heavily vested in the technical side of building the game. The programmer is mostly involved in writing the code that makes the game work.

Of course, programming involves more than just the code. The programmer decides what software, and coding language would best be suited for the game. Once the programmer starts to build the game, he/she needs to determine how the game stores data, as well as which algorithms to write to best create the desired pieces of functionality.

A programmer will often use third-party coding packages (you might’ve heard of SDKs, APIs, libraries, kits, or frameworks). These packages can speed up development by a huge amount, as they prevent the programmer from having to re-invent the wheel by creating all the functionality provided by the package themselves. Phaser, for example, is a framework for developing web browser games in the browser using HTM5.

Building a game will require use of several pieces software, the main one being a coding editor. There a lots of them out there, depending on which coding environment the programmer is using. A popular one is Visual Studio Code. Other tools may require graphics editors, sound editors (NOT for building these assets, but for perhaps making minor adjustments).

As the game is being developed, the programmer will also spend a lot of time fixing bugs. Remember: the programmer’s main responsibility is to make the game work. Correctly.

Squashing bugs is a common task. Fixing them can take time, and the programmer may need to speak further with whomever discovered the bug first, if it wasn’t them. Unless it’s blatantly obvious what the bug is (9 times out of 10, it won’t), the first thing a programmer should do is to try and reproduce the bug. You can’t fix what you can’t see. Just like a referee in the Dubba-dubba-EE, you can’t call what you didn’t see.

Then, they have the nerve to get mad at you. Haha!

Some other tasks for game programming are:

  • Writing the code that implements the game’s functionality, such as:
    • Loading and displaying graphics
    • Loading and playing audio (music & sound effects)
    • Moving characters or other game objects around on the screen around
    • Collision/hit detections
    • Handing user input (WASD movement keys, spacebar to fire, etc)
    • Game logic (puzzles, math, physics, etc.)
    • Making the UI (user interface) respond to player actions (button clicks, etc)
    • AI (artificial intelligence, computer-controlled players, bots)
    • Networking (for communication with servers, or if the game is multi-player)
  • Using third-party code or libraries (APIs or SDKs) to help speed up the development process and/or make it easier.
  • If on a team of other programmers, collaborating with them. Other programmers could specialize in niche areas of game development: gameplay, tools, front-end, back-end, network, etc.
  • Have understanding of game engines and frameworks, and which ones work best on certain target platforms.
  • Communicate with other members of the game dev team (designers, artists, producers)
  • Write algorithms that solve problems.
  • Determine the best data structures to use to store certain types of data.
  • Fix errors that occur during development and testing, and even after the game has been produced.
  • Being familiar with various coding software and/or IDEs (integrated development environments).

Tips for programmers working with designers:

  • If you’re working with a designer, don’t expect them to know all the technical jargon like you do! They might know a little about coding or scripting, but don’t expect them to understand low-level concepts. You’ll need to learn how to communicate using layman’s terms. This is not meant to insult game designers, but in my experience, game programming, especially at the low level, is a relatively esoteric profession.
  • If you’re unsure of how a specific piece of functionality should work, don’t be afraid to speak up and ask questions. You’ll have your hands full writing code, coming up with algorithms and data structures. You don’t have the time (nor the skill) to make a “fun” game, or to guess what your designer meant.
  • If you’re not a designer (or an artist), be sure to speak up and say so. Early. Do not allow your team members to place this expectation on you.
  • Programmers are generally socially awkward individuals. Asserting themselves, setting boundaries, saying “No”, and being the “nice guy” are challenges that they often struggle with. If this is you, you’ll need to start with working on yourself, your communication skills, and your own self image. You can check out Bulldog Mindset (started by John Sonmez). Below are a few of his videos for some insight, ESPECIALLY THE FIRST ONE:

In closing, just some things to keep in mind when working with designers and programmers, so you’ll have an idea what is expected (and not expected) from each profession.

Finally, I myself, am a programmer, and if you’re looking for one to help you build your next 2D, single-player, web browser game, then reach out to me! You can use the contact form, leave a comment in this article, or e-mail me directly at cartrell@gameplaycoder.com.

Subscribe to my e-mail list by using the form below. I spend a lot of spare time making games to add to my portfolio, and if you’d like to get behind-the-scenes updates to playable test builds as I make the games from start to finish, you’ll definitely want to sign up.

That’s it for this article! Thanks for reading, and until we meet again! 🙋🏾‍♂️

– C. out.

Added Brickout Game To GitHub

Hey guys,

The source code for one of the earlier games I created, Brickout, is now available on GitHub here. If you’re interested in looking at games under the hood, have a look!

Screenshot of Brickout.

This game is the first completed game using HTML5 + Phaser. To build the level, I used Tiled. I found level graphics on OpenGameArt from Matriax.

The bomb explosion animation was also on OpenGameArt, by Jetrel.

Meanwhile, I’m working on some new 2D games, made in either Phaser or Unity, so there’s more to come!

Like this:

The image above is a screenshot for a Unity game I’m currently working on. This is from the course on Udemy: Complete C# Unity Developer 2D: Learn to Code Making Games.

It’s the last project in the course (I’m almost done! YEAH! 💪🏿) , and it’s a tile-based, 2D, side-scrolling platformer, one of my favorite game genres, and I can’t wait to use all the skills I’ve learned in this course (and outside of it), to really go beyond the course material, and finish it! Though it’s gonna take me a while (AS IT SHOULD), because I have a lot planned for this game.

If I may digress for a moment: Speaking of finishing things, if you’re like me, and you find it challenging to sometimes finish your side projects, watch the following video.


John Sonmez talks about how to become a finisher and finish shit.

It’s from John Sonmez, founder of Bulldog Mindset, a company that helps people, particularly software developers, become better, stronger versions of themselves and get more out of life by improving their soft skills, mindset, philosophy, wealth, investing, and relationships. He also wrote a book called Soft Skills. It’s a great read; I invite you to give this book a read.

I’m also working on a simple RPG that will use an Active Time Battle System. I’ve always been a fan of battle systems in RPGs. I’m way more interesting the the working of battle systems than I am in the story lines. ⚔

Ever since I was introduced to the ATBS in Final Fantasy IV (and it was elaborated on in Final Fantasy VI), I’ve always been fascinated by it.

There is so much involved in this type of game, such as inventory, moving around in maps, stats, and the various intricacies involved in building a battle system.

This is a very exciting project, as I’ve never worked on an RPG before. Neither as side project (until now), or a client project – though I’d LOVE to work on a client’s RPG!

By the way, if you’re looking for a coder to help you build a 2D tile-based, single-player RPG, get in touch with me through this contact form, or e-mail me directly at cartrell@gameplaycoder.com. 😉

That’s it for now, guys. Take care,

– C. out.

P.S.: And should I survive all that, let’s not forget about card games, which I’m still considering specializing in. I want to make a battle card system (think collectible card game), that has mechanics similar to Yu-Gi-Oh!. It’s really the automation of the mechanics of this game that fascinate me. This will likely be THE most difficult game I’ve ever worked on, but I’m looking forward to the challenge.

The “Taking Control Of Your Life” Contract

Hey guys.

No updates on any game projects for this message, although I’ve been busy working on them! Instead, I’m going to be taking a different route here.

I’ve been following John Sonmez for quite some time now. For those of you who don’t know John, he is founder of Simple Programmer, a company that helps software developers become better software developers, and better people overall. As well as technical skills, it entails soft skills (including a book published by John of the same name – an awesome book by the way; I highly recommended it).

He also has a YouTube channel called Bulldog Mindset, which focuses more on personal development in the areas of fitness, mindset and building mental toughness, wealth and business, improving social skills, and relationships / sex.

I am lacking in all of the aforementioned areas (well, maybe not fitness so much; see my note at the end of this post). As long as I’ve been in game programming (about 10 years now), I thought I’d be a lot farther ahead in my career (and with my life in general) by this time.

When I found his YouTube channel, after listening to just a few videos, I became a subscriber. I wanted to turn my life around, starting with my career and financial situations. It was in fact his free course on creating a blog which inspired me to create this website, take the leap, and start putting myself out there.

In another one of his videos, he mentions a “contract”, stating his philosophy on how you should live your life. I really liked what he said, and decided to have some fun with it.

This inspired me to create a contract based on this (just like I said I would in my comment) on his video, and viola! Here it is.

The Taking Control of Your Life Contract

I would encourage you to check out John’s material if you haven’t already. Hell, download, print out, and sign the damn contract while you’re at it. Put it somewhere where you can see it every day.

A note on fitness: I’ve been working on the fitness for a while though, already. First, I began with this free 30-day fitness body weight-only challenge, just to get into the habit of doing daily exercises and sticking with it. After that, I found a free workout on BodyBuilding.com, but I modified it a little, due to lack of some equipment (I bought some equipment and train at home).

Then, I eventually moved onto Body Beast with Sagi “The Beast” Kalev. I’m having a lot of fun with this one! The Beast likes to talk a lotta shit in his videos, which will be why I’m gonna outwork his ass – right along with John Sonmez. I’ve also been learning a lot from fitness expert Jeff Cavilier Athlean X Dot Com.

Working to become a stronger, better version of myself, physically, professionally, socially, and mentally, and building confidence are all big challenges. Not being good in these areas has been the bane of the my existence, and have been holding me back long enough!

I’m not done with this topic, but that’s all for now. Thanks guys, and stay tuned.

– C. out.