Game Programming Algorithms and Techniques: A Platform-Agnostic Approach (Game Design)