手把手教你架构3d游戏引擎书籍 游戏引擎怎么开发?

[更新]
·
·
分类:游戏
1533 阅读

手把手教你架构3d游戏引擎书籍

手把手教你架构3d游戏引擎书籍 游戏引擎怎么开发?

游戏引擎怎么开发?

游戏引擎怎么开发?

嗯嗯,游戏引擎发展到今天,已经是一个产业化需求比较泛化的软件体系。如果细分,按不同的细分维度会有很多不同的划分,比如按功能分可以分为物理引擎,渲染引擎,脚本引擎等,按平台分可以分为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, cannon.js等。

3.音频:通常会采用业内成熟方案,如开源的OpenAL、FMOD、HTML5平台自身的Audio功能等。一般来说,非音乐类游戏对音频功能的需求相对不会太复杂,主要是靠专业软件提供音效文件(mp3,wma等),游戏中解析因小文件,处理声音播放,音量大小调整等。

4.网络:提供联网的功能,按需提供TCP,UDP,HTTP等协议的包装好的易用的接口。如果为了方便开发,可以处理好客户端和服务器通信的连接处理,,协议的帧格式,序列化、反序列化,可以在此之上提供进一步的规范,例如采用Protobuf作为协议格式。

5.游戏编程接口:这就是提供给开发者的API的组织。确定引擎提供给开发者用什么语言编程,怎么使用图片、音视频资源、3D模型等,怎么提供接口和游戏运行时环境(电脑、手机)交互等。

6.配套的集成开发环境(IDE):易用的可视化开发工具,如拖拽布局、拖拽游戏资源的使用、代码编辑、集成调试打包功能等。这一块是游戏引擎开发工作量的大头,涉及用户(游戏开发者)密集使用的交互接口,要尽可能满足高效、易用。一般来说如果不是特别有能力驾驭,最好现成的采用跨平台的应用程序开发方案,比如Cocos Creator采用electron框架。

7.调试功能:提供查看FPS,跟踪代码运行,Profile,网络信号模拟,分辨率模拟设置,硬件设备模拟(手机)预览游戏等。建议游戏运行时与编辑器使用同一套或者大致一样的渲染和资源接口(例如Unity),这样方便降低调试和运行结果大相径庭的情况。

8.打包发布功能:简单处理可以生成要打包的对应平台的工程,比如android平台生成Android Studio工程,ios平台生成xcod

国产三大游戏引擎?

1、Fl《九阴真经》而精心打造的全新3D游戏开发架构。Flexi引擎的架构设计能够兼容多种需求,在研发的过程中参考了大量的图形学论文,同时包含了很多蜗牛研发团队的创新设计,是一款实实在在的国产3D引擎。

2、Angelica3D引擎

完美时空自助研发的Angelica3D引擎,支持了其多款自研产品。陆续推出的《完美世界》、《武林外传》、《诛仙》等游戏都各有特点,其中《完美世界》还成为早期出口海外的国内游戏之一。不仅作用于这一类武侠、仙侠类游戏,舞蹈题材游戏《热舞派对》、西游题材游戏《口袋西游》、历史题材游戏《赤壁》也都是以Angelica3D引擎制作完成。

3、kingin《剑网3》的画质被大众认可,西山居被行业称为原画公司,Kingin引擎也渐渐被熟知。进入游戏,很多画面细节让玩家耳目一新,包括林间的光影效果、水面的动态引擎技术,都是这款引擎特有技术带来的实际展示。