Windows 游戏编程简介
Windows 是当今主流的操作系统,也是网络游戏主要的开发平台。不论是网络游戏客户端开发还是服务器端开发,都有很多成功的网络游戏作品运行于 Windows 操作系统上。虽然对于服务器端开发来讲,还有
Unix/Linux 以及其他种类的操作系统可以选择,但是相关技术知识相当复杂。
Windows 操作系统本身和其上的软件技术发展是相当迅速的,从早期的 Windows3.1 直到目前的
WindowsXP 的各个版本,其功能愈加强大和完善。网络游戏客户端设计所关注的 DirectX 技术也在快速发展,当开发者对 DirectX 7.0 到 DirectX 9.0 版本,甚至即将推出的 DirectX 10.0 版本间的若干细微变化还应
接不暇时,意在整合以 Windows、Xbox、Windows CE 为代表的家用电脑、家用游戏机、移动设备这三种游戏平台的微软新一代“通用软件开发平台” XNA 也已经在如火如荼的宣传之中了,它的含义是
DirectX&Xbox,NextGeneration,Architecture。
技术的发展如此迅猛,作为游戏开发者来说,意味着需要投入大量的时间和精力去跟踪学习新的游戏开发技术,这样虽然能够保证游戏的高效开发及技术先进性,但是新技术的学习曲线也是不容忽视的。开发者应该熟知 Windows 平台的底层开发和高级开发包之间的关系和区别,如果对 Windows 编程基础还掌握得不是很充分很透彻,那么即使开发包、开发工具再先进,也不能保证开发者可以顺利进行游戏开发。Windows 基础方式的编程早在 Visual C++ 1.5 版本的时候就已经很明显了,那就是基于 Windows API 的 SDK 方式的编程,一种 C 风格的 API 编程。随后出现的微软 MFC 库、FCL 库可以理解为是对 Windows API 的重新封装,一种 C++ 风格的面向对象的编程。从技术学习的角度来看,如果希望掌握 Windows 编程的本质,值得深入研究的是 Windows 底层的 API ,也就是 SDK 方式的 Windows 编程,而且 DirectX 的绝大多数版本及相关技术资料都是采用这种方式来进行开发的。因此,应将重点放在 Windows 的 SDK 方式的开发、消息机制、相关概念及重要的 API 函数。
API 是 Windows SDK 方式开发的基础,Windows 平台上运行的各类软件都可以用 Windows API 来实现。具体的开发方式非常类似于采用 C 语言的标准函数库的面向过程的开发,为程序实现一个入口函数 main ,进而实现其他函数,在 main 函数中指定各类函数的调用关系及逻辑。Windows API 同样也是一个非常庞大的函数库,里面汇聚了 Windows 平台上的各种系统调用函数,可以实现 Windows 窗口绘制、网络数据包收发、键盘鼠标的输入获取等等众多游戏设计所关注的功能。既然 API 函数如此庞大,我们的重点又是 Windows SDK 方式的开发,那么对它的学习肯定也不是一蹉而就。开发者通常要配备 Windows API 大全、Windows 消息大全这样的参考手册。或者结合微软的 MSDN 来开发,原因很简单,几乎没有人能对如此大量的 Windows API 函数和这些函数的参数类型、参数个数、函数返回值、调用方式等熟记于心!
当然,在掌握了大量的 Windows API 函数之后,游戏开发者也可以考虑在开发环境上进行变通,比如不采用 Visual C++Net 2003 来开发,而采用诸如 Borland C++ 或者 Delphi 这样的开发环境来开发都是可行的,关键取决于开发者的技术熟练程度。