For many developers, the idea of developing a video game or a 3D configurator alone often seems like a monumental task. Game developers need to consider art, animation, physics, mathematics, rendering, shaders, and countless other things that probably look like they are not relevant to the daily job of creating websites, services, or business applications.
If you are a developer who wants to deal with games, you might think that there are big differences between the development of games and applications. But it’s important to realize that most of the work is similar in every type of development. As a game programmer, you mainly work in code every day and solve problems – it’s the same thing you do when you create business applications.
Learning how to develop games can help them in their career by making you a better gamecoder or simply by teaching you to be flexible and add new skills to your portfolio.
In this article, we will explain how game development differs from app development. We’ll also describe how to start developing your own games and give some advice on what to look out for.
Differences in game development.
So what are the differences between game development and app development?
The first difference is the development environment. With every app development, the environment is usually quite specialized. Of course, you can program just about any editor, but you probably have the editor of your choice as the one that works best for the specific project types you’re working on.
Game development also uses a special development environment. Most of the time, this development environment is a mixture of the game engine’s “editor” and a code tool like Visual Studio. If you use Unreal, use the Unreal Editor and Visual Studio with C++. For Unity, use the Unity editor and C# (in VS, Rider, VS code, or MonoDevelop).
Half of them may sound familiar. We’ve all used code editors. But why do we need an additional engine “Editor” for game development?
In the editor of the engine everything is bound together. Here exactly you use this art, plug in your code, create your levels, configure animations and do everything else that is not just writing code.
It also makes their development experience a lot easier. Many of the things you’d consider “hard” to do in game development are extremely simple with today’s engines.
Do you want a ball that falls to the ground to move like a real object? No problem, just add the right physics component and you’re done. Do you want it to bounce? Just add a physical material and adjust the bounciness factor. No code and no special mathematical skills are required – just the knowledge of which component to add.
The same idea applies to most of what you want to do outside your game logic (the game logic is just like your business app logic, all parts are specific to your use case). All “hard things” (e.g. physics, rendering, device input, audio) are already done. These are solved problems and you just need to know where the solution is.
We are thinking about creating a game, similar to creating a website. A long time ago you had to deal with the incoming network stream – now you just hang in the right place in your framework and focus on your specific business problem. Think game development, too. You have a goal, you have a huge framework and you only have to connect parts until everything works.
First steps.
Our usual recommendation for anyone interested in starting game development is similar to our recommendation for someone who specializes in another development: Start small.
Choose a simple mobile game that already exists. Then choose one that is even easier and recreate it with tutorials. There’s a lot to learn and immersing yourself in a big project is guaranteed to cause a lot of overwork and frustration. So choose the easiest game you can imagine to get started.
In practice, how often do people recommend starting with something like Flappy Bird?
With the right tutorials and a little understanding of programming, you can build these little games in one day. Throughout the process, you’ll begin to get used to the editor, discover new components, and realize how little code is needed (and you’ll learn a little C# along the way).
And when you’ve finished the games, you can create them on your smartphone and then share them with your friends and family. It’s simple.
Another skill you can practice by creating games is how to develop something that switches between platforms. This skill is important because the more platforms your app contains, the more valuable your work will be.
One of the reasons we love Unity so much as a game engine is that it’s easy to switch the target platform. You can create your game for Windows or Mac first, then simply select a new target device in the creation settings and push your game or application out without any changes or customizations.
We’ve used cross-platform tools like Xamarin before, and while they’re good, they don’t come close to the ease of use you get with Unity. Just select the new platform, press “Switch” and build. Most of the time it just works, without any changes. You can choose between all mobile platforms, WebGL, Linux, Mac, Windows, Xbox, Playstation and much more (about 30 platforms in total).
Even if you’re not specifically interested in games, the use of a game engine for business apps is becoming more popular year after year (especially for truly interactive/visual). Half of the development work I did under the Unity contract is for game applications, such as visualizing data and locations and creating interactive displays.
And the ability to switch platforms and provide the customer with a mobile version of their kiosk application always brings a smile to their face (takes about 10 minutes).
Development of 2D games for practical use.
We mentioned that you should probably start small by playing a simple game. A simple game usually means something 2D and you might think, “I hate 2D mobile games.”
You’re not alone.
But that’s no reason to skip the simple projects. Actually, a 2D game is technically no different from a 3D game. You do the same things by just flattening everything.
The transition from 2D to 3D development in engines like Unity is virtually seamless. You can simply press a button and change its view.
You can create the game with 2D Sprites or you can create it completely in 3D and just swap a camera setting when you’re done. This is a technique where we create 3D models all the time and then use the camera to make them look flat.
Integrating art into your game.
A decade ago you would have been unlucky. Finding good game art for a game is an expensive and time-consuming task. But with the explosion of indie development, sources of high-quality game art have increased at affordable prices.
We use the Unity engine primarily for game development and have found that it offers tens of thousands of graphics at low prices in the Unity Asset Store – and a ton of it is just free.
In my experience, pretty much everything you want is available and ready for use in your game in one of these existing engines. There is no need to learn modeling, find an artist or even hire an animator. (Of course, a larger team will take on these roles or you will hire someone to develop special game art, but if you start alone, these actions are more of an excuse than a requirement).
And importing these game arts is easy. Put it in the Unity project view and you’re done. You can use them now. Drag it from the Project View onto your scene and it renders – remember that the hard work is already done for you.
The same goes for music, sound effects, particles, shaders, and anything but their code and vision for their game. Just like the graphics for your first game, you can rely on what your engine has to offer, instead of trying to create something completely new. Remember, keep it simple.
Knowledge of game development is useful.
Getting started with game development is easy. If you know how to code, you can develop games. You need 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 improve their skills. It can also be a useful way to present their customers business applications. You can suggest options with stunning interactive graphics, devices and platforms that would not normally be available and a variety of other impressive features.
So when you’re ready to get started, you should start working as soon as possible.
Choose a simple game to practice and start with less frustration and overwork.
When you’ve finished your first game, you’ll be thrilled… and maybe it’s your first little leap into the world of game development.
Thank you for visiting.