I’m a gameplay engineer, so I feel qualified to answer this one. Everyone I’ve seen in this thread is focusing on graphics, and that is part of it. But only a small part of it.
When you’re playing various video games, they may look and feel entirely different, but under the hood, the code is doing more or less the same thing for:
– efficiently sending all your game’s sprites, 3D models, and textures to the graphics card, so you can see what’s going on (called “rendering”).
– loading sounds and playing them on command with options to modify those sounds a little bit here and there.
– reach out through the internet and find other people playing the same game, so you can play together.
– creating a simple interface so game designers with little to no programming experience can add and modify stuff in the game.
– connecting to controllers, mouse and keyboard, or other input devices.
– making sure the code and art and sound is compatible with a variety of platforms, such as Android/iOS/Windows/Mac/Linux/Xbox/Playstation/Switch/etc.
And so much more. The point I’m getting to is that to matter what game you’re making, odds are that it’s going to need most, if not all of the things on that list. And all of those things are really hard to do. A game engine’s job is to bundle up all that commonly used functionality that many games need, but leave you enough flexibility to do whatever unique things your game does. By using an existing engine (such as Unreal, Unity, Godot, or others) you can start off with all that common stuff done, and can focus your development resources towards making your game instead of reinventing the wheel for that list I gave above.
Latest Answers