设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 32859|回复: 89
打印 上一主题 下一主题

[原创发布] 【RGU】基于OpenGL&SDL2 RGSS 1/2/3 通用Runtime

[复制链接]

Lv4.逐梦者

梦石
5
星屑
2879
在线时间
433 小时
注册时间
2021-6-10
帖子
33
跳转到指定楼层
1
发表于 2021-7-24 22:07:10 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 Admenri 于 2024-3-1 23:09 编辑
关于RGU                                                                                                                 
Ruby Game Universal (RGU)是使用SDL2编写的原版RGSS 1/2/3 Player替代品,
借助OpenGL绘图的强大快速,与Ruby3.0的高效,可以使需要大量运算绘制的游戏性能得到很大提升,
同时RGU提供了部分与RGD功能兼容的API,如shader 全键盘 鼠标等,
同时由于丢掉了原版的Ruby1.9引擎,虽然Ruby3.0在兼容性方面略差,但在性能上仍有很大提升,
由于所有库均从源代码开始构建,所以RGU提供了原生的64位Runtime,
同时得益于SDL2的强大跨平台功能,后续将会推出其他平台移植版本。

项目思路来源:RGD   joiplay:https://joiplay.cyou/

2024.3.1补充
重写开源版本,此版本不再维护
https://rpg.blue/thread-495686-1-1.html

注意事项                                                                                                                 
由于使用SDL编写,为了跨平台考虑,删掉了读取注册表部分,
因此RTP需要手动设置或直接拷贝一份RTP数据

* 如果游戏标题等出现乱码请将ini转换为utf-8编码

本程序支持直接从zip或7z等直接读取数据(包括音频)

音频解码器支持:
MP3 √
OGG √
WAV ?

图像解码器支持:
JPEG √
PNG √
BMP √

runtime窗口可在运行时手动调节大小,或使用
Graphics.resize_window(w, h)

