首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Egret Pro 1.0 重磅发布:不仅仅是一款3D编辑器

各位开发者好!

白鹭引擎团队将于今天(2019年9月12日)正式发布 EgretPro 1.0 版本。在2019年3月份,白鹭引擎团队已经发布了 EgretPro 公开测试版,测试版提供了 Egret3D 渲染引擎以及基本的3D编辑器。如下图所示:

与之前发布的内部测试版本(0.8.x)与公开测试版(0.9.x)相比,1.0 版本作为正式版本,与公开测试版本相比,EgretPro 0.9 具备如下新特性:

1.更加完善的编辑器

与测试版本相比,EgretPro 为3D编辑器加入了十余项新特性和数百处用户体验优化,如:

1.1 新特性:更完善的3D编辑功能

1.0正式版本添加了许多改善3D编辑体验的功能,诸如:

A、光照方向;

B、世界坐标系导航器;

C、当前相机的渲染视口。

1.2 新特性:编辑器扩展

EgretPro 1.0 支持两种编辑器扩展,分别是命令调用式扩展和视图编辑式扩展,编辑器扩展的架构设计如下:

A、每个扩展都运行在独立进程中,单个扩展卡死不影响编辑器性能;

B、扩展不允许直接访问DOM 和 Runtime ,后续必须访问 Runtime的扩展不在本次的迭代目标中;

C、通过扩展API和扩展点,允许扩展命令式的在EgretPro中操作UI;

D、所有扩展延迟加载,并通过package.json 中配置的扩展点在特定时刻激活。

目前这个编辑器版本新加入的许多特性(比如导入资源、行为树编辑等)均依赖于该扩展能力。通过这种扩展方式,编辑器自身的性能得到了进一步的提升。后续我们会进一步梳理扩展机制,并在后续版本中允许开发者添加自己的扩展

1.3 新特性:模型资源导入

Egret Pro 1.0 可以直接将模型等资源直接导入到 EgretPro 中,这为开发者提供了除了 Unity3D 导出插件之外的更好的选择。其功能示例如下:

在后续的规划中,我们计划将Unity3D 导出插件中的诸多功能逐步在 EgretPro 中实现,最终达到开发者无需安装 Unity3D 就可以直接开发一款3D游戏。但 Unity3D 导出插件我们仍然会继续持续维护,以方便 Unity3D 游戏开发团队充分利用现有的资源开发 H5 3D 游戏。

1.4 新特性:引擎管理器

Egret Pro 1.0 在启动页添加了引擎管理器。从设计上,EgretPro的编辑器和引擎是解耦的,同一版本的编辑器将支持打开多个版本的引擎。

Egret Pro 1.0 编辑器支持打开 1.3.0版本引擎(即本次发布的版本)以及后续逐步推送的 1.3.x 版本引擎。

1.5 新特性:支持2D编辑

Egret Pro 1.0 不再仅仅是一款3D编辑器,目前也支持简单的2D编辑。

对于开发者而言,如果您的游戏以3D为主,2D只是一些简单的UI,我们建议您使用最新的2D编辑功能来为您的游戏添加2D特性,如果您的游戏仍然是以大量UI为主,我们建议您继续使用 Egret5.x中的eui模块以及 EUI Editor 进行UI编辑,并通过引擎中的 Stage2D适配器将其适配到 EgretPro 中。

在后续版本中,我们会参考eui 的接口规范重新在 EgretPro 中实现一套新的UI系统及UI编辑功能。EUI Editor 会被逐步废弃,为了对现有仍然在使用 EUI Editor 开发者负责,我们将在一个月后将 EUI Editor 遵循GPL协议开源。

一句话简述BSD 协议:如果你用开源的 EUI Editor 源码构建了一个属于自己的编辑器,你自己的编辑器不必开源,但是必须在版权声明中注明你使用了 EUI Editor。

1.6 用户体验优化

自EgretPro 0.9 版本至今我们优化了数百处用户体验问题,由于完整列表过长,我们在此列出一些效果比较显著的改动。

A、预制体

a、优化创建预制体流程;

b、将创建预制体加入history;

c、优化解除预制体的用户体验;

d、处于预制体编辑模式时,不可克隆/删除预制体的根对象,不可将实体移动到root之外。

B、资源库

a、资源库右键文件打开目录,定位到文件本身而不是他的父级目录;

b、修复所有打开文件夹的窗口有概率出现不置顶的问题;

c、完善资源库的筛选功能。

C、属性面板

a、组件列表重新分类,通过类的完全限定名来分类;

b、属性面板鼠标控制的input组件,数据的提交按照鼠标的donw和up作为一个周期;

c、修复属性面板修改属性后有时无法撤销的问题。

D、层级树

a、层级树上的节点可以直接修改名称;

b、层级树面板复制粘贴节点,自动命名。

E、控制台

文本允许复制粘贴。

F、新建与打开项目

a、打开项目选择项目目录,而不是egretpro.json 文件;

b、模板项目添加.gitignore文件。

2. 编译器

除了带来功能更强、更易用的编辑器之外,编译器也得到了很大的升级,具体特性包括:

A、编译器和引擎运行时代码绑定,统一内置到编辑器中,不再需要开发者通过npm 手动安装编译器;

B、编译器会自动编译用户项目src 文件夹下的全部代码,无需手动引入,这对在编辑器中创建一个新组件的操作体验有很大提升;

C、编译器支持发布为三种运行模式,分别是:客户端模式、服务器模式、编辑器模式,其中编辑器模式是内部调用方式,开发者可以将自己的游戏发布为客户端和服务器模式,更多关于该特性介绍,请参考下一小节:对战引擎。

3. 对战引擎

如标题所说,EgretPro 不仅仅是一款3D编辑器,更是一款完整的HTML5游戏解决方案。由于轻量化、社交化的特点,HTML5游戏技术被广泛的应用于休闲对战类游戏中,白鹭引擎团队顺势推出一套完整的对战引擎,并作为一等公民集成至 EgretPro 中。

对于一款对战游戏而言,最重要的机制就是同步方式,市面上目前有两种常见的同步方式,分别是帧同步和状态同步,他们的实现原理分别是:

A、状态同步的实现方式:所有计算都在服务器端完成,客户端作为“播放器”播放服务器端的计算结果;

B、帧同步的实现方式:所有计算在客户端完成,服务器只作为用户操作的转发中转。

他们的优缺点如下所示:

从上述对比中可以看出,状态同步由于所有逻辑都在服务器端计算,在安全性、反外挂方面有决定性的优势,但是最大的缺点在于状态同步这种开发模式大大的增加了客户端和服务器端的沟通成本,进而导致开发效率很低。

在EgretPro 的对战服务中,我们首先支持状态同步方式,并从引擎底层架构级别进行设计,大幅改进了客户端/服务器这种传统的开发模型,具体原理如下所示:

这种方式与传统的状态同步开发方法相对比,具体优势如下:

A、不需要专职的服务器端玩法开发工程师;

B、不需要多名开发进行联调C/S 协议;

C、极低成本将游戏转化为单机玩法(如新手关训练模式修改为单机玩法,降低服务器压力);

D、大量客户端/服务器共同代码可复用;

E、服务器端可视化调试。

综上所述,经过内测开发者的反馈,采用这种模式开发,开发效率普遍提高一倍(因为大幅降低了联调开销),人员成本可以降低1/3(不再需要专职服务器玩法开发工程师),最终在游戏玩法方面的研发成本可以节约 60% 以上。

综上所述,如果您希望开发一款对战类游戏的话(特别是3D对战游戏),EgretPro 将是您的最佳选择。

版权信息

演示中的部分3D资源来自于合作设计师,其个人设计博客站为:

https://www.artstation.com/artwork/N5ElZz;

演示中的部分3D资源来源于3D渲染库 three.js 的官方示例。项目地址为:

https://github.com/mrdoob/three.js;

Egret Pro Playground 基于开源项目demosify , demosify是由360奇舞团月影和刘冰晶开发的示例快速搭建框架,通过一些简单的配置即可快速生成demo示例页面,页面多端自适应,可定制化主题,方便框架开发者书写框架示例代码,使用者可以在页面内修改代码实时看到展现效果,项目地址为:http://demosify.com。

用户反馈

在使用Egret Pro的过程中,您可以在https://gitter.im/egret-pro/community中反馈您遇到的问题。

后续计划

2019年9月底:

发布Egret Pro 1.1,包含如下特性:

A、进一步完善3D 编辑;

B、进一步优化对战引擎的功能和开发体验;

C、可视化的多平台发布面板;

D、开发者反馈的用户体验问题。

开源Egret Pro引擎源代码。

2019年10月:

开源Egret EUI Editor;

发布EgretPro 1.2,包含如下特性:

A、更完善的2D 编辑;

B、更完善的资源库管理功能。

Egret Pro往日更新参考:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190912A0NDR200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券