How To Get Started Making Video Games: An Interview With A Programmer

Posted: April 9th, 2016 under Filament Games, Opinion.

On March 9, 2016, I met with the Game Maker’s Club at Norwich Technical High School via Google Hangouts. The interview was published on Filament Game’s blog and I am re-posting it here.

Where do you get your game ideas?
Good game ideas can come from anywhere. I have literally dreamed some of them up. I have been inspired by artwork on the internet, other media like books and movies, and occasionally real life experiences. I have had brainstorming sessions where I have mentioned something sarcastically only to have another teammate run with it.

Personally I get the majority of ideas from games that I play. I’m constantly analyzing what I am playing while I am playing it, developing a catalogue of what things are fun and why, as well as noting what things didn’t work. I also take inspiration from features that get cut from previous games. The rate at which I produce ideas is much faster than the rate I complete games. Ideas incubate over time. After a while it becomes more difficult to identify your best idea.

How do games get started?
The chance to build anything you want is actually rare. If you get that chance it is a gift. In the industry we call this original IP (intellectual property). If you are provided with this opportunity you still have to face some hard truths about time and budget.

Most games I have made are funded by a client or publisher. These clients typically come to a game studio with some ideas of their own on what they would like to have built. They have a wide range of experience with video games (sometimes none at all). In some instances their ideas may be unrealistic, poorly thought out, or out of alignment with their goals. In this case we help them work those things out before we sign contractual agreements.

The other way you fund a game is to make a design document, research market data, build a demo, and pitch your idea to a game publisher or investor. Often these groups will make adjustments to your idea that suits their needs – adding multiplayer, releasing at a certain point, meeting some rating requirement, targeting some demographic, or publishing on multiple platforms. Since the publisher is the one paying for it they can make almost any demand they want.

What is the process of building a game?
You can find some good resources in the posts How to Make a Learning Game and How to Make a Video Game: Costs and Considerations. Most of that material applies to any game.

How much effort does it take to make a game?
Modern video games are complicated. They require several different skillsets, and those skills are honed over the course of years. However, all video game developers started off making small experiences, and it is easy to get started. You could make a very simple game in an afternoon or a weekend. Crafting games, particularly programming, lends itself to incremental advancement. Once you master some basics you can progressively tackle larger challenges.

How many people does it take to make a game?
It is rare to find a one man army of programming, design, and art – working on games is a collaborative experience. Filament Games has over 30 employees with multiple project teams that fluctuate in size from 4 to 8 dedicated people (some jobs like sound production and quality assurance float from project to project). The “indie” developers that made Super Meat Boy and Fez worked in pairs. I think your average console game probably has 20-50 developers. More complicated games like MMOs and Triple A blockbuster titles easily grow to over 100 people.

How long does it take to make a ‘good’ game?
Before I can talk about how long it takes to make a good game, we have to define what a game is, and what makes it “good”. Is it any kind of game or are we sticking with video games? I can make a dice game in seconds: if I roll a 3, 7, or 9 I win – but that game isn’t particularly compelling is it? Yet, many casino games are no more sophisticated than that example.

Fun is a difficult property to create, or even define. Sometimes “good” games are described as having a series of interesting decisions. Usually you need some form of risk, reward, exploration, surprise, challenge, strategy, tension, suspense, and more to create an environment that will sustain fun. There is a lot of psychology that goes into games.

The best answer I can give you is that it depends on the complexity of your game. I have worked for weeks on single problems like physics, loading schemes, or performance. At the same time in a week or two you can create an interesting interaction or a demonstration of a game experience. Recently I completed a project that had three weeks of design and planning, eight weeks of development, and a week of QA. It was fairly straightforward – the game included a branching narrative story experience, about 30 minutes of content, and some sophisticated data tracking.

Two to three months is about as short as I think you can get, particularly if you have a client where you need to get approval, answer questions, and understand their goals. If it was independent work you could move a little faster, but it is hard to think of anything unique or interesting you could do on such a short timeline. Particularly something that is polished with a beginning, middle, and an end. I think Game Dev Story was actually somewhat realistic when it came to budgets and timelines, at least in terms of scale.

