写一款游戏需要程序员掌握哪些技能