level 14
hzm654321
楼主
目标当然是3D游戏编程,不是2D游戏,而是3D游戏,不是游戏的美工或者游戏的音响或者游戏的策划,而是编写游戏引擎的工作(我知道我这是不必 要的说明,但有些人在学习过程中就学这个学那个的,他是什么都想学,我是希望不让这样的人迷失方向。),游戏的最终形态是把游戏和网络结合在一起的网络游 戏,3D网络游戏的编程工作分2个部分,一个是客户端代码,一个是服务器端代码,所谓客户端代码,就是直接和玩家接触的游戏,这里包含了渲染,控制,网 络,音响,物理引擎,AI(人工智能)等等,所谓服务器端就是在游戏运行公司里的服务器所运行的程序,包含了数据库,游戏管理,网络等等,一般游戏开发公 司把这2部分的工作分开来做(国外的公司应该是同一个小组来做,但中国好象是分开的,可能是因为很难找到一个能做所有编程的人才吧。),我们要做的就是客 户端代码的编写,其实客户端的代码很类似于一个单机板的3D游戏的编程,也就是说,我们的目标是编写一个3D游戏引擎,所谓游戏引擎,就是为了简化游戏的 开发和提高游戏开发的速度,而封装了很多基本的底层工作的一个平台,只要有个这样实现所有基本功能的平台,那么开发一个游戏只需做一个美工或者关卡设计就 可以了,3D游戏引擎又包括渲染引擎,用户控制,声音,物理引擎,AI和网络等等,而其中最重要的也是最难的是渲染引擎,所谓渲染就是把想要显示的东西显 示在显示器上的过程,说到这里,我们的目标也就是编写一个3D渲染引擎。
目标已经明确了,那该怎么学呢?有3条路可以选,一个是去游戏学院学习,一个是自学,一个是进游戏公司,游戏学院虽然它广告做的好,但实际上它的 毕业设计也就是个2D的游戏,也就是说游戏学院毕业了程度也就是能编写2D游戏的水平,而且学费也很贵(一般都是10个月或者1年制,学费是2万左右), 进游戏公司的前提是你有一定的编程经验(我不是说游戏编程经验,很多从事多年软件开发的编程人员改行做游戏开发的),游戏公司是宁可要毕业游戏学院的人, 也不愿要本科毕业的人,原因是本科毕业生连基本的游戏编程的思路都没有,当然,游戏学院毕业的人也需要公司培养才能容入到开发小组一起开发,
呵呵,显然最好的学习方法就是自学(其实我也不愿意自学,太孤独了),想要有真本事,始终还是得靠自己!!!
目标已经有了,路也已经知道了,那该怎么走呢???你知道吗?!在没有人给你指点的情况下,也不知道该往哪里走,也不知道该怎么做,仿佛你是站在 一个伸手都见不到五指的黑夜,感到迷茫,感到失望,但又股起勇气继续寻找,以下我给你的指点,都是我用这样的方式摸索出来的,有时候一个问题都需要1~2 个月才能得到解决。
我们所要开发的游戏是基于WINDOWS操作系统上的,因为目前全世界微机几乎都用WINDOWS,所以我们要开发游戏是在WINDOWS操作 系统上运行的游戏,接下来选择一个编程语言,目前有很多编程语言,但他们都有各自的优势,而最适合游戏编程的程序语言就是C++,原因只有一个,因为能直 接控制硬件,接着我们得选择一个开发环境,我们选择VISUAL STUDIO 。NET 2003(VS。NET不是语言,只是个IDE(集成开发环境),C++才是语言。),然后得选择一个API(Application Programming Interface 应用程序接口),目前有OPENGL和DIRECTX,因为DIRECTX是微软提供的API,所以我们选择DIRECTX。
基本上都选好了工具,我想说一下掌握这些工具的程度,C++语言没有必要精通,你要做的不就是游戏开发吗?!那就只需要知道游戏开发所需要的就 可以了,VS。NET 我喜欢用2003,不喜欢2005的原因是,它把更多的细节封装了,更容易编程了,但有时候简单并不是好事,尤其是在学习过程中,你很容易不明白是怎么运 行的,你只会学会怎么用它,离开了你所依赖的,你就什么都不会了,不选择C
#的原因也和这个类似,微软宣传C#
的时候是说提高开发速度,减轻开发难度,其 实它就想强JAVA的市场而已,我们没有必要跟着大公司的风浪走,他们做他们斗争,我们走我们的路,VS。NET当中,你只需要知道如何生成一个 WIN32的程序就可以,其他的MFC,STL,ATL只类的不需要知道,我不是说那些没有用,而是在游戏编程中不需要,因为那些会降低游戏运行的速度, 3D游戏的开发基本上都 依赖于DIRECTX SDK,我在上面说过类似不应该依赖封装细节的开发包,其实DIRECTX SDK也是一个封装细节的开发包,但目前我们个人的能力还不够或者是没有必要摆脱这个开发包,因为DIRECTX SDK是微软许多软件工程师们好几年的心血结晶,如果我们想控制显卡或者是想用显卡的某个硬件功能的话,我们必须接触其显卡的驱动程序,了解此显卡的驱动 才能编程,这是非常大的工作量,而且不同的显卡有不同驱动程序,也就是说你想让在所有的显卡上运行你的游戏,你就得了解所有显卡厂家的驱动程序,几乎不可 能做到,微软的DIRECTX SDK给程序人员提供了一个平台,他与所有显卡厂家达成了一种协议,厂商提供驱动程序,这些驱动程序遵守一些规则,微软的工程师们基于通用的驱动程序上把 一些控制硬件的烦琐的工作封装成函数,就是我们说的DIRECTX SDK,呵呵,我感觉我说的太夸张了,在我用DIRECTX SDK中感觉其实它的数据结构也很不错,而且我在书上看到的,其实DIRECTX SDK所使用的硬件功能都能用软件来实现,只是速度非常慢而已,如果有人想学更深的话,可以尝试完全不依赖硬件功能,全部用软件来实现的3D渲染。
2013年03月13日 14点03分
1
目标已经明确了,那该怎么学呢?有3条路可以选,一个是去游戏学院学习,一个是自学,一个是进游戏公司,游戏学院虽然它广告做的好,但实际上它的 毕业设计也就是个2D的游戏,也就是说游戏学院毕业了程度也就是能编写2D游戏的水平,而且学费也很贵(一般都是10个月或者1年制,学费是2万左右), 进游戏公司的前提是你有一定的编程经验(我不是说游戏编程经验,很多从事多年软件开发的编程人员改行做游戏开发的),游戏公司是宁可要毕业游戏学院的人, 也不愿要本科毕业的人,原因是本科毕业生连基本的游戏编程的思路都没有,当然,游戏学院毕业的人也需要公司培养才能容入到开发小组一起开发,
呵呵,显然最好的学习方法就是自学(其实我也不愿意自学,太孤独了),想要有真本事,始终还是得靠自己!!!
目标已经有了,路也已经知道了,那该怎么走呢???你知道吗?!在没有人给你指点的情况下,也不知道该往哪里走,也不知道该怎么做,仿佛你是站在 一个伸手都见不到五指的黑夜,感到迷茫,感到失望,但又股起勇气继续寻找,以下我给你的指点,都是我用这样的方式摸索出来的,有时候一个问题都需要1~2 个月才能得到解决。
我们所要开发的游戏是基于WINDOWS操作系统上的,因为目前全世界微机几乎都用WINDOWS,所以我们要开发游戏是在WINDOWS操作 系统上运行的游戏,接下来选择一个编程语言,目前有很多编程语言,但他们都有各自的优势,而最适合游戏编程的程序语言就是C++,原因只有一个,因为能直 接控制硬件,接着我们得选择一个开发环境,我们选择VISUAL STUDIO 。NET 2003(VS。NET不是语言,只是个IDE(集成开发环境),C++才是语言。),然后得选择一个API(Application Programming Interface 应用程序接口),目前有OPENGL和DIRECTX,因为DIRECTX是微软提供的API,所以我们选择DIRECTX。
基本上都选好了工具,我想说一下掌握这些工具的程度,C++语言没有必要精通,你要做的不就是游戏开发吗?!那就只需要知道游戏开发所需要的就 可以了,VS。NET 我喜欢用2003,不喜欢2005的原因是,它把更多的细节封装了,更容易编程了,但有时候简单并不是好事,尤其是在学习过程中,你很容易不明白是怎么运 行的,你只会学会怎么用它,离开了你所依赖的,你就什么都不会了,不选择C
#的原因也和这个类似,微软宣传C#
的时候是说提高开发速度,减轻开发难度,其 实它就想强JAVA的市场而已,我们没有必要跟着大公司的风浪走,他们做他们斗争,我们走我们的路,VS。NET当中,你只需要知道如何生成一个 WIN32的程序就可以,其他的MFC,STL,ATL只类的不需要知道,我不是说那些没有用,而是在游戏编程中不需要,因为那些会降低游戏运行的速度, 3D游戏的开发基本上都 依赖于DIRECTX SDK,我在上面说过类似不应该依赖封装细节的开发包,其实DIRECTX SDK也是一个封装细节的开发包,但目前我们个人的能力还不够或者是没有必要摆脱这个开发包,因为DIRECTX SDK是微软许多软件工程师们好几年的心血结晶,如果我们想控制显卡或者是想用显卡的某个硬件功能的话,我们必须接触其显卡的驱动程序,了解此显卡的驱动 才能编程,这是非常大的工作量,而且不同的显卡有不同驱动程序,也就是说你想让在所有的显卡上运行你的游戏,你就得了解所有显卡厂家的驱动程序,几乎不可 能做到,微软的DIRECTX SDK给程序人员提供了一个平台,他与所有显卡厂家达成了一种协议,厂商提供驱动程序,这些驱动程序遵守一些规则,微软的工程师们基于通用的驱动程序上把 一些控制硬件的烦琐的工作封装成函数,就是我们说的DIRECTX SDK,呵呵,我感觉我说的太夸张了,在我用DIRECTX SDK中感觉其实它的数据结构也很不错,而且我在书上看到的,其实DIRECTX SDK所使用的硬件功能都能用软件来实现,只是速度非常慢而已,如果有人想学更深的话,可以尝试完全不依赖硬件功能,全部用软件来实现的3D渲染。