Thank you very much for the thread and all the questions you can answer (and other devs too!)
I'm going to ask likely a very broad question so bear with me, because as someone who doesn't know a lick of game design I would love to be better educated on the subject here.
Quite simply, what is a Game Engine and what can it/can't it do?
I ask because I typically see a lot of threads blaming the game engine for issues and a lot of back and forth as if that's true or not. So I figure I'd try and ask someone who has worked with one to give some insight and can hopefully tell me what gets commonly blamed as the engines fault really isn't.
Ah, this is a very good question! Honestly, misunderstanding of what a Game Engine is met very often, because it happens in the backend and people see the game itself so there's this opinion that 'game mechanics = engine', which wouldn't really be true.
An engine is a framework that hosts various features. A good way to look at it would be to look at it as a house, I guess? For example each house has a kitchen which serves a specific purpose, but how that kitchen looks will vary from house to house (i.e. game to game). And then there are pipes that lead water to the kitchen, that make the kitchen function.
So, let's say we have nothing. What do we need for a game? Ok we need to visualize things. That means an engine needs to have a render code that will visualize the 2D and 3D objects that we have. Now that is sort of a standard feature set that every game using this engine can do - it can show things on screen. Memory management, animation systems, sound systems, disk management, all these become part of the engine.
For example Assassin's Creed 1 didn't have a day-night cycle, it had static timeline. Dynamic day/night cycle and dynamic lighting wasn't part of the Anvil engine at that point. When Assassin's Creed II was developed, it added dynamic lighting which gives the possibility to do a day/night cycle - that became part of the engine. However it wasn't optimized yet so a lot of concessions had to be done for overall visuals. But then for Brotherhood the dynamic lighting system was optimized, so it wasn't as resource intensive. And now that dynamic lighting is part of the Anvil feature set - every game working on it can use it.
This is why it's an 'engine'. How that dynamic lighting system is used now it's up to the game - it might not be used for a day/night cycle at all, and if it's used for day/night an engine doesn't force you to make each day/night cycle the same in each game that uses it.
Now there's also tools. Editor and its features. Like Unity Editor, Unreal Editor, or a propriteary engine editor. Technically an editor is NOT an engine, neither is the toolset related to it - it's an interface that allows you to interact with the engine and do things for it.
So, to put it simply.... there's really no limits to what a Game Engine can do, it's up to developers to decide what they have the time/budget to add for it so it could do.
This is why Unity/Unreal and other licensable engines are so popular - they already have a huge set of features readily available which means that people working on those engines don't have to do those feature from scratch, i.e. let's say dynamic lighting.
But this doesn't mean that having proprietary engines is bad - some can be finetuned for certain purposes. For example Trials had its own engine built specifically for physics bike gameplay. And it was very good at it because every feature was built with the purpose of having 60fps physics-based gameplay. But then for Trials of the Blood Dragon there was a decision to add platforming sessions, and in Trials engine we didn't actually have a character controller or an animation system, in previous games character was just a physics object attached to the bike at various points (and when the character moved to shift weight they were just pushed as a physics object), so for Trials of the Blood Dragon we had to implement whole new systems in the engine for platforming sections to exist (and due to pretty short development time it didn't work out THAT great, lol, but I think the team did a great job at implementing things in a short period of time). Trials engine also didn't have any AI systems, all logic was hand-scripted in editor, but for enemies we needed AI so that had to be implemented, with decision trees and everything.
But if we'd spend more time on it, we would be able to transform the Trials engine into an engine supporting good platforming as well - because again, it's just that it didn't have all the features needed for that... but it could, in time.
Hope this clears things up!
TL:DR - Engine is a framework of features that can be reused from game to game.
Oh, and funny note! Some people think that some Ubisoft games reused certain mechanics like drones from game to game because it was easy to reuse them... but it's not, because let's say Watch Dogs and Rainbow Six Siege use different engines, so you can't just copy/paste drone mechanics from one to another, it has to be implemented separately.