Curious about starting a game development career? ( Learn here !)
I get approached to talk about my own Game development Journey quite often and where I recommend beginning developers start.
My friend Travis Taborek composed this excellent and through overview on how people interested in working n games themselves can enter the space without formal education .
So You Want To Be a Gamedev: How to Learn Game Development Without Formal Study:
Game development is more than just a hobby, it’s a fun and exciting career path.
It was only relatively recently that gamedev became a viable career option. “Legitimized” academic pathways into game development involving courses and formal study only became available within the last 10 to 20 years or so.
Academic game development programs have a bad reputation because of their associations with “diploma mill” for-profit universities like the Art Institute of California and the Academy of Arts in San Francisco.
Not all game development programs are like that though. It’s totally possible to learn game development through a structured setting and under the guidance of an instructor if that’s how you learn best - I went to school for game development myself.
But going to school is not the only way to learn gamedev - in fact many game developers are self-taught!
We’ll break down the basics of game development, different online courses and textbooks to learn from, and offer suggestions to further your education and career.
What is Game Development?
Game development is the process of ideating, designing, programming and publishing games.
Video games are unique in that they’re a multimedia art form. They’re an interactive medium that blends together art, music, computer science, production, animation, cinematography, and character design that all come together to create an immersive experience.
Building a game from start to finish involves character design, music, level design, script-writing, programming, animation, and environmental effects. It takes months - more likely years - of hard work and careful planning to build a believable, cohesive world.
Game development can take the form of AAA projects with massive budgets and involve armies of artists, programmers, musicians, and designers making cinema-quality level products meant for a global market. These are the games that most mainstream audiences are familiar with like the Halo franchise, Grand Theft Auto etc.
It can also just be independent game studios (indiedevs) - small teams of 2-to-10 people working on a self-funded project on a pace and structure similar to that of a tech startup. Many successful indie studios manage to partner with a publisher to fund their projects e.g. Supergiant Games and Warner Bros. making Bastion. Many others choose crowdsourcing platforms like Kickstarter to cut out the middle-man and get the support they need straight from their audience e.g. Red Hook Studios and Darkest Dungeon.
There are even solo developers (solodevs), who occasionally hire contractors or freelancers for certain aspects of their game but otherwise make it entirely themselves, e.g. Toby Fox and Undertale.
Stages of Game Development
Broadly speaking, there are six major phases involved in making a game:
Pre-Production: This is where your game is first conceptualized. Right now, it’s mostly an idea that lives inside your brain and a few pieces of paper to substantiate it.
It begins with a design document: a proof-of-concept that outlines your game’s core gameplay loop, an overview of the story, your game’s unique features and selling points, what engine it will be made in, a general timeline for production etc.
Prototype: this is the first stage of your game’s production. Typically it has stripped-down virtual features, one level, and the core gameplay mechanics. At this point, your game is basically just a bunch of sprites moving around a screen.
First Playable Game: this is when your game truly begins to take an identity of its own. Characters take definition and shape. The art starts to have a definable aesthetic. The core mechanics and main features become recognizable. Your game starts to look like a game.
Vertical Slice: your game’s minimum viable product. More advanced than a First Playable Game, your vertical slice is meant to serve as a proof-of-concept for stakeholders or kickstarter backers, demonstrating that you haven’t just spent all that time chugging energy drinks and slurping cup ramen all day long.
This is the point where you want to start “Wow”-ing your audience or anyone else who might invest in your game’s success and make them go, "take my money, I’m sold!". This stage would be a good point to start posting content to Twitter and come up with a bi-weekly newsletter.
Alpha: Development is now well underway, and the game is taking further shape and definition. QA testing usually begins at this stage. You can also feasibly launch your game on Steam Early Access to start generating an income. This is also a good place to launch your trailer, start building relationships with YouTubers and games journalists, start a Discord server, and network with other gamedevs.
Golden Master: Your game is now feature-complete and ready for launch. It’s fully-baked, and ready to come out of the oven.
This is where physical copies of your game are sent to manufacturers and made into discs, or when digital copies of your game are made available for purchase and download on market places like Steam, Epic, and Itch.Io.
If you’ve made it this far then congratulations, you’ve made your first game!
Post-Production: Development doesn’t stop at launch. Your game is likely going to have bigs which need patching. Your audience will likely ask for new features, which you can decide to develop and then roll out.
This phase of development also involves marketing activities like launching press releases, showcasing your game at conventions, releasing post-mortems on news outlets or blogs etc.
Skills to Learn
There are a variety of disciplines in game development, ranging from creative to analytical and everything in between. Ideally, you should position yourself in one skill-set, and have an elementary knowledge of the others.
Story-Writing
John Carmack, the creator of Doom, is once quoted as saying that people expect your game to have a story but that it’s of negligible importance. This statement is no longer true, if it ever was.
If your game is to get people’s interest, then it needs themes that give it depth, characters with struggles and an arc that make them relatable, and a conflict that makes them feel invested.
Ideally, your story and gameplay need to complement each other.
Audio
Games are an audio as well as a visual medium.
The goal of your game is to immerse your player in a fantasy world, in the same way you would immerse yourself in a fictional novel or a movie. For that to happen, a game needs to sound right.
This involves music of course, but also includes sound design like character “barks”, movement sounds, and environmental effects like wind and water.
Marketing
Unless you’re a hobbyist developer, your game is essentially the product of an online business. It therefore needs to make money in order to sustain itself.
Marketing is its own aspect of game development. It takes time, rigorous experimentation, and months or years of consistent effort to fully pay off. What’s more, it needs to start happening the moment you begin production.
Marketing your game involves things like:
Putting together a trailer that shows off what makes your game unique, different, and fun to play
Defining your game’s personality, then showcasing that personality on your promotional products on your newsletter, social media accounts and store page
Creating social media content like WiPs, GIFs, screenshots, video clips, time-lapse videos, and behind-the-scenes “making of” videos, testing them side-by-side, then doubling-down (optimizing) on the content that gets the most likes, comments and shares
Using Twitter to show off your game’s milestones, get the attention of journalists and content creators, and field questions from interested parties
Operating a Discord server that serves as your main line of communication to your audience
Using the power of persuasive copywriting to grab the attention of your core audience of players and give them a reason to follow your game’s development
Programming
Most disciplines of game development split off into either art, business development, or game programming. The focus of this article is going to be on the latter.
Programming games involves a detailed knowledge of physics, 3D graphics, and math.
Your player needs to be able to move realistically, throw objects, walk to the other side of a room, swing a sword, cast a spell, shoot a gun, or jump on a turtle. Programming is what makes all of these things happen. It’s also arguably the most important skill you can have as a game developer.
The most sought-after languages in game development are Java, Python, C# and C++. It also includes knowledge of game engines like Unity and Unreal, and more obscure or genre-specific ones like RPGMaker and Ren’Py.
Graphics and Art
A game is much more than just a piece of software - it’s a representation of a fantasy world.
A world needs characters. A culture. A history. Continents with forests and mountains. Cities with architecture and people. A consistent visual look. The visual aspects of your game’s storytelling involve all of these.
Art in game development is split into departments like:
Lighting
Character design
Texturing
3D Modeling
Animation
Languages to Learn
Many computer programmers often specialize in one language or programming framework e.g. Angular, React, JavaScript. Game programming is much more intensive than conventional software development, and game devs need to be polyglots proficient in numerous languages.
Here’s a few of the ones you’ll need to know.
C#
C# is widely regarded as one of the most difficult programming languages to learn, but it’s also the most in-demand programming language in the game’s industry. It’s also the language that Unity, one of the most popular game engines, is built in.
JavaScript
JavaScript is one of the three foundational languages of web development, including HTML and CSS. It’s what makes websites interactive and interesting to use.
Many modern websites are made using frameworks built entirely using JavaScript, including Angular, Vue, and React.
C
C is the foundational language on which C# and C++ are based. It’s considered an easy programming language to learn with a simple syntax of only 32 words, and easy-to-understand data structures.
Learn this, then learn the other two.
C++
C++ is an object-oriented programming language used in game engines like Unreal. It’s also the language that most big-budget console and Windows games are made out of. C++ is meant for intensive CPU usage and complex graphics.
Textbooks to Read
We’re going to assume that you’re new to game development and have no formal experience or education in programming. That’s totally ok. Everyone had to start somewhere.
Here are a few textbooks to get you started.
Gaming Programming Patterns
Gamedev is incredibly complicated. Some indie game projects take on such size and scope that the developers end up deleting more code than most people have ever even written in their lives.
This book provides insight on the technical aspects of game development. It will give you systems to make beautiful and well-organized code, and demonstrate best practices for making your code more efficient.
Gaming Programming Patterns should be required reading for anyone aspiring to break into the games industry as a programmer.
Beginning C++ Through Game Programming
Stop if you’ve heard this statement before: “I wanna make games for a living, but I need to go to school and learn a programming language first.”
Well, turns out you don’t. Who says you need to learn how to code before you make games? Why not do it the other way around!
This book uses game development as a framework for learning C++. It includes simple language and step-by-step instructions, and exercises that reinforce what you learn. Any game designer can tell you that you’re more likely to learn something if it’s fun for you.
The Ultimate Guide to Video Game Writing and Design
Your game isn’t just a bunch of 1’s and 0’s. It’s a narrative experience that can make someone laugh, cry, inspire them, or see difficult or complicated topics from a fresh and unique perspective.
You’re not just entertaining them for a weekend. You’re building a world for them to live in.
Even programmers should have at least surface-level understanding of narrative and storytelling in the context of games. That way, you can more deeply understand how the core gameplay mechanics inform the story.
This is what this book is for. The Ultimate Guide to Video Game Writing and Design is considered a Bible for game writers.
Foundations of Game Engine Development, Volume 1: Mathematics
The thing about programmers and software engineers is that they need to be able to do math.
This book will run you through basic mathematical concepts like algebra and geometry before moving on to more complex topics like vectors, matrices, and advanced algebra. It’ll then demonstrate how these apply to aspects of gamedev like AI programming, graphics programming, physics engines and so on.
Udemy Courses to Take
We’re lucky to live in an age where all the human knowledge acquired through history is made available to us via the internet. You no longer have to invest tens-of-thousands of dollars in a degree that is not guaranteed to get you where you want to go in life. You have the option of taking an online course that lets you focus on the subjects you want to learn.
Udemy has plenty of gamedev courses that will let you do just that.
The Ultimate Guide to Game Development with Unity 2019 - Jonathan Weinberger
Jonathan is a personal friend of mine, and I’m happy to vouch for his course - which in spite of being made in 2019 is still one of the most popular gamedev courses on Udemy!
This 21-hour course will walk you through the fundamentals of game programming using C#, including concepts like variables, “if-and” statements, and arrays. You’ll learn how to implement sound effects and background music into your game. You’ll learn how to navigate the Unity story. You’ll even learn how to make power-ups that make your guns go “pew pew pew”.
Complete C# Unity Game Developer 2D
This is also up there with one of the highest-rated courses on Udemy, and offers a solid foundation for game programming. This course will show you how to make a playable game from start to finish, and help you make your first portfolio pieces so you can start applying for studio jobs or offering freelance work.
Even if you never make another game again after this, you’ll learn transferable skills like coding and problem-solving that you can take with you into a career as a software developer.
Unreal Engine C++ Developer Course
Once you finish those courses, this course will prepare you for more intermediate and advanced learning. C++ is an industry-standard language used to make many of the most popular games, and you’ll need it if you hope to compete in the big leagues.
In this course, you’ll learn the ins and outs of game design concepts like AI behavior and programming, programming patterns, and animation blueprints.
So What Then?
Getting as far as learning how to build a whole game by yourself is a noteworthy achievement and a milestone on your path towards being a career game developer.
But it doesn’t end there. You’re only just getting started, and being a game developer means you’re continually striving to know more and be better.
So where do you go from here? Well, here are a few ideas:
Join a Gamedev Meetups
There are communities of game developers in or around virtually every major city - and likely one near you. In The Before Times before COVID, gamedev meetups involved gatherings of game developers where they would work on their projects, give lectures, or even just get lunch and hang-out.
We seem to be on the path towards a new normal where in-person meetups may be possible again. Until then, many meetups have migrated to virtual platforms.
Go on Meetup.com and find gamedev meetups local to you. Join their Slack channels and Discord servers, and try to make some friends.
Freelance
You don’t have to start off doing the next big indie smash hit, or making the next AAA blockbuster. In fact, most companies and studios are unlikely to hire you if you don’t have any formalized experience in gamedev yet.
Rather than waste your time and energy filling out hundreds of job applications for employers who will probably reject you off-hand, or going the indie route without the experience to back up your ambitions, you might consider freelancing for a while.
You can get your feet wet and start offering freelance art/design/composing/programming skills on Fiverr to build a portfolio, get some experience, and start making some income. A number of freelancers offer their services specifically for indie games.
Freelancing can be competitive and you won’t make much at first, but everyone has to start somewhere. You’ll be surprised at how much you make if you stick with it for a while, and it comes with some great benefits like working your own hours and a work-from-anywhere environment.
Go to Conventions
Conventions are a great place to network, find people to collaborate with, find investors to fund your projects, and meet industry people who can help you get your foot in the door.
Popular conventions like the Game Developers Conference (GDC) in San Francisco have migrated online while the pandemic is ongoing - so you no longer have to be bound to a physical location to mix it up with the best!
Participate in Game Jams
Game Jams are online events where solodevs or teams of developers build a game in a short amount of time. They’re a great way to make portfolio pieces, practice your skills, and even get a string of social media followers if you do it right.
One of the most popular Game Jams is known as Ludum Dare. This bi-annual game jam is an event where you create a game from scratch based on a theme within 72 hours. It’s extremely challenging, but also very rewarding.
There are also a number of game jams on Itch.Io you can check out.
You’re On Your Way
Hopefully this will serve as a primer on the basics of learning game development and a resource for ways to learn the fundamentals.
If you ever want to talk about how to get started in the industry from someone who’s been where you are, go ahead and follow me on Twitter and I’m happy to share what I know!