在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指路,是可以事半功倍的。

平台与编程语言选择

首先,游戏开发的平台就有很多类型:

  • 个人主机平台:Windows、Linux、Mac OC;
  • 移动平台:iOS、Android、Windows Phone、BlackBerryOS、Symbian;
  • 专业主机平台:Xbox、PlayStation、Will等。

在学习上遇到不懂的问题的时候可以加C/C++学习 487790381群如果你想从事移动平台的游戏开发,Android主流JAVA语言,iOS主流Object-C语言,那么你就要去学习这个平台主流的语言,而在个人主机上主流的游戏开发语言现在包括以后很长时间也还是C++。 但是并不是所不同平台的游戏开发,就毫无共通之处,学了这个到了另一个平台就无用了。不是这样的,编程的世界里你走得越远你会发现很多东西的本质都是相似的,例如你如果扎实地理解了C++的基本语法(而不是死记硬背),日后再转Java语言也不是很难的事情,因为它们本质的面向对象特性还有各种编程语言特性都是相通的。 所以,如果你想走得远,在学习的时候不能简单流于表面,对于一样知识越深入到底层,你就越能看到其它知识与其的异曲同工之处,因此你将比别人更轻松。但是,当然一开始最好尽可能是贴合自己的专属领域和编程语言,这样能尽快地在这个领域持有一席之地。 无论你选择哪个平台,游戏开发这个浩大的工程都离不开游戏引擎,所以这里都有二条路线让你选择:

  • 只使用游戏引擎;
  • 使用游戏引擎并深入学习游戏引擎原理。

线路一:只使用游戏引擎

对于第一条路线,游戏引擎的使用并不困难,因此适合想快速上手游戏开发工作的人。我们工作大多数时候也不会自己开发游戏引擎,所以这样对于一般的日常工作也没什么大碍。对于只使用游戏引擎的人来说,入门阶段要做的就是看该引擎的教程(书籍、视频、网上博客、网上教程、官方帮助文档等),并且熟练该教程所使用的编程语言。
在学习上遇到不懂的问题的时候可以加C/C++学习 487790381群所以你要做的第一件事,就是去了解现在流行的游戏引擎。因为不同平台下的性能不同,支持的编程语言也不尽相同,所以针对不同平台下的流行的游戏引擎也是不同的(方括号里面是特别推荐的,基于开源性、易用性、性能与效果等方面的综合水平推荐):

  • windows或游戏主机:【Unreal】、寒霜、CE3
  • 苹果ios:【unity3D】、【cocos2d-ObjC】、【Unreal】、sparrow、sprite kit。
  • 安卓:【unity3d】、【cocos2d-x】、【Unreal】、AndEngine、libgdx。
  • 网页:【Egret】、【cocos2d-html5】、Fancy3D、unity3d。

在选择游戏引擎的时候,尽可能选用流行的游戏引擎,因为这个游戏引擎流行意味着官方的功能比较完善和易用,问答社区也比较多人解疑。各个游戏引擎也各有千秋,Unity3d胜在简单易用,对性能要求不高,但是效果不够华丽,因而一般用在移动平台而不会用在电脑或游戏主机。Unreal胜在开源免费,而且效果也很出色,但是对设备要求比较高,因而常常用来开发效果绚丽的大型游戏。cocos2d-x也是开源免费的,在2D领域深有造诣,但是缺点是不可视化开发。另外,如果你想了解游戏引擎原理,那么首要考虑的就是开源的游戏引擎。 不同游戏引擎使用的编程语言或者脚本语言可能是不一样的,所以当你想要学习某个游戏引擎的时候,也应该留意该游戏引擎所使用的语言。大部分情况是,Windows用的的是C++,同时结合lua或python脚本语言。而ios平台下使用Objective-C或swift,安卓平台下使用Java。但这不是必然的,例如Unity在各个平台下都可以用C#或者javascript脚本语言。 下面是商业上流行的游戏引擎详细比较:

1) Unreal4(虚幻4)

  • 适用平台:Microsoft 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、Microsoft Windows、Windows Store应用程序、Mac、Linux/Steam OS、网络播放器、WebGL、PlayStation3、 PlayStation4、PlayStation Vita版、Xbox One、Xbox 360、Wii U、Android TV、Samsung SMART TV、Oculus Rift、Gear VR、Microsoft Hololens、Playstation VR。
  • 编程语言:C#、javascript、Boo。
  • 优点:方便易用,中文资料丰富,跨平台,商店资源丰富,可视化开发。
  • 缺点:画面效果一般,不是免费开源,引擎效率比较低。

