Game programming is interesting but tough. It could be counted as a sophisticated software development in an undergraduate curriculum because it deals with a wide range of knowledge and skills. This article discusses why and how to teach game programming in order to keep its entertaining nature and to reduce its toughness. Key words Game programming, Java programming, modeling, teaching-scholarly activity.