再比如,网络游戏分为客户端引擎和服务端引擎; 服务器引擎的架构与游戏类型和负载需求密切相关,架构本身又与技术基础组件(操作系统、开发语言、网络库、数据库、运维工具、运营后台、等)并且更加灵活。
根据题目要求,我猜测发帖者问的是通用的跨平台客户端引擎,参考对象有Unity、Unreal、CocosCreator等。首先提取游戏引擎的典型核心功能如下:
渲染:实现图片的显示
物理学:实现物理世界的抽象和表征
Audio:实现声音播放处理
网络:实现联网功能
游戏编程接口:游戏引擎提供的接口以API的形式暴露给开发者
支持集成开发环境(IDE):实现可视化场景编辑与组织、可视化物理编辑、可视化UI布局、资源使用等。
调试功能:为开发者提供便捷的方式测试调试游戏功能、优化性能。
打包发布功能:生成最终游戏exe、app、apk等可执行(可运行)文件
插件扩展功能:提供给高级开发者增强引擎自身功能的功能接口
其他功能:比如Unity有一个服务可以集成平台数据统计、自带视频广告等功能。
然后我们会一一简单描述一下实现方法,强调最好参考业界广泛验证的引擎,比如Unity; 如果想了解更多细节,可以先使用主流引擎。
1、渲染:为了跨平台,一般采用OpenGL等跨平台的图形标准库底层,基于底层库构建上层渲染框架,如sprites、GUI等、3D模型渲染、着色器扩展等。
2、物理:物理引擎对计算性能要求比较高游戏素材下载 免费,底层功能的测试需要花费很大的功夫,所以通常使用成熟的物理引擎,如Havok、PhysX、Bullet、cannon.js等。
3、音频:通常采用业界成熟的解决方案,例如开源的OpenAL、FMOD、以及HTML5平台本身的Audio功能。 一般来说,非音乐游戏中对音频功能的需求相对不复杂。 它们主要依靠专业软件提供音效文件(mp3、wma等)、解析游戏中的小文件、处理声音播放、调节音量等。
4、网络:提供网络功能pc游戏引擎,并按需为TCP、UDP、HTTP等协议提供封装好用的接口。 如果为了方便开发,能够处理好客户端和服务端通信的连接处理、错误提示、协议帧格式、序列化和反序列化方法,在此之上还可以提供进一步的规范,比如使用Protobuf作为协议格式。
5.游戏编程接口:这是提供给开发者的API的组织。 确定引擎提供开发者使用什么语言进行编程,如何使用图片、音视频资源、3D模型等,以及如何提供与游戏运行环境(电脑、手机)交互的接口等。
6、支持集成开发环境(IDE):简单易用的可视化开发工具,如拖拽布局、拖拽游戏资源的使用、代码编辑、集成调试和打包功能等。区域是游戏引擎开发工作量的大部分,涉及用户(游戏开发者)密集使用的交互界面,必须尽可能高效且易于使用。 一般来说2d素材,如果你不是特别有能力驾驭的话,最好使用现成的跨平台应用开发方案,比如使用Electron框架的CocosCreator。
7.调试功能:提供查看FPS、跟踪代码运行、Profile、网络信号模拟、分辨率模拟设置、硬件设备模拟(手机)预览游戏等,建议游戏运行时和编辑器使用相同或大致相同同一套渲染和资源接口(如Unity),从而减少调试和运行结果出现较大差异的可能性。
8.打包发布功能:简单处理即可生成对应平台的项目进行打包,如Android平台生成AndroidStudio项目,ios平台生成Xcode项目。 注意资源和代码库的引用关系、配置文件的有效性和一致性、编译。 速度等
9、插件扩展功能:人力因时间有限,引擎功能不必一开始就很大、很全面。 引擎可以设计成易于扩展和修改的结构,并提供相应的接口并暴露给开发者,以便他们共同迭代和改进游戏。 引擎。
10、其他功能:该区域可以根据自己引擎的特点进行添加。 比如现在几大引擎都提供了官方继承的资源库、数据统计等服务接口。
实现一个真正可用的引擎是一个系统而复杂的工程,有很多脏活累活需要考虑。 平台兼容性、性能、效果、易用性、健壮性、文档编写都需要付出巨大的努力;
如果您个人有兴趣,可以根据以上内容延伸询问相关内容,欢迎您随时交流。
如果你想做娱乐引擎,可以随意玩。 技术就像诗歌,玩得越多,就越着迷;
如果你想创造一个伟大的引擎,请放开我的膝盖。
如今游戏中使用的硬件接口基本上有两种,一种是 DirectX,另一种是 OpenGL。 OpenGL只是一个2D3D图形接口,没有其他功能。 DirectX是一整套多媒体接口,包括2D3D图像、视频、音频和网络。 、输入设备等,专门为游戏制作而开发的。 两者都在快速发展pc游戏引擎,新功能不断添加并在硬件中实现。 游戏引擎的任务就是封装这些底层硬件加速接口的细节,为游戏设计者提供完整的接口来实现游戏所需的功能。 如果你想写一个引擎,你首先必须知道引擎是什么样子的。 您可以参考已发布的引擎,从简单的非商业引擎到强大且复杂的商业引擎。 推荐大家看看著名的2D引擎HGE。 它速度非常快,易于使用,并且源代码包含在引擎中。
文章来源:https://zhidao.baidu.com/question/209502859305539725.html