Are the terms use interchangably? To me, They both do behind the scenes work to manage a particular aspect of the game.
Is there a difference between a system and an engine?
I have heard of engines containing systems, sometimes a system contains multiple engines and sometimes there are engines composed of subengines and systems and so on. So it seems they are used interchangeably. Although I believe sometimes they are used to differentiate between different levels of scope. Meaning that for example it may be defined within bounds of a specific project that engine may contain multiple systems, but no other engines. I have no idea if there is a general rule or recommendation about it.
Edit: Come to think about it I believe engines tend to refer to real-time systems.
System is very vague, it could even refer to a game system (read: Console).
An engine is more specific:
(definition from Wikipedia):
A game engine is a system designed for the creation and development of video games. The leading game engines provide a software framework that developers use to create games for video game consoles and personal computers. The core functionality typically provided by a game engine includes a rendering engine (“renderer”) for 2D or 3D graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, and a scene graph. The process of game development is often economized, in large part, by reusing/adapting the same game engine to create different games,[1] or to make it easier to "port" games to multiple platforms.
So, in essence, an Engine is a system, but a system is not necessarily an engine. In fact, an engine can contain multiple sub-systems (known as systems).
System is very vague, it could even refer to a game system (read: Console).
An engine is more specific:
(definition from Wikipedia):
A game engine is a system designed for the creation and development of video games. The leading game engines provide a software framework that developers use to create games for video game consoles and personal computers. The core functionality typically provided by a game engine includes a rendering engine (“renderer”) for 2D or 3D graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, and a scene graph. The process of game development is often economized, in large part, by reusing/adapting the same game engine to create different games,[1] or to make it easier to "port" games to multiple platforms.
So, in essence, an Engine is a system, but a system is not necessarily an engine. In fact, an engine can contain multiple sub-systems (known as systems).
Thanks for the explaination! I understand it a lot better now.