嗯嗯,游戏引擎发展到今天,已经是一个产业化需求比较泛化的软件体系。如果细分,按不同的细分维度会有很多不同的划分,比如按功能分可以分为物理引擎,渲染引擎,脚本引擎等,按平台分可以分为PC游戏引擎,HTML5游戏引擎,移动端游戏引擎等,按渲染类别分2D引擎,3D引擎等。
再比如对于网游,又分客户端引擎和服务器引擎;服务器引擎的架构游戏类型、负载需求息息相关,架构本身和技术基础组件选型( *** 作系统、开发语言、网络库、数据库、运维工具、运营后台等)相关联,比较灵活。
按问题要求,猜测楼主问的是通用跨平台客户端引擎,参考对象是Unity,Unreal,CocosCreator等。先提取游戏引擎典型的核心功能如下:
渲染:实现画面的展示
物理:实现物理世界的抽象和表现
音频:实现声音的播放处理
网络:实现联网功能
游戏编程接口:讲游戏引擎能够提供的接口以API形式暴露给开发者
配套的集成开发环境(IDE):实现可视化场景编辑、组织,可视化物理编辑,可视化UI布局,资源的使用等
调试功能:提供便捷的方式以便开发者对游戏功能进行测试和debug,优化性能。
打包发布功能:生成最终的游戏的exe,app,apk等等可执行(可运行)文件
插件扩展功能:提供给高级开发者的对引擎自身功能增强的功能接口
其它功能:如Unity有service,可以集成平台数据统计、自身的视频广告等功能。
然后逐一略叙实现方式,强调一下,最好参照业内的经过广泛验证的引擎去了解,例如Unity;如果想知道更多细节,可以先使用一下主流引擎。
1渲染:为了跨平台,一般会选用跨平台的图形标准库底层如OpenGL,基于底层库再构建上层渲染框架,如精灵(Sprite),GUI,3D模型的渲染,shader扩展等。
2物理:物理引擎对运算性能要求比较高,而且底层功能的测试需要耗费大量精力,所以通常采用成熟的物理引擎,例如Havok,PhysX,Bullet,cannonjs等。
3音频:通常会采用业内成熟方案,如开源的OpenAL、FMOD、HTML5平台自身的Audio功能等。一般来说,非音乐类游戏对音频功能的需求相对不会太复杂,主要是靠专业软件提供音效文件(mp3,wma等),游戏中解析因小文件,处理声音播放,音量大小调整等。
4网络:提供联网的功能,按需提供TCP,UDP,>
5游戏编程接口:这就是提供给开发者的API的组织。确定引擎提供给开发者用什么语言编程,怎么使用、音视频资源、3D模型等,怎么提供接口和游戏运行时环境(电脑、手机)交互等。
6配套的集成开发环境(IDE):易用的可视化开发工具,如拖拽布局、拖拽游戏资源的使用、代码编辑、集成调试打包功能等。这一块是游戏引擎开发工作量的大头,涉及用户(游戏开发者)密集使用的交互接口,要尽可能满足高效、易用。一般来说如果不是特别有能力驾驭,最好现成的采用跨平台的应用程序开发方案,比如CocosCreator采用electron框架。
7调试功能:提供查看FPS,跟踪代码运行,Profile,网络信号模拟,分辨率模拟设置,硬件设备模拟(手机)预览游戏等。建议游戏运行时与编辑器使用同一套或者大致一样的渲染和资源接口(例如Unity),这样方便降低调试和运行结果大相径庭的情况。
8打包发布功能:简单处理可以生成要打包的对应平台的工程,比如android平台生成AndroidStudio工程,ios平台生成xcode工程,注意资源、代码库的引用关系,配置文件的有效性、一致性,编译速度等。
9插件扩展功能:人力因时而穷,引擎功能不必强求一开始就大而全,可以将引擎整体设计为一个易扩展、易修改的结构,提供相应接口暴露给开发者,群策群力迭代和改进游戏引擎。
10其它功能:这一块可以根据自身引擎特点来进行添加,比如现在主流的几大引擎都有提供官方继承的资源商店、数据统计等服务接口。
真正可用的引擎的实现是一个系统而复杂的工程,有很多脏活累活需要考虑在里头,平台兼容性、性能、效果、易用性、鲁棒性、文档编写需要耗费巨量的心力;
如果是个人兴趣了解,可以根据上述内容再延伸查询相关内容,也欢迎随时交流。
如果是想做个娱乐引擎可以随意玩,技术如诗,越撸越痴;
如果是想创造一个伟大的引擎,请收下我的膝盖。
现在的游戏使用的硬件接口基本有两种,一个是DirectX,另一个是OpenGL,OpenGL只是2D3D图形图像接口,没有其它功能,DirectX则是一个全套的多媒体接口,包括2D3D图像、视频、音频、网络、输入设备等等,专为游戏制作开发。两个发展都很迅速,不断添加新的功能,并由硬件实现。游戏引擎的任务就是封装这些底层硬件加速接口的细节,并给游戏设计人员提供完善的实现游戏所需功能的接口。想要写一个引擎,首先得知道引擎是什么样,可以参考发布的引擎,有简单的非商业的,也有功能强大复杂的商业的。推荐你看看出名的2D引擎HGE,速度非常快,简单易用,引擎中包含源代码。参见其网站:hgerelishgamescom如何使用引擎,下载引擎包,里面的参考文档会教你如何使用。参见业内著名的游戏开发网站>你好,开发网络游戏,用服务器的话,直接根据您的需求,比如配置,带宽,线路选择合适的服务器租用就可以了。另外找IDC商租用服务器一定要用正规的IDC商,有资质的服务商。这样服务器租用期间有什么售后技术问题也能得到好的解决。
希望我的回答对您有帮助,谢谢
开发游戏软件必然需要懂编程语言,接着就是学习资料,跟着教程做一个两个小游戏,然后就明白游戏是怎么回事儿了,大型游戏也就是小游戏复杂化而已。
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,加上与服务器通讯的所谓客户端模块
去图书馆找游戏开发的书,然后边看书边动手实践
1 打开:IE。
2,点上方的 "工具" 选INTERNET 选项。
3,在INTERNET 选项上选 "连接"。
4,然后选 "局域网设置"。
5,这样就可以填入你的代理服务器地址了 。
6,找代理服务器地址,可以上"代理中国"网上找。
1,网络游戏公司往往在运行初期要投入大批资金,购买高性能服务器。
2,可是,一旦进入赢利期,后续的投入几乎可以不计,所以,行业内的投入主要在于游戏规则的创设,代码的编写,以及带宽的租用,服务器的购买或者租用。
3,局域网中,一种运行管理软件以控制对网络或网络资源(磁盘驱动器、打印机等)进行访问的计算机,并能够为在网络上的计算机提供资源使其犹如工作站那样地进行 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)