Many developers love games and want to build games. But game development is a vast ocean. There are so many aspects to developing a game that it's hard to understand where a game developer should even start.
One way to start building a game is by choosing how you will build it. Regardless of whether you're an indie developer or an established game development studio, there are 3 ways you can build a game.
Use an Existing Game Engine
The most common way to develop a game is by building it with an already existing game engine. Both the Unity and Unreal engines are versatile enough to allow game developers to build games quickly without losing too much flexibility. The time to market with a game engine can be incredibly short.
These game engines are themselves developed by companies that have spent an incredible amount of time coming up with tools to automate the graphic design, sound, physics, and other aspects of a game. On top of that, they've also automated the distribution of games to a wide variety of platforms, from Windows to iOS to X-Box.
Use a Game Development Framework
Some developers opt for game development frameworks over game engines, because they want to build their game from the ground up. Game development frameworks and libraries such as Love2D and MonoGame offer that extra layer of flexibility.
This approach takes a little bit more time, and the distribution to platforms might not be so straightforward, but you have more flexibility to build the game exactly as you want it.
Develop the Game Engine Yourself
This is the most time-consuming and expensive method, but also the one that provides you with the most flexibility. It's no surprise that this option is almost exclusively chosen by large, established game development studios such as Crytek, Bethesda, and Valve.
Developing a game engine yourself allows you to control everything. It's particularly interesting if you want to build a gaming franchise or want to use your engine for many years on end. Building a game engine for a single game usually isn't worth the effort.
There's no single approach that's better than the others. As you go from using a game engine to developing one yourself, you basically exchange time for flexibility. How much control do you want to have over your game?
For most game developers, using someone else's game engine will be the best option. But if you have a unique vision and are bothered by some of the limitations of game engines, you might want to go with game development frameworks or even your very own game engine.