What is game engine and how it works