Project1

标题: 【RGU】RGSS全系跨平台运行时 Windows/Linux/Android [打印本页]

作者: Admenri    时间: 2024-3-1 23:04
标题: 【RGU】RGSS全系跨平台运行时 Windows/Linux/Android
本帖最后由 Admenri 于 2024-4-14 12:04 编辑

    RGU Player Core

   项目概述


   项目结构



   一些截图


   

   
   



   写在后面


   原先的版本因为个人混乱代码管理导致源码无法发出,同时最初的目标移植到其他平台也变得十分困难,鉴于4年前的版本代码结构已经及其混乱,
   便有了重写这个项目的想法,经过半年的编写与调试,也终于是到了能基本平替原版RGSS的程度
   项目的详情可以查看Github开源仓库,这个项目也算是为RGSS小小的舔砖加瓦了,
   目前项目只由我一人维护编写,如果你有想法可以fork自己分支(个人不会用Git之类管理工具
   
   目前这个程序一些尚未完成的部分:
     Bitmap的blur
     Win32API

   目前已经加入的扩展功能:
     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)
     
     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





作者: 凯琳·赛拉菲姆    时间: 2024-3-2 14:32
强力支持!
作者: 非常白菜    时间: 2024-3-2 17:10
大佬居然把RGU重写了啊,太强了
试了一下不能直接替换旧版,新版里的鼠标scroll_x不知道有什么用,鼠标似乎也没有水平滚轮...
还有不知道是性能还是其他原因时不时有些卡顿,我使用老鹰的对话框脚本全家桶,打开对话框卡顿掉帧非常严重,用老鹰的范例demo测试都很卡

期待新版RGU能更加完善
作者: Admenri    时间: 2024-3-2 18:04
非常白菜 发表于 2024-3-2 17:10
大佬居然把RGU重写了啊,太强了
试了一下不能直接替换旧版,新版里的鼠标scroll_x不知道有什么用 ...

涉及audio部分就会拖慢整体速度,或许是对话框里的文字声音导致的
目前版本频繁播放se会导致整体掉帧
建议在ini中禁用audio避免过度影响,后期会对audio重写
此外Mouse.scroll_x其实是给触控板滚动准备的
作者: 非常白菜    时间: 2024-3-2 18:32
Admenri 发表于 2024-3-2 18:04
涉及audio部分就会拖慢整体速度,或许是对话框里的文字声音导致的
目前版本频繁播放se会导致整体掉帧
建 ...

明白了,不过老鹰的对话框脚本似乎不是这个问题,即使禁用audio还是非常卡,因为没有报错也搞不清楚问题出在哪里,为了避免其他因素影响,我使用老鹰提供的范例demo进行的测试,原版不使用RGU是满60帧的

这个是demo,您有空的话可以看看,移除掉 按键扩展,鼠标扩展,Add-On2 兼容鼠标 这三个涉及调用win32API的脚本就可以测试了
https://github.com/OneEyedEagle/ ... _EagleMessageEX.zip
作者: 张咚咚    时间: 2024-3-3 20:49
支持一下!
作者: miantouchi    时间: 2024-3-9 20:24
就等大佬的移动端出来测试了
作者: 智将Jesse    时间: 2024-3-9 23:01
想请问一下大佬,就是脚本兼容性方面有没有得到改善,因为之前的版本我尝试跑自己的测试游戏,结果把脚本全删完了才能运行()
作者: 企鹅大虾    时间: 2024-3-10 08:59
维护自己要死了
作者: Admenri    时间: 2024-3-10 13:06
智将Jesse 发表于 2024-3-9 23:01
想请问一下大佬,就是脚本兼容性方面有没有得到改善,因为之前的版本我尝试跑自己的测试游戏,结果把脚本全 ...

脚本方面为了效率已经把ruby版本升级到了3.2.2
同时我为了跨平台直接把Win32API砍掉了
所以成品游戏一般要做很大改动才能兼容
(不过为了性能,移动端和一堆高级特性还是很值的)

