做游戏开发需要具备那些知识或技能?

这是我之前在csdn上发的一个贴的名字,今天忽然想起来进行了整理。希望看到关心这方面的人有所启示。

下面是csdner的回复:

freezezdj:

游戏分客户端和服务器端。

hoya5121(老李):

与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。

首先你要精通一门高级语言,比如C++或者C#,其次,要有良好的英文阅读能力。对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为你遇到的大部分资源都将是英文的,不要总等着别人为你翻译。慢慢尝试着阅读英文资料,你会发现其实也并没有那么难:)

刚开始,你要做的就是选择一门图形API,一般就是DirectX或者OpenGL之间选一个。如果考虑到跨平台,那么OGL是首选. 如果只在ms的平台,则DX是首选。我对OGL并不是很了解,所以下面大部门资料都是和DX相关的。

当然,作为准备工作之一,你首先要到DirectX Develop Center下载最新版的DirectX SDK。

入门书籍非常重要,推荐<<Introduction to 3D Game Programming with DirectX 9.0>>(好像去年出了中文版)也就是传说中的龙书,这可以说是最好的DX入门教材,Frank Luna从浅入深,讨论了DX的方方面面。另外再配上<< Advanced 3D Game Programming With DirectX 9.0>>,书名虽然是advanced,但实际上没有多少advanced级别的内容。看完这两本书,你基本上已经对DirectX比较熟悉了。如果你希望学习XNA,也是一样的,毕竟XNA是以DX为基础。

不要一开始就看图形学的书,这个时候你对图形编程还没有一个基本的感性认识,因此八成看的云里雾里。不要以网上的教程和论坛提问作为主要学习途径,找一本好书,系统学习,效率才最高。不要马上看SDK里的例子,很多图形学的基本原理仅仅通过读代码是不会明白的。某些年代太过久远的书就不要看了,比如《windows游戏编程大师技巧》(总看到有人在找这本书)。有人说基本的思想总是不变的,可惜对于现代GPU来说,很多早期的技术和优化技巧早就过时了。图形编程是发展的非常快的技术,看看GPU的发展速度,1~2年就是一代产品的革新。

好了,入门之后,是你巩固和拓展视野的阶段。现在看计算机图形学就比较合适了。吐血推荐<<Real-Time-Rendering>>,这本书算得上是所有图形程序员的必读书籍和参考手册了。最近刚出了第三版(更新:已经有电子版了)。可惜国内只有第二版,稍微有点老,如果实在找不到第三版,还是值得一读。国内其他所有以图形学命名的书都有一个共同点:枯燥,过时。只需看看其中二维三维变换和曲线曲面表示的部分即可。如果这个时候发现你当年数学没有学好,那么有三本数学书是为游戏程序员量身定制的:<<3D Math Primer for Graphics and Game Development>>, <<Mathematics for 3D Game Programming and Computer Graphics>>和<<Essential Mathematics Guide 2nd Edition>>,第一本书有中文版,最后一本则是08年才出的新书。

其实入门之后,就没有固定的学习路线了,最好根据你感兴趣的方向来学习。

Shader方面:《Cg_tutorial》和《The Complete Effect and HLSL Guide》都是不错的入门材料,当然还有SDK文档。<<Shaders for Game Programmers and Artists>>有大量入门的例子。<<Advanced Lighting And Materials With Shaders>>详细介绍了各种光照模型和技术。<<GPU Gems>> 1~3册肯定是必读的,虽然有1,2有中文版,但某些翻译并不是很理想,强烈建议直接看英文版。ShaderX系列也是很经典的系列,每年出版一本,包含了最新的实时渲染技术,如今已经出了第6册了。不过网络上只能找到1~3册。1,2册大部分shader都是用asm写的,不过看懂原理,转换为HLSL也并不难。另外Nvidia SDK和ATI SDK也是学习shader的重要资源。最后还有刚出的<< Programming Vertex, Geometry, and Pixel Shaders>>

地形:<<Real Time 3D Terrain Engines Using C++ And DX9>>非常全面的讨论了关于地形渲染的各种技术,至少应该把第5~9章都浏览一遍。之后便可以 到virtual terrain查阅近期的地形渲染技术。

模型导入和动画:<<Advanced Animation with DirectX>>,仅此一本足以。

物理:<<Game Physics>>和<<Game Physics Engine Development>>都不错。<<Real-time Collision Detection>>是碰撞检测方面最好的书,可惜目前还没有电子版。

LOD:<<Level of Detail for 3D Graphics>>

Ray tracing:<< Physical-Based Rendering - From Theory to Implementation>>

引擎设计:说实话,这方面还没有特别好的书,大概越是核心的内容,越少有人愿意写吧。<<3D Game Engine Architecture Engineering Real-Time Applications with Wild Magic>>只有第三章值得一读。<<3D Game Engine Programming>>可以选部分感兴趣的章节看看,不过总的来说,讲的比较浅。更新:<<3D Game Engine Design, Second Edition>>出了影印版本,强烈推荐。最近发现<<Pro OGRE 3D Programming>>也很不错,200多页短小精干,但是可以让读者快速了解一个既有引擎的设计和构架。

