我想成为游戏开发程序员,要学些什么?

核心提示1.图形引擎2.声音引擎3.物理引擎4.游戏引擎5.人工智能或游戏逻辑6.游戏GUI界面(菜单)7.游戏开发工具8.支持局域网对战的网络引擎开发9.支持互联网对战的网络引擎开发下面逐一介绍每个部分:1.图形引擎主要包含游戏中的场景(室内或室

1.图形引擎2.声音引擎3.物理引擎4.游戏引擎5.人工智能或游戏逻辑6.游戏GUI界面(菜单)7.游戏开发工具8.支持局域网对战的网络引擎开发9.支持互联网对战的网络引擎开发下面逐一介绍每个部分:1.图形引擎主要包含游戏中的场景(室内或室外)管理与渲染,角色的动作管理绘制,特效管理与渲染(粒子系统,自然模拟(如水纹,植物等模拟)),光照和材质处理,LOD(Level Object Detail)管理等,另外还有图形数据转换工具开发,这些工具主要用于把美工用DCC软件(如3DS Max,Maya,Soft XSI,Soft Image3D等)软件制作的模型和动作数据以及用Photo shop或painter等工具制作的贴图,转化成游戏程序中用的资源文件。2.声音引擎主要包含音效(Sound Effect简称SE),语音(VOICE),背景音乐(Background music简称BGM)的播放。SE是指那些在游戏中频繁播放,而且播放时间比较短,但要求能及时无延迟的播放,VOICE是指游戏中的语音或人声,这部分对声音品质要求比较高,基本上用比较高的采样率录制和回放声音,但和SE一样要求能及时无延迟的播放,SE在有的时候因为内存容量的问题,在不影响效果的前提下,可能会降低采样率,但VOICE由于降低采样率对效果影响比较大,所以一般VOICE不采用降低采样率的做法。BGM是指游戏中一长段循环播放(也有不循环,只播放一次)的背景音乐,正是由于BGM的这种特性,一般游戏的背景音乐是读盘(光盘或硬盘)来播放。另外一些高级声音特效,如EAX,数字影院系统(DTS5.1),数字杜比环绕等。3.物理引擎主要包含游戏世界中的物体之间、物体和场景之间发生碰撞后的力学模拟, 以及发生碰撞后的物体骨骼运动的力学模拟(比较著名的物理引擎有havok公司的game dynamics sdk,还有open source 的ODE—Open Dynamics Engine)。4.游戏引擎主要是把图形引擎、声音引擎、物理引擎整合起来,主要针对某个游戏制作一个游戏系统,其包含游戏关卡编辑器,主要用途是可以可视化的对场景进行调整,光照效果和雾化等效果调整,事件设置,道具摆放,NPC设置,另外还有角色编辑器,主要用于编辑角色的属性和检查动作数据的正确性。一般日本游戏公司的做法,他们会把关卡编辑器和角色编辑器直接做到游戏中,所有的参数调整都在游戏中通过调试菜单来进行编辑,所以一般他们把这部分调试菜单的功能做的很强大,同时在屏幕上实时的显示一些重要的信息,这样做的好处是关卡编辑器调整的效果直接就是游戏的效果,但是对于程序的重用性来说可能不是很好,比如说要用到另外一个游戏项目中就比较难,除非两个游戏类型相同,只要把场景和角色数据换一下,还有做下一代产品也没有问题,只要根据式样增加调试菜单的功能就可以了。5.人工智能和游戏逻辑开发,这部分日本和欧美的游戏开发模式也有很大不同,在欧美游戏公司中运用脚本语言开发很普遍,所以这部分程序开发主要是用脚本语言编写,而且脚本程序和游戏程序的耦合性很低,有单独的编辑、编译和调试环境,这样比较利于游戏程序和关卡设计开发分开,同时并行开发,所以一般他们都会有专门做关卡设计的程序员岗位。而日本游戏公司脚本语言一般和游戏的耦合性比较高,一般通过一些语言的宏功能和一些编译器的特定功能来完成一个简单的脚本系统,所以一般这些脚本程序只能在游戏程序中进行调试,而不能在一个单独的脚本编辑,编译环境中进行开发。6.游戏GUI界面(菜单),主要是指那些游戏中用户界面设计,有做的复杂,有简单的,做的简单就是2D GUI界面,做的复杂有3D GUI界面。7.游戏开发工具主要包含关卡编辑器,角色编辑器,资源打包管理,DCC软件的插件工具等开发。8.支持局域网对战的网络引擎开发,主要解决局域网网络发包和延迟处理,通讯同步的问题,有同步通讯和异步通讯两种做法,异步通讯用于那些对运行帧速要求比较高的游戏,同步通讯相对异步通讯来说效率相对低,但是同步通讯的编程模型相对异步通讯来得简单一些。9.支持互联网对战的网络引擎开发,目前大部分网游都是C/S结构的,服务器端软件配置管理,服务器程序的最优化,还有游戏大厅、组队、游戏逻辑处理、道具管理、收费系统等。另外还有一些网络系统是C/S和P2P两种结构混合的,如XBOX Live等。程序员在游戏公司中的岗位在日本游戏公司和欧美的游戏公司有些不同,日本游戏公司中程序员的岗位主要有技术监督(Director),主程序员(Main Programmer),程序员(Programmer),在日本游戏公司里负责游戏项目开发的程序员,一般不会专门根据工作内容划分程序员,除了独立的系统研究室和声音系统制作部门(这两个部门是比较独立的,往往同时给好几个项目服务),负责每个游戏项目开发的程序员,随时都可能一人多职,比如说主程序员除了负责整个游戏系统以外,可能还要负责图形或声音引擎开发等,程序员除了人工智能以外还有菜单制作等。这种情况在欧美的游戏公司比较少见,他们分工的比较细,一般有图形程序员,声音程序员,人工智能或游戏关卡程序员,物理程序员,每个组中可能还会有一个Leader。这一点,日本公司和欧美公司也有些不同。日本公司一般喜欢从一些高校中招聘一些应届优秀毕业生,一方面比招聘有经验的人要来的成本低,另方面新人是一张白纸,容易培养,像SEGA、KONAMI等都是按这种原则招聘员工的,所以想进入日本游戏公司,你要学好你的软件课程。而欧美公司希望招聘进来,能马上进入项目的开发中去,所以他们一般希望招聘有工作经验的人,即使不是行业中,在相关行业中工作2、3年的也可以,所以想进入欧美游戏公司你的工作经历很重要。我觉的一个游戏软件程序员,最起码的要求是熟练掌握计算机本科专业所学的知识,主要包括C语言或C++语言,数据结构,编译原理,算法等,另外线性代数、微积分、牛顿力学在图形和物理引擎开发方面用途也很广泛,如果要提高的话还有必要了解硬件相关的知识如计算机体系结构、汇编语言,这些对我们学习一个新的硬件平台、编写最优化代码、提高自己游戏的竞争力都是非常有益的。另外,保持有恒心、不怕苦(比如说通宵加班)的心态,对游戏的热情也是非常重要的。对于那些想进入游戏行业,但缺乏软件开发知识的人,可以通过参加游戏开发培训来现在有很多人,计算机本科毕业,学了很多软件开发的知识,但是一旦要用到实际的项目开发时,感觉无从下手,这主要是在学校里运用知识的机会太少了。所以学习游戏编程最好的方法是能实际参与到一个好的游戏项目中和有丰富开发经验的人一起开发游戏,可能学到很多你从书本上学不到知识和技能。但有时候你一时还没有机会参与到一个好项目中,没有机会进入一家好的游戏公司,但是你对游戏开发有一腔热情,很希望学习游戏开发的技能,那你就应该去参加专门的游戏开发培训,因为游戏开发培训班中的老师都是一些有丰富开发经验的老师,一般都有五年丰富的项目开发经验,听他们的课,实际上就是在和他一起分享这么多年的开发经验,另外游戏开发培训课程中会专门设计一些项目和课题,它们本身就是可以直接运用游戏开发中,这样你可以不进入著名的游戏公司,但可以学到这些公司中一些常用的开发技能。另外还有一种方法经济实惠的方法,参加一些网上志愿者的开源项目,这些项目从品质来说有好有坏,选择一个好的项目非常重要,另外他们中间本身有许多是业内人士,本来你要进入他们公司,才能学习到他们的经验,但是通过开源项目,你就有向他们学习的机会了,说不定哪一天,你就进入一家知名的游戏公司了,不过目前开源的完整游戏项目好的不多,到是在图形引擎和物理引擎方面有一些很不错的开源项目,但要加入进去的话,你的基础一定要好啊,有些开源的团队也不是随便什么人就能加入的。

在这个丰收的季节,天气逐渐变凉,首先非常感激在这里能为你解答这个问题,其次让我带领着大家一起走进这个问题,就让我们一起探讨一下。

希望以下为大家分享一这个问题对大家有所帮助,我希望我的分享关于这个问题能够帮助到大家,也同时也希望大家能够喜欢我的分享。

如果你想制作的是一款电脑的单机游戏,我建议你用rpg游戏大师,你不用去学一些编程语言,绘画技术,建造模型,因为这中中里面这个软件都涵盖过了,里面的编程虽然不是很复杂,但是对于初学者来说是一个很好的学习工具,这个软件里面提供的素材十分的丰富,只要你把整个故事情节想好,在内容上添加相应的节点,通过自己的调试,就很容易得到一个单机游戏了,至于好不好玩就要看开发者的想象力,行动力和逻辑思维能力了。

2.如果你是想做一款手机游戏的话,我建议你学unity,cocoscreator。其中,unity是现今市场上很多手游端游的开发引擎,但是关键它是一款英文开发软件,汉化程度没有那么高,有些地方很难去理解,而且还要去学一些编程语言的基础,例如C语言,C++语言。我自身也接触过这款软件,如果你想入门的话,建议你看多一些课程,了解一些相关的案例,就很容易入门了。

上面的分享关于这个问题的解答都是个人的意见与建议,我希望我分享的这个问题的解答能够帮助到大家,同时也希望大家能够喜欢我的分享,大家如果有更好的关于这个问题的解答,还望分享评论出来共同讨论这话题。

最后在这里,祝愿大家都有一个好的心情,明天有一个好的开始,愉快的上班,升职加薪在等你。谢谢!

阿颖曾经想做一个的!

曾经我有个同学,在学校的老师与领导巨大的压力之下,三天两头跑学生会,凭借着三寸不烂之舌与持之以恒的耐心,终于成功组建了我们学校第一个电子游戏有关的社团。

RPG社

我们当时的情况和你们非常的类似。

一个学完了高中计算机科学的男子。

一个立志要考上美国最好的艺术学校,却每天被美术老师骂成憨憨的愚蠢艺术生。

一个每天做着音乐老师也听不懂的电音的艺术生。

一个在起点更着没人看的小说的垃圾作家。

两个根本没玩过RPG的游戏爱好者。

就这样,六个男人踏上了做RPG的征途。

然后一年之后,因为什么都没做出来而被迫关闭了社团。

所以我过来帮你们把可能会走的歪路堵上。

第一制定剧本

首先,剧本是这整个游戏制作过程中最重要的部分,当然,这是你的职责所在。剧本的写法可以很简单,无需写出每一个人物的每一句对话,但是一定要写好的是,这是在什么地方,发生了什么事,有多少人出场,这些人在场景结束时发生了什么?在把文章都处理成剧本之后,统计人物出场次数,他们要干的事,综合设定出人设。

第二制定游戏的基本规则

这一点主要是要做出游戏的基本框架,游戏的类型(回合制?战棋?横版过关?),加入的武器种类,攻击方式,是否加入技能或职业,道具的种类,以上元素的获得方式,解密的过程,先把框架做好,接下来就会简单很多。

第三NPC

怪物,敌人,队友,村民都放在这里做,包括之前的人设角色。包括这个角色要让他出场在哪里,重不重要,怎么让玩家看出他的人设,有没有固定的台词来烘托人物性格,会不会加入主角,与玩家控制角色的互动(战斗?交易?谈话?)。

最重要的一点,让你的画师们统一画风。

第四地图

这个也要看剧本,主要考虑因素有:地图有多大,有没有隐藏地图,这个地图的作用,敌对生物的位置和行动方式,地图要不要加入特有的BGM,玩家在这个地图会受到什么样的效果,重点是制作出地图的特点。

第五细枝末节

存档点的位置,BGM的切换,如何平衡主角和游戏系统,这些虽然不是游戏的重头,但做好了很明显会有加分。

说了这么多,反正是粉丝作,我相信你的粉丝肯定不会挑三拣四,说这个作者游戏做得不好玩什么的。

你开心就好了。

别废话,热爱就开始动手,先别去找些乱七八糟的软件教程,都是劝退的,先用文字框出你想勾勒的世界,主角是谁,时代背景是什么?是个怎么样的故事?

然后想想:

1.我的定位,我是画画好?去画人设。画游戏场景。我是编程好?去研究游戏引擎。我是写作好?去吧整个游戏的故事写好。我做音乐好?去把音乐准备好。

2.如果以上我都牛皮,那么恭喜你,可以选择一个引擎开始动工了。最简单的当然是RPGMAKER,大量的素材,傻瓜操作,贴吧各种大神的教学,能基本实现一个2d的RPG,别看不起这像素RPG,RPGmaker也出了很多优秀的作品的。《tothemoon》《undertable》都是大名鼎鼎的神作。

3.如果自己只有第一点里个别牛皮,那么就可以在网上找几个志同道合的小伙伴,各自发挥自己的长处,来组成一个游戏,好比《太吾绘卷》创始人茄子拉了几个小伙伴跨省创作,历史5年,最后狂卖200w套,可以看看我的文章《狂砍1.36亿的太吾绘卷,究竟做对了什么?》。

最后如果你作为兴趣,就不要跟经济效益挂上钩。为了赚钱我建议你不要去做游戏。

我是神犬,你留着这关注与赞有何用?

开发单机游戏的想法,我自己曾经也有过,也曾经行动过,以自己的经验和了解,分析如下

1.如果你想制作的是一款电脑的单机游戏,我建议你用rpg游戏大师,你不用去学一些编程语言,绘画技术,建造模型,因为这中中里面这个软件都涵盖过了,里面的编程虽然不是很复杂,但是对于初学者来说是一个很好的学习工具,这个软件里面提供的素材十分的丰富,只要你把整个故事情节想好,在内容上添加相应的节点,通过自己的调试,就很容易得到一个单机游戏了,至于好不好玩就要看开发者的想象力,行动力和逻辑思维能力了。

2.如果你是想做一款手机游戏的话,我建议你学unity,cocoscreator。其中,unity是现今市场上很多手游端游的开发引擎,但是关键它是一款英文开发软件,汉化程度没有那么高,有些地方很难去理解,而且还要去学一些编程语言的基础,例如C语言,C++语言。我自身也接触过这款软件,如果你想入门的话,建议你看多一些课程,了解一些相关的案例,就很容易入门了。

cocoscreator它是一款由国内团队开发的二弟三弟,游戏开发软件。通俗易懂,相应的教程也很多,他的编程语言是js,我现在还在用这个软件来学习游戏开发。

以下是我接触过的软件,可以参考一下学习。

Photoshop可以绘图,制作人物,皮肤,贴图

瓦片地图编辑器可以编辑像素的方格地图

骨骼编辑器可以用来制作游戏人物动作

3dmax和Maya3d建模软件人物或者场景都可以制作

像素制作软件初学者建议使用

以上是我个人观点和经历,如有雷同,纯属巧合,欢迎评论吐槽转发,谢谢大家(^_^)

1.如果你想制作的是一款电脑的单机游戏,我建议你用rpg游戏大师,你不用去学一些编程语言,绘画技术,建造模型,因为这中中里面这个软件都涵盖过了,里面的编程虽然不是很复杂,但是对于初学者来说是一个很好的学习工具,这个软件里面提供的素材十分的丰富,只要你把整个故事情节想好,在内容上添加相应的节点,通过自己的调试,就很容易得到一个单机游戏了,至于好不好玩就要看开发者的想象力,行动力和逻辑思维能力了。

2.如果你是想做一款手机游戏的话,我建议你学unity,cocoscreator。其中,unity是现今市场上很多手游端游的开发引擎,但是关键它是一款英文开发软件,汉化程度没有那么高,有些地方很难去理解,而且还要去学一些编程语言的基础,例如C语言,C++语言。我自身也接触过这款软件,如果你想入门的话,建议你看多一些课程,了解一些相关的案例,就很容易入门了。

cocoscreator它是一款由国内团队开发的二弟三弟,游戏开发软件。通俗易懂,相应的教程也很多,他的编程语言是js,我现在还在用这个软件来学习游戏开发。

以下是我接触过的软件,可以参考一下学习。

Photoshop可以绘图,制作人物,皮肤,贴图

瓦片地图编辑器可以编辑像素的方格地图

骨骼编辑器可以用来制作游戏人物动作

3dmax和Maya3d建模软件人物或者场景都可以制作

像素制作软件初学者建议使用

电脑上制作最简单的方法是下载《RGP制作大师》,工具最齐全,具有制作游戏的所有条件,还有说明和使用方法(详细攻略)好像还有手机版的。

如果你想制作的是一款电脑的单机游戏,我建议你用rpg游戏大师,你不用去学一些编程语言,绘画技术,建造模型,因为这中中里面这个软件都涵盖过了,里面的编程虽然不是很复杂,但是对于初学者来说是一个很好的学习工具,这个软件里面提供的素材十分的丰富,只要你把整个故事情节想好,在内容上添加相应的节点,通过自己的调试,就很容易得到一个单机游戏了,至于好不好玩就要看开发者的想象力,行动力和逻辑思维能力了。

2.如果你是想做一款手机游戏的话,我建议你学unity,cocoscreator。其中,unity是现今市场上很多手游端游的开发引擎,但是关键它是一款英文开发软件,汉化程度没有那么高,有些地方很难去理解,而且还要去学一些编程语言的基础,例如C语言,C++语言。我自身也接触过这款软件,如果你想入门的话,建议你看多一些课程,了解一些相关的案例,就很容易入门了。

cocoscreator它是一款由国内团队开发的二弟三弟,游戏开发软件。通俗易懂,相应的教程也很多,他的编程语言是js,我现在还在用这个软件来学习游戏开发。

以下是我接触过的软件,可以参考一下学习。

Photoshop可以绘图,制作人物,皮肤,贴图

瓦片地图编辑器可以编辑像素的方格地图

骨骼编辑器可以用来制作游戏人物动作

3dmax和Maya3d建模软件人物或者场景都可以制作

很高兴回答你的问题

开发单机游戏的想法,我自己曾经也有过,也曾经行动过,以自己的经验和了解,分析如下

1.如果你想制作的是一款电脑的单机游戏,我建议你用rpg游戏大师,你不用去学一些编程语言,绘画技术,建造模型,因为这中中里面这个软件都涵盖过了,里面的编程虽然不是很复杂,但是对于初学者来说是一个很好的学习工具,这个软件里面提供的素材十分的丰富,只要你把整个故事情节想好,在内容上添加相应的节点,通过自己的调试,就很容易得到一个单机游戏了,至于好不好玩就要看开发者的想象力,行动力和逻辑思维能力了。

2.如果你是想做一款手机游戏的话,我建议你学unity,cocoscreator。其中,unity是现今市场上很多手游端游的开发引擎,但是关键它是一款英文开发软件,汉化程度没有那么高,有些地方很难去理解,而且还要去学一些编程语言的基础,例如C语言,C++语言。我自身也接触过这款软件,如果你想入门的话,建议你看多一些课程,了解一些相关的案例,就很容易入门了。

cocoscreator它是一款由国内团队开发的二弟三弟,游戏开发软件。通俗易懂,相应的教程也很多,他的编程语言是js,我现在还在用这个软件来学习游戏开发。

以下是我接触过的软件,可以参考一下学习。

Photoshop可以绘图,制作人物,皮肤,贴图

瓦片地图编辑器可以编辑像素的方格地图

骨骼编辑器可以用来制作游戏人物动作

3dmax和Maya3d建模软件人物或者场景都可以制作

像素制作软件初学者建议使用

以上是我个人观点和经历,如有雷同,纯属巧合,欢迎评论吐槽转发,谢谢大家(^_^)

一个简单的RPG游戏首先,要制作一个RPG的游戏。所需要涉及到的方面,有以下几个:1.使用键盘控制精灵。2.由于精灵有四个走动方向,而每个方向又应该有几帧动画(这里定为二帧)。考虑到每个机器的配置不一样(CPU和显卡不同)。所以帧与帧之间必须有延迟。3.当精灵在我们所定的迷宫里行走时,当它碰到"障碍"时,应该无法继续前进。4.在游戏里,还应该有"坏精灵"。在我这个游戏里,其表现状态为"追赶受控的精灵"。(目前,只使用了简单的追逐算法,所以"坏精灵"有时会卡住。在将来的版本里将考虑使用A*算法。)5.精灵的移动不应该只局限于屏幕的高宽,这时就需要卷轴了。以下是具体解决办法:(对应上面4个问题)1.只需使用WINDOWS消息WM_KEYDOWN即可。在DX环境下使用DirectInput来操作键盘。2.为每一张精灵位图分别分配一块内存保存其图像信息。这样每一张位图对应一个指针。(这里我使用一数组实现,其大小由具体的图像数量决定)具体访问时,我又指定了一个指向此数组的指针,在精灵运动时,只需操作指针+=偏移量即可,这样在绘制时,只需绘制此指针的值就行了。在这里,我设定受控精灵的运动偏移量为2(像素)。接着定义一int数,初始其为0,在每次精灵的有效运动(这里只是指UP、DOWN、LEFT、RIGHT四个方向操作,而且每次只允许一个有效。要不然就会当用户同时按下以上四个方向任何两个时,出现此精灵斜向运动,因为此时它的位置坐标x和y可能同时发生了改变)时递加。规定一个常量值,在上个int整数等于此常量时,令其清零。这整个操作的意义为,当此int数等于常量值时,此时精灵状态为当前方向的第一张动画;当等于常量值*2时,为第二张。这样就产生了动画效果。再谈谈延时,只需在WM_CREATE消息时定义一个TIMER。然后在每次设置指针偏移时,首先判断TIMER是否有效即可。例:首先定义TIMER,再定义一变量state=0(其变化为:当TIMER发生时,state=1-state)第一张动画if(时间延时)if(递加的变量==常量值)指向精灵数组的指针=精灵数组+偏移量;第二张动画if(!时间延时)if(递加的变量==常量值*2)指向精灵数组的指针=精灵数组+偏移量;3.用一单色位图记录地图信息。其中白色为可通行,黑色为不可行。然后绘制时由此位图生成用户可视地图。并用一全局二维数组记录此地图。然后每次精灵移动时,其实是在此二维数组里移动,在其移动前进行判断下一步是否可行。具体的判断方法由精灵的坐标来换算出其实际在我们的地图数组中的位置,然后取此位置值,判断此处是否可以通行。4.至于"坏精灵"的跟踪算法。目前只是简单的递加和递减,没有必要再进一步阐述。将来使用A*算法,再写出具体思想吧。5.为了表现游戏的世界观,有很多时候精灵是在一个很大的地图上行走,其大小会大于我们所见的屏幕大小,这时就要用到卷轴。现在已知有两个方法,简单的是拥有或创建一个所需的大地图,其具体表现形式可能是BMP位图,在DirectDraw里的概念叫“表面”。方法是,每当操作者控制精灵移动时,只需改变精灵的朝向和状态,并不改变其实际坐标。而真正发生变化的,是操作者所看到的屏幕。也就是背景移动而在中心的精灵不动,这样会给人以错觉,觉得是精灵在移动。而我们所要做的,就是计算一个矩形,这个矩形的范围也就是操作者所能看到的。它实际上是整个地图中的一部分。BMP位图有一个操作函数叫做StretchBlt和DirectDraw中表面的Blt方法类似,都是从源位图拷贝矩形区域到目标位图中去。利用它们的功能和我们先前计算出来的矩形数据,就可以实现了!具体来说:无卷轴时是精灵本身移动,地图不动;而卷轴的时候,是整个屏幕(即我们所要计算它实际在地图中的矩形位置)在地图里移动(注:其移动是与精灵相反的),在地图卷到尽头时,精灵开始无卷轴时的移动,其它时候不动。------------这里有个网站,RPG制作大师,希望对你有点帮助

 
友情链接
鄂ICP备19019357号-22