4 ms·
I haven’t looked closely at game engines. Is it possible to write the game at the level of abstraction you want, then write a translation layer into various gam
by smadge 8y ago
I haven’t looked closely at game engines. Is it possible to write the game at the level of abstraction you want, then write a translation layer into various game engines? Or do these game engines tend to creep into all of your code, preventing you from decoupling your game from the engine? If this were possible then you could prototype the game using a game engine to get a “MVP” and if you aren’t satisfied, swap out portions of the engine with custom code.
- tobr 8y ago> Is it possible to write the game at the level of abstraction you want, then write a translation layer into various game engines? At that point, aren’t you almost writing your own engine anyway? You’d need to design the abstractions, interface with the game engine, and consider how those two things impact performance. That’s a big chunk of what a game engine is supposed to do for you.
- lodi 8y agoAll of these engines (Unreal, Unity, etc.) are written as monolithic "frameworks" that want to own the top loop and have you override certain bits to customize behavior. Also, the nature of games requires that various components (graphics, physics, ai, networking, etc.) are tightly coupled together. So, no, you're in a world of pain if you want to use Unreal and not do things "the Unreal way". --- Honestly though, I see nothing here that couldn't be done in any modern engine out of the box though. They can all stream assets in and out of the level asynchronously (for "infinite extent" levels), build meshes/textures programmatically, support fully dynamic lights, etc. If you have some requirement for procedural generation that isn't supported out of the box (e.g. baking lightmaps at runtime), surely it'd be easier to just write that part yourself and inject it into the existing pipeline.
- phaedrus 8y agoGame engine code and data types creep into all your code. I once heard an indie game developer describe this as "smushing playdough against a mold" (where your game-specific not engine-specific code is the playdough and the mold is the engine API).