为期八周的游戏编程课程今天完成了所有8个编程作业,一个Project,以及期末考试。证书要过一段时间发下来。
教授这门课的是Dr.T ,他曾经从事游戏开发5年并执教多年。
XNA是微软的跨平台游戏开发平台,支持PC和XBOX的同时开发。
在Linux平台上有Monogame作为其开源实现。并且,MonoGame 支持 “iOS, Android, Windows (both OpenGL and DirectX), Mac OS X, Linux, Windows 8 Store, Windows Phone 8, PlayStation Mobile, and the OUYA console”多种平台
微软已经决定不再对XNA提供支持了,但这门课仍然选用了XNA。T认为所有游戏开发平台其基本的思路都是不变的。对于这一点,我十分赞成。在另一门课Interactive Python中,方法也是一样的。比如一样的update、draw方法,canvas概念等等。
课程以游戏编程为主,选择C#据Dr.T说是因为其简单。由于之前对OOP已经很熟悉了,这门新的编程语言并没有带来多大困扰。
关于C#,唯一感到惊奇的是class里面除了field与method之外还有一种叫做property的用法:
class TimePeriod { private double seconds; public double Hours { get { return seconds / 3600; } set { seconds = value * 3600; } } }Property使用set和get访问器实现的,这样更灵活,也更安全。
另外,C#和C++一样,类中都需要析构函数,但在课程中没有看到这一点。C#也有List等等模板。