图形学 - 这是一个重要的领域. 如果图形是你的主要感兴趣的方向,那么你应该知道的比这里说的多.但是,不论你想要在这个产业里做什么职位, 你应该知道一些基础. 你需要知道什么是渲染状态以及通常都有哪些渲染状态?(cull, z write, ztest之类的).什么是标准的光照方程?(I =ka*Ia + Ii*(kd*(L dot N) + ks*(R dot V)^n) ). 材质映射是如何工作的?材质的wrapping和clamping有什么区别? 如何高效的渲染程序中一组几何体?(按照渲染状态组织你的几何体,按照你的硬件最快的primitive分批,饭后发给图形卡).你需要知道 skinning 是如何工作的. 如果你对书感兴趣, 我推荐 3D Computer Graphics. 这个不是专为游戏写的,多以它包括了一些在游戏中不现实的技术.但是,我想一个总体的了解是有帮助的,而且,随着游戏硬件的发展, 那些现在看来不现实的技术会变的普通的.
工具开发 - C# 看来在游戏业界获得了不少地位.所以你也应该让你熟悉一下C#.C#在加快工具的开发上表现出不少优势.很多人说工具可以制造下一代的游戏, 我同意这一点. 拥有的工具越多,团队花在可以被轻易自动化的工作上的时间就越少. 可能你的团队有10个美工, 花程序员的一个人年来开发一个可以给美工每天省15分钟的工具并不值得,但是如果你有50个美工,那这就肯定值得了.C#可以快速的创建GUI,而且和其他一些能简化创建GUI的方法不同, 这些GUI很好理解和使用,因为他们是标准的windows组件,允许你方便的设定快捷键,就像其他Windows程序一样. Visual Studio 里的Form Designer 真的很好用,而且C#的metadata和event驱动的设计使得工具的开发轻而易举.你最好也对mfc有基本的了解,因为可能面试你的开发人员会有点落后与时代.如果你有兴趣学习很多关于这些技术是如何工作的(这会让你写出更好的C#代码),我强烈推荐Applied Microsoft .NET Framework Programming,我在空闲的时候读这本书,然后我就不能放下了.我一章一章不停的读,因为我是那么激动的像学习下一章的话题了.记住, 这本书不会教你各种framework里的类和这些类是干嘛的.它讲的是这个语言的核心机制,它是如何工作的. 这本书也不是专门为C#写的. 它告诉了你如何用VB.net做一些在C#里不能做的是,它还提供了用MSIL(MicrosoftIntermediate Language, 所有.net语言的编译器都会编译出这种字节码)写的例子,实现一些不被任何一种.net语言支持的功能.
操作系统 - 虽然这个看起来和这个和游戏开发相对而言不是太相关, 但是我很高兴我在大学学习了操作系统的课程,因为我经常会用到从这门课学到的知识. 关于操作系统的知识非常重要,因为它在幕后为程序处理着很多重要的工作.特别是由于下一代的游戏终端和双核PC上的多核特性,多此案成的知识是至关重要的.对虚拟内存的了解当然是很有用的.关于文件系统,内核态和用户态切换,分页的知识对PC游戏开发更为有用, 不过随着一代代的发展,终端也在变的越来越像PC.所以,知道这些东西没有坏处.
编译器 - 虽然知道如何写一个分析器可能并不重要, 但重要的是知道你的代码是如何编程汇编代码的.这样你就能明白如何写出更优化的代码.你显然必须熟悉把你写的程序变为可执行文件的4个步骤:预处理、编译、汇编和链接. 编译器如何处理常量的? 很好的理解宏和知道如何用它来简化一些常用的操作是很重要的. 知道你正在用的编译器的调用约定,因为参数超过一定数目的时候,会导致它们被放在栈上而不是在预留的寄存器里. 调用约定的知识在你用汇编写函数的时候也是有用的.
这些只是一个作为一个游戏程序员,你应该具备的各种知识和技能的入门介绍. 对每个领域,根据你的工作类型,总会有更多的你需要学习的东西. 知道一些实际使用的知识之外的东西总是没有坏处的