1.我是国际贸易专业的,以后想找一份游戏开发或者高科技相关的公司的工作。我需要准备什么吗?
在软件开发中,游戏开发的目标看似很明确,其实是一个很广的方向。如果入门时得不到一些引导,很容易误入歧途。相反,如果在走这条路之前,能得到前辈的一些指点,可以事半功倍。
平台和编程语言选择
首先,游戏开发平台有很多种类型:
个人主机平台:Windows、Linux、Mac OC;
移动平台:iOS、Android、Windows Phone、BlackBerryOS、Symbian;
专业主机平台:Xbox、PlayStation、Will等。
如果你想从事移动平台的游戏开发,Android的主流JAVA语言,iOS的主流Object-C语言,那么你就要学习这个平台的主流语言,而现在个人电脑上的主流游戏开发语言包括C++。
但并不是说不同平台的游戏开发没有共同点,在另一个平台学这个也没用。不是,你在编程的世界里走得越远,你会发现很多东西本质上都是相似的。比如,如果你对C++的基本语法有了扎实的理解(而不是死记硬背),那么以后转用Java语言并不难,因为它们本质的面向对象特性和各种编程语言特性都是一样的。
所以,要想走的远,学习的时候不能单纯的肤浅。同样的知识你越深入底层,就越能看到其他知识和它的异同,所以你会比别人更放松。不过,当然,最好在一开始就尽可能的契合自己的领域和编程语言,这样才能尽快在这个领域有一席之地。
无论你选择哪个平台,游戏开发的庞大工程都离不开游戏引擎,所以这里有两条路线供你选择:
只用游戏引擎;
使用游戏引擎,深入学习游戏引擎的原理。
第一行:只用游戏引擎。
对于第一条路线,游戏引擎的使用难度不大,适合希望快速上手游戏开发工作的人。我们大部分时间在工作中不开发自己的游戏引擎,所以对日常工作影响不大。对于只使用游戏引擎的人来说,初期需要做的就是看引擎的教程(书籍、视频、网络博客、在线教程、官方帮助文档等。)并熟悉教程中使用的编程语言。
所以你要做的第一件事就是了解流行的游戏引擎。由于不同平台的性能不同,支持的编程语言不同,所以不同平台下流行的游戏引擎也不同(尤其是方括号内的推荐,基于开源、易用性、性能、效果的综合水平):
Windows还是游戏主机:[虚幻],弗罗斯特,CE3
苹果IOS: [Unity3D],[cocos2d-ObjC],[虚幻],麻雀,雪碧套装。
Android:【unity 3d】,【cocos2d-x】,【虚幻】,AndEngine,libgdx。
网页:【白鹭】,【cocos2d-html5】,Fancy3D,unity3d。
在选择游戏引擎的时候,尽量选择热门的游戏引擎,因为这个游戏引擎的流行意味着官方的功能比较完善,比较好用,问答社区回答问题的人也比较多。每个游戏引擎也各有优势。Unity3d简单易用,对性能要求不高,但效果不够华丽,所以一般用在移动平台而不是电脑或游戏机上。虚幻优于开源和免费,效果极佳,但对设备要求高,所以常被用来开发大型游戏,效果精美。Cocos2d-x也是开源免费的,在2d领域有很大造诣,但缺点是没有进行可视化开发。另外,如果你想了解游戏引擎的原理,那么首先考虑的就是开源的游戏引擎。
不同的游戏引擎可能使用不同的编程语言或者脚本语言,所以当你想学习一个游戏引擎的时候,也要注意游戏引擎使用的语言。大多数情况下,Windows使用C++,结合lua或python脚本语言。另一方面,ios平台用Objective-C或者swift,Android平台用Java。但这并非不可避免。比如Unity可以在所有平台上使用C#或者javascript脚本语言。
以下是商业中流行的游戏引擎的详细对比:
1)不真实4(虚幻4)
适用平台:微软Windows、Mac OS X、iOS、Android、虚拟现实设备(包括但不限于SteamVR/HTC Vive、Morpheus、Oculus Rift和Gear VR)、Linux、SteamOS和HTML5平台。
编程语言:C++或者不用写代码。
优点:开源免费,画面效果极佳,有很多商业大作。同时跨平台,商店资源丰富,提供了不用写代码制作游戏的强大功能(可视化开发)。
缺点:开发机器配置要求高。
2) Unity3D
适用平台:iOS、Android、Windows phone 8、Tizen、微软Windows、Windows Store应用、Mac、Linux/Steam OS、网络播放器、WebGL、PlayStation3、PlayStation4、PlayStation Vita、Xbox One、Xbox 360、Wii U、Android TV、三星智能电视、Oculus Rift、Gear VR、微软Hololens、Playstation VR。
编程语言:C#,javascript,Boo。
优点:方便易用,中文素材丰富,跨平台,店铺资源丰富,可视化开发。
缺点:画面效果一般,不免费开源,引擎效率比较低。
3) Cocos2d系列(包括Cocos2d-x、Cocos2d-ObjC、Cocos2d-html5、Cocos2d-xna等。)
适用平台:微软Windows、OS X、Linux、iOS、Android、Tizen、Linux、Mac OS X、HTML5浏览器、Windows Phone 7 &;8、Xbox 360。
编程语言:Python,Objective-C,C++,Lua,JavaScript,Swift,JavaScript,C#。
优势:开源,免费,跨平台,丰富的中文资料,丰富成熟的2D技术。
缺点:没有视觉开发,3D技术不成熟。
4) CryEngine3
适用平台:微软Windows、OS X、Linux、PlayStation 3、PlayStation 4、Wii U、Xbox 360、Xbox One、iOS和Android。
编程语言:C++,Lua。
优点:世界级的画面效果,可视化开发,跨平台。
缺点:开发机器配置要求高,不自由开源。
5)霜冻3(霜冻3)
适用平台:微软Windows,PlayStation 3,PlayStation 4,Xbox 360,Xbox One。
编程语言:C++。
优点:画面效果优秀,可视化开发,跨平台。
缺点:开发机器配置要求高,不自由开源。
6)白鹭(白鹭)
适用平台:HTML5,iOS,Android,Windows Phone。
编程语言:类型脚本,JavaScript。
优点:免费开源,支持工具多,全中文文档,可视化开发,跨平台。
缺点:支撑平台少,大部分时间用于开发对性能和效率要求不高的小游戏。
但是,使用游戏引擎毕竟是表面的,看不到本质。当游戏开发中出现一些问题或特殊需求时,你往往很难处理。而且游戏引擎技术日新月异,你学的几乎都是别人留下的方法,而不是他们的本质思想。如果将来有其他游戏引擎出现,你就得重新学习如何使用另一个游戏引擎。在很多大公司甚至有自己的内部专用引擎(如网易公司的风魂引擎、金山公司的剑网3引擎、蜗牛公司的Flexi引擎等。).所以单纯走这条路可能不会让你走得很远,可能会越来越无聊。
第二行:使用游戏引擎,深刻理解游戏引擎的原理。
对于第二条路线,短时间的深入学习游戏引擎原理,不会在你的工作中做出什么突出的成绩,但是可以弥补只使用游戏引擎带来的问题。而且学习游戏引擎原理也不一定是为了以后打造一个游戏引擎,而是为了更好的了解自己的游戏引擎,并使用它。当然,千里之行始于足下,对于经常学习游戏引擎基本原理的人来说,积累到一定的量,自己搭建游戏引擎也是可以的。
对于研究游戏引擎原理的人来说,需要给自己设定明确的长期目标:
1)首先我可能一开始对游戏引擎没什么概念,所以我建议先用一两个游戏引擎(我推荐C++程序员学习虚幻4游戏引擎,现在都是免费开源的,非常值得学习。那些不开源的游戏引擎,尽量不要学,因为对学习原理贡献不大。
2)因为游戏开发是一门实时渲染的艺术,离不开图形库的学习。目前主流的图形库是Windows平台的DirectX 11和通用平台的Opengl。至少需要引入这两个图形库中的一个。
3)然后,就可以开始看计算机图形学方面的书了。如果发现自己的理论基础不足,这个时候就需要把线性代数、微积分基础、3D数学的知识补上。
4)游戏引擎包含各个部分,以上渲染只是游戏引擎的一部分。还有其他的,比如着色器编写、地形编写、物理引擎编写、模型与动画、人工智能设计、网络编程等。完成渲染部分的基础学习后,就可以选择自己感兴趣的部分去专攻了。毕竟我们的实际工作大部分是团队开发,不是单枪匹马,每个人都要精通自己擅长的东西。
在这里,为了文章的紧凑性,我把游戏引擎的基础理论知识和各个引擎组件的推荐书籍放在了文章的附录中。
下表是基础理论知识和游戏引擎组件方面的推荐书籍(不必全部阅读,请选择性阅读):
1)数学基础
以下几本基础数学书是为游戏开发量身定做的,比看某个数学方向效率更高:
图形和游戏开发的3d数学入门,中文版。
《3D游戏编程和计算机图形学数学》
《基础数学指南》
《计算机图形学的几何工具》
2)图形库
DirectX书籍:
《用DirectX 11进行3D游戏编程入门》,一本著名的龙书,是初学者的必看之作。
使用direct 3d11高级版进行实际渲染和计算
《用DirectX和HLSL实现实时三维渲染》
OpengGL图书:
OpenGL SuperBible,著名蓝皮书,主要基于实例,有中文版。但是不建议看中文版,翻译的不好。
著名的红宝书《OpenGL编程指南》有中文版。小红书更像是一本手册,是API的全集,例子较少,适合熟练人士查询使用。
Opengl 4.0着色语言cookbook,advanced,基本是API手册,有中文版。但是不建议看中文版,翻译的不好。
3)计算机图形学
“代码的本质”,在中文里,比较简单。
《计算机图形学基础》( Fundamentals of Computer Graphics)是国外很多大学采用的入门教材,介绍范围很广,从基础的相关数学到建模、渲染、动画、应用。
基于物理的渲染,主要通过离线渲染。
实时渲染,必读经典!必读!
计算机图形,由sarira。
计算机图形学依赖于最新的第三版。
计算机图形学原理与实践:C语言描述
4)着色器着色器
Cg _教程,简介
完整的效果和HLSL指南,介绍。
游戏程序员和艺术家着色器包含大量的介绍性例子。
带着色器的高级照明和材质,介绍了照明模型和技术。
GPU宝石进阶阅读。
Shader X系列,每年发布一次,包含最新的实时渲染技术。论文多,难度大。
编程顶点、几何、像素着色器,以DirectX 10为主,非常详细。
5)地形
“使用c++和DX9的实时三维地形引擎”非常全面地讨论了各种地形渲染技术。
6)模型导入和动画
Direct3D的角色动画包含了最新的游戏动画技术。
《电脑动画》
《实时摄像机》
《电脑面部动画》
《用Visual C++实现实时三维角色动画》
《高级动画和渲染技术》
《布料建模与动画》
万向研发7)网络
TCP/IP详细第2卷
《微软视窗网络编程》
《UNIX环境下的高级编程》
Windows内核编程
《Win32中的多线程应用》
网络游戏的核心技术与实战
8)物理学
《游戏物理学》
《游戏物理引擎开发》
实时碰撞检测,碰撞检测的最佳书籍。
《3D游戏引擎设计,第二版》第8章和第9章值得一看。
9)详细程度
《三维图形的细节层次》
10)光线追踪
《基于物理的渲染——从理论到实现》
《光线追踪的另一个介绍》
11)人工智能
编程游戏AI by Example有中文版。
《游戏的人工智能》
《人工智能编程智慧》
《人工智能游戏引擎编程》
12)合成
《游戏编程宝石》,文章范围比较广,选择性阅读。
《自然中的色彩与光》
《自然的数字设计》
《设计、艺术和建筑中的形式+代码》
此图非原创,来自:作者邢玲丹,授权发布,转载请注明出处。写得很详细。拿出来和大家分享一下!
2、手机游戏开发教程,通俗易懂,简单易学。制作手游?
1.首先,我们知道游戏需要用游戏引擎来开发。现在手机游戏的跨平台引擎常用的有cocos2d_x和unity3d。这里我就用unit3d,既方便我们开发3d游戏,也方便我们开发2d游戏。这是unity3d。
2.我们先来看看网络游戏。网络游戏需要服务器,并在服务器中运行。客户端是给玩家的。Mysql是一个存储账户等信息的数据库。这是mysql数据库。
3.先来看看吧。这是我写的一个服务器,有一个驱动按钮和服务器的当前状态。
4.我们点击Start,服务器已经成功启动。当前连接数为0,表示没有客户端连接到服务器。
5、开一个客户端,这是我的客户端。由于服务器已启动并且客户端已打开,因此它会自动连接到服务器。提示您已成功连接到服务器!
6.我们用一个小案例来做一个简单的小游戏。单击“创建单位”以创建一个立方体作为地面。
7.然后在地面上贴一张图,这样地面的效果就出来了。然后我们正在创建一个球体。
8.将球体放在地面上方的中间位置。
9.然后单击“创建”按钮创建两个。单击按钮1将球体移动到左上角,单击按钮2将球体移动到右上角。这样,我们这个简单的小案例就完成了。
发表评论