Proprietary engines are usually outgrowths from a specific engine to run a specific game that was adapted to do other things. This means they are often extremely optimized for doing the kind of games they’ve already shipped because the engineers made certain assumptions and decisions for the sake of those past games. This usually comes at the cost of generalization - the engineers have min/maxed the engine to make it really good at one thing.
Proprietary engines are also extremely powerful, but quite user-unfriendly. The tools and code assume that anyone touching them is a professional working in a specific team. There can be plenty of missing documentation, tribal knowledge, and often there’s no solutions to be found on google because the only people who could possibly know anything are limited the dev team.
The Call of Duty engine is a great example of these principles. That engine is really really good at making Call of Duty games because it has been evolving to make better and better Call of Duty games for almost two decades. They’ve built a lot of COD games with it and they’re continuing to build COD games with it. The COD engine is, however, really really crappy at making just about anything that isn’t Call of Duty. All of those built-in assumptions about how the game works and what the game should play like have been baked into the engine and workflow over the years. The codebase is enormous and there are systems built upon systems. The tools are arcane and it is extremely easy to break yourself if you don’t have all of the settings set precisely. It is an engine that is designed to enable a large team of experienced professional developers to create Call of Duty games.
Got a burning question you want answered?