想向游戏编程方向发展,需要掌握哪些知识?

或许我这么说会导致某些人反感,不过我个人认为某些大学的合作办学真的很不负责任,恰巧我就被不负责任的那么一个,但是学校不负责任,我却很想掌握一点本事。
我是个计科专业的大四学生,很喜欢游戏,非常希望能够向游戏开发方向发展,当然是PC平台上的或者电机游戏机平台上的。但是,这四年来我的知识学习的支离破碎(两方面原因,首先要检讨自己不够刻苦,其次,我要抱怨学校课程设置很不合理,许多其他学校计科专业有的课程我们都没有)
所以,我想向各位询问一下,做游戏开发这行,需要掌握什么知识?希望大家帮我指点迷津,当然能有正在从事这项工作的人为我解答我就更高兴了。
我先说说自己的情况,目前我自己学习(这个学习是指我自己学过,并且认为自己掌握,而非还给老师的科目,当然有些是我自学的,所以我也没人可还=A=):C语言,C++语言(但是STL没有买书看,请问有需要深入学习么?),JAVA(我们学校只教了C和JAVA),HTML(嘛~就当写游戏说明书用了),汇编(8086),数据库,线性代数,XML,VC++只学了DLL,(还学了点KrKr,嘛~小众向的东西),目前正在学DX编程。还有其他需要学的么?(我在这里特别强调问几个需不需要?比如:操作系统,图形学,STL,winapi,编译原理?)
啊啊~当然,那些windows游戏编程的书我也有在看,比如有本《windows游戏编程大师技巧》,感觉真的很棒!非常非常喜欢看~~!
==============================================================
噢噢~再补充一下,我还学了UML!(和软工[不过我觉得软工或许用不大上,因为我没用把自己定位在那么高的位置])
==============================================================
呵呵~想来混分的同学就不要费力气了,如果都是混分的回答,我肯定会选无满意答案的~不信你们就乱写吧~
==============================================================
=3=,“目前的情况游戏程序员大部分的时间都是在做各种工具,游戏本身事实上是数据驱动的”这句我不太理解~~游戏开发不都是这样的么?难道我表达的意思不够清楚?(我说一下,我脑子里:游戏开发=游戏引擎=编写能够加载各种素材并把他们组合在一起的程序)我的理解是否有误区?如果无误,那么我这道求助的意思就是说,掌握编写这种游戏引擎的能力需要学习什么知识?如果我的观念有误,也恳请指点一二

游戏编程开发包含的内容太广了,你说的操作系统,图形学,STL,WINAPI,编译原理之类的都需要学习,比较重要的还有线性代数,设计模式,统筹方法,网络,等等。这些只是属于基础知识,另外需要自己学习的就是了解一下游戏开发中一般常用的一些方法和工具流水线。

比如说你会需要了解3DSMAX Script(用来给美术/动画做工具),Office系列软件的COM接口(用来给策划做工具),编写makefile,等等之类的。

换句话说,目前的情况游戏程序员大部分的时间都是在做各种工具,游戏本身事实上是数据驱动的,比如说一个网游里面有10个副本,这10个副本都是通过各种工具配置出来的,而不是通过程序员写代码来实现的。

======================================
补充回答楼主的问题:
游戏的制作实际上是游戏工具+游戏引擎,只有引擎并不是一个游戏,而且有了工具,有了引擎,还是需要制作。

理论上讲,很难做到完美的数据驱动,不过根据不同的游戏类型可以设计出各种不同的开发工具,我举这么个例子:
网络游戏里面有副本系统,游戏里面要实现20个不同的副本,那么副本的制作就需要有一条制作流水线,比方说副本的美术场景资源,里面怪物的模型/动画,副本的关卡设置,奖励系统,等等之类的,这些东西都属于数据,而不是程序。那么基于以上的一些策划,我们就需要开发一个工具,叫副本编辑器,里面可以让策划/美术可视化的在场景里面放置机关,设置关卡,这个工具本身和引擎无关,因为引擎是更加通用的,而工具则和具体的游戏类型相关的。工具编写又牵扯到很多其他方面的编程技巧(和游戏本身无关的)比如说复制/粘贴NPC,场景,撤销/重做,自动存盘,版本控制等等之类的。

如果你单纯想知道游戏引擎相关的技术,则和工具没什么关系,主要集中在对DX API的了解,数据结构,算法,设计模式,操作系统,线性代数,物理,并且需要掌握和了解最新的硬件/软件信息。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-01-11
我不是来要分,也不是来回答问题的,只是遇到了LZ这样的知音呀!我学校也是,我也是计算机的,我学了N多的课程,但是都是只学了那么一点点,杂而不精,根本没学到深层次的东西,导致我感觉大学毕业了都没学到什么有用的东西。。。哎,真是杯具啊。希望学校都负责点吧,不要收了学费就算完事了。
第2个回答  2010-01-11
一个人很难编出游戏吧
第3个回答  2010-01-11
C语言
第4个回答  2010-01-11
本人游戏开发13年经验,我徒弟的团队招研发 QQ627717173
相似回答