精华内容
下载资源
问答
  • 我做游戏开发这八年

    万次阅读 多人点赞 2019-08-25 19:11:08
    我做游戏开发这八年简述与编程擦肩而过从图像设计到痴迷编程入门编程沉迷编程Java的图形编程就职游戏开发2011,第一次面试&实习生第一个游戏2012年,第二个重量级IP游戏2013年,转战手游与创业2014-2015,第一次...

    简述

    这篇文章并不是想教会大家如何开发游戏,更不能教大家如何成为技术总监。而是分享我一路做开发的一些经历或心得体验。

    与编程擦肩而过

    2004年,初三升高中时,因为我考上市里最好的高中,因此父母兑现承诺给我买了一台电脑。那时候电脑配置还是挺好的(我记得是P4的CPU,1G内存,80G硬盘,优派的液晶显示器,还买了打印机、扫描仪)。由于我热爱游戏,因此有了电脑之后就开始陷入于各类游戏中无法自拔。基本每天晚上通宵玩游戏,玩到凌晨5、6点睡1-2个小时,然后去上学。基本高一玩了各种游戏,然后成绩自然也是一落千丈。

    到了高二的时候,因为我表姐夫是做美术设计的,因此我开始接触了Photoshop、Coredraw这两个软件。我一边瞎画着各种东西,一边想如果能让这些也动起来多好。因此开始接触了Flash。开始在网上看看各种Flash的教程,能做一些动画,能用按钮控件控制一些流程,也了解到AS2这一门语言,然后在网上找了各种酷炫的AS2代码加到自己的Flash里面,实现比如鼠标跟随的特效等等效果。这时候其实我还不会独立地写代码。

    由于高中各种的不务正业。从中考数学全市前几名,到最后高考没考上重点大学,这其实也是我预料中的。因为本来我就不是一个相信运气的人。那时候我只想快点脱离高中,可以更自由做自己喜欢做的事情。因此也没有选择复读。

    从图像设计到痴迷编程

    入门编程

    进入大学之后,我参与了好几个社团,成为各个社团网络部的成员。然后接下来的事情就是社团搞活动经常需要一些海报什么的。因此我高中自学的Photoshop和Coredraw就派上用场了。大一基本就是做了一年各种图像设计的工作。而从高中到大一带来的各种突如其来的自由,也使得我继续沉浸在各种游戏中。到了大一的暑假时,校团委突然找网络部帮忙做网站,而师兄们准备毕业的、准备考研的,都没啥时间。因此这重任落到了我一个人头上,我也不知道那么多成员为啥选中了我,也没想那么多。因此,我暑假放假前1个月,外加暑假2个月,整个3个月时间开始疯狂学习Html、CSS、Javascript、PHP、MySQL,然后3个月时间从学习到开发完成了校团委的任务,制作了一个CMS网站。这三个月时间让我觉得编程原来这么有趣。

    沉迷编程

    接下来大二的时候我就陷入了疯狂的学习和开发之中,最疯狂的时候一天在图书馆借一本PHP的书,当天借当天看完,晚上再自己把那本书最后的例子实现了,然后第二天再去换书,就这样我很快把图书馆所有PHP的书都看完了。书中的例子也都能自己写出来。然后开始接了很多外包,也快速赚到了第一个笔记本的钱。

    Java的图形编程

    由于大二做了很多的网站,已经觉得有点厌倦。进入大三,刚好我们有一门Java的课程,我看到Java可以开发图形界面(Swing/Awt),因此开始转向学习Java。我大概花了2-3周把学校发的Java书看完了,并且把里面的示例也都自己敲了一遍。基本没有障碍的完成了Java的学习。但是书本里面关于图形界面的太少了,只介绍了最基本的一些控件以及做一些简单的界面。因此我开始自己在网上找各种资料。这时候室友告诉我“Java做图形不好看的,还不如C++不如C#,等等”。我就偏偏不信了,我依旧进行自己的学习和研究,而他也依旧站在他认为的鄙视链顶端鄙视我。就这样,他学习他的SSH,而我学习着不入流的Swing、Java3D等。

    其实我那时候的心理:为啥你觉得他不行他就不行?我得自己实践过才知道。实践出真知,我觉得这是做技术一个很重要的特质。很多时候,很多东西大家只是凭经验人云亦云地传播,并没有亲自实践过。而我那时候还有一个心理,哪怕最后我花了很多时间之后做出来的东西确实不好看,那我也不亏,我在这个过程中肯定是能学到东西的。很多时候很多人会比较看重眼前做的事情收益如何,回收周期多长。但是我觉得,很多值得学习的知识都是回收周期很长,而且眼前收益很低的。 对于我而言,我更多的是基于兴趣去学习。我觉得这就足够了。

    最后的结果就是,我用Java开发出来的东西,他们觉得太好看,根本难以想象是Java快发的。这里有一些大学用Java快发的图形程序。

    1. swing超绚丽系列一—— 俄罗斯方块
    2. 纯Java开发的游戏引擎V0.5–DEMO2 – 物理引擎
    3. 杂七杂八的东西

    就职游戏开发

    2011,第一次面试&实习生

    2011年初,不知不觉到了大四第二学期。本来我还不想这时候去找工作,因为此时我觉得还有很多事情想做,比如那时候我还在用Java自己做一个3D游戏。但是大四寒假的时候,有个同学发了一个网页游戏公司的招聘链接给我,说这个公司还不错,我看了一下招聘要求,感觉自己符合要求,于是就顺手投了个简历。其实投简历之前,那时候北京GLU有位前辈想让我毕业后去试试。还有另一家互联网公司也是让我毕业后去工作。主要在于我大学期间经常在各个技术QQ群里帮大家解决问题,最开始他们以为我应该工作了几年,后来知道我还在上学,因此就想我毕业后去他们公司工作。

    后来肯定是我投的简历的公司让我去面试了,那天从下午2点面试到下午6点。从HR、主程序、制作人到CTO都面了。最后CTO面试的时候网络的BIO、NIO、多线程的安全问题如何解决也都问了。最后CTO说“你简历里写的都是Java做的图形界面,我们这Java都是做服务器,你接受做服务器吗“,我怕服务器又是做网站,于是问他”服务器也是做游戏吗“,他说“肯定是做游戏。我们做的是网游”。因此我就说“可以呀,只要是做游戏就好。”于是CTO接着说“你进我们公司肯定是没问题的,估计过几天会给你发Offer,你也不用去面试别的公司了”。

    因为我个人也懒得比较,既然CTO也那么说了,我就没去面试别的公司,在同学那玩了一周,一周后就入职了。

    记得那时候CTO还问过我一个问题“你说你这么喜欢写代码, 你想写到几岁”,我说“30岁吧”。他问我为啥只写到30岁。我说那时候可能我是技术总监了。就不用写代码了。后来我30岁的时候,成为了技术总监。但是我还是喜欢写代码。其实兴趣是可以一辈子的。我也不知道为啥面试那时候那么回答了。

    2011,第一个游戏

    刚进入工作比较紧张,总怕哪里做不好。第一周项目组说让我去改一下服务器列表。我那时候压根没有远程登陆过服务器改东西,主程就给了我IP、用户名、密码,以及网页的位置。于是我赶紧自己搜索了各种资料,在接到任务的半小时内,我第一次用SecureCRT登陆服务器,第一次用VI在服务器上修改文件。

    接着几天就是熟悉项目,我在服务器上自己找到了聊天的协议入口,然后加入了一些GM,给自己的账号加了赵云、吕布这些牛逼的武将。

    接着几天后,主程找我,说来的毕业生里面感觉你编程能力不错,你想去做新项目吗。我自然想体验从0开发游戏的过程。于是就满心雀跃地说“想!”。

    新项目开发的时候我充满了激情,基本上第一周我就完成了背包系统的开发。那时候公司其他游戏的数据存储都是同步的。主程就说,这个新项目估计用户交互会比较频繁和实时,同步存储怕会卡顿。于是我那一周开发背包的时候,顺便被服务器的数据存储写了个异步的存储。(后面该功能还被公司其他那项目组引用),立项一个月后主程就去了腾讯。而我们项目本来是公司的尝试性项目(公司其他项目都是SLG,而这个项目是RPG),因此也一直得不到重视,一直得不到重视。我们这项目加上我就2个服务器,开发了半年上线了。我对游戏业务非常熟,编程基础也还行,因此开发速度很亏,一个人开发了70%的系统。那时候很多同学问我,你做那么多,公司给你加工资了没有。我说没有,他们说,那没有你为啥做那么多。

    其实有的时候不是你在这个位置才能做这个事情。而是你有能力、主动地去做这个位置的事情,做多了你自然也就是这个位置的人。因为我觉得没有哪个公司会愿意付出成本让你冒险。

    项目上线的时候,公司也让我成为了这个项目的服务器主程。那时候我距离实习才半年,一直怕自己做不好,因此一直很努力提示各种能力。由于我开发的功能BUG极少,而且出BUG的时候修改极快,因此项目组的测试负责人说我说最受测试欢迎的程序,直到后来她去了银汉后遇到她,她还说她在银汉和测试部说,曾经有个程序员这样这样…

    写程序出BUG是常见的事情,想要减少BUG数量,要思维谨慎,业务熟悉,而想要修BUG快速,需要对所写的东西都烂熟于心,我之前经常对别人说要做到代码在心中。如果你写的代码你内心都很清晰,那么出问题的时候,很快就能定位到问题。这就像,你的代码存在于内存中,查找肯定快。如果每次都是要去慢慢看代码文件,那就像每次都检索磁盘,肯定会慢一点。我之前好多个性能问题都是在走路和洗澡想到的解决方案,假如心中没有代码,又如何能做到呢?

    2012年,第二个重量级IP游戏

    12年初的时候,公司准备做一个ARPG项目,是星爷授权合作的游戏《西游降魔篇》,那时候公司从我们第一个项目的表现觉得我们项目组还是具备比较好的研发能力的,因此这个项目就给了我们项目组。

    一开始公司让我做这个项目的主程序,我觉得我才毕业1年,我玩游戏很多,自知ARPG项目比我上一个RPG肯定要高。因此最开始希望公司能招一个经验丰富的主程,我可以过去学习。公司也同意了,主程入职了一直在看天堂2的源码,也拉着我看。我觉得天堂2的源码存在很多问题。比如各种在“父类中判断自己是否是某个子类”等。后来2个月过去了,连登陆都还不能登陆。因此制作人就问我,说你觉得他行不行。我也把我对天堂源码的判断说了一下。后来制作人说,要不还是你来当主程吧。那时候我觉得也行吧。反正本来想跟一个有经验的人学东西,结果反而他老来问我各种东西,而且开发进度也很慢。于是我就答应了。然后我又重新开始搭框架。第一周花了时间把网络、副本采用的线程模型搭好了。第二周CTO带着我做了场景。第二周我们已经可以多客户端同步移动、怪物有了简单的AI和普攻了。而且我为了减少和客户端连调的不便,还自己用Swing写了一个图形界面,用于显示服务器当前地图中各个角色的位置。(所以说,假如我大学的时候很功利地觉得学习Java的图形开发性价比不高,那么这时候我肯定没法自己快速完成这个工具

    这个项目我们花了9个月上线。作为公司第一个ARPG项目,其实也很快了。

    项目上线后玩的人挺多,那时候单物理服导量的时候有6000人同时在线。不过这个游戏收费没有调起来。

    2013年,转战手游与创业

    西游降魔篇调了整整8个月都没把付费调起来,甚至越来越差。从最开始每月单服的700W变为几乎没有。此时已经是2013年中,我建议公司可以使用Unity3D(其实12年底已经说过一次,制作人说次年可以申请看看)开发手游,但是公司的战略明显还是在页游,因为公司靠页游已经做到借壳上市,不愿意也觉得没必要去踩手游的坑。公司唯一一个和手游有关的部门其实是把页游项目通过AIR发布为手游。这样出来的手游性能堪忧,而且体验也没有做针对性优化。

    于是在2013年8月,我就辞职自己去创业做手游了。

    自己创业肯定面临的是资金问题,短缺的资金不可能请得了很多牛人,因此我自己又开始做起了Unity3D客户端。把战斗等最核心的东西都自己扛下来。

    我们2策划、2程序、1美术从立项到做完Demo花了大概3个月,然后开始拿着手机去演示DEMO,去找投资。

    那时候的DEMO是用Unity3D做了一个2D游戏。因为我们唯一的美术人员比较擅长画画。Demo可以在这里看到:第一个Unity3D 的Demo

    我们大概找了4个投资人谈,最后确定了投资。

    2014-2015,第一次创业

    就像上面说的,创业资金的短缺,而且那时候Unity3D人员的稀缺,导致我们想找一个牛逼的人员根本不可能,因此我只能自己扛下战斗、Shader等核心的工作。那时候白天写服务器,教新人写代码,一行行代码地边敲边讲,晚上写客户端,最疯狂的几个月基本睡公司,凌晨5、6点入睡,早上9点半起来。

    那时候我用Unity3D,也只是为了为公司省成本,也没想什么太多的东西。结果也正是这段经历,使得我后来成为了另一家百人公司的技术总监。所以我还是挺相信一句话:但行好事,莫问前程!

    最后创业肯定还是失败了,其实还是因为团队成员的不成熟。因此在2015年中的时候,经过了几轮调整和测试后,由于测试结果表现不理想,我们就结束了创业。我并没有对这次创业感到后悔,毕竟那是一次宝贵的经历。而且整个创业过程也都是很充实,很开心。

    2015,西山居和多益网络

    创业结束后我觉得想找个公司积累一下。那时候只面试了珠海西山居和多益网络,西山居剑网3项目组也希望我过去,但我觉得我就是因为懒,最后选择了继续留在广州的多益网络。我学习可以很努力,但是对于公司的选择却经常是很懒。

    2016-2018,第二次创业

    在多益做的时间不长,基本过了试用期,以前第一家公司的制作人就找我创业。并不是因为我个人喜欢创业,其实我只想做一个成功的游戏,能被大家认可的游戏。那时候出去创业,更多是因为这位制作人以前对我不错,也是因为他我才能刚毕业就当上主程,因此这次创业,其实更多的还是报恩。

    这次创业的结果无疑还是失败的。

    2018-2020,360游戏艺术(岂凡网络)技术总监

    2018年4月,由于以前带的一位程序的推荐,我便去了360游戏艺术担任技术总监。这时候刚好30岁,正好和刚毕业实习的时候自己说30岁可能会当上技术总监。实现了自己当初不假思索的一句话。但是回想起来,我这一路并没有为当技术总监去做任何刻意的学习与准备。只是我一路以来学习的都是自己喜欢的,做的都是自己喜欢的,而且该公司正好需要我目前拥有的能力而已。 这也是我最后想和大家分享的,有的人会问怎么才能当主程,怎么才能当总监。我觉得不管当什么职位,重要的就是为公司解决问题,你能解决什么样的问题,你自然就能胜任什么岗位。而有很多舍本逐末的做法,其实看似近路,最后都是无尽的弯路。我觉得做什么都不重要,重要的应该想想,自己能为游戏这个行业做什么,平常应该怎么提升自我去成为行业真正渴求的人。

    2020-至今,昆仑万维技术总监

    承蒙公司信赖,有幸加入并在《仙剑奇侠传移动版》上线前参与了性能优化,解决了一些性能问题。目前主要也在公司做一些架构设计、难题攻克、渲染效果、渲染性能方面的工作。

    今天正好有空,谨以此文,献给所有想为自己所在行业做点贡献的小伙伴!希望一起努力,共勉!

    展开全文
  • 游戏开发入门系列(目录)

    万次阅读 多人点赞 2018-02-05 22:21:34
    偶然在Gad上看到这个系列的视频,觉得内容挺全面的,就定了一个月的计划把这些课程都看完了,收获不小,对游戏开发有了更为全面的认识。 如果你想进入游戏行业,觉得学习资料太多很难入门,那不妨先看看这个系列的...

    更新:清华大学美术学院与腾讯游戏学院合作推出了一个新的游戏开发入门课程,相比原来的内容要更丰富一些,我个人也更推荐这门课程,链接如下。

    https://next.xuetangx.com/course/THU1208991002407/3973165?fromArray=learn_title
    在这里插入图片描述

    进入游戏行业两年多了,处于一边实践一边学习的状态,一开始身边没有牛人引导感觉确实浪费了一些时间。偶然在Gad上看到这个系列的视频,觉得内容挺全面的,就定了一个月的计划把这些课程都看完了,收获不小,对游戏开发有了更为全面的认识。

    如果你想进入游戏行业,觉得学习资料太多很难入门,那不妨先看看这个系列的视频。我对每个课程都做了笔记,如果课程中遇到了什么问题,随时可以向我提问。(当然,我还是建议你先去查资料)

    看完这个系列的视频,你应该对游戏开发有一个大致的了解,接下来建议再先看一遍游戏引擎架构这本书,当你看完这本书时,你可能觉得浑身任督二脉被打开了。别急,你离九阴真经这样的武功绝学还差的远。参考一下Milo大神给出的游戏开发必备的学习书单 然后按照你想深入的方向开始潜心修炼,相信你一定可以在游戏领域混的风生水起!

    还有一点非常重要,就是计算机基础知识!如果是在校大学生,C++(或C#),算法,数据结构,计算机网络,操作系统等一个不能丢,学好以后受益无穷~


    这是带有我记录学习笔记的视频链接(欢迎提出意见和建议,博主会不断进行完善):

    链接:游戏开发入门(一)游戏开发概述(3节课 时常:约1小时03分钟)
    链接:游戏开发入门(二)游戏中的设计模式(3节课 时常:约2小时40分钟)
    链接:游戏开发入门(三)图形渲染、一堂课学会shader(6节课 时常:约3小时40分钟)
    链接:游戏开发入门(四)逻辑与脚本开发(7节课 时常:约2小时40分钟 第4节无内容)
    链接:游戏开发入门(五)游戏动画系统(6节课 时常:约4小时 建议戴耳机观看)
    链接:游戏开发入门(六)游戏物理引擎(4节课 时常:约1小时20分钟 第5节无内容)
    链接:游戏开发入门(七)特效系统(6节课 时常:约2小时20分钟)
    链接:游戏开发入门(八)游戏中的场景管理(5节课 时常:约2小时07分钟)
    链接:游戏开发入门(九)游戏同步技术(3节课 时常:约1小时07分钟)
    链接:游戏开发入门(十)游戏中的网络模块(6节课 时常:约2小时20分钟)
    链接:游戏开发入门(十一)游戏引擎架构(8节课 时常:约2小时40分钟)
    链接:游戏开发入门(十二)游戏开发全面总结


    最后附上一份视频原文链接:
    视频链接:游戏开发入门(一)游戏开发概述(3节课 时常:约1小时03分钟)
    视频链接:游戏开发入门(二)游戏中的设计模式(3节课 时常:约2小时40分钟)
    视频链接:游戏开发入门(三)图形渲染(3节课 时常:约2小时20分钟)
    视频链接:一堂课学会shader——渲染拓展课程(3节课 时常:约1小时20分钟)
    视频链接:游戏开发入门(四)逻辑与脚本开发(7节课 时常:约2小时40分钟 第4节无内容)
    视频链接:游戏开发入门(五)游戏动画系统(6节课 时常:约4小时 建议戴耳机观看)
    视频链接:游戏开发入门(六)游戏物理引擎(4节课 时常:约1小时20分钟 第5节无内容)
    视频链接:游戏开发入门(七)特效系统(6节课 时常:约2小时20分钟)
    视频链接:游戏开发入门(八)游戏中的场景管理(5节课 时常:约2小时07分钟)
    视频链接:游戏开发入门(九)游戏同步技术(3节课 时常:约1小时07分钟)
    视频链接:游戏开发入门(十)游戏中的网络模块(6节课 时常:约2小时20分钟)
    视频链接:游戏开发入门(十一)游戏引擎架构(8节课 时常:约2小时40分钟)

    原文链接(转载请标明):http://blog.csdn.net/u012999985/article/details/79118198

    展开全文
  • 如何开发一款游戏:游戏开发流程及所需工具

    万次阅读 多人点赞 2018-01-03 00:00:00
    本文来自作者goto先生在GitChat上分享 「如何开发一款游戏:游戏开发流程及所需工具」,「阅读原文」查看交流实录。「文末高能」编辑 | 哈比游戏作为娱乐生活的一个方面,参与其中的人越来越多,而大部分参与其中的...

    本文来自作者 goto先生  GitChat 上分享 「如何开发一款游戏:游戏开发流程及所需工具」

    编辑 | 哈比

    游戏作为娱乐生活的一个方面,参与其中的人越来越多,而大部分参与其中的人都是以玩家的身份。

    他们热爱一款游戏,或是被游戏的故事情节、炫丽的场景、动听的音乐所艳羡,亦或是被游戏中角色扮演、炫酷的技能、有趣的任务所吸引,然而他们中的大多数可能并不了解如此一款好玩的游戏是如何打造出来的。

    对于想来这个行业尝试的新人们,先对游戏开发制作有个整体的了解也是非常必要的。

    接下来我将从几个方面来分别进行阐述。

    基础知识

    游戏,说白了就是一个程序,这个程序或在 PC 上或在移动设备上运行,玩家通过与这个程序交互来达到娱乐性的目的。我们先了解一下游戏中用到的各种引擎以及游戏相关术语。

    游戏引擎

    游戏引擎是游戏研发的主程序接口,它为开发者提供了各种开发游戏的的工具,即可编辑游戏系统和实时图像系统的核心组件,其目的就在于让开发者可以快速的做出游戏而不必从零开始。

    游戏引擎包含渲染引擎、物理引擎、碰撞检测系统、网络引擎、音效引擎、脚本引擎、动画及场景管理等。

    • 渲染引擎:是对游戏中的对象和场景起到渲染的效果,游戏中的角色都是通过渲染引擎将它的模型、动画、光影、特效等所有效果实时计算出来并展示到屏幕;

    • 物理引擎:让对象运动遵循特定的规律,比如当角色跳起的时候,系统内定的重力值将决定它弹跳的高度及下落的速率;

    • 碰撞检测系统:可以探测各物体的边缘,当两个 3D 物体在一起的时候,系统可以防止它们相互穿过;

    • 网络引擎:是负责玩家与设备间的通信,处理来自键盘、鼠标及其它外设信号。若游戏联网,它也用来管理客户端与服务器间的通信;

    • Lua 引擎:是 Lua 的服务器引擎,lua 是一种轻量级的嵌入式脚本语言,在网游开发中应用广泛。

    总的来说,一个游戏是引擎和资源组成的,资源包括图象、声音、动画等,游戏引擎就像一个发动机,控制着游戏的运行,它按游戏设计规则依次调用游戏资源。

    游戏名词

    • CD-key:游戏的序列号或防盗密码;

    • BugFree:测试管理平台,是一款基于 Web 的开源错误追踪工具;

    • Ping:从客户端发送数据到服务器到接收到服务器反馈数据的时间,以 ms 计,若 Ping 值高会感觉延迟;

    • Proxy Server:代理服务器,代理网络用户去取得网络信息;

    • PU:付费用户;

    • RU:注册用户;

    • AU:活跃用户;

    • DAU:平均每日活跃用户;

    • CCU:同时在线人数;

    • PCU:最高同时在线人数;

    • ACU:平均同时在线人数;

    • ARPPU:付费玩家平均收入;

    • 封测:限定用户数量的游戏测试,用来对技术和游戏产品进行初步的验证,用户规模较小;

    • 内测:面向一定数量用户进行的内部游戏测试,多用于检测游戏压力和功能有无漏洞;

    • 公测:对所有用户公开的开放性的网络游戏测试。

    游戏的种类

    游戏的分类方法很多,可以按终端、内容、摄像类型、玩家格斗对象、玩家人数等来分,其中按内容来分最直观,它可以根据游戏的元素迅速锚定游戏范围。

    • 按终端分:主机游戏 (电视机游戏)、客户端游戏、网页游戏、手机游戏;

    • 按摄影类型分:2D 游戏、2.5 游戏、3D 游戏;

    • 按格斗对象分:PVE:PlayerVsEnvironment、PVP:PlayerVsPlayer;

    • 按玩家人数分:单机游戏(Singe-Player Game)、多人游戏(Muti-Player Game)、大型多人在线(Massive Multiplayer Online Game)。

       

    我们可以看一下 AppStore 中游戏的分类,非常鲜明,如下图所示。

    游戏的开发流程

    游戏开发从狭义上讲就是程序部门进行相关游戏程序的编写,从广义上讲,是整个游戏制作过程,这其中包括多个部门的人员配备。下图是一个一般性的游戏开发团队。

    整个团队包含四个部门,即策划、美术、程序、制作人,各个部门负责不同的工作,协调完成整个游戏的开发。

    策划是团队的灵魂,也分执行策划、数据策划、表现策划、资源策划等,他们主要对游戏剧情、背景进行分析设计,对游戏中的各种规则进行描述及公式确定,对各种资料表格进行维护,对游戏中的特效、动作等进行收集并提出需求,进行 UI 设计及模型相关配置等。

    程序是团队的骨肉,也可细分为主程序、客户端引擎、服务器引擎、3D 程序、AI 程序、脚本程序、数据库程序等,他们主要负责确定程序的数据结构,确定策划方案的完成方法,将策划提出的各种需求用程序来实现,并为游戏开发过程提供良好的编辑工具。

    美术是团队的皮肤,可细分为人物原画、人物建模、材质贴图、人物动作、场景动画等,他们主要负责整个游戏的视觉风格,以及人物模型动作等的设计等。

    制作人主要进行游戏的外部统筹,市场调研、游戏开发进度、游戏版权、游戏宣传、游戏发布及音乐音效素材的管理都是制作人工作的范畴。

    下图是某国外游戏研发团队的组织架构图,可以参考了解一下。

    游戏开发的各个时期

    对于游戏制作人来说,每个游戏从产生要消亡要经历各个阶段,下面是普遍适用的典型范例,但并不是每个游戏都要经历所有的时期。

    • 概念时期:就是整个游戏概念的确定,要做什么样的游戏,主题线索是什么;

    • 原型开发时期:这个时期要制作游戏的原型,用来体验游戏的设计概念,从而纠正和改善不足的地方;

    • 推广时期:此时是游戏开发方向出版方推广产品,向投资方展示游戏的设计概念、主要卖点、产品如何适应市场的需求、产品开发的可行性及具体的实现方案;

    • 准备时期:这个时期主要处理游戏项目所涉及的商务及法律方面的事务,比如游戏专利、剧本版权、品牌商标等,从而组织开发团队制作大致的方案,确定游戏开发所需要的工具及其它细节问题;

    • 制作时期: 这个时期是游戏制作的主体时期,完成 3D 模型的制作,场景制作,过场动画、画面渲染及音效录制等,游戏引擎和资源在此时期将被完全整合到一起。

    • 质量保证时期:这个时期是游戏的 QA 或测试时期,主要用来保证游戏的各项功能是否完好,从而发现和修复各种 Bug 和错误;

    • 母盘生成时期:这个时期是将游戏存盘交由平台厂商测试检测的时期,每个平台厂商的测试标准不尽相同,这个时期中也需要不断地测试改进游戏,修复 Bug,准备市场投放。

    • 运营维护时期:这个时期是游戏发布后持续运营,在运营过程中发现问题,修复并更新升级的过程,这是一个长期的过程。

    项目流程

    一部游戏完整的开发过程,归纳起来可分为五步,如下图所示。

    市场调研可以分为三个小部分,

    1)调研前进行 “头脑风暴”,让尽量多的人想出尽量多的创意点子并做好记录,从而在市场调研过程中一一确认,不符合的排除;

    2)撰写策划草案,从而让项目小组中的每一个成员对开发的项目有一个大体的认识,并且对目标明确;

    3)对每一个草案都进行市场调研和分析,决定是否要开发这个游戏。市场调研主要从两个方面入手,即目标客户(玩家)和开发成本。

    需求分析主要是撰写需求分析书,这主要包括三个方面:

    1)策划需求

    • 策划的分工:包括剧本、数值、界面、执行等方面;

    • 进度控制:要时刻注意时间和开发进度的控制,需要写一个专门的项目进度汇总表。

    2)美术需求

    • 场景:包括游戏地图、小场景等方面;

    • 人物:包括玩家角色、重要 NPC(玩家队友、提供任务的 NPC、主线剧情 NPC 等)、次要 NPC(路人、村民等)、怪物、BOSS 等;    

    • 动画:动画方面估计每个公司的需求都不尽相同。如果公司能力有限,动画的制作可以考虑外包的方式;

    • 道具:主要需要考虑是否采取纸娃娃系统;

    • 全身像:人物的全身像方面;

    • 静画 &CG:游戏中可能出现的静画和 CG 的需求,没有则不需要写;

    • 人物头像:人物的头像制作需求,其中包括人物的表情方面,包括喜、怒、哀、乐和悲等多种表情;

    • 界面:界面的需求,包括主界面、各项子界面、屏幕界面、开头界面、END 界面、保存和载入界面等方面;

    • 动态物件:包括游戏中可能出现的火把、光影等方面;

    • 卷轴:又称为滚动条。根据游戏的情况来定具体的需求;

    • 招式图:根据游戏开发的具体情况决定是否有此需求;

    • 编辑器图素:各种编辑器的图素需求,例如关卡编辑器、地图编辑器等方面;

    • 粒子特效:3D 粒子特效的需求;

    • 宣传画:包括游戏的宣传画、海报等方面的制作需求;

    • 游戏包装:游戏客户端的封面包装的制作;

    • 说明书插图:游戏说明书内附插图的制作需求;

    • 盘片图鉴:游戏客户端盘片上的图鉴的制作需求;

    • 官方网站:游戏官方网站的制作需求。

    3)程序需求

    • 地图编辑器:包括编辑器的功能需求、各种数据的需求等;

    • 粒子编辑器:关于粒子编辑器的需求;

    • 内镶小游戏:包括游戏内部各种小游戏的需求;

    • 功能函数:包括游戏中可能会出现的各种程序功能、技术参数、数据、碰撞检测、AI 等方面的需求;

    • 系统需求:包括升级系统、道具系统、招式系统等系统导入器的需求。

       

    项目开发步骤就是将整个游戏项目的资源通过引擎组织起来,对游戏的架构、功能及各逻辑模块进行充分的整合。

    这就要明确游戏开发的日程和进度安排,这也是充分利用各种开发工具让开发效率大大提升的根本所在。

    测试发布流程主要包括两次大型正规的测试,即 Alpha 测试和 Beta 测试,其中前者意味着游戏的功能和流程完整,QA 会为游戏定制测试计划,测试人员将发现的 Bug 提交到数据库,开发和设计人员对相应的错误进行修复。

    后者意味着游戏中的各种资源已完成,产品已定型,后期只是修复 Bug。在这两次测试修复后,得到待发布的 Release 版。

    Gold Release 流程主要是开发游戏的各种补丁包、游戏的升级版本,以及官方的各种礼包和插件等。

    游戏开发所用的工具

    选择正确的工具,可以为游戏项目节省开支,提高工作质量,降低项目风险,让整个项目团队成员集中注意力,从而把游戏做得好玩。

    程序工具软件

    • OpenGL ES——OpenGL 长期以来都是行业内 2D/3D 图形高质表现的标准,它适用于各种设备。OpenGL ES 提供了在软件应用程序和软件图像引擎间的底层 API 接口;

    • IncrediBuild——这个开发工具极大的提升了 VS/VC 的编译和版本生成速度,有效降低增量构建所需要花费的时间,它主要是采用分布式编译技术,在公司内网可以调用其它计算机的资源进行快速编译。这是开发人员不可多得的一款好工具;

    • VS2013——微软的 VS 集成开发环境多年来都是游戏制作的基本软件,界面友好,功能齐全,可以极大的提升编码速度和工作流;

    • Visual Assist X——这是一个插件,引入了强大的编辑功能,完全整合在 C++IDE 环境中,可以极大的提升开发人员的工作进程,不过有的 IDE 环境已经整合了这款插件,自己不用手动安装了;

    • Direct X——它是微软在过去建立的众多行业标准之一,它是一种视窗技术,可以让你在玩游戏或观看视频过程中图像和音效有更高的品质,它包含多个配套组件,如 Direct3D、DirectSound、DirectPlay、DirectInput 等。

    美术制作工具

    美术制作工具要远多于程序软件,因此在游戏开发过程中,选择美术软件时要慎重考虑,以方便项目的顺利进展。

    • Maya——它是行业内首选的 3D 动画制作软件之一,它功能十分强大,可用于高端电脑构图,可以处理几乎所有的 3D 制作工作。

      比如模型构建、动画制作、描绘渲染、电影特效等。但其缺点也在于其多边形建模工具不太理想;

    • 3D Studio Max——它是游戏开发中 3D 程序开发的主流引导者,其多边形建模工具是所有 3D 程序中最棒的工具,用它进行开发效率也特别高;

    • PhotoShop CS——该软件在游戏制作中被广泛应用,是游戏制作的必备软件,它在游戏开发的各个时期都会用到,包括前期制作到最终完成并市场推广。美术人员用它来做出游戏环境和角色的设定,策划也用它来画关卡规划和界面示意图;

    • FaceGen Modeller——这是一款 3D 头脸创作工具,它可以为游戏制作多个角色,从而快速做出人物脸部及头部模型,形态非常逼真;

    • Zbrush——这款工具的特点在于使艺术模型呈现传统艺术创作的过程,它可以辅助制作人员做出逼真的环境多边模型,是地图场景的绝佳工具;

    • Granny——可以作为游戏的一个批量输出工具,它能够完成所有艺术素材,包括模型、渲染和过场动画的植入。它可以生成法线和纹理贴图,更是一款引擎解释工具。

    游戏组件工具

    游戏组件是指游戏的基本环境架构,比如描绘、场景和几何构型的构建,也称为中间件。

    • Havok——这是目前比较先进的物理引擎,它能让游戏模拟现实,可以将游戏做出非常逼真的效果;

    • Gamebryo——这是一款能够帮助开发人员快速制作原型版的工具,功能强大,运行稳定,是比较好的 3D 实时图形引擎,其强大的渲染引擎和动作处理系统使其在商业上获得巨大的成功;

    • Quazal——它属于网络建筑中间件,主要用于制作大型多人在线游戏,其它类似的中间件有 Big World。

    音效工具

    音效作为游戏里的重要组成部分,选择合适的工具也非常重要。作为游戏开发人员,关键要了解各种工具的使用限制,有很多的专业音效制作工具,包括 Nuendo、Vegas、Logic、ProTools、Peak、GameCODA、SoundForge 等。

    场景构建工具:

    • Unreal Engine——这是一款比较完型的游戏开发引擎,它提供了比较全能的关卡编辑器、过场动画系统、3D 图形及 AI;

    • Source——这款引擎为人物角色动画提供了新技术,先进的 AI、光影渲染、实景图象都非常棒,引擎也包含了先进的物理引擎。

    日常管理工具

    游戏开发过程中所涉及的事务比较多,内容也比较繁杂,用好日常管理工具可以有效提升工作效率。下面是几个用得比较多的工具:

    • MicroSoft Excel——利用它进行开发进度管理,开发人员可以非常轻松地跟踪管理多个游戏开发部门的进度,开发人员必须要对其十分熟悉,才能用的得心应手;

    • 日常工作增量进程报告 (daily delta reports)——一个项目成功的关键就是运用日常工作进程报告,在这个过程中,每一名团队成员每天上交一份个人当日工作完成情况清单。这种进程报告的方式可以简明扼要、方便有效地跟踪项目进程;

    • 源码控制报告和版本控制报告——目前大部分项目研发用的版本控件工具是 SVN、Perforce、Git 等,在使用版本控制软件前,一定要花一定的时间来熟悉软件的功能和使用方法,这对于游戏研发人员非常关键,否则就会犯些不必要的错误,从而导致工作效率下降;

    • 运用 WiKi——它是协作性文档,是自由讨论和创造性工具,是最佳管理设计性文档的方法,当团队无法建立一个内部局域网来管理各种记录和设计进程或建立局域网工作量过大时,WiKi 就是你最佳的选择。

    好了,关于游戏开发的相关知识,我就介绍到这里。游戏开发涉及的知识太多太多,我在这里只是概括性的做了一个引入,希望对您有些许的帮助,文章内容不免有很多不足之处,还请各位大侠多多指教。

     

    推荐书籍

    《游戏开发 世嘉新人培训教材》

    《游戏设计入门:理解玩家思维》

     

    展开全文
  • 游戏开发入门(一)游戏开发概述

    万次阅读 多人点赞 2018-01-17 21:55:54
    视频链接:游戏开发入门(一)游戏开发概述(3节课 时常:约1小时03分钟) 该视频围绕电子游戏的发展与开发简单介绍了一些基本常识,同时提出并解决了几个问题 笔记与总结(请先学习视频内容): 1.游戏机发展...

    视频链接:游戏开发入门(一)游戏开发概述(3节课 时常:约1小时03分钟)
    该视频围绕电子游戏的发展与开发简单介绍了一些基本常识,同时提出并解决了几个问题


    笔记与总结(请先学习视频内容):

    1.游戏机发展

    • 20世纪70年代开始 首款主机magnavox odysse
    • 80年代 红白机
    • 80-90年代 各类非FC主机(PS,NDS等) PC单机游戏
    • 90年代-2000年 局域网对战游戏
    • 2000年后 大型多人游戏 页游 手游
    • 现在 VR,AR ..

    2.游戏是如何开发出来的,开发流程是什么?
    原始的游戏比较粗糙,内容也很少,一般就一个人开发,美术与策划都由自己完成(建议看看《doom启示录》)。
    随着游戏逐渐变得复杂,需要多人去合作完成,分工也变得明显。简单的流程如下:

    • a.首先讨论确定游戏的基本内容,类型等,对游戏项目立案
    • b.程序员构建最基本的游戏框架,单机还是网游,什么平台(在当前,某些非常简单的游戏demo也可以跳过编程,直接使用游戏引擎)
    • c.策划对游戏细节进行设计与构建(包括剧情,玩法,关卡,数值,系统等)
    • d.美术需要根据当前策划设想的游戏世界,提供合适的艺术效果(包括原画,模型,特效,UI,动画,场景等)
    • e.程序,美术,策划三方不断的相互沟通完善游戏内容并不断的测试调优(这是最为耗时的一个流程) 注意:这里策划不仅仅是思考游戏的玩法,还需要将程序员留出来的接口做各种配置,因为项目的需求变化过于频繁
    • f.游戏内容基本完成后,需要质检等人员开始测试,程序员修复Bug
    • g.游戏经过一定测试后,发布。同时交由运维人员做基本的维护,发布前期一定有bug,还需要各个职能人员互相配合

    2.开发游戏需要哪些技术?

    • a.作为一个程序员需要的基本素质:包括掌握基本语言编程,深入了解语言特性,了解计算机相关基础,设计模式等 其实就这一块很多人就很难达标,不过我们可以在做游戏的同时提升自己的功底
    • b.构建一个游戏需要了解不同平台的相关技术,但一般不需要太深入
    • c.需要有一定的引擎知识,尽可能熟悉引擎各个功能的使用
    • d.常见的脚本技术(lua等)
    • e.随着3D游戏的发展,需要对图形图像知识有一定深度的理解(涉及到数学,非常复杂与庞大的模块)
    • f.网络游戏需要掌握基本网络基础知识(TCP/IP,Socket,Http),了解同步机制
    • g.动画技术
    • h.了解会使用物理引擎
    • i.基本的场景管理技术
    • j. AI相关技术,游戏中大部分的AI还是比较简单的,不需要机器学习

    3.程序员一般负责的内容是什么?

    • a.实现策划需求(大部分是逻辑需求)
    • b.提供内部工具,加快开发。比如当前引擎不支持某种NPC对象的高亮显示,无法拖拽资源到游戏里面等功能,需要程序员提供 提高开发效率
    • c.修复Bug
    • e.优化体验,也就是常说的性能优化,提高帧率,减小内存开销等等

    目前规模较大的公司,程序员也分为多种(一般分为逻辑程序员和引擎程序员),所完成的内容也有差别。
    逻辑程序一般属于频繁与策划沟通,直接对项目需求进行开发的程序
    引擎程序一般是研究引擎功能,优化引擎(提示表现,提高性能等),不过这也并不是绝对的。

    4.如何入行游戏(建议)

    • a.夯实基础(语言,数据结构,算法,网络,操作系统,图形学等)
    • b.对游戏开发有一个基本的认识,建议可以先根据我的文章讲解看一遍这个系列的视频(遇到不懂的名词就去查,就去研究), 然后通读一遍游戏引擎架构
    • c.实践!选择一个游戏引擎然后动手开发游戏demo,参考其他游戏demo,尽可能的应用学过的游戏知识。多思考,多理解
    • d.想办法进入业界,从项目中吸取知识。如果有机会的话(应届生机会比较多),只要程序基础够也是可以加入该行业的

    5.新手与真正开发者的差距有哪些?
    最多的就是经验了,前面提到的技术都是概括性的,每个方面深入进去都是无限的坑。新手一般只会用而不懂为什么这么用, 真正有经验的开发者不仅会用,甚至可以模仿出来一套几乎相同的框架并完善,遇到问题也有更多的解决思路与方案。


    上一篇:游戏开发入门系列(目录)
    下一篇:游戏开发入门教程(二):游戏中的设计模式

    原文链接(转载请标明):http://blog.csdn.net/u012999985/article/details/78797928

    展开全文
  • “现在,是时候改进您的游戏开发流程了。在这里,无论您是在独立的初创公司亦或大型游戏工作室中,我们都可以调度资源,使您的工作室的开发和设计工作晋升一个层次。” [img=...
  • 游戏开发入门(十一)游戏引擎架构

    万次阅读 多人点赞 2018-02-25 16:13:20
    链接:游戏开发入门(十一)游戏引擎架构(8节课 时常:约2小时40分钟) 该堂课是对游戏引擎内容的一个概括总结,同时也是对游戏开发技术的一个相当全面的总结。 正如我在开篇所提到的,游戏引擎架构的学习有助于...
  • 游戏开发防作弊以及原理

    万次阅读 多人点赞 2019-06-27 17:42:27
    如何防作弊在游戏开发中还是占蛮重的比例的,这也涉及到游戏盈利的问题,如果不做防作弊措施,或许我们开发出来的app当前上线或许第二天就出破解免费版了,这个事情我亲身经历过,当然这是基于app做的比较好被外挂...
  • Visual C++游戏开发经典案例详解.pdf

    千次下载 热门讨论 2012-03-01 08:45:15
    Visual C++游戏开发经典案例详解.pdf
  • 3D游戏开发基础

    万人学习 2015-02-15 20:43:30
    该课程从游戏开发基础知识讲解,包括向量,矩阵,以及固定流水线,可编程流水线,GPU编程等,通过该课程的学习可以让大家对游戏开发原理以及游戏底层是如何运作逐一给大家讲解。
  • Unity游戏开发实战.pdf

    千次下载 热门讨论 2013-12-30 21:08:09
    Unity游戏开发实战.pdf 比雨林木风那本更好的unity3d游戏开发书。 难得的中文好书
  • 游戏开发游戏开发书籍汇总

    千次阅读 多人点赞 2018-09-10 20:38:30
    5.《Directx游戏开发终极指南》 6.《Windows游戏编程大师技巧》 7.《快乐之道:游戏设计的黄金法则》   人类的大脑通常是一个贪婪的模式吞噬者,是一个吞吃概念的柔软矮胖的灰色小精灵。   8.《3D游戏编程...
  • C毕竟封装了很多实际上没用到的东西,不利于游戏开发的效率和游戏的运行速度,不适合做游戏开发。MFC做游戏地图编辑 器之类的工具软件倒是比较适合。我觉得一款成功的游戏最基本的特点就是具有流畅的用户体验,这个...
  • C#游戏开发之炸弹人游戏开发

    千次阅读 2016-07-21 22:02:55
    也想借此机会和大家交流游戏开发。希望大神能指点一二。笔者是利用VS2010编译器,下面进入正题: 利用C#控件来实现2D游戏开发还是比较方便。先从总体上介绍炸弹人游戏的开发。 先看一下大概效果: 从图上可以...
  • Unity游戏开发基础

    千人学习 2017-09-12 08:44:15
    以Unity 2017版为基础,详细介绍Unity游戏开发的基本过程和基本技术,包括:资源创建、灯光、声音、GUI、动画控制和网络游戏开发等内容。 课程主要以实例演示方式进行讲解,并提供实例工程源代码下载,读者可以对照...
  • 游戏开发入门(十二)游戏开发全总结

    万次阅读 多人点赞 2018-02-25 16:28:19
    通过游戏开发入门系列的学习,是不是对游戏开发有了一个比较清晰的认识? 在最后一篇里面,博主试着概括性的对游戏开发做一个总结,欢迎各位提出意见来完善这篇博客~ 游戏模块总结: 游戏逻辑模块系统:各种...
  • 基于Unity的游戏开发(上)

    万人学习 2015-03-09 19:53:04
    本课程是Unity游戏开发的入门课程,课程分为上、下两个部分。上篇主要讲述游戏的基本概念、Unity的开发环境、游戏资源的创建和使用等基础内容。
  • 游戏开发】C++游戏编程实例

    万次阅读 多人点赞 2018-09-11 09:44:18
    网络游戏开发分为:服务器编程、客户端编程、人工智能、数据库管理、游戏策划、美工设计、音乐特效等。 大型游戏往往需要团队合作开发,因此面向对象的编程思想在网络游戏中得到了广泛应用。 游戏开发基本流程:...
  • 各位有什么建议吗,做游戏PM最难的点是什么?游戏PM对技术的涉猎程度需要非常高吗?
  • 游戏开发学习路线

    万次阅读 多人点赞 2018-07-29 14:56:53
    游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指引,是可以事半功倍的。 下面就结合自己的学习历程和大家...
  • Android游戏开发之飞行射击类游戏原理实现源码

    千次下载 热门讨论 2011-08-09 21:20:41
    雨松MOMO带你做游戏 Android游戏开发之飞行射击类游戏原理实现源码 欢迎大家下载阅读
  • 随着3D技术的不断成熟,游戏开始从2D向3D...对于Unity,相信很多人多不陌生,用一句话来描述就是:Unity是游戏引擎、游戏开发工具。支持的维度 3D,2D,可以进行3D,2D游戏开发。对编程有所认知的朋友,大概会说“你...
  • unity官方Stealth 游戏开发素材和游戏源码 非常好的入门资料
  • 游戏开发入门(二)游戏中的设计模式

    万次阅读 多人点赞 2018-01-17 22:02:52
    视频链接:游戏开发入门(二)游戏中的设计模式(3节课 时常:约2小时40分钟) 该视频主要围绕游戏中常见的设计模式展开讲解并实践,需要大家多多实践与理解 笔记与总结(请先学习视频内容): 1.有必要深刻的...
  • [棋牌游戏开发] 如何进行纸牌游戏开发是困扰很多人的问题。当第一次开发棋牌游戏时,每个人都会遇到各种各样的问题。没关系。下面,吉锐游戏小编将为您全面介绍棋牌游戏的发展过程,以及涉及的各个方面。 阅读本文后...
  • android游戏开发大全源代码

    热门讨论 2012-03-22 09:51:51
    android android游戏开发
  • Egret 之消除游戏开发 PART 2

    千人学习 2015-10-27 17:09:16
    Egret 之消除游戏开发 第二部分
  • Egret 之消除游戏开发 PART 3

    千人学习 2015-10-27 17:12:08
    Egret 之消除游戏开发 第三部分
  • 基于Unity的游戏开发(下)

    万人学习 2015-03-13 08:17:06
    本课程是Unity游戏开发的入门课程,课程分为上、下两个部分。下部分主要介绍JavaScript脚本程序开发、动画、粒子、网络和GUI系统
  • Android 3D游戏开发,(含代码和游戏实例)
  • 精通Android游戏开发中文扫描版

    千次下载 热门讨论 2012-09-05 15:01:50
    精通Android游戏开发 高清扫描中文 好书

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 555,564
精华内容 222,225
关键字:

游戏开发