What’s the best way to learn video game programming while I’m in high school?
In this episode of Game Industry Career Guide Podcast, I answer a question from Joseph F. who asks, “I’m a high school student considering a career in game programming or design. I’m trying to learn C++ on my own with no background knowledge of programming and I wondered if you could recommend any tips for learning game-specific coding. My school doesn’t offer anything code related until junior or senior year and I’m having trouble knowing where to start. Is there anything in particular I can focus on to start practicing game coding while I’m in high school?”
In this episode, you’ll learn:
- How to learn the most popular game programming languages from scratch
- How to learn to use the most popular video game engine, for free
- The best way to combine your skills to make your first video game
Hello there. Welcome to the Game Industry Career Guide Podcast. This is Episode Number 21. I’m Jason W. Bay from GameIndustryCareerGuide.com and this is the podcast where I answer your questions about getting a job and growing your career making video games.
This week’s question comes from Joseph F. Joseph sent me an email to ask this: “I’m a high school student considering a career in game programming or design. I’m trying to learn C++ on my own with no background knowledge of programming and I wondered if you could recommend any tips for learning game specific coding? My school doesn’t offer anything code related until junior or senior year and I’m having trouble knowing where to start. Is there anything in particular I can focus on to start practicing game coding while I’m in high school? By the way thank you for all the resources you’re providing. They’ve been super helpful and encouraging.”
Three steps to game programming
Joseph, first of all thank you so much for your kind words. When I get feedback like that from my readers and listeners it really helps to keep me fired up and continuing to post helpful resources on my website. So thank you for that I really do appreciate it.
Okay, so if you’re in high school and you want to get started on learning how to program games I’m going to tell you about a three step approach that you can take to accomplish that goal. The steps are learning a programming language. Learning a game engine and learning how to use a programming language inside of the game engine. Let’s get started.
Step One: Learn to code
The first step is to learn a programming language. Now this might sound like a big step. If you’ve ever looked at computer code before it looks kind of weird and maybe a little bit intimidating. But actually it’s pretty easy to get started. Learning a programming language isn’t like learning a new human language like English or Spanish or Chinese. It’s much, much simpler than that. In fact once you get started you’ll be able to write your very first computer program in about 10 minutes. Of course it will be a tiny, simple little program — but it’s such a great feeling when you accomplish that small goal. It just feels like magic.
There are many different programming languages available. Some of the most common languages for game programming though are C++, C#, and Java. So which one should you learn? The truth is it really doesn’t matter which one you learn first because all the languages work pretty much the same way. Even though each one has different specific key words and language features, the most important thing is that you learn the fundamentals of how a program language works, how to start thinking like a programmer, and how to use a programming language to make a computer program. Those fundamentals are nearly identical in all of the popular programming languages. Once you learn your first language, it’s relatively fast and easy to learn most any other programming language that you might need later on.
Now Joseph said that he’s been dabbling with C++. If you’re not sure which one to pick then let me pick one for you: I would recommend starting by learning C# (pronounced “see sharp”). Why do I recommend C#? Because it’s a strong modern language; there are a huge number of books and tutorials available to help you learn; and because it’s a language used in one of the most popular game engines available (which I’ll discuss later in Step 3).
There are many courses that you can use to help you learn C#. There are free YouTube videos, and there are paid courses on sites like Lynda.com that are really good. I did a bit of research this morning and I found a free online tutorial that looks like it does a great job of teaching the C# language to new programmers and you can type and run your code right there in the web browser without installing any other software which is super convenient. That tutorial is at http://tutorialspoint.com/csharp/.
Step Two: Learn a game engine
The second step is to learn how to use the game engine. If you don’t know that term, a game engine is just a piece of pre-made software that helps you make a game faster because it provides a lot of built in functionality so you don’t have to program everything in your game from scratch. Even professional game developers use game engines but it also helps beginners because it helps you get you up and running and make a new game right away.
My favorite game engine is called Unity 3D. It’s full featured. It can make games for just about every platform including computers and mobile phones and best of all its free for beginners. You can download it today for free. Now the reason that “learn a game engine” is in a separate step from “learn a programming language” is because with the modern game engine like Unity 3D you can actually make small games without learning how to program.
But that doesn’t mean it doesn’t require some work. Unity has a ton of features that you need to learn how to use, and that will take some time. Luckily, Unity also provides some really great tutorials to help you learn. After you download it and install it just go to their website at Unity3D.com and click the learn menu. Then go to the tutorials area to find a video series that will walk you through making your very first game without any programming.
Now each of those first two steps will take you some time to get through, since you also have school work and probably other work and other hobbies. It’s likely to take you several weeks of regular effort before you get really comfortable with your new skills.
Step Three: Put it all together
But once you learn the basics of C# and the basics of the Unity 3D game engine, the third step is to combine both of those new skills together. In other words, start using C# programming inside of the Unity game engine to program a custom game of your own creation.
How do you learn to program C# inside of the Unity game engine? Once again you are in luck because Unity’s website also has tutorials that teach you exactly that. Go to the Unity website at Unity3D.com and start exploring the tutorials on scripting. Just make sure that you’ve already done the other tutorials and have a firm understanding of C# and Unity before you start on this third step.
Once you start programming inside of Unity, the sky is the limit. You can make just about any game. If you can imagine it, you can probably build it using C# and Unity 3D.
Bonus Step: Don’t do it alone!
Okay, those steps might sound big. And they are big, because game programming isn’t something you can learn overnight. But you can definitely do it. Just take it step by step. Do the tutorials, and don’t give up. Before you know it, you will be making some awesome games of your very own creation that you can share with your family and your friends.
Oh, and that’s another point that I wanted to make. As you take this journey to learning game programming, talk about it with your family. Let them know what you’re up to, and let them know that you’re passionate about learning computer programming and learning how to make games. They’ll be interested, and they might even offer to help encourage you if you ever get stuck or frustrated along the way.
That’s an overview of the three steps that you can take to learn how to program your very own video games. Game programming will challenge your mind. It will offer a sense of accomplishment over and over again as you learn and grow your skills. And it’s a super fun and rewarding hobby that you can also turn into a high paying career later on.
Thanks to Joseph for this question and thank you for hanging out with me today. If this information has been helpful please tell a friend about it or stop by the website to ask your own question. You might just hear your name on a future episode. For more information and inspiration on getting a job and growing your career making video games visit me at GameIndustryCareerGuide.com. I’m Jason W. Bay and I’ll see you again next week right here on the Game Industry Career Guide Podcast.
Read my new book!
Making games for a living is an incredibly rewarding career, but it’s hard to break in unless you have insider knowledge. This book levels the playing field.
I found this piece very informative and interesting. Im not one to enjoy Reading but you kept me interested in the topic. Im in junior year of High school and dont know exactly what i want to Study though i really enjoy video games and being creative. Im seeing game development as an option so i decided to do some research and Ive likes what Ive read. I Think i Will give programming a try though i also want to try the game “Dreams”, which lets you Build some pretty cool looking games, to see if i really enjoy building games. Thanks again for the very good advice.
I’m glad this was helpful, Andre. “Dreams” looks like an awesome way to start learning game development. (For people who haven’t heard of it yet, find it here: http://dreams.mediamolecule.com/.) I hope you have a lot of fun learning!
Hello Mr.bay i wanna thank you and say that Ive found this very helpful as a highschool student and i wonder if you can help me find the perfect carrer for me i have no idea what to study at university but im a gamer whode been playing since a lil kid and i love programming and im spending alot of time learning diffrent programming languages and im also a very very good artist in drawing and skitching i hope you can help me and thank you
Hi Mohaimn, if you love games and you love programming, then becoming a Game Programmer seems like a natural fit. It sounds like you’re already on a good path to pursue that career by learning more about programming languages. I’d also recommend that you download one of the free game engines and following the tutorials to learn to apply programming to an actual video game. Have fun!
How could I go about my plan? Would really appreciate any advice. I’m 17 pretty much done high school, and as a career I would really love to go into making my own gaming company and want to own 100% rights to it. I’ve been thinking of making a hyper realistic 3D game as my main and first project using c++ coding, on the unreal engine. I want to release my game on a per episode basis (Similar to that of Minecraft story-mode or other telltale games) due to its sheer size and I can obtain income and hype by releasing episodes rather than doing it all at once. And I want to release the series for now solely to the Nintendo Switch, and maybe pc. I am 100% new in the entire gaming and programming market, and haven’t had my first normal job yet. Is my plan doable? Are there programmers who could help me or I could eventually hire? Would this take to long? Would really appreciate any advice thx.
Hi Shreksly, this is an ambitious plan, and I can tell you have a lot of passion for game development! Since you came here for my honest opinion, I’m going to be very frank with you: You can’t accomplish this plan as your *first* game. To make the game you’re describing would take millions of dollars, and few hundred experienced developers working for 3 to 5 years. It *absolutely is possible* with time and experience, but I recommend you start by getting a job as a game programmer, so you can learn your craft and make industry connections that will be important to achieving your vision in time.
This is cool. I just found your website today, and I really enjoy reading your blog and watching your videos. I’m not a high school student, but a university one, and I just graduated university with a CS degree, haha. I suddenly decide to go into game dev even though I’m not huge gamer (I do love the quick/easy-to-play games). I’m gonna start on Unity. Wish me luck!
p/s: do you have any recommendation on the tutorials/courses to look at for someone who wanna be a game programmer?
Hi Vu, there are so many tutorials available that I can’t really keep up with them. But I often recommend checking out the tutorials that Unity 3D provides, because you can learn programming and learn a game engine at the same time. https://learn.unity.com/ Good luck, have fun!
Also, thank you for the great content!
Not in high school but I found this blog post very interesting. I dropped out of nursing school and through various channels found myself inspired to get into the career path of Game development.
Glad it was helpful, Laura, I wish you the best with your future career in games!