AI:<<Programming Game AI by Example>>非常不错,好像还有中文版,备选<<Artificial Intelligence for Games>>。当然<<AI Programming Wisdom>>系列也是必读作品,不过目前网络上只有1~2册。

网络:%##@%...(本人是网络白痴 +_+........)

综合:<<Game Programming Gems>>系列,不过由于内容涉及的过于广泛,文章质量参差不齐,选择性阅读就可以了。历年GDC, Gamefest t,Siggraph等大型会议的paper也是应该关注的。

至于那些“All in one”或者n天较你写出个FPS游戏的书就不要读了,这类书的通病是什么都说了,结果什么也没说清楚。

除了书以外,再推荐一些不错的网络资源:

www.GameDev.net

除了大量教程以外,论坛里多年累计下来的内容保罗万象。好好利用论坛搜索,你会发不管你多厉害,那里总有一些比你强大的人在很久以前就遇到了和你同样的问题,并且给出了解决方案。

Nvidia和ATI的开发者中心

creators.xna.com

XNA官方网站

www.gamasutra.com

与GameDev类似

www.beyond3d.com

这里的除了讨论软件以外,还能看到对硬件构架的分析

www.ziggyware.com

最好的XNA教程网站

www.gameres.com

国内唯一比较专业的游戏编程网站,可惜和GameDev相比就显得太寒碜了-_-#

当然,不要忘了收集各大论坛里牛人们的blog:)

最后,仅仅靠看书是不够的,多写多练才是王道。

ps:以上书籍,除了特别注明的以外,都是可以通过网络或者书店入手的。

wanggang999:

我是网游服务器程序员,就会点C++,写写逻辑够用了,其他服务器程序员至少都懂得一下内容之一:
数据库、网络编程、脚本语言(目前常用的有Pathon、Lua)

客户端程序也不像大家常说的那么恐怖,因为真正开发底层图形的人少之又少,可以说,
就算你会一些图形学知识,想做都很难有机会。很多客户端程序在写UI相关的内容,
这种东西严重依赖于具体的系统,可能你会CEGUI,但面试的公司用ScaleForm。
但会一些图形学方面的东西,比如:3D渲染流水线是怎么回事、了解2D渲染的底层等等,
肯定可以在你入行的时候有一些加分。

还有些人是写工具的,至少要懂MFC,也有的用C#,了解一些文件格式,开发工具软件,给美术人员、策划人员、运营人员,以及其他程序员用。
你可能注意到我没说“数据结构和算法”,因为这是写程序的基础,应该是所有程序员都会的,
另外掌握一些常见的第三方库(至于C++标准库,算是C++的一部分,本来就该会的)也很有用
比如了解一点boost、一个网络中间件、数据库API,都有些用处。

xianglitian:

主要是计算机图形学和算法与数据结构

zhangci226:

只要有扎实的计算机图形学知识就可以了

buzaibeishang4617016:

多瞧瞧别人写的源代码,多看看计算机图形学,也就差不多了

cliffbaby:

有想象力、创新。还有个好队伍、好人品。

kim_jinye:

我是做游戏客户端的,别的不说,只要c++好了,其它就都好了

zenny_chen:

呵呵……国内做游戏的大部分都是用现存的游戏引擎,那里需要了解那么多东西。
关键还是一些常用的数据结构什么的。比如一个基本的寻路系统啊什么的。这个是要你程序员去做的。
碰撞检测、复杂的图形着色等都由引擎帮你处理了,你只要了解一下API即可,甚至对于一些好点的引擎,美工做完建模后马上就可以通过引擎让人物动起来。像一些比较好而且价格也相对便宜的游戏引擎就是Unity,我也玩过一些,呵呵。当然,像高端的Unreal引擎价格不菲,但是确实非常强大。
zhangweiit:

我们公司就是做游戏的
有分客户端和服务端两个方向
客户端,建议学好vc ,directx(其实用opengl的比较少)
图形学基础是要有的,不然,学3D引擎吃力
一般3D引擎都会用现成的,一般是买国外的,或是公司早就有的,很少轮到自己做的
服务端,网络通信,数据库都要学。

zenny_chen:

呵呵,还是偶推荐一些读物吧:
OpenGL Programming Guide
OpenGL Shading Language Programming Guide
如果楼主想开发iPhone等移动设备的游戏的话,看上面这两本。
如果做国内网游的话,呵呵,只要会数据结构就行了。没花露水的。
qwidget:

windows服务器端的路过,tcp/ip,sockets,iocp,database,并行,数据结构,少量算法。。。好像就行了。

sofa120:

如果是写程序的:
数据结构,网络编程,图像技术.......
当然还有基本语言

stilling2006:

得看你做什么游戏。2D or 3D,单击 or 网络。
而且得看你是怎么个状态。单打独斗 or 团队合作。
不同情况不同路线,不能单一而论。

原帖链接:http://topic.csdn.net/u/20100518/10/e276c183-5a81-444e-b538-badac493a521.html

ps:非常感谢各位的回复!

本文完

