C's game programming from entry to mastery