If you are just getting started in games, two of the hardest things to grasp are scope and velocity – in other words, giving yourself reasonable goals and knowing how much time tasks will take. Some of the best blogs that I can point you toward are the one game a month game jam and indie dev Tomas Rychnovsky’s blog where he publishes his monthly achievements and profits. Those are examples of what experienced developers can complete working full-time for a month. If you are learning you should scale down your goals even further.

What software and technology do you use to make games?
There is no one best way to make a game. Technology is very dynamic and we are always learning new software. I have worked with many different systems: Unreal Engine, Unity, Gamebryo, Panda3D, Flash, HTML5, and I have written engine code on top of simpler environments like Flash and HTML5. There really is no one best set of tools or software, they all have their strengths and weaknesses. Looking to the future I can tell that HTML5 and Unity are going to see widespread use, so those two are going to be the important ones to know.

I’m not sure I can recommend software that is the easiest to learn or work with, but here are some things to think about when picking technology:

  • How big is the community of people that use it / how hard is it to find help on forums?
  • How reliable is the documentation and can I dive into the source code if I need to?
  • Are there step-by-step walkthroughs and tutorials to get up and running?
  • Are there example projects that you can tinker with and learn how to structure your code?

What is it like to be a programmer? How do I get started programming games?
Programming is hard to do well. You need to have a temperament where you can focus on one problem for long periods of time, thinking about how several complicated objects will work together. When I start a project I spend the majority of my time thinking and planning how to structure my solutions. I weigh things like performance, flexibility, scalability, extensibility, and I have to take into account the kinds of solutions I can write with the time I have available.

When it comes to actually writing code, programmers try to break big problems down into small problems and try to generalize problems so small chunks of code can be used to solve many problems. While programming isn’t trivial, you can still accomplish a lot with very simple scripts, which makes it easy to develop skills incrementally. Like making good games, programming is easy to learn but hard to master.

To be successful in video games, you need to be a self starter. This might be your first experience trying to teach yourself something. Like most things in life, games can be figured out by breaking them down into small steps. Some of the most atomic elements would be:

  • Render a model or a shape
  • Play a sound
  • Play an animation
  • Move an object
  • Make a button, and have it do something
  • Render some text that updates
  • Create an object from code
  • Detect when two models overlap
  • Load a file
  • Understand the concept of frame rate and when objects update

It is a worthwile experience to watch a Unity video tutorial or tinker with an existing demo project. Those are the tutorials I used when I started learning Unity last year. Even though it might not be representative of what you actually want to build, you will assimilate a wealth of knowledge in a short amount of time.

How can I practice game making without programming?
If you are more interested in design, art, or writing – consider constructing a pitch as an activity. Design, planning, and prototyping encompass a significant amount of time on any project. Professional developers make storyboards, wireframes, game design documents, and paper and pencil prototypes during a game’s pre-production. Those materials are valuable to communicate your ideas in a pitch and they prevent you from wasting resources during the more time-intensive parts of asset creation. There are example pitches and design documents as well as articles on how to polish an idea into a pitch.

What resources are there and how do you learn about game making?
There isn’t much traditional education surrounding games – there are mainly specialized college and university programs but there is a wealth of information online if you know where to look. Plus, those options may not cost very much to get started. I would recommend starting with the book The Art of Game Design.

There are a variety of resources online about learning to program. Most colleges post their computer science curriculum online – for instance, MIT provides lecture videos and courseware for free. However, there are many fields of computer science. Learning to program for games is a bit more specialized. Filament Games has another blog post focused on learning resources for game programming.

How can I get better at making games?
Think about anything else you have ever done in your life, particularly something you became skilled at, and try to remember how good (bad) you were when you first started out. Sucking at something is the first step to being sorta good at something. Video games are pretty complicated, and there is a steep learning curve. To reach mastery you not only need to understand physics, geometry, programming, shaders, modeling, texturing, animation, rigging, sound, cinematography, lighting, architecture, story, character, and design; but you also need the ability to compose them into a cohesive experience. We all started small and worked our way up to bigger challenges.

There is a famous talk by Shigeru Miyamoto (Nintendo game designer and creator of Donkey Kong, Mario, Star Fox, The Legend of Zelda, Wii Sports, and the Wii itself) where he talks about how he worked on the concept of the Mii over 20 years. As you study game design and practice being more conscious of experiences, good ideas will come! Make sure you write them down, nurture them, and most importantly – test them.

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment