Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[改造] 引擎现代化改造 - 更新清单 #14

Open
Admenri opened this issue Jun 30, 2024 · 3 comments
Open

[改造] 引擎现代化改造 - 更新清单 #14

Admenri opened this issue Jun 30, 2024 · 3 comments

Comments

@Admenri
Copy link
Owner

Admenri commented Jun 30, 2024

The Universal Ruby Game Engine 现代化改造列表:
2024.7.24拟定

  1. 更新全新设置读写机制,包括:
    放弃读取ini,使用json读取配置,
    自动检查RGSS版本:通过检查是否含有文件:Data/Scripts.rvdata (2)

  2. 对content层导出类(Sprite Plane等)解耦,
    放弃内置的GLES 3.0渲染器,改用第三方图形接口,
    全面翻新渲染线程,改用现代图形API规范实现图像部分:
    内置shader由GLSL ES标准转换为类似GLSL的语言
    由GLES通过ANGLE转译到D3D11,Vulkan后端
    转向非转译模式的D3D11,D3D12,Vulkan后端。
    在移动端支持非转译的Vulkan后端

导出功能变化:
需要提供批量绘制几何图形的类Geometry
需要重新设计Shader类以适应现代图形API的设计

  1. (待定)放弃使用SoLoud库作为音频部分核心解码器,
    使用OpenAL + stb, dr库等实现相同效果

  2. 通过Ruby 3.0引入的FiberScheduler实现BoostASIO库封装
    以达到支持异步IO的效果

  3. (待定)研究一种新型加密格式,需要散步在程序里的几个密钥解码
    用户可以通过为exe设置VMP加壳等方式实现强加密

  4. 绑定层提供一套常用的Win32API内置功能(ini读写,内存操作等)
    用于补齐Win32API跨平台需求

  5. 在改造完成图形API的基础上提供Spine2D的支持
    (待定)提供Native Live2D Cubism支持

  6. 将静态链接的Ruby库更改为动态链接
    以支持require 'xxx.so'的操作
    间接实现支持Ruby Gem库

  7. 将content层引入协程调度,协调event_loop和render过程
    用于将引擎的多线程架构协调为协程单线程运行模式来移植到web平台

@Admenri Admenri changed the title [改进] 抽象渲染接口并替换为现代图形API [改造] 现代化改造 Jul 2, 2024
@Admenri
Copy link
Owner Author

Admenri commented Jul 2, 2024

(待定)创建新的分支legacy用于继续维护RGU的旧版本,
同时设置主分支master为现代化改造分支

@Admenri Admenri changed the title [改造] 现代化改造 [改造] 引擎现代化改造 - 更新清单 Jul 13, 2024
@R-YaTian
Copy link

请问作者,关于第六点,有计划支持调用Windows动态库中的Api么,便于开发者使用自行开发的动态库进行win平台上的扩展

@Admenri
Copy link
Owner Author

Admenri commented Aug 22, 2024

请问作者,关于第六点,有计划支持调用Windows动态库中的Api么,便于开发者使用自行开发的动态库进行win平台上的扩展

不会提供完整win32api支持,但是会提供一些常用的api内置在绑定层

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants