如何开发游戏引擎_如何开发游戏引擎?

5个月前 (03-12 00:50)阅读3回复2最佳爬楼位置
wojiukan
wojiukan
  • 管理员
  • 注册排名1
  • 经验值2065230
  • 级别管理员
  • 主题413046
  • 回复0
楼主

如何开发游戏引擎?

嗯,随着游戏引擎的发展,它已经成为一个产业化需求泛化的软件系统。如果细分,根据不同的细分维度会有很多不同的划分,如物理引擎、渲染引擎、脚本引擎等。根据平台,可分为PC游戏引擎、HTML5游戏引擎、移动游戏引擎等。,并根据渲染类别分为2D引擎、3D引擎等。

另一个例子是在线游戏,分为客户端引擎和服务器引擎;服务器引擎的架构游戏类型和负载需求密切相关。架构本身与技术基本组件选择(操作系统、开发语言、网络库、数据库、操作维护工具、操作背景等)密切相关,相对灵活。

根据问题要求,猜测楼主问的是通用跨平台客户端引擎,参考对象是Unity,Unreal,cocoscreator等。首先提取游戏引擎的典型核心功能如下:

  1. 渲染:实现图片的显示

  2. 物理:实现物理世界的抽象和表现

  3. 音频:实现声音的播放处理

  4. 网络:实现网络功能

  5. 游戏编程界面:以API的形式将游戏引擎提供的界面暴露给开发者

  6. 配套综合开发环境(IDE):实现可视化场景编辑、组织、物理编辑、UI布局、资源使用等

  7. 调试功能:为开发者测试游戏功能和debug优化性能提供方便的方法。

  8. 包装发布功能:exe生成最终游戏,app,apk等可执行(可操作)文件

  9. 插件扩展功能:为高级开发人员提供增强发动机自身功能的功能界面

  10. 其它功能:如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平台生成xcode工程,注重资源与代码库的引用关系,配置文件的有效性、一致性、编译速度等。

  • 9.插件扩展功能:人力因时而穷,发动机功能一开始不需要强制大而完整。整个发动机可以设计成一个易于扩展和修改的结构,并向开发人员提供相应的接口,以迭代和改进游戏发动机。

  • 10.其他功能:可根据自己的引擎特性添加此部分。例如,几个主流引擎都有服务界面,如提供官方继承的资源商店、数据统计等。

实现真正可用的引擎是一个系统而复杂的项目,有很多肮脏的工作需要考虑,平台兼容性、性能、效果、易用性、鲁棒、文档编写……需要大量的努力;

假如是个人兴趣所在,可根据上述内容再次扩展查询相关内容,也欢迎随时交流。

如果你想成为一个娱乐引擎,你可以随意玩。技术如诗,越滚越痴;

如果你想创造一个伟大的引擎,请接受我的膝盖。

如何开发游戏引擎?

嗯,随着游戏引擎的发展,它已经成为一个产业化需求泛化的软件系统。如果细分,根据不同的细分维度会有很多不同的划分,如物理引擎、渲染引擎、脚本引擎等。根据平台,可分为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平台生成xcode工程,注重资源与代码库的引用关系,配置文件的有效性、一致性、编译速度等。

9.插件扩展功能:人力因时而穷,发动机功能一开始不需要强制大而完整。整个发动机可以设计成一个易于扩展和修改的结构,并向开发人员提供相应的接口,以迭代和改进游戏发动机。

10.其他功能:可根据自己的引擎特性添加此部分。例如,几个主流引擎都有服务界面,如提供官方继承的资源商店、数据统计等。

实现真正可用的引擎是一个系统而复杂的项目,有很多肮脏的工作需要考虑,平台兼容性、性能、效果、易用性、鲁棒、文档编写……需要大量的努力;

个人兴趣理解的话,可以根据以上内容延伸查询相关内容,也欢迎随时交流。

如果你想成为一个娱乐引擎,你可以随意玩。技术如诗,越滚越痴;

如果你想创造一个伟大的引擎,请接受我的膝盖。

0
回帖

如何开发游戏引擎_如何开发游戏引擎? 相关回复(2)

临风听
临风听
沙发
开发游戏引擎需技术精湛,创新驱动是关键。
话唠7天前 (07-21 10:11)回复00
浅笑颜
浅笑颜
2楼
如何开发游戏引擎是一本值得一读的指南,它详细介绍了从零开始构建一个完整的、高效的现代3D渲染引擎所需的技巧和知识,这对于有志于投身游戏的开发者来说至关重要且实用性强!
话唠7天前 (07-21 10:13)回复00
取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息