Game Engine Basics
2020/08/15
- Type
- Learning Resource
- Format
- Study Guide
- Version
- General
- Subject Tags
- Code
- MIT
- Game Assets
- CC BY-NC-SA
- All else
- 2016-2026, GDQuest© - All rights reserved
- Created
- Updated
- 2020/08/15
- 2020/08/15
In this guide, you will get an introduction to game engines.
You will learn:

If you're a developer already and you know about game engines, you can skip ahead to this guide on choosing a game engine.
A game engine is a full-featured application or framework for creating games. Their purpose is to make game developers' lives easier by automating repetitive tasks that appear in most game projects, like drawing images on the screen or playing audio.
These days, we take for granted that an engine should manage:
And more. These expectations came with the growth of general game engines like Unreal or Unity. A general engine allows you to create many types of games.
On the other hand, specialized engines are created and optimized for one game or one type of game. RPG Maker, a program designed to develop 2D Japanese RPGs, is a well-known example. Popular indie games like Super Meat Boy or Northgard also run on dedicated engines.

Game engines come in many flavors. Some offer a complete editor while others only provide code that you build from.
Editors allow you to create game levels visually. You import assets like images, 3D models, or audio files and place them in the editor's viewport. The actual engine is the code that takes all these levels and runs your game.

Some game engines come with a complete editor: Unreal, Unity, Godot, Game Maker, Construct. Others like Panda3D or Phaser only provide code. This isn't to say that one type is better than the other. Every development team has different needs, and they should assess the tools they use on a per-project basis.
Using a game engine has advantages and disadvantages.
Some pros are that:

Here are some cons:
Of course, these depend a lot on your current skills. If you have no programming experience, creating an engine might not even be an option. You'll want to learn to code first and maybe gain some experience coding small programs and games to get your feet wet first.
A game engine is built out of many parts or modules, each with a specific role. Some of the more obvious ones are:
On top of the modules, general engines have systems that organize the interaction between these different parts. Most modern game engines run some of these modules in parallel to improve performance.
Parallel execution increases code complexity a lot. The rendering code and performance implications of transferring information from the processor (CPU) to the graphics card (GPU) also add complexity, especially for 3D. For this reason and many more, most game developers opt for available game engines on the market instead of creating theirs from scratch.

Most general engines allow you to code your game using a scripting programming language along with built-in components. You can import assets and resources from 3D modeling applications, audio creation tools, image editors, and much more. The editor then allows you to organize and use your assets in your code.
Most general engines offer a plug-in architecture, allowing you to customize the editor itself, leading to a personalized experience. Some even allow you to customize rendering by tapping into the video rendering pipeline with modern video cards.
They also help you export games for your target platforms, such as Windows, Linux, macOS, Android, iOS, and consoles. We can't underestimate the importance of having an export manager as many complexities come with cross-platform support.
This scratches the surface of what general engines can do for you, but that hopefully gives you a sense of the tools they provide.
Making games isn't an easy task, but answering this question is a bit more complicated. You have instances of highly popular simple games like Flappy Birds, but these are mostly exceptions. Even with these, you need to understand programming, visual design, and audio.

One of the first questions you want to answer is which first game engine you should pick. One of the more critical aspects is its user-friendliness. Documentation and community support matter more than high performance at first. Regardless of the tool you choose, you'll have to learn the basics of game development. These skills are transferable to other game engines.
With that in mind, we recommend looking into the Godot game engine among your picks.
Godot is a fully featured beginner-friendly general game engine, packed in a small executable, capable of making both 2D and 3D games. It's well worth exploring what it has to offer.
It has mature documentation, although it's a bit unorganized at the moment. The community is friendly and helpful, and Godot is a developer-friendly game engine.
To get you started, we wrote a complete beginner learning path. It only contains free resources.
Don't stop here. Step-by-step tutorials are fun but they only take you so far.
Try one of our proven study programs to become an independent Gamedev truly capable of realizing the games you’ve always wanted to make.
Get help from peers and pros on GDQuest's Discord server!
20,000 membersJoin ServerThere are multiple ways you can join our effort to create free and open source gamedev resources that are accessible to everyone!
Sponsor this library by learning gamedev with us onGDSchool
Learn MoreImprove and build on assets or suggest edits onGithub
Contributeshare this page and talk about GDQUest onRedditYoutubeTwitter…
Site in BETA!found a bug?