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

Project1

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

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

[复制链接]

Lv4.逐梦者

梦石
5
星屑
3477
在线时间
600 小时
注册时间
2021-6-10
帖子
46
跳转到指定楼层
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]

Lv2.观梦者

梦石
0
星屑
452
在线时间
191 小时
注册时间
2006-1-8
帖子
53
53
发表于 2024-1-4 21:12:31 | 只看该作者
有个BUG,图片进行保存后,再读取就发生错误,错误是找不到该文件,但是重启后就不会发生错误。

点评

遇到相同问题  发表于 2024-2-12 16:49
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
236
在线时间
11 小时
注册时间
2023-7-27
帖子
20
52
发表于 2023-8-15 00:02:18 | 只看该作者
作者您好,请问我为什么不能直接指定RGSS的版本(我用到了多个scripts.rvdata2用于区分功能和运行时)
如果可以的话,可以提供一个仅支持RMVA的版本吗
另外,RGU的脚本兼容性似乎很差,它不兼容后台运行,内存优化等脚本
希望可以改进
github.com/Jesse5800-2
普普通通的RMVA苦手一个
嘛啊,总之,请多多指教吧QwQ
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
667
在线时间
47 小时
注册时间
2022-2-6
帖子
18
51
发表于 2023-7-21 02:16:02 | 只看该作者
哪儿是示例游戏? 没有下载

(使用谷歌翻译)
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8064
在线时间
1862 小时
注册时间
2017-10-23
帖子
355
50
发表于 2023-2-27 07:23:14 | 只看该作者
本帖最后由 xiaohuangdi 于 2023-3-5 14:37 编辑

1.20121215之后的版本   字体大小变成固定;
2.玩家4k显示器 会变成145fps   2.5倍加速 而不是60fps,需要玩家手动将显示器刷新率限制为60;


還要手動改名"game.exe" 手動開啓同步垂直;
再來手動改顯示器刷新率, 真的很影響用戶體驗
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2821
在线时间
585 小时
注册时间
2022-7-13
帖子
89
49
发表于 2023-1-3 21:07:31 | 只看该作者
请教,系统光标如何隐藏?

点评

不知道算不算BUG,使用Mouse.set_cursor改变鼠标图片,只要不动不点击图像就不会改变  发表于 2023-1-4 13:56
感谢  发表于 2023-1-3 22:27
Mouse.visible = false  发表于 2023-1-3 22:06
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
798
在线时间
89 小时
注册时间
2019-8-25
帖子
20
48
发表于 2022-12-28 02:52:55 | 只看该作者
我为鱼肉 发表于 2022-9-25 00:06
能兼容一下对RGSS1的鼠标支持吗?

GetActiveWindow = Win32API.new("user32", "GetActiveWindow", nil, ' ...

Graphics.window_hwnd可以直接获取句柄的

点评

原来是这样。。。感谢  发表于 2023-1-3 19:41
珍惜所有的不期而遇,看淡所有的不辞而别、
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2821
在线时间
585 小时
注册时间
2022-7-13
帖子
89
47
发表于 2022-9-25 00:06:04 | 只看该作者
能兼容一下对RGSS1的鼠标支持吗?
  1. $ShowCursor = Win32API.new("user32", "ShowCursor", 'i', 'l')
  2. $GetCursorPos = Win32API.new("user32", "GetCursorPos", 'p', 'i')
  3. $ScreenToClient = Win32API.new("user32", "ScreenToClient", 'ip', 'i')
  4. $GetActiveWindow = Win32API.new("user32", "GetActiveWindow", nil, 'l')
  5. $Window_HWND = $GetActiveWindow.call
  6. $GetKeyState = Win32API.new("user32", "GetKeyState", 'i', 'i')
复制代码

GetActiveWindow = Win32API.new("user32", "GetActiveWindow", nil, 'l') 报错

点评

换32位的rgu试试,不行就只能联系作者解决了  发表于 2022-10-2 12:56
这样虽然不会报错了,但是获取不到窗口句柄了。。。  发表于 2022-9-30 19:08
原来是这样  发表于 2022-9-29 01:04
nil换成'v'  发表于 2022-9-29 00:04
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
3477
在线时间
600 小时
注册时间
2021-6-10
帖子
46
46
 楼主| 发表于 2022-9-23 19:31:49 | 只看该作者
我为鱼肉 发表于 2022-9-22 23:38
bitmap.font.name似乎没有用
怎么在游戏中使用font目录下的其他字体呢

最新版使用字体的方式是直接输入字体的文件名“font.ttf”,注意字体文件需要放在Fonts里

点评

原来是这样  发表于 2022-9-23 21:53
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2821
在线时间
585 小时
注册时间
2022-7-13
帖子
89
45
发表于 2022-9-22 23:38:26 | 只看该作者
本帖最后由 我为鱼肉 于 2022-9-22 23:40 编辑

bitmap.font.name似乎没有用
怎么在游戏中使用font目录下的其他字体呢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-4 16:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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