3) Cocos2d系列(包Cocos2d-x、Cocos2d-ObjC、Cocos2d-html5、Cocos2d-xna等)

  • 适用平台:Microsoft 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

  • 适用平台:Microsoft Windows、OS X、Linux、PlayStation 3、PlayStation 4、Wii U、Xbox 360、Xbox One、iOS、Android。
  • 编程语言:C++、Lua。
  • 优点:画面效果世界一流,可视化开发,跨平台。
  • 缺点:开发机器配置要求较高,不是免费开源。

5) Frostbite3(寒霜3)

  • 适用平台:Microsoft Windows、PlayStation 3、PlayStation 4、Xbox 360、Xbox One。
  • 编程语言:C++。
  • 优点:画面效果出色,可视化开发,跨平台。
  • 缺点:开发机器配置要求较高,不是免费开源。

6) Egret(白鹭)

  • 适用平台:HTML5、iOS、Android、Windows Phone。
  • 编程语言:TypeScript、JavaScript。
  • 优点:免费开源,配套工具多,全中文文档,可视化开发,跨平台。
  • 缺点:支持平台较少,大多数时候用于开发对性能和效率要求不高的小游戏。

但是使用游戏引擎毕竟是停留在表面看不到本质,当游戏开发的时候出现了某些问题或者特殊需求,你往往很难处理。而且游戏引擎技术日新月异,你所学的几乎都是别人留下来的方法,而不是其本质思想。如果将来别的游戏引擎兴起,你又要重新学习另外的游戏引擎怎么使用。在很多大公司里面,甚至都有自己公司内部专用的引擎(如网易公司的风魂引擎、金山公司的剑网3引擎、蜗牛公司的Flexi引擎等等)。所以单纯地走这条路线,可能不会让你走得很远并且可能会日渐乏味。

线路二:使用游戏引擎并深入了解游戏引擎原理

对于第二条路线,深入学习游戏引擎原理短时间不会让你的工作有什么卓越的成效,但是可以弥补只使用游戏引擎导致的问题,而且学习游戏引擎原理,更多时候不是一定就为了自己日后要造个游戏引擎,而是更深入理解自己的游戏引擎,更好地使用它。当然,千里之行始于足下,经常学习游戏引擎底层原理的人到了一定的积累的时候,自己造个游戏引擎也是可以的。 对于像学习游戏引擎原理的人来说,需要制定自己明确的长期目标: 1) 首先,一开始可能对游戏引擎没什么概念,建议先使用一两个游戏引擎(我推荐C++程序员学习虚幻4游戏引擎,现在是免费开源的,非常值得学习。那些不开源的游戏引擎尽量不要去学习,因为其对于学习原理来说没有多大贡献)。 2) 因为游戏开发就是一门实时渲染的艺术,所以离不开图形库的学习。现在主流的图形库是Windows平台专用的DirectX 11和通用平台的Opengl。这两个图形库,至少需要入门其中一个。 3) 然后,你就可以开始看计算机图形学的书籍了。如果你发现你的理论底子不足,这个时候就需要补一下线性代数、基本的微积分、还有3D数学的知识。 4) 游戏引擎中包含了各个部分,上面的渲染只是游戏引擎的一部分。还有其它诸如着色器编写、地形编写、物理引擎编写、模型和动画、人工智能体设计、网络编程等等,完成渲染部分的基本学习后,你可以选择自己感兴趣的部分进行专攻,毕竟我们实际工作大多数时候是团队开发,而不是单打独斗,每个人都应该精通自己所擅长的那部分。