转载表明出处,谢谢

2010-08-19

转载于:https://www.cnblogs.com/chinazhangjie/archive/2010/08/19/1803134.html

做游戏开发需要具备那些知识或技能?相关推荐

  1. 游戏开发需要具备哪些技术

    游戏开发需要具备哪些技术 大家好我是艾西,今天跟大家闲聊一下.开发一款游戏在没有参照物或是底板的情况下开发一款游戏都需要具备哪些技术,在开发过程中我们又会涉及到哪些板块或是领域. 一款游戏的开发需要一 ...

  2. 一个玩游戏的失足青年,转行做游戏开发到教育的挣扎过程(3)

    有一个人小时候就有当飞行员的愿望,终于有一天他当上了飞行员.但是他第一次飞行,飞机就出事了. 好在他能够跳伞,但是降落伞坏了,打不开,突然他看见了在正下方的地上有一个很高的干草垛,但是再往下掉他又发现 ...

  3. 做Android开发 需要掌握哪些知识

    . 随着Android平台被广泛推广以来,越来越多的人进入到了Android开发行业.有人认为,Android开发市场已经饱和,不适合发展,但是蓝鸥小编认为,优秀的android开发工程师和普通的还是 ...

  4. 想做游戏开发?Unity3D值得你了解一下!

    很多人爱玩游戏,也有很多人想制作属于自己的游戏. 炫酷场景.角色设定.极佳的游戏体验.丰富的社交活动,好玩的游戏总有属于它本身的独特吸引力. 论移动端游戏引擎最瞩目的还是属于虚幻引擎4和Unity3D ...

  5. 游戏开发所需要的知识

    从放弃求职回家已经一个半月了,一直都在备考事业编.发现这玩意比游戏开发简单太多了,没有人刁难,没有人催促,几个月举办一次,一天只需要学习3-4个小时,其余时间都是自由安排,太舒服了.考上编后也很不错, ...

  6. 游戏开发计算机图形学杂项知识系列:OpenGL红宝书中第一个渲染程序Triangles常见问题归总

    游戏开发计算机图形学杂项知识系列:OpenGL红宝书中第一个渲染程序Triangles常见问题归总 声明:未经作者允许,严禁商用,转载请标明出处和来源,谢谢 转载自:https://www.cnblo ...

  7. 游戏开发需要具备哪些技术_短视频 SDK 开发 (一) 开发一款短视频 SDK 需要具备哪些知识?...

    前言 2020 年要属什么最火,肯定是短视频和直播带货了.我自己基本上每天晚上睡觉之前都会刷一会儿 douyin 短视频,不得不承认 douyin 的推荐算法是真 nb ,推荐的都是我的最爱 ? .那 ...

  8. java游戏服务器面试_我做游戏开发这八年

    点击上方"CSDN学院精品课",选择"置顶公众号" CSDN学院精品课  IT人的职业提升平台 作者 | kakashi8841 简述这篇文章并不是想教会大家如 ...

  9. 现在做游戏开发这个行业怎么样?

    整体来说,游戏开发这个行业现如今已经进入到一个内容为王的时代,再加上国家规范,行业未来会非常有发展潜力.但目前这个潜力还没有释放出来,整个行业都在积攒发展的势能.所以将来一定是会缺乏人力的,而且更需要 ...

最新文章

  1. python的标准库turtle_Python标准库: turtle--海龟绘图。
  2. 百度地图手绘线坐标获取
  3. SQL Server学习1(建数据库,建表,建约束)
  4. matplotlib柱状图、面积图、直方图、散点图、极坐标图、箱型图
  5. 基于深度学习的文本分类2
  6. hdu5033 Building 单调队列
  7. 计算机校准颜色,显示器颜色校正,教您怎么校准显示器颜色
  8. 软件系统测试流程规范
  9. 《opencv学习笔记》-- 感兴趣区域(ROI)、图像混合
  10. photoshop 快捷键_PhotoShop快捷键一览
  11. 聚类算法之K-Means,K-Means++,elkan K-Means和MiniBatch K-Means算法流程
  12. 【附源码】Python计算机毕业设计农田节水灌溉监测系统
  13. (pytorch进阶之路)DDPM扩散概率模型
  14. pythonshell压缩文件_文件夹压缩成zip格式
  15. 如何制定自己的人生计划
  16. PTA-7-24猜数字游戏,比照和分析。
  17. 进制转换(秦九韶算法)
  18. 仿百度网盘的一款轻量级微服务架构网盘系统
  19. 联想拯救者R720如何组建双通道内存
  20. ECALL,BCALL,ICALL

热门文章

  1. html5声频audio和视频video
  2. hwclock date
  3. 20170401 11G Deprecated Attributes for LOG_ARCHIVE_DEST_n
  4. 调用webservice接口,数据不回滚问题
  5. DevExpress v15.1:WPF控件升级(四)
  6. script中用php
  7. ECSHOP让产品浏览历史按照先后进行排序
  8. 小猿圈之Linux初学者掌握的基本命令
  9. L2-006. 树的遍历
  10. 算法学习之路|统计同成绩学生