与RGD不同,RGU注重性能与通用的平衡,
如果你有性能上或者移植移动端的需求,再来尝试RGU吧(
作者: 智将Jesse    时间: 2024-3-13 17:29
Admenri 发表于 2024-3-10 13:06
脚本方面为了效率已经把ruby版本升级到了3.2.2
同时我为了跨平台直接把Win32API砍掉了
所以成品游戏一般 ...

好吧(笑),谢谢,我改天再看看(doge)
不过有一说一,效率确实挺快的
作者: BCJenbo    时间: 2024-6-23 20:52
我该如何使用它?我将我的项目复制到 RGU 文件夹中,但它说无法加载。
作者: Admenri    时间: 2024-6-24 11:38
BCJenbo 发表于 2024-6-23 20:52
我该如何使用它?我将我的项目复制到 RGU 文件夹中,但它说无法加载。

首先确保你的脚本里没有用到win32api,
然后用压缩包内的rgu-console.exe改名并覆盖Game.exe,
exe读取的是同名的ini文件(rgu.exe->rgu.ini,Game.exe->Game.ini)
复制一份字体,改名成Fonts/Default.ttf

如果你用到了win32api并且需要保留,请利用rgu提供的内部ruby接口实现相同的效果
作者: BCJenbo    时间: 2024-6-24 20:09
遗憾的是,我还是无法启动它,即使是使用默认的 VX Ace 游戏也无法启动。
您能用图片指导我完成这些步骤吗?
我需要在这里编译任何东西吗?


当我将 rgu_player.exe 重命名为 game.exe 时,什么都没有启动,使用 rgu_player_amd64.exe 会出现错误。
我没有使用 WIN 32 API。
作者: Admenri    时间: 2024-6-24 20:44
BCJenbo 发表于 2024-6-24 20:09
遗憾的是,我还是无法启动它,即使是使用默认的 VX Ace 游戏也无法启动。
您能用图片指导我完成这些步骤吗 ...


1. 创建一个新工程

2. 复制一份RTP到游戏目录,引擎不会读取系统的RTP


3. 覆盖原版Game.exe(用最新版)


4. 复制一份字体文件(Fonts/Default.ttf,引擎依然不能读取系统的字体,必须自带字体文件)


5. 直接双击Game.exe即可



作者: BCJenbo    时间: 2024-6-25 02:37
现在正在工作,谢谢。过几天我会尝试一下,稍后我可能会有一些问题。

只是检查以确保当前项目无法加密/压缩以使其正常工作,对吧?
作者: 零教授    时间: 2024-8-12 22:02
大佬NB!
有机会把我破旧的RGD工程转移一下试试,不然真的有点性能瓶颈,DirectX真是……
不过不支持win32API,那得重写一堆底层的东西呢
作者: 零教授    时间: 2024-8-12 22:05
零教授 发表于 2024-8-12 22:02
大佬NB!
有机会把我破旧的RGD工程转移一下试试,不然真的有点性能瓶颈,DirectX真是……
不过不支持win32A ...

说起来,它能解决我同屏幕3000个子弹(Sprite)会导致帧数掉到40帧的问题吗
以及有shader方面的支持吗
作者: Admenri    时间: 2024-8-13 13:33
零教授 发表于 2024-8-12 22:05
说起来,它能解决我同屏幕3000个子弹(Sprite)会导致帧数掉到40帧的问题吗
以及有shader方面的支持吗 ...

性能的话同样配置比RGD能高10帧左右,但我推荐你benchmark后再做决定
shader方面开放了顶点着色器和片段着色器,
需要用opengl es的标准来写
另外windows版其实自带了fiddle模块,也就是win32api的底层ffi,
砍掉win32只是不希望移植者过于依赖win32从而导致一些特定功能(窗口操作,外部渲染)引发崩溃
作者: Brunost    时间: 2024-8-21 23:14
本帖最后由 Brunost 于 2024-8-21 23:31 编辑

我直接把最新版解压到某个游戏目录,有游戏本体的Graphics和Audio文件夹。改名rgu为Game.exe之后替换原文件,点击启动后能看到菜单和F1设置,但是一读取游戏存档就会报错



l除此之外,怎么调节分辨率消除游戏两边的黑条,让游戏渲染大地图。我手动在Game.ini里加了
[Renderer]
ScreenWidth=2560
ScreenHeight=1440
WindowWidth=2560
WindowHeight=1440
但是怎么改两边的黑条都消不掉。
我在主菜单测试的时候如果取消ratio,游戏就会强制拉满屏而不是调节分辨率。

没有详细的使用说明,rgu-console也启动不了

[Game]
rtp =RPGVXAce
这个是不是应该改成别的?
作者: soulsaga    时间: 2024-8-22 03:13
Brunost 发表于 2024-8-21 23:14
我直接把最新版解压到某个游戏目录,有游戏本体的Graphics和Audio文件夹。改名rgu为Game.exe之后替换原文件 ...

ScreenWidth=640
ScreenHeight=480
作者: Admenri    时间: 2024-8-22 10:08
Brunost 发表于 2024-8-21 23:14
我直接把最新版解压到某个游戏目录,有游戏本体的Graphics和Audio文件夹。改名rgu为Game.exe之后替换原文件 ...

1. 引擎不会读取RTP,需要你复制一份到游戏
2. 字体文件不会读取系统字库,需要你复制一份到Fonts/Default.ttf
3. 黑边不影响游玩,如果觉得麻烦可以不管
作者: BCJenbo    时间: 2024-8-22 16:46
是否可以将尺寸调整为 1280x720 而不是 640x360?
作者: Brunost    时间: 2024-8-22 16:59
本帖最后由 Brunost 于 2024-8-22 17:42 编辑
Admenri 发表于 2024-8-22 10:08
1. 引擎不会读取RTP,需要你复制一份到游戏
2. 字体文件不会读取系统字库,需要你复制一份到Fonts/Defaul ...





1. 具体的操作是什么?按照字面意思,我把RTP的assets复制到了游戏自带的graphics文件,进入游戏后缺失文件的错误没了,但是新的错误又来了
2. fonts文件夹一开始就在那
3. 我想用RGU的唯一理由就是去掉两边的黑条,让游戏内的黑条渲染两边的地图,因为你sample里的截图就有一张看似全屏没有黑条的展示。这个功能难道不是解锁分辨率的一部分么?

而且RGU的下载路径里有一个official包和最新包的文件覆盖都不一样还有文件重合在不同文件夹的,乱七八糟的用哪个怎么安装设置这些说明都很模糊啊

Game_DljhKjhRxy.png (131.1 KB, 下载次数: 4)

读取游戏报错

读取游戏报错

作者: Admenri    时间: 2024-8-24 14:23
BCJenbo 发表于 2024-8-22 16:46
是否可以将尺寸调整为 1280x720 而不是 640x360?

Graphics.resize_screen(1280, 720)
作者: Admenri    时间: 2024-8-24 14:26
Brunost 发表于 2024-8-22 16:59
1. 具体的操作是什么?按照字面意思,我把RTP的assets复制到了游戏自带的graphics文件,进入游戏后缺 ...

1. 复制Audio和Graphics覆盖到游戏文件夹的Audio和Graphcis
2. Fonts/Default.ttf 保证有这个字体文件
3. 分辨率 ≠窗口大小,比如你设置的分辨率是100x800,那么2k宽屏全屏后一定会有黑边,拖窗口改大小改的是缩放不是游戏内的分辨率




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1