Skip to content

Releases: Daylily-Zeleen/GD-EOS

GD-EOS v0.5.1

01 May 20:31

Choose a tag to compare

This is an emergency bugfix version.

这是一个紧急修复版本。


Only about "aoolu" build: fix EOSEpicAccountId/EOSProductUserID.get_local() is not equal to the field "local_user_id" with get from apis callback info.

Hop this plugin can help you and consider to buy me a coffee please.


仅影响 “aoolu” 构建版本: 修复 EOSEpicAccountId/EOSProductUserID.get_local() 与其他回调信息中的 "local_user_id" 字段不相等的问题。

希望这个插件能够帮到你,插件开发不易,也希望能为我充电.


Full Changelog: v0.5.0...v0.5.1

GD-EOS v0.5.0

29 Apr 21:30

Choose a tag to compare

GD-EOS v0.5.0 Pre-release
Pre-release

This release has break changes. Please use as appropriate.

这个发布版有破坏性变化,请酌情使用。


The pre-compiled plugin in this release uses EOS SDK version 1.19.0.7 (it is not support 32bit windows / android).

If you wish to support 32-bit systems, please use EOS SDK 1.18.1.2 or an earlier version for compilation.

Breaking Changes:

  1. All interfaces that previously returned XXXPackedResult with only result_code and a string type field now directly return String, and the corresponding PackedResult classes are no longer generated (e.g., to_string()).
  2. Removed is_equal() method from classes. Handle types can now be compared directly (the example project has been updated accordingly).
  3. Added SDK version check at compile time (EOS SDK after 1.18.1.2 does not support 32-bit Windows/Android).

Major Optimizations:

  1. Attempt to locate xaudio2_9.dll in the file system.
  2. Added EOSNotification class to handle AddNotifyXXX related interfaces, eliminating the need for RemoveNotifyXXX.
  3. Generated missing constant documentation descriptions.
  4. Maintain references to handle class wrapper objects inheriting from RefCounted when emitting handle signals (addressing signal thread safety issues introduced in Godot 4.5).
  5. Refactored code generator into multiple files for improved maintainability.
  6. Removed extensive hardcoding, refactored file parsing logic, and corrected type conversions.
  7. Significantly optimized parsing and generation performance of the code generator.
  8. Ensured all deprecated objects are no longer generated.
  9. Conversion between EOS unions and Godot Variants is now generated by the code generator.
  10. Improved error checking output in the code generator.
  11. Optimized CI by splitting into multiple files for easier maintenance.

Hop this plugin can help you and consider to buy me a coffee please.


该发布版预编译的插件使用的 EOS SDK 版本为 1.19.0.7 (不支持32位的windows与Android平台)

如果希望支持32位系统,请使用 EOS SDK 1.18.1.2 或更早的版本进行编译。

破坏性变化:

  1. 所有原来返回 XXXPackedResult 中只有 result_code 与 字符串类型 两个字段的接口,均改为直接返回 String, 且不再生成对应的 PackedResult 类(如 to_string())。
  2. 类移除 is_equal() 方法,现在可将获得的句柄类型直接进行比较(示例工程也相应做了修改)。
  3. 编译时检查sdk版本(EOS SDK 1.18.1.2 之后不支持 32 位 windows/android)。

主要优化:

  1. 尝试在文件系统中查询 xaudio2_9.dll。
  2. 添加 EOSNotification 类处理 AddNotifyXXX 相关接口, 不再需要 RemoveNotifyXXX
  3. 生成缺失的常量文档描述。
  4. 发送句柄信号时保持对继承自RefCounted 的句柄类包装对象的引用(Godot4.5引入的信号线程安全问题)。
  5. 重构代码生成器,分为多文件以提高可维护性。
  6. 移除大量硬编码,重构文件解析逻辑,类型转换修正。
  7. 代码生成器的解析与生成性能大幅优化。
  8. 确保所有弃用对象不再生成。
  9. EOS 联合体与 Godot Variant 之间的转换由代码生成器生成。
  10. 优化代码生成器的错误检查输出。
  11. 优化 CI,拆分多文件方便维护。

希望这个插件能够帮到你,插件开发不易,也希望能为我充电.


What's Changed by pull requests.

Full Changelog: v0.4.0...v0.5.0

GD-EOS v0.4.0

07 Apr 09:14

Choose a tag to compare

This release has break changes. Please use as appropriate.
这个发布版有破坏性变化,请酌情使用。


