For a lot of 9-to-5 developers, the idea of building a video game on their own often seems like a monumental task. Game developers need to consider art, animation, physics, math, input, rendering, shaders, and countless other things that probably seem like they are in no way relevant to the daily job of building websites, services, or business apps.
If you’re a developer who wants to get into games, you may think that there are big differences between game and app development. But it’s important to realize that the majority of the work in each type of development is similar. Day to day as a game programmer, you’re mostly just working in code, solving problems—that’s the same thing you do when you’re building business apps.
Learning how to develop games can help you in your career, by making you a better overall coder, or just by learning how to be flexible and adding new skills to your portfolio.
In this article, I’ll explain how game development differs from app development, describe how to get started making your own games, and provide some pieces of advice on what to watch out for when taking the leap.
Differences in Game Development
So, what are the differences between game development and app development?
Well, the first difference is the development environment. With any app development, the environment is usually pretty specialized. Sure, you can code in just about any editor, but you’ve probably got your editor(s) of choice, the one that works best for the specific project types you’re working on.
Game development also uses a specific development environment. Most of the time, this development environment is a mix of the game engine’s “editor” and a code tool like Visual Studio. If you’re using Unreal, you’ll use the Unreal editor and Visual Studio with C++. For Unity, you’re using the Unity editor and C# (in VS, Rider, VS Code, or MonoDevelop).
Now half of that may sound familiar. We’ve all used code editors. But why do we need an additional engine “editor” for game development?
The engine’s editor is where everything gets tied together. It’s where you put that art, hook up your code, build your levels, configure animations, and do everything else that isn’t just writing code.
It also makes your development experience dramatically easier. Many of the things you’d think would be “hard” about game development are extremely easy with today’s engines.
Want a ball that falls to the ground like a real object would? No problem; add the correct physics component and you’re done. Want it to bounce? Simply add a physics material and adjust the bounciness factor. No code required, no special math skills needed—just the knowledge of what component to add.
The same idea holds true for most of what you want to do outside your game logic, too (game logic is just like your business app logic; all the parts are specific to your use case). All of the “hard stuff” (e.g. physics, rendering, device input, audio) is already done. They’re solved problems and you just need to know where the solution is.
I think of building a game a lot like building a website. Long ago, you had to deal with the incoming network stream—now you just hook into the right spot in your framework and focus on your specific business problem. Think of game development the same way. You have a goal, you have a giant framework, and you just need to hook parts together until everything works.
Getting Started
My usual recommendation for anyone interested in getting started with game development is a lot like my recommendation for someone starting any other type of development: Start small.
Pick a simple mobile game that already exists. Then pick one that’s even simpler and recreate that through tutorials. There’s a lot to learn, and diving in with a huge project is a guaranteed way to get overwhelmed, lost, frustrated, and fail. So again, pick the simplest game you can possibly think of to start.
In fact, I usually recommend that people start off with something like Flappy Bird.
With the right tutorials and a little understanding of programming, you can build these little games in a day. Throughout the process, you’ll start learning your way around the editor, discovering new components, and realizing how little code is required (and you’ll pick up a little C# along the way).
And when you finish the games, you can build them to your phone and then share them with your friends and family. It’s easy!
One other skill you can practice through building games is how to develop something that switches between platforms. This skill is important because the more platforms your app is in, the more valuable your work.
In fact, one of the reasons I love Unity as a game engine so much is the ease of switching your target platform. You can build your game for Windows or Mac first, then simply select a new target device in the build settings and push your game or app right out with no changes or custom work.
I’ve used cross-platform tools like Xamarin before, and while they’re good, they don’t come anywhere near the ease of use you get with Unity. Simply select the new platform, hit “switch,” and build. Most of the time, it just works, with no changes. You can choose between all the mobile platforms, WebGL, Linux, Mac, Windows, Xbox, Playstation, and a whole lot more (around 30 platforms total).
Even if you’re not interested in games specifically, using a game engine for business apps is becoming more and more popular every year (especially really interactive/visual ones). Half of the Unity contract development work I do is for non-game applications, like visualizing data and locations, and building interactive displays for kiosks.
And being able to switch platforms and give the client a mobile version of their kiosk app always puts a smile on their face (and takes about 10 minutes).
Developing 2D Games for Practice
I mentioned that you should probably start small by going with a simple game. A simple game usually means something 2D. And you may be thinking “I hate 2D mobile games.”
You’re not alone.
But that’s not a reason to skip the simple projects. Actually, a 2D game is technically no different from a 3D one. You’re doing the same things, just rendering everything flat.
The transition from 2D to 3D development in engines like Unity is practically seamless. You can simply hit a button and your view switches.
You can build the game using 2D sprites, or you can build it entirely in 3D and just swap a camera setting when you’re done. That’s a technique I use all the time—building 3D models and then using the camera to make them look flat.
Including Art in Your Game
A decade ago, you would have been out of luck. Finding good art for a game was an expensive and time-consuming task. But with the explosion of indie development, sources for quality art at cheap prices have proliferated.
I use the Unity engine primarily for game development, and have found that it has tens of thousands of graphics and art available in the Unity Asset Store for low prices—and a ton of it is just free.
In my experience, just about anything you could want is available and ready to use in your game in one of these existing engines. There’s no need to learn modeling, find an artist, or even hire an animator. (Of course, a bigger team will include these roles or want to hire someone to create art specifically for their game, but starting out solo, these actions are more an excuse than an actual requirement.)
And importing that art is simple. Drop it into the Unity project view and you’re done. The art is ready to use. Drag it from the project view to your scene and it renders—remember, the hard work is already done for you.
The same goes for music, sound effects, particles, shaders, and everything else other than your code and the vision for your game. Just as with the art or graphics for your first game, you can rely on what your engine provides instead of trying to create something brand new. Remember, keep it simple.
Game Development Is a Good Skill to Know
Getting started in game development is easy. If you can code, you can develop games. It takes a few tools and some time, but it’s a useful skill, even for app developers.
Knowing how to develop games, even simple ones, can build your skill set. It can also provide a useful way to present business apps to your clients. You’ll be able to propose options with stunning interactive visuals, devices and platforms that wouldn’t normally be available, and a multitude of other impressive features.
So, if you’re ready to get started, or just want to dabble and see if it’s really as easy as I say, why don’t you try to build something today?
Pick a simple game to practice on, and don’t sweat the shiny stuff like art: Just get building.
Once you get that first build done, if you’re anything like me, you’ll be hooked … and perhaps make a career switch into the wonderful world of game development.