开发游戏软件必然需要懂编程语言,接着就是学习资料,跟着教程做一个两个小游戏,然后就明白游戏是怎么回事儿了,大型游戏也就是小游戏复杂化而已。
1、开发游戏软件之前要学会至少一门语言,c/c++也好、java也好、js也好。
2、你要做什么类型的游戏,动作、角色还是什么,以及你要做2d游戏、还是3d游戏。
3、学习图形接口方面的东西sdl、opengl、dx等,里面的案例会让你学到很多游戏方面的知识,让你懂得怎么用代码控制图形显示。
4、其实现在做游戏的朋友大多都是学习使用游戏引擎、像ue、unity3d、cocos2d等游戏引擎。
5、做2d游戏可以使用一些2d游戏引擎cocos2d这类。
6、做3d游戏需要使用3d游戏引擎ue、unity3d这些。
7、最后还需要学习很多美术方面的技术、3d建模、2d动画等方面的知识,相信你做的游戏会越来越棒。
必备条件
开发游戏的必备条件是策划+程序+美术。
策划可以自学,从模仿开始。《Doom启示录》里面大神的第一个游戏作品就是复刻超级马里奥。
程序也可以自学,最好能够即学即用。我当时工作用flash,因此顺便学AS语言,非常方便。Flash从AS1发展到AS3,有很多源码可以学习参考。
美术,我都会。如果不会美术,学像素画是成本最小,效率最高的方法。
硬件:一台windows或macbook笔记本(3000-6000RMB);一块wacom绘画板(499RMB);
软件:aseprite(35RMB),使用免费开源的游戏引擎
不到7000块就可以开发游戏了!
1、游戏开发首先的选一种编程语言,一般采用实时性较强的C/C++,譬如基于WINDOWS经常用VC++2、其次,2d_x0003_D游戏编程,一般选一种开发工具包,或SDK,目前国内外应用较多的是:DIRECTXSDK,或OPENGLSDK3、最好多了解一点三维建模、材质、贴图和动画方面制作流程和概念,譬如复杂的骨骼动画编程,就需要多了解一些关键帧和动作流程概念4、上述也即是游戏引擎开发人员5、游戏服务器开发需要熟练掌握TCP/IP协议等开发,与DIRECTXSDK,或OPENGLSDK无关6、当然客户端游戏引擎往往需要采用WINDOWSAPI,加上与服务器通讯的所谓客户端模块
去图书馆找游戏开发的书,然后边看书边动手实践
逻辑实现者:工作是实现从游戏主循环到每个游戏元素的逻辑。在小团队里一般是唯一的一名程序员,在大团队里是GPP(Game play Programmer)。注意如果是独立游戏项目的话,借助第三方插件,非程序员也可以担任这个角色。内容设计者(读作cehua):在大团队里基本上就是策划职位,和传统策划的区别是因为Unity团队里负责这个任务的人基本上是一定要摆弄场景、制作prefab的,没有点动手能力光会写文档可不行。
美术:工作包括从游戏概念图的设计到模型动画等美术资源的设计制作。具体细分可以参考游戏工业标准,Unity团队也不例外。
交互设计和实现:界面设计、界面实现编程,由于Unity下有很多不错的UI插件,所以这份包括设计师和程序员的工作我给合并到了一起。在Unity下就算是由设计师自己来做交互实现编程也不会很难。
主程序/架构设计师:适用于大项目或大团队的高端职业,他们的主要任务不是生产用户能玩到的具体游戏性,而是为其他团队成员搭建一个可以沟通协作的框架或
工具集。对大型Unity项目来说,如果团队里没有这么一个经验丰富思路清晰的高手,很快项目就会被各种突飞猛进(因为Unity开发新功能原型实在太快
了,很容易让人忽略结构问题)的feature生产搞的累赘不堪,然后在没有人指导项目重构的情况下,生产效率从每周一个feature下降到每个月一个
feature,还伴随无数难以修复的bug。
服务器程序员:网游项目必备,其描述适用于游戏工业标准,这里不赘述。
版本管理员:适用于大项目,最好精通Git或plasticscm这类分布式版本控制系统,好处是方便做branching而且可以拆分项目为多个子项目,Unity项目大了以后运行效率是很差的,拆分项目也有利于控制不同分工的团队成员的权限。
音效设计师:可选,推荐还是外包音效+内部实现的做法,因为Unity并没有一个完全封装好的音效中间件,如果音效设计师要进行实际调试,就要完全掌握
Unity组件系统,在国内来说这个要求还是比较高的。怕麻烦的话拿到外包的文件然后让程序员或策划去导入和测试就好了。
Unity3D游戏制作需要的软件主要是看你平时用什么软件,不同学校学习时候用的软件也都是不一样的,我实在博思学的,当时上课用的软件都是正版的软件,主要工具就是根据不同的需求,大致用的就是综合编辑:Unity具有层级式开发环境,具备视觉化编辑、详细的属性编辑器和动态游戏预览特性。图形引擎:使用的是Direct3D、OpenGL和自有的APIs。资源导入:项目资源会被自动导入,并根据资源的改动而更新。Unity支持的主流三维建模软件有3dsmax、Maya、Blender等。着色器(shaders):编写使用ShaderLab。地形编辑器:Unity内建强大的地形编辑器,支持地形创建,树木,草等。联网:Unity内置了强大多人联网游戏引擎。
unity3d用的C#和开发Winform、ASPnet的C#是不一样的,主要是作为一种脚本语言来进行场景中对象的控制和和业务逻辑的实现,所以如果有任何一门面向对象编程语言的经验,那熟悉一下C#的基本语法就可以开始编程了,这里的重点恰恰不是需要C#的特性而是需要熟悉面向对象语言的共性以及Unity3D脚本编程的特点特别是ScriptingAPI(当然您如果重点在插件开发、服务器端开发等方面,那就另说)。重点不是记忆而是应用和理解,实际上常用的场景对象并不多,并且像美工、程序员、构架师等不同的开发角色需要掌握的重点也不一样,就算是美工还分场景、模型、地形等不同的重点,所以硬要去记住所有的对象参数再进行开发是不现实的,何况unity3D的一大优势在于第三方插件极其丰富,当你使用不同的插件时又需要了解插件的各种参数,有的插件参数多达几十项。所以重点在于使用和理解,先从核心的和你当前开发急用的方面开始,最后你会发现参数虽多,实际上分类就那么些,比如控制transform的、控制shader的、控制gui的、控制rendering、控制network的……你最终会对这些参数形成一个大纲,然后即使是没用过的插件参数也可以顾名思义的立刻会用了。这个很不好说啊,按目前实际工作来看最多的是脚本类的编程吧,然后还有服务器端编程、插件编程、shader编程……,不是说那个方面需求多就是重点,比如基础的脚本编程,门槛很低,以后能胜任的人会越来越多。依我看如果想走得远,需要对各类编程都了解,特别是能整合不同方面的开发、能做构架(这样就可以让老板看你脸色了,呵呵)。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)