Egretia Pro is officially released!

Egretia Io
Egretia
Published in
5 min readSep 4, 2020

As one of our main products, Egretia Pro is designed to provide the developers with 3D rendering engine and simple 3D editor.

1.The Neat and exquisite UI design

Egretia Pro allows developers to experience a brand-new interface as follows:

2.The Complete editor

2.1 New Feature: 3D editor

Egretia Pro has such various features on improving 3D editor as the light direction, Light direction, the world coordinate system navigator and the rendering viewport of the current camera.

2.2 New Feature: Editor extension

Egretia Pro supports both command extension and view editing extension. The architecture design of editor extension is as follows:

A. Each extension runs in an independent process, and a single extension stuck does not affect the editor performance;

B. Extensions are not allowed to directly access DOM and Runtime, and subsequent extensions that must access Runtime are not in this iteration target;

C. The extended imperative can be allowed to operate UI in Egretia Pro through extended APIs and extension points;

D. All extensions are loaded lazily and activated at specific moments through the extension points configured in package.json.

2.3 New feature: Import model resources

Models and other resources can be directly imported into Egretia Pro, which provides developers with a better choice beyond Unity3D export plug-ins. Examples of its functions are as follows:

In the follow-up planning, various functions in the Unity3D export plug-in will be applied to Egretia Pro and eventually developers can directly develop a 3D game without installing Unity3D. However, we will continue to maintain the Unity3D export plugin to facilitate the Unity3D game development team to make full use of existing resources to develop H5 3D games.

2.4 New Feature: Engine manger

Add engine manager to the startup page. In terms of design, the editor and engine of Egretia Pro are decoupled, and the same version of the editor will support multiple versions of the engine.

2.5 New Feature: Support 2D editing

Egretia Pro is not only a 3D editor, but also supports simple 2D editing.

For developers, if you are creating a 3D game and only use 2D for simple UI, we recommend that you use the latest 2D editing for your game creation. If your game is still based on UI mostly, it’s recommended that you continue to use the eui module and EUI Editor for UI editing, and then adapt it to Egretia Pro through the Stage2D adapter in the engine.

3. Compiler

The features of powerful compiler include:

A. Compiler and engine runtime code are binding and built into the editor so that developers no longer manually install the compiler through npm;

B. The compiler will automatically compile all the codes in the src folder of the user project, without manual import, which greatly improves the operating experience of creating a new component in the editor;

C. The compiler supports three operating modes of publishing, namely,client mode, server mode and editor mode. The editor mode is an internal call method. Developers can launch their games as client and server modes. For more information about this feature, please refer to the next section: Battle Engine.

4. Battle engine

As mentioned, Egretia Pro is not only a 3D editor, but also a complete HTML5 game solution. Due to its lightweight and social characteristics, HTML5 game technology is widely used in casual battle games. In such circumstances, Egretia launch a complete battle engine and integrated it into Egretia Pro as a first-class citizen.

For a battle game, the most important mechanism is the synchronization method. There are currently two common synchronization methods on the market, frame synchronization and state synchronization. Their respective implementation principles are:

A. The realization of state synchronization: all calculations are completed on the server side, and the client side, like a “player”, shows the calculation results on the server side;

B. The realization of frame synchronization: all calculations are done on the client side, and the server is only used as a forwarding relay for user operations.

Their advantages and disadvantages are as follows:

It shows that state synchronization has decisive advantages in terms of security and anti-plugin because all logic is calculated on the server side, but the biggest disadvantage is that its development model greatly increases the client and server Communication costs at the end, which in turn leads to low efficiency of development.

In Egretia Pro’s battle service, we first support the state synchronization method, and design from the engine’s underlying architecture level to greatly improve the traditional client/server development model. The specific principles are as follows:

Compared with the traditional one, this method has the following specific advantages:

A. No need for a full-time server-side gameplay development engineer;

B. There is no need for multiple developers to jointly debug the C/S agreement;

C. Convert the game to a stand-alone game at a very low cost (for example, the novice training mode is modified to a stand-alone game to reduce server pressure);

D. Many common codes on client side or server side can be reused;

E. Server-side visual debugging.

To sum up, according to the feedback of internal test developers, it benefits from this model. The development efficiency is generally doubled (because the joint debugging cost is greatly reduced), and the personnel cost can be reduced by 1/3 (the full-time server game development engineer is no longer required), the final research and development cost in gameplay can save more than 60%.

5. Other Features

In addition to the above ones, many new functions have been added to the engine’s runtime, including:

1. GPU-based skeletal animation rendering

2. Custom Shader support

3. Better Box2D support

4. A more complete battle module

Stay tuned for updates from the Egretia official channels below so that you can be involved in all the exciting things to come!

Egretia Telegram: https://t.me/Egretia

Egretia Twitter: https://twitter.com/Egretia_io

Egretia Website: https://egretia.io/

--

--