Game Engine Architecture (Volume I, Foundations and Core Engine Systems)