Engines
A game engine is a software framework primarily designed for the development of video games [..]
Using an existing engine or writing a new one is, unfortunately, a hard question depending on many factors.
This article is split into two sections, one for using an existing game engine, the other for creating a new game engine from scratch, to help you decide what to do.
Using an existing Game Engine
If you want to make a game and get something playable & distributable within a... reasonable time-frame... using an existing game engine is strongly recommended.
The most commonly used game engines are as follows:
- Unity Engine (C#)
- Unreal Engine (C++, Blueprints)
- Godot Engine (C, C++, C#, VisualScript, GDScript)
Creating a new Game Engine
Disclaimer:
If you wish to learn how game engines works, creating one is a good way of approaching the issue.
After all, everyone has to learn to walk before they can run!
Following are a few things you must keep in mind and be aware of before you begin:
- You must have the concrete want (motivation) and will (discipline) to do so.
- It is a massive amount of work, potentially spanning over years of your life.
- Having several years of programming experience is a must; nobody will hold your hand in this endeavour.
- All the tooling for asset-, level- and gameplay-creation? You'll have to make them.
- Running into driver bugs and various platform/OS differences will eat a lot of time and cause premature balding.
The above list might make you question "Why would anyone do this?!", to which most of us will say... because it's fun! :D
A more concrete reason is that, by writing both the high- and low-level code, you can gain a lot of performance (that'd otherwise be left on the table) and the freedom to make some truly awesome things.
But with that said, keep in mind that creating a game is still best done with an existing engine.
If you're still here, let's get started, shall we?