你知道如何从零开始学c++游戏编程吗相关推荐

  1. 从零开始学Unity游戏开发

  2. Windows游戏编程之从零开始d

    Windows游戏编程之从零开始d I'm back~~恩,几个月不见,大家还好吗? 这段时间真的好多童鞋在博客里留言说或者发邮件说浅墨你回来继续更新博客吧. woxiangnifrr童鞋说每天都在来 ...

  3. python游戏编程培训

    准备好了吗?我们即将开始激动人心的游戏编程之旅. 或许你之前学习过一点编程,但若是你从没接触过游戏编程,那么你仍然会对游戏程序的运行感到不解.游戏程序不像计算一个公式或谜题,得到答案之后程序就结束了, ...

  4. python五子棋源代码_python游戏编程系列-五子棋

    继续介绍python游戏编程,仍然是基于pgzero.关于该软件包的基础使用技巧可参考本人专栏文章:老娄:python游戏编程之pgzero使用介绍​zhuanlan.zhihu.com 思考绘制棋盘 ...

  5. 通过游戏编程学Python(1)— 猜数字

    通过游戏编程学Python 通过游戏编程学Python(1)- 猜数字 文章目录 通过游戏编程学Python 前言 一.知识点 二.第一个游戏 -- 猜数字 1. 玩法简介 2. 游戏流程 三.程序代 ...

  6. 给自学者的建议:想学游戏编程开发,你需要做什么?

    声明:只是个人见解!!! PS 2013/03/11 17:02 Yellow Lee早上在百度游戏开发贴吧,看到里面好多人很迷惘,加入置 顶的群,聊了一下,发现迷惘的人更多,做点事吧,憋着一口气写了 ...

  7. python从0开始学编程课件_小白从零开始学编程(三)--python基本概念

    前言 从2020年3月份开始,计划写一系列文档--<小白从零开始学编程>,记录自己从0开始学习的一些东西. 第一个系列:python,计划从安装.环境搭建.基本语法.到利用Django和F ...

  8. 学习计算机游戏编程,在线游戏学编程,游戏编程汇总

    21世纪必备技能中,计算机成了现在流行的热门课程,今天小编给大家介绍了一些和游戏结合的编程学习平台,让大家对这门枯燥乏味的编程学习尽量变得有趣.下面介绍的游戏编程中有适合作为入门的编程游戏,还有些可能 ...

  9. 使用python开发网页游戏_四大游戏编程网站,边玩游戏,边学Python,拒绝枯燥快乐编程...

    原标题:四大游戏编程网站,边玩游戏,边学Python,拒绝枯燥快乐编程 前言 学习编程虽然对有些人来说是件乐事,但是对大多数人来说仍然是一件比较枯燥困难的事情.当然,面临这样困惑的人,并不是只有你一个 ...

  10. 从零开始学习python编程-新书推荐《Python3.7从零开始学》来了

    原标题:新书推荐<Python3.7从零开始学>来了 常言道, 体肥还须少吃饭,想美就要多读书. 读书有三好:有品,经撩,笑点高. 上次赶在八月给大家搞了一波Linux图书预售,没想到受到 ...

最新文章

  1. led伏安特性实验误差分析_检测实验室误差分析知识汇编
  2. 让代码看起来更舒服, 修改VS颜色样式
  3. java-信息安全(十)-数字签名算法DSA
  4. Win7下VS2008升级补丁
  5. MicroPython开发板:TPYBoard v102 播放音乐实例
  6. 计算机TXT试题,全国计算机二级试题.txt
  7. 列表(list)和集合(set)
  8. [NOIp2012]开车旅行
  9. Android仿华为天气绘制刻度盘
  10. windows操作系统_国产Linux操作系统体验:易用性不比Windows差,但输在这点上
  11. 本地html调试java接口_solr源码通过idea进行本地调试
  12. SQL语言:DQL,DML,DDL,DCL
  13. PHP中面向对象分析设计的经验总结
  14. Python自动化结算工资和统计报表
  15. Mixly02:米思齐(Mixly)软件安装及初体验
  16. 集成基站混频器本振噪声的规格与测量
  17. 靠写文章,我在CSDN赚了1.27万!
  18. java dojo,针对 Java 开发人员的 Dojo 概念
  19. 【WLAN】【测试】盘点如何查看系统连接过的WIFI密码(包括手机、电脑及不同系统)
  20. .NET6 使用 AutoFac (落地)

热门文章

  1. http状态码 200、404什么意思
  2. c语言中双引号是什么作用,C语言中单引号与双引号的区别
  3. win10输入法转win7模式
  4. SM2证书的鉴定方法——续上文国密算法
  5. 使用Fiddler抓取HTTPS的包(Edge、Google)
  6. Maven安装和使用(详细版)
  7. mave工程dependencyManagement与dependencies区别
  8. 世界强大的移动便携图形工作站介绍(轻便型便携工作站(PL系列)介绍)
  9. 计算机的用户账户,计算机用户名是什么意思(如何修改和设置用户名)
  10. 51 Nod 一维战舰