Game Engine Architecture, Second Edition by Jason Gregory