视频解码器支持:
VP8/VP9 + Vorbis(不支持Opus)
(实测支持1080P 60FPS 但并没什么用
播放视频时由于渲染器冲突所以会新建一个窗口播放,
可按ESC跳过

由于使用SDL库编写,字体将不再从系统字库读取,
需要附带额外字体文件(自行选择,文件名Default.ttf,自带微软雅黑)

扩展API方面已添加全套Fiddle和Zlib支持:
Fiddle::Pointer
Fiddle::Handle
Fiddle::Function
Fiddle::Closure
Zlib::Deflate
Zlib::Inflate



程序支持 XP VX VX Ace
默认自动通过Scripts的扩展名判断,
已开放RGSS3全部函数兼容RGSS1/2

截图展示                                                                                                                 





各种下载                                                                                                                 

示例游戏(很久没更新了):
https://admenri.lanzoui.com/b0d3cy7rc
密码:32x2

专用脚本(更新中):
https://admenri.lanzout.com/b0d3d1u8j
密码:gg83

主程序+帮助文档(2022.4.17更新):
https://admenri.lanzoui.com/b0d39qltc
密码:2m42

常见问题                                                                                                                 

Q: 我的程序无法打开并提示找不到OpenAL32.dll
A: 安装OpenAL(上方附带),注意不要直接把dll扔到System32

Q: 为什么打开游戏后感觉变快了很多,而且FPS可以到1000+
A: 启用显卡设置中的垂直同步(或者在脚本里写Graphics.vsync = false)

Q: 支持Windows XP吗
A: 实测不支持(SDL2问题,但其实凭XP性能已经带不起了)

Q: 为什么有时候会出现奇怪的BUG
A: 这个可能和我写的有关系,但并不排除显卡驱动本身BUG造成的影响,
所以可以更新显卡驱动试试

Q: Game.exe与Game_console.exe
A: 一个没有控制台一个有调试控制台,建议最终发布使用前者

Q: 32位与64位
A: 32位可以【稍微】用用Win32API
64位不行(


点评

太棒了!!  发表于 2022-2-10 20:15

评分

参与人数 16星屑 +600 梦石 +5 +15 收起 理由
zhzlzh + 1 <font style="vertical-align: inh
百里_飞柳 + 1 我很赞同
这是一个昵称9 + 1 精品文章
xiaohuangdi + 1 塞糖
rfvtgbzxc + 1 塞糖
KB.Driver + 1 坚实的行动派
sdgn + 1 精品文章
guoxiaomi + 1 tql
kirh_036 + 1 醋虾
hyrious + 1 精品文章

查看全部评分

基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]

Lv4.逐梦者

梦石
5
星屑
2879
在线时间
433 小时
注册时间
2021-6-10
帖子
33
2
 楼主| 发表于 2021-7-25 14:48:37 | 显示全部楼层
orochi2k 发表于 2021-7-25 14:44
实测了一下,发现了一个小问题。
对于经过默认加密后的游戏直接找不到脚本文件 ...

目前不支持读取加密文件
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
2879
在线时间
433 小时
注册时间
2021-6-10
帖子
33
3
 楼主| 发表于 2021-7-28 08:20:46 | 显示全部楼层
89444640 发表于 2021-7-28 07:52
范例游戏缺资源无法正常运行,我不熟悉XP以外的版本不知道应该导入哪些资源,有可能的话,一起打包吧……方 ...


一般直接写类变量会出现FrozenError
改成全局变量或暂时屏蔽即可

缺资源的话直接复制一份RTP覆盖即可,字体文件有默认的其实就可以了
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
2879
在线时间
433 小时
注册时间
2021-6-10
帖子
33
4
 楼主| 发表于 2021-7-29 18:00:23 | 显示全部楼层
张咚咚 发表于 2021-7-27 21:18
这也太强了吧
不知道综合性能和RGD相比怎么样呢。
突然想将工程迁移过来XD(不过想到工程 ...

精灵tone我测试和原版一致的a(也许显卡有点问题
水波特效毕竟是仿的,某些参数只能自己猜了,有点差异也正常(
大量精灵卡顿问题在新版修复了,在Game.ini里写上SyncToRefreshRate可大幅提升画面流畅度

点评

大佬YYDS!新加入的SyncToRefreshRate确实大幅提升了流畅度,不过有没有在游戏内开启/关闭它的方法呢?它和目前已经存在的Graphics.vsync并不相同  发表于 2021-7-30 22:24
SyncToRefreshRate 确实精灵过多不会在卡了,但是好像帧数和显示器的刷新率一致了,更改Graphics.frame_rate也不行  发表于 2021-7-30 10:18
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
2879
在线时间
433 小时
注册时间
2021-6-10
帖子
33
5
 楼主| 发表于 2021-11-20 08:52:08 | 显示全部楼层
这是一个昵称9 发表于 2021-11-9 20:04
地图到战斗精灵直接消失应该是graphics.freeze之后又进行画面渐变导致的,只freeze没问题
那个改变tilema ...

一般freeze后会保持freeze之前的画面,
执行渐变时使用的是freeze时的画面快照。
RGU中freeze时会获取当前快照画面且update会失效,
直到渐变结束前不会更新任何精灵,执行渐变时会更新一帧作为渐变目标(仅此一帧)
具体没有效果演示我也很难判断是哪个环节出问题了(
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
2879
在线时间
433 小时
注册时间
2021-6-10
帖子
33
6
 楼主| 发表于 2021-12-22 23:00:26 | 显示全部楼层
这是一个昵称9 发表于 2021-12-3 15:05
我发现如果中途把动画的bitmap dispose掉,之后再调用,bitmap可能会出错,不dispose就没事
而且减法合成的 ...

减法合成上与原版对比未发现较大差异(
图块人物消失的问题是我把tileset的viewport与spritte_character分开导致的
至于bitmap,dispose后会释放显存,所以会导致出错


基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
2879
在线时间
433 小时
注册时间
2021-6-10
帖子
33
7
 楼主| 发表于 2021-12-31 17:46:59 | 显示全部楼层
xiaohuangdi 发表于 2021-12-15 02:00
效率提升拉滿,完全不卡頓 好讚。
1.跟樓上反映的問題一樣,技能動畫圖層會出現上一個技能動畫的底層。
2. ...

因为RGU里图块是从下到上的顺序绘制的,这样方便一些遮挡的处理但我忘了桌子腿了()
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
2879
在线时间
433 小时
注册时间
2021-6-10
帖子
33
8
 楼主| 发表于 2022-1-16 23:04:13 | 显示全部楼层
张咚咚 发表于 2022-1-15 20:47
反馈一个从RGD兼容过来的问题

上面这段脚本是对一个类的实例进行存储读取。

color与tone我用的都是8字节的double,与rgd4字节会有差异
Bitmap我感觉创建一个0*0的位图完全没有意义(或者不知道逻辑怎么写了
Sprite的child属性初步测试可以以父精灵为参考,具体写在帮助文档中,
目前我测试的效果与RGD大致相同,z轴的话由于实现方式差异不打算参考父精灵了
鼠标的话,clip这个方法我没在sdl的支持里看到(不过还是可以试一试)

如果可以的话我需要详细的Sprite#add_child测试数据(
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
2879
在线时间
433 小时
注册时间
2021-6-10
帖子
33
9
 楼主| 发表于 2022-2-7 08:49:36 | 显示全部楼层
雨之沉默 发表于 2022-2-7 01:49
提交个BUG:Fonts文件夹下如果没有Default.ttf字体文件,按F1调出设置时会闪退,不知道是我电脑问题还是本 ...

肯定啊(F1里绘制文字要用到字体
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 1 反对 0

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
2879
在线时间
433 小时
注册时间
2021-6-10
帖子
33
10
 楼主| 发表于 2022-8-17 14:24:09 | 显示全部楼层

专用脚本里已更新
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-9 21:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表