So you want to make some games, huh? Good. Great choice. Video game development is an insanely rewarding hobby. I believe that programming and video game design as a whole both help build problem solving skills. Not only will you become sharper, but you’ll also have a sweet product to show off to your friends! Imagine all of your buddies gathered around in a circle playing the game that YOU made. Enticing, no?
How Do I Even Begin to Make Games?
When I first got into game programming, I was beyond overwhelmed. How do you just sit down and… make a game? Do the graphics and sound and gameplay just magically weave together? No, it’s not magic, but the process actually isn’t bad at all! In a nutshell, video games are simply made by computer programming. Code is the core of all video games; the code ties the image and sound resources together. The program you type up is what designs the gameplay, how everything moves, etc. Once you recognize how important the code is to every video game, you’re ready to learn how to make games.
Making Code Work For You
Of the roadblocks I hit when learning programming, one was particularly bothersome: how is this code converted into a working video game? This is pretty complicated. A separate computer program called a compiler interprets your code and turns it into directions that can be followed by the computer. This machine code is what is executed as an application, like a video game! It’s important to realize that video games are software, just like a text editor or an internet browser is.
Fortunately, this process has been simplified immensely by Integrated Development Environments, or IDE. An IDE includes many useful features, including:
- Linking all of your files and resources together
- Debugging tools, which help you detect bugs and glitches in your program
- A text editor in which you type your code into
- One-click compiling: One button allows you to convert your code into a running program in a matter of seconds
A programming language is the “language” that is used to communicate with the computer. When I say language, I really mean the set of rules that your code must follow. For instance, there may be a different way to print output to the screen from one language to another. Just like how there are multiple written languages (English, Spanish, French), there are many programming languages available. Which one you should use depends on the task at hand.
Four programming languages prominent in game development are:
C++ is a multipurpose language. This is because of the power offered by C++; there are very few limitations. In game development, it’s extremely useful to be able to what you want, when you want. The downside of C++ is its learning curve. Since you’re given so much freedom, there are a lot of little rules that must be followed. A new programmer may find himself drowning in program glitches at first. With great power comes great responsibility.
You can learn more about C++ here.
Python is less powerful than C++, but it is also much better suited for beginners. When you use Python, you worry a lot less about the low-level memory processes and focus on the function of the code. It’s not a bad idea to start with programming smaller games using Python before moving on to developing complex games with more difficult programming languages.
Check out my page to learn more about Python.
Java has become one of the most popular programming languages over the past decade. Like C++, it is extremely versatile and powerful. At the same time, it’s simpler than C++. I find myself worrying less about the quirks of the language when I use Java over C++. One of the cool things about Java is you can create applets that are able to be embedded in web browsers – something that cannot be done with C++ or Python.
Objective-C is another programming language I use. Objective-C is what you use when you want to program for Mac computers or iOS devices, like iPhones and iPads. There really isn’t another option when programming for Apple operating systems. C++, Java and Python can all be used to program Mac and iOS devices, but it isn’t going to be as effective as Objective-C. Apple developed Objective-C themselves, and they clearly designed it to be the most powerful language for their systems. Unfortunately, this programming language is fairly different from all others.
To summarize the four languages, you can rank them in terms of power:
Or ease of use:
Objetive-C is weird and has no friends.
Learning How to Program
Once you’ve determined which programming language you want to pick up, it’s time to start coding! Programming may seem intimidating, but trust me, it’s easy! You just have to learn all of the rules and uses of the programming language. Remember, practice makes perfect! Try making small programs before diving into a big project. You’ll save yourself a lot of time. And tears.
I have a separate section of my website for programming tutorials: Learn how to program here!
What Programming Languages Can Do
As you now hopefully know, programming languages serve as the backbone of computer programs. They are what creates the logic and flow of video games. However, a programming language can’t do much more than that. Programming languages themselves aren’t able to display graphics on windows. When you launch a program that only has basic capabilities, you’ll get your output in the command prompt (if you’re using Windows). To add graphics and music, you’ll need something more: a library or an engine.
Game Libraries and Engines
Game libraries and game engines add extra functionality to programming languages. These added capabilities let you put in the good stuff: graphics, sounds, easily accessible input, etc. Each programming language has many different libraries and engines available. I highlight which ones are best on the individual C++, Java, Python, and Objective-C pages.
Libraries Vs. Engines
A big gray area in game development is what the difference is between a library and an engine. In general, a library will require you to do more programming. It’s not going to add as much functionality as an engine will. Libraries also come in different forms: a graphics library will add (you guessed it) graphics and a sound library will provide audio capabilities. There are also all-inclusive game libraries that add everything you’d need to make a game. On the other hand, engines usually just exist as game engines, not specifically targeted toward graphics or sound. Some cool things a game engine might have that a library wouldn’t include pre-programmed physics, animation, and simplified input.
Choosing a game engine over a library may seem like the logical path. It is definitely the least time consuming method, and you’ll see results much faster. However, don’t instantly rule out libraries just because they are more challenging. There’s definitely a valuable learning experience that comes with libraries. Since you’ll be dealing with more code, you’ll grow more as a programmer if you choose to use libraries.
The Art of Game Development: Graphics and Sound
The artsy side of games lies in the graphics and sound. These aren’t exactly my area of expertise. I reached my artistic peak in 3rd grade art class. However, I still do know a thing or two about both.
I personally never design the graphics or sound in my own games. Instead, I choose to pay freelance workers to do this for me. It’s not expensive at all and the quality is great! More on hiring freelance workers is discussed here.
Planning Out Your Game
Now that you’re ready to make a game, you should just jump right in, right? Wrong! Before you dive into a big project, it is crucial to have a solid plan already made. Imagine trying to make a cake from scratch without a recipe. Talk about a recipe for disaster! Ha ha! Ha! Ahem… sorry.
All jokes aside, I sincerely hope you recognize how important it is to have an outline for the design of your game. It’s very important that you’re competent in your programming language of choice when you plan your game. This will help plan the specific code aspects to your game.
I have a pretty helpful article on planning out your video game that I recommend you read.
Moving Forward In Game Development
Game development is clearly not a simple process. It is not for the weak. Only the strong will survive.
My one last tip for you is to be very patient with yourself. Making games is not easy. I can guarantee that at certain points you will be frustrated and you will want to quit. The ones who are successful are the ones who persevere.
When I made my first iPhone game, it took me around 12 hours just to get an image on the screen. And that was after several years of programming. While this may be an extreme example, keep in mind that there will be hardships. Just so you know, I ended up finishing my game. It turned out pretty cool.
Good luck to you, fellow game developer. I wish you the best in your game making endeavors.