【RGU】RGSS全系跨平台运行时 Windows/Linux
https://rpg.blue/data/attachment/forum/202403/01/221855vfcugafmfc4u4bgc.pngRGU Player Core项目概述
RGU是一款兼容RGSS 1/2/3,使用SDL作为底层,OpenGL ES(2.0) 图像标准编写渲染部分的异步多线程2D游戏引擎。旨在提供兼容RGSS的同时提供跨平台与性能提升支持。本项目使用BSD-3协议开源,使用请遵守协议内容。
项目结构
运行结构为多线程架构,程序内存在多个线程worker,每个worker都有任务投递的接口,引擎将事件处理,逻辑渲染处理,音频播放处理,视频解码处理等分解为多个线程。
源码结构分为逻辑实现,图像渲染实现,基础库实现,封装组件实现与脚本引擎绑定实现,
整个程序的入口在app文件夹中
content文件夹中存放负责组织引擎全部内容(图像,输入,音频)功能的代码,是引擎的核心实现
components中存放引擎中的某些特定组件实现(如IO系统,fps计数器等)
base文件夹中存放跨平台的基础代码
binding文件夹中存放与cruby,mruby等第三方解释器进行绑定的代码
buildtools中存放所有的python自动化代码
renderer文件夹存放了GLES2.0渲染器的初级封装代码
third_party中为使用的第三方代码库,base/third_party中也有部分第三方库
ui文件夹存放了SDL窗口的封装代码,用于与input模块进行配合操作
游戏的图像渲染采用OpenGL ES 2.0标准以获得最大兼容,
用户可以选择使用ANGLE运行其他渲染器后端(D3D9 D3D11 Vulkan Metal 软渲染等)
引擎的输入处理基于SDL的事件处理
引擎的音频处理基于SoLoud库,音频数据通过soloud核心处理后输出到SDL的音频设备接口
引擎的脚本处理部分使用了Ruby 3.2.2的解释器
一些截图
https://rpg.blue/data/attachment/forum/202403/01/222634s2lmweowvf04qo02.pnghttps://rpg.blue/data/attachment/forum/202403/01/222634siezeo7kummoikty.png
https://rpg.blue/data/attachment/forum/202403/01/222635qkn74ndtnbobd297.pnghttps://rpg.blue/data/attachment/forum/202403/01/222635zwu7yrn3uqzw9xxu.png
https://rpg.blue/data/attachment/forum/202403/06/223102fw9owssgv4w154fv.png
写在后面
原先的版本因为个人混乱代码管理导致源码无法发出,同时最初的目标移植到其他平台也变得十分困难,鉴于4年前的版本代码结构已经及其混乱,
便有了重写这个项目的想法,经过半年的编写与调试,也终于是到了能基本平替原版RGSS的程度
项目的详情可以查看Github开源仓库,这个项目也算是为RGSS小小的舔砖加瓦了,
目前项目只由我一人维护编写,如果你有想法可以fork自己分支(个人不会用Git之类管理工具
目前这个程序一些尚未完成的部分:
Bitmap的blur
F1设置菜单
Win32API
效率极低需要重写的Audio
目前已经加入的扩展功能:
Bitmap像素处理
Viewport离屏渲染
Geometry批量绘制三角形
Shader自定义着色器
Input全键盘
Mouse鼠标支持
后续的计划 添加多渲染后端
添加一些扩展(L2D一类,视频解码,网络库,steamapi)
和原先的不同
从核心到绑定全部重写,也修复和优化了不少问题,
更重要的是把原先和msvc绑死的工程改成了cmake构建
目前的不足
由于OpenGL的性能限制,我个人只能优化到2W精灵在48帧左右
这里推荐性能党去用guoxiaomi大佬的RGM(性能是真强,2W精灵可以跑满60帧
同时由于需要跨平台,在功能上做出了一定妥协(比如砍掉了Win32API
适用人群
主用RGSS系的制作者,受制于原版的性能和功能急需扩展
RGSS系统的研究者,或许你可以以此为基础开发更好的引擎?
引擎附赠功能
1. 图块大小破限 RGSS 1/2/3 均支持(图中为48x48)
https://rpg.blue/data/attachment/forum/202403/01/225625riojiintc98b9a7o.png
2. 分辨率破限:RGSS 1/2/3 均支持,没有设置上限
3. 帧率破限:默认40/60,没有设置上限
3. RGSS3功能下放:XP VX可以使用RGSS3的功能
4. 数据打包:读取zip压缩包数据(支持audio)且后续会推出特制加密方式
5. 可调边框窗口:可以在游戏运行中直接用鼠标拖拽改变游戏窗口大小(参考图一,注意最大化按钮不是灰色)
程序获取
网盘:
https://admenri.lanzout.com/b0d6tmbbi 密码:cbx6
开源仓库:
https://github.com/Admenri/rguplayer
本帖来自P1论坛作者Admenri,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=495686若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页:
[1]