Change:

  1. If return EOS_EResult and an object type of "Out" argument, let the generated api return the wrapper object directly instead of EOSPackedResult. If return null, please use EOS.get_last_error_code() to check the error.
  2. Remove ESODataClassOptions and redundant members of EOSDataClass.
  3. Use EOSDataClass as base class of EOSPackedResult.

Optimize:

  1. Optimize document generating for improving readability:
    • Remove redundant empty lines.
    • Reduce insert new line.
    • Change callback arguments names to "snake_case".

Hop this plugin can help you and consider to buy me a coffee please.


变化:

  1. 不再为返回EOS_EResult 与 返回单个 对象类型参数的接口生成相应的EOSPackedResult,生成的接口改为直接返回相应的包装对象。如果返回null,请通过 EOS.get_last_error_code() 检查错误信息。
  2. 移除ESODataClassOptions以及EOSDataClass中的不必要成员。
  3. EOSDataClass作为EOSPackedResult的基类。

优化:

  1. 优化文档生成以方便阅读:
    • 移除不必要的空行
    • 减少换行
    • 将回调参数说明转为 "snake_case"

希望这个插件能够帮到你,插件开发不易,也希望能为我充电.


Full Changelog: v0.3.1...v0.4.0

GD-EOS v0.3.1

13 Mar 05:37

Choose a tag to compare

New:

  1. Add IOS support.

Change:

  1. Do not generate reserved (should not be called by users) APIs of EOS SDK.
  2. Rename "gdeos.gdextension" to "gd-eos.gdextension".

Optimize:

  1. (CI) Add IOS build.
  2. (CI) Use ubantu-latest instead of specific version.

Fix:

  1. Fix version number updation.

Hop this plugin can help you and consider to buy me a coffee please.


新的东西

  1. 添加 IOS 支持。

变化:

  1. 不再生成 EOS SDK 所保留(不能被用户调用)的接口。
  2. 将 "gdeos.gdextension" 重命名为 "gd-eos.gdextension"。

优化:

  1. (CI) 添加 IOS 编译。
  2. (CI) 不再指定 ubantu 的版本号。

修复

  1. 修复版本号的更新

希望这个插件能够帮到你,插件开发不易,也希望能为我充电.


Full Changelog: v0.3.0...v0.3.1

GD-EOS v0.3.0 🎉

10 Feb 04:29

Choose a tag to compare

This is a version with some break changes and significant optimizations.
I strongly recommend using the latest version for new users.
For old users, if you don't have a widely explicitly use the return value types of the API and want to use the reference documentation in the editor, I also recommend using the latest version.

New:

  1. 🎉 Extract documents from EOS C SDK to generate editor help for this plugin.
    • NOTE: GENERATED DOCUMENTS JUST FOR REFERENCE ONLY!!
    • Need compile with godo-cpp 4.3-stable( or later) and use godot 4.3-stable( or later).
  2. Add flag to compile "AOOLU" version:
    AOOLE( Assume Only One Local User), to hide most local_user_id properties/ arguments by assuming that there have only one local user, please refer README for more details.

Update:

  1. Use godot-cpp 4.3 stable by default (you still can checkout 4.2 and compile with it by yourself).
  2. Update README.

Break change:
(Uniform naming) Add "EOS" prefix to the name of EOSPackedResult's subclass.

Fix:
Pass pure handle (EOS_AntiCheatCommon_ClientHandle) as int value between bindings and EOS SDK.

Optimize:

  1. Fix many typos.
  2. Refactor compile system, to skip generate bindings when cleaning.
  3. (CI) No longer keep separate artifacts for each platform/arch.
  4. (CI) Compile following version:
    • Without editor documents ( minimum godot version 4.2)
    • Without editor documents ( minimum godot version 4.2) + AOOLU
    • With editor documents ( minimum godot version 4.3)
    • With editor documents ( minimum godot version 4.3) + AOOLU
  5. Optimize the return string format of _to_string(), let them like native classes.

Hop this plugin can help you and consider to buy me a coffee please.


这是一个有着一些破坏性变化和重大优化的版本。
对于新用户来说我强烈推荐使用最新版本。
对于老用户来说如果你没有广泛的显式写出API的返回值类型,并且希望在编辑器中查看参考文档,我也建议使用最新版本。

新的东西

  1. 🎉从 EOS C SDK 中提取文档用于生成该插件在编辑器中的帮助文档。
    • 注意:生成的文档仅供参考!!
    • 需要与godo-cpp 4.3-stable(或更新的版本)一起编译并使用godot 4.3-stable(或更新的版本)。
  2. 添加标志用于编译“AOOLU”版本:
    AOOLU( Assume Only One Local User),通过假定只使用一个本地用户来隐藏大多数名为local_user_id的属性/参数,详情请查看自述文件

更新

  1. 默认使用 godot-cpp 4.3 stable(你仍然可以自行检出godot-cpp 的4.2的分支进行编译)。
  2. 更新自述文件。

破坏性变化
(统一命名)为EOSPackedResult的子类命名添加“EOS”前缀。

修复

  1. 修复大量拼写错误。
  2. 重构构建系统,在清理时跳过绑定生成阶段。
  3. (CI)不再保留不同平台、架构的artifact。
  4. (CI)同时编译以下版本
    • 不带编辑器文档(适用于godot 4.2 以上)
    • 不带编辑器文档(适用于godot 4.2 以上)+ AOOLU
    • 带编辑器文档(适用于godot 4.3 以上)
    • 带编辑器文档(适用于godot 4.3 以上)+ AOOLU
  5. 优化_to_string()返回值的格式,使它们更像使原生的类型。

希望这个插件能够帮到你,插件开发不易,也希望能为我充电.


Full Changelog: v0.2.0...v0.3.0

GD-EOS v0.2.0

26 Dec 03:57

Choose a tag to compare

Update dependencies:

  1. Use EOS SDK 1.16.4 to compile with precompiled libraries.
  2. Update godot-cpp.

Fix:

  1. Fix crash when destructing EOSMultiplayerPeer.
  2. Fix some errors of demo project.

Optimizes:

  1. Let code generator fit 3.9 or later versions of Python.
  2. Some changes of code generator to fit latest EOS SDK 1.16.4.
  3. Optimize and add tutorial video links to README files.
  4. Strip ".dev" keyword of compiled libraries' name (convenient for development).

Hop this plugin can help you and consider to buy me a coffee please.


更新依赖:

  1. 使用 EOS SDK 1.16.4 来编译预编译的二进制库。
  2. 更新 godot-cpp。

修复:

  1. 修复析构EOSMultiplayerPeer时发生崩溃。
  2. 修复一些示例项目中的错误。

优化:

  1. 调整代码生成器使其能够兼容 Python3.9 或更新的版本。
  2. 调整代码生成器以兼容最新的 EOS SDK 1.16.4。
  3. 优化README文件,并向其添加教学视频链接。
  4. 去除编译后库文件名称中的".dev"关键词,方便开发。

希望这个插件能够帮到你,插件开发不易,也希望能为我充电.


Full Changelog: v0.1.7...v0.2.0

GD-EOS v0.1.7

06 Jun 17:08

Choose a tag to compare

Fix compile system: Ensure android build can link to the correct lib EOSSDK.


Full Changelog: v0.1.6...v0.1.7

GD-EOS v0.1.6

24 May 05:16

Choose a tag to compare

  1. Fix crash when exiting.
  2. Add "exit" button to demo.

Full Changelog: v0.1.5...v0.1.6

GD-EOS v0.1.5

05 May 15:35

Choose a tag to compare

Updata:

  1. Update EOS SDK to 1.16.3 (🤖exporting for Android have some change, please refer to Readme.md).

Fix:

  1. Fix the return value of EOSMultiplayerPeer::add_mesh_peer().

Full Changelog: v0.1.4...v0.1.5

GD-EOS v0.1.4

23 Apr 09:51

Choose a tag to compare

Fix:

  1. String type conversions.
  2. Fix double free in file transferation's callbacks.

Optimization:

  1. Special handling for file transferation.
  2. Add out_data_buffer to EOSPlayerDataStorage_WriteFileDataCallbackInfo instead of callback output argument (this is due to GDExtension limitation).
  3. Optimize the generate logic of EOS struct's classes, get rid of useless union type fields, clearify the typed array binding.
  4. Add find_user_id and find_unique_id to EOSMultiplayerPeer, for instead of get_peer_id and get_user_id to get "peer_id" or "user_id" if you don't need to distinguish between local and remote.

Other:

  1. Add more known issues to readme (due to EOS self or GDExtension limitation).
  2. Begin this release, I will only upload the all-platforms pack, to avoid users download release pack only and can't work correctly in editor.
    If you need seperated versions, please goto github actions page, or compile by yourself.

Full Changelog: v0.1.3...v0.1.4