The game engine is everything that propels the development and operation of a game. It typically includes render to screen libraries such as graphics APIs, device input library, sound library, miscellaneous dlls, encoders and decoders, runtime clock. scene graph, compilers, JIT compilers, extractors, installers, effects libraries, physics library, and sometimes a whole workflow pipeline for software development is included but often used are interfaces to outside applications and external software for integrated workflow pipeline. Sometimes only the parts of the game engine needed to execute and play the game are included but sometimes part or all of the development tools are included for developers and modders. Game source code can be distinct from game engine source code, partly integrated, or fully integrated. Packaging only the game coding and game engine libraries needed for game execution and play is the most common distribution to end-users. It is possible to create a game code which interfaces interoperably with two different versions of a game engine. This is sometimes the case when the game code on a new release version of a game is fundamentally the same as the original game code but it is run with a new game engine. Some players have complained that they got tricked by the publisher advertisement when a game was advertised as being built on a new game engine but the actual game structure and function was basically the same. On the other hand, some "once and done" development has the game coding and much of the game engine so integrated that it is either impossible or impractical to separate them.