In one of the videos he says that the big engines are trying to be everything for everybody, and there's value in developing a custom engine for your game's specific needs.
I think the other thing to note is that you aren't really making an engine just making the game. You might have some reused bits culled from one game to the next but that's not really "an engine" so to speak.
I disagree on this one, for sure. That definition of “engine” is too narrow.
There’s a tendency these days for people to think of “game engine” in terms of the big, general-purpose engines like Unity, Unreal, and Godot. However, by analogy, a car still has an engine even if that engine was purpose-built for the specific car and is never reused in other cars.
It would be really weird to have to come up with a different name for the game engine for The Witness — what would you even call that, if not an “engine”? So, “engine” is going to refer to custom, never-reused engines in games until we get a better word for it.
I'd call something an engine if it were reasonably general and could be repurposed. In the same way I can take the engine out of one car and plumb it into another. I'd also say an engine has to provide a relatively complete set of functionality otherwise you're building a library or framework. SDL as a classic example of that.
I also think it's fine to think in terms of the game you're making between "game stuff" and "engine stuff" where the "engine stuff" is essentially things that could reasonably be repurposed.
In the example of The Witness I'd not call it anything as it doesn't exist separately to it as far as I'm aware. I'd still understand someone who referred to it as the game engine though.
The main point IMO is that making an engine implies more than just making the tech needed to power a game.
> The main point IMO is that making an engine implies more than just making the tech needed to power a game.
Then I think we have a very fundamental disagreement here. Your definition for “engine” is definitely not mine.
If we can’t talk about the engine for The Witness we are at a loss, because there isn’t a different word that we could reasonably use, besides “engine”.
I said I’d understand if you talked about the engine of The Witness. I think that is a fairly common colloquial expression. Engine is a fairly fuzzy concept at best. That you think there isn’t a different word like ‘tech’, ‘framework’, ‘libraries’ or the myriad of alternatives is by the by.
For example some of the framework for The Witness was ported to Jai for the sokoban game Thekla is working on.
Hard disagree as that is exactly what pretty much every engine outside those meant to be reused are all about - as an example pretty much all of id's engines licensees got the source code of the game the engine of which they were licensing. Even engines like Unreal Engine and LithTech which had a higher focus on 3rd party licensing were essentially code dumps of the games Epic/Monolith were working on.
Of course not all engines were and are like that, some engines were standalone products by themselves, but i think the engines that grew out of games were not just "proper" engines but actually the majority of them.
It really depends. I've worked in games for fifteen years so have had my fair share of experience with both licensed and proprietary engines.
Some companies made it a priority to build a reusable engine some didn't. Some went on to license it and some didn't. Some tried to make their engine reusable and didn't really succeed.
When you make "an engine" very specifically for a certain game you are making a choice to make it less reusable because that's a waste of time to ship your game. This was how things were at one stage. You'd take the codebase, grab out as much as possible and that'd be the start to the next engine. Reuse came later as mid-sized studios dominated and is seen en masse in really big studios. As indies restored the smaller end of studio size it makes more sense to either use a commercial engine or make your tech more specific.
I've also worked in games for almost ~20 years now (though mainly proprietary engines), but i still do not see where "it depends".
I think you are mixing two separate things: the reusability of an engine isn't really relevant nor what defines the engine. The engine is really the tech that supports the gameplay, nothing more or less. It doesn't have to be a framework or library or shared among projects or anything else. It can be any of those, but these are separate - and similarly a framework, library or any shared code doesn't mean that it is an engine.
In one of the videos he says that the big engines are trying to be everything for everybody, and there's value in developing a custom engine for your game's specific needs.
[1] https://inductive.no/jai/