what do game engines actually do?

709 viewsEngineeringOther

These seem to be like the backbone of a game, but is it just the software to run it?

I assume you build your assets in other software and you import them into your engine, unless the engine does most of the heavy lifting these days?

If licensing good engines like unreal are relatively cheap these days, why is it so impressive to build your own? Some companies like Rockstar have used the RAGE engine reliably, whereas other games like halo infinite and cyberpunk crashed and burned. How could this happen when the developers should be intimately familiar with tech they built themselves?

I have been playing games my whole life but I have no idea how they work.

In: Engineering

8 Answers

Anonymous 0 Comments

It’s not software “to run it” (game engines are generally not emulators), but it’s software to compile it, and often includes tools “to make it”. Game engine takes care of bunch of systems, like the main ones:

* Rendering

This isn’t just fancy shaders and ray-casted shadows by which gamers know engines the most; at base level, image processing part of engine has to be able to import one or many image formats, 3D formats (if it’s 3D), build texture atlases, compress images, and so on. A bunch of stuff you wouldn’t want to write from zero if you’re about to make a game.

* Audio

Again, is it 2D/3D positional audio? Does it allow mixing? Can you add reverb effect to simulate tunnels, can you adjust pitch runtime to simulate car engine sound or lowpass to muffle sound like it’s coming behind a wall?, what formats does it import and play, so forth.

* Video

Resolutions, aspect ratios, and so forth.

* Control

Your gamepads and joysticks and touch and so forth. Lately, also VR.

* Network / multiplayer

This, alone, is a science so complex that even richest, biggest studios usually can’t figure out properly and have to cut corners at every step.

* Physics

What name says. Nobody wants to write a physics engine from scratch, and even importing existing ones to a your project and try to integrate those could be quite messy. A proper game engine has figured all this out already.

* Tools

Most modern engines come with complete toolkits, from procedural shader generation to map editor to vegetation/foliage system to audio mixer to behavior trees for AI to live scene recording for cutscenes to tilesets to dialog editors and so on.

* Ports

A modern engine can compile for multiple systems, from Windows to consoles to mobile devices, and really good one can automatize the parts that need to be adjusted for every port

* And much more.

So, a game engine is like a major toolkit. You do make assets somewhere else, usually, but engine is the glue that holds them all together.

But given how complex games are nowadays, those engines themselves have gotten so complex that even learning to use them is a big task, and often split between people in a studio, where nobody knows everything.

As for “building your own”, there’s couple of reasons. First, licensing and freedom – no major game developer wants to be at mercy of engine owners. Also, for their games, they often need features that engine doesn’t have. Not all engines allow change, not all engines fix bugs as fast as a game studio would want and it’s usually just messy. With their own engine, they’d have no such problems. And if they’re big studios, they have responsibility before players. If engine itself is buggy, they’ll have tens or hundreds of thousands of angry fans, and if they don’t own the engine, they can’t fix it right away.

Another problem is bloat.

Say, If you’re Ubisoft, and you’re only making your Assassin’s Creed/Far Cry/Ghost Recon annually, custom-made engine like Anvil does exactly what you want, doesn’t do more, and working in the full limits of the engine also helps to make sure you don’t mess anything up or introduce a weird new bug, that could come with an engine that’s meant for something else.

Unreal Engine, for example, is basically a 1998 first-person-shooter level editor that grew out of its original purpose, and while it can do basically everything *nowadays*, you’ll meet remnants of original shooter game on every step, which you usually don’t need, and if you’re doing something completely different – like a flying simulator for example, you’d still have to do it sort of via first-person-shooter way of doing things. That’s bloat.

Meanwhile, adding AC’s building-climbing-parkour-physics to some other, universal engine would be quite pointless and just make this engine even messier to use and harder to learn. Plus, kids would start churning out shitty Assassin’s Creed clones on daily basis, which could hurt Ubisoft and the IP.

You are viewing 1 out of 8 answers, click here to view all answers.