Project1

标题: 兼容 XP/VX/Ace 三系通用跨平台游戏引擎 支持网页端 [打印本页]

作者: Admenri    时间: 2025-7-29 22:25
标题: 兼容 XP/VX/Ace 三系通用跨平台游戏引擎 支持网页端
本帖最后由 Admenri 于 2025-8-31 22:37 编辑

简介
1. URGE (Universal Ruby Game Engine) 是从0开始重新编写的游戏运行时,兼容 RPG Maker XP (RMXP), RPG Maker VX (RMVX), RPG Maker VX Ace (RMVA)。
2. 与其前身 RGU (Ruby Game Universal) 一样,URGE 诞生的主要原因是原版的游戏运行时已经无法满足用户的各种需求。
3. URGE 是开源软件,源代码可以在 https://github.com/Admenri/urge 获取。
4. 整个项目由本人一人耗时半年多完成(2024.12 - 2025.7),这里也感谢愿意帮忙测试的朋友。
5. 这个引擎是本人的 RPG 体系中的一部分,后面还有新的 RPG 编辑器及脚本体系。

使用方法
首先在游戏脚本最前面加入补丁:
  XP版本:https://urge.admenri.com/files/patch/rgss1_patch.rb
  VX版本:https://urge.admenri.com/files/patch/rgss2_patch.rb
  VX Ace版本:https://urge.admenri.com/files/patch/rgss3_patch.rb
然后根据平台进行:
Windows平台:
  将下载的压缩包中的 Game.exe 与全部dll复制到游戏目录并替换。
  ※如果未指定字体,则会使用内置的字体,不会读取系统字库。
Android平台:
  安装apk文件,将你的游戏整体复制到 Android/data/com.admenri.urge/files/ 中,随后运行apk
  ※ 引擎不会内置虚拟按键,需要用户自行适配触屏逻辑或者使用现成的虚拟按键脚本。
Linux平台:
  通过 git 拉取源代码,使用 CMake 编译后与 Windows 用法一致。

一些特性
1. 几乎无缝跨平台:同一套游戏代码可以以极少的修改兼容其他平台。
2. 支持 2D/3D 混合:引擎提供了完整的 GPU 接口,类似浏览器的 WebGL 技术。
3. 多图形后端支持:引擎提供了 Direct3D11,Direct3D12,Vulkan,OpenGL 这4种图形API的支持,用户可根据显卡特性选择最合适的后端运行游戏。
4. 全套输入设备支持:支持全键盘,鼠标,触屏,手柄等输入。
5. 高效 Ruby3.x 解释器:引擎使用最新的 Ruby3.x 解释器,相比原版 RGSS3 最高提升 60% 的计算性能。
6. 更多媒体格式支持:引擎支持播放 AV1 编码的 webm 视频,相比 RGSS3 的 Theora 有了巨幅提升,同时引擎内置了 GIF 的解码,结合自定义渲染管线功能可以实现显卡抠图。
7. 经过大幅优化的图形性能:经过实际测试,同屏存在中15万个 Sprite 时,引擎依然可以保持 50FPS 的帧数。
8. 允许用户改写渲染逻辑:引擎允许使用 Viewport 作为离屏渲染的画布,同时引擎也支持 Viewport 嵌套 Viewport 的行为,在此基础上,结合自定义渲染管线,用户可以实现以往难以实现的画面效果。
9. 更高分辨率的图块:与 RPG Maker MZ 一样,引擎允许用户使用其他分辨率的图块(默认是32x32),具体效果参考:https://rpg.blue/thread-497489-1-2.html
10. 。。。太多了留着你们探索了

一点展示










使用约定
1. 源码使用请遵守 BSD-2-Clause 许可证
2. 成品软件允许免费商用,无需作者授权
2. URGE 开发者不对使用过程中引发的任何问题负责
3. 请勿用于违反相关国家法律法规的用途,请勿用于伤害他人的合理合法权益

炫酷特性展示Demo
https://admenri.lanzout.com/iEJEz32558kj

下载地址及网站
https://urge.admenri.com/

引擎支持的脚本API参考
https://urge.admenri.com/api

这里用通俗语言解释URGE是什么东西
在我们游玩 RPG Maker 制作的游戏的时候,肯定会双击打开 Game.exe 这个程序,
这个 Game.exe 就是负责展示游戏数据的程序,我们称为 运行时(runtime),
URGE与原版自带的 Game.exe 一样,负责读取游戏的数据并将其效果展示出来,换个说法就是游戏启动器。

放在最后
看到最后的你一定是满脸的问号,肯定会说rm用户看不懂这些高大上的东西,
但恰恰是这些高大上的功能,支撑了脚本作者在此基础上构筑普通rm用户需要的各种脚本,
这个引擎的意义,就是为了延续xp vx va三代的生命周期,帮助手头拥有无法迁移项目的用户在xp vx va完成最后的作品。
此外,之所以把这个帖子发到XP区,也是因为XP区的版主 @guoxiaomi 郭大给了我很大帮助,
加上rgss系的遗存用户主要是xp用户,所以选择发到了这里。
最后,祝所有游戏作者都能实现自己想要的效果,本帖将同时用作反馈与求助帖,欢迎提出问题反馈与功能求助。












作者: 非常白菜    时间: 2025-7-29 23:04
本帖最后由 非常白菜 于 2025-7-30 11:19 编辑

网站和API手册在这里https://urge.admenri.com/

史上最强RGSS兼容引擎,图形性能超越以往所有runtime,功能和跨平台方面也是独一份,虽然现在还给RGSS系做适配属实有点生不逢时,但大佬计划在未来开发配套编辑器成为独立的游戏引擎(UI图形化编辑等等现代化改进,将会有不同于RGSS的全新体系,甚至可能使用Ruby以外的其他语言),届时就是一款全新的RM了,超越EB官方的史上最强RM,总之未来可期
作者: fux2    时间: 2025-7-30 02:23
确实很强,已加入导航
作者: 89444640    时间: 2025-7-30 16:45
本帖最后由 89444640 于 2025-7-31 06:02 编辑

太强了,但是我怀疑我这个不能用,试试吧。
1.03J放进去是这样吗
运行测试出现这个
txt文件复制插入了main前面,依然跳出





作者: 灯笼菜刀王    时间: 2025-8-1 18:05
非常强大, 但是会和我原本的工程冲突~ 用不了鸭

引擎有提供实现以下效果的方法么?  
1, 全键盘
2, 当前窗口截屏
3, bitmap 的 合成方式, 主要是乘算 (半生的烛光脚本主要功能)
4, bitmap 的 模糊, 马赛克, 反相, 色调变化, 剪切 导出png (都是烛光脚本的dll附赠的功能, 笑)
作者: Admenri    时间: 2025-8-1 22:41
89444640 发表于 2025-7-30 16:45
太强了,但是我怀疑我这个不能用,试试吧。
1.03J放进去是这样吗
运行测试出现这个

1. RPG模块我拿出来了,你要下载补丁打到所有脚本最前面
2. 为了跨平台,所有Win32API相关的脚本全部都废掉了,需要你用引擎的功能平替
作者: Admenri    时间: 2025-8-1 22:44
灯笼菜刀王 发表于 2025-8-1 18:05
非常强大, 但是会和我原本的工程冲突~ 用不了鸭

引擎有提供实现以下效果的方法么?  

1. Input.press_key? Input.trigger_key? Input.repeat_key? 详情看API文档
2. Graphics.snap_to_bitmap.create_surface.save_png("snap.png") 详情看API文档,VA的全部函数下防给XP用了
3. Bitmap#blt 有blend_type参数,详情看API文档
4. 需要使用 Viewport#render 将视口内容渲染到 Bitmap 实现这些效果,结合自定义 Shader 可以达到你说得全部特效,Shader 使用看我发的例子。
作者: 1103123301    时间: 2025-8-2 23:24
看起来好强的样子,可以理解为XP/VX/Ace三合一吗?如果是的话能兼容MV就好了(不过内核都不一样了吧)
作者: Admenri    时间: 2025-8-5 16:45
1103123301 发表于 2025-8-2 23:24
看起来好强的样子,可以理解为XP/VX/Ace三合一吗?如果是的话能兼容MV就好了(不过内核都不一样了吧) ...

事实上,这个引擎的功能基本是对标浏览器来做的,就像MV MZ两代需要nw.js这个浏览器一样,我也给RGSS三代造了专属的浏览器。MV已经有了好用的现代浏览器为什么还需要造轮子呢?
作者: 东海神龙    时间: 2025-8-28 11:11
不是很懂安卓的打包方式,是先要把游戏本体放到指定目录:Android/data/com.admenri.urge/files/,然后安装apk吗?这样子怎样把直接安装的安卓包发给小伙伴呢?
作者: Admenri    时间: 2025-8-31 22:36
东海神龙 发表于 2025-8-28 11:11
不是很懂安卓的打包方式,是先要把游戏本体放到指定目录:Android/data/com.admenri.urge/files/,然后安装 ...

有2种方法:
1. 自己下载 Android Studio 与引擎源码,将游戏文件放到 assets 文件夹后自动编译为apk
2. 爱发电获取一键打包apk工具
作者: Admenri    时间: 2025-8-31 22:39
2025.8.31更新:
引擎现已支持网页端直接打开,可以在iOS,安卓,PC端无需下载直接在线游玩
特别注意的是,无需游戏作者大幅改动脚本逻辑即可无痛迁移

作者: 东海神龙    时间: 2025-9-5 10:08
Admenri 发表于 2025-8-31 22:36
有2种方法:
1. 自己下载 Android Studio 与引擎源码,将游戏文件放到 assets 文件夹后自动编译为apk
2.  ...

懂了,谢谢佬
作者: 秉博士    时间: 2025-9-5 11:40
大佬,什么时候发布编辑器啊,我好多脚本都依赖win32,有可以替代的API吗?
作者: SailCat    时间: 2025-9-7 21:50
支持底层技术大佬
(如果把我的SEP引擎移植到这个版本平台上会有人有需求么)
作者: 小怪兽奇奇侠    时间: 2025-9-8 13:06
大神,你这个官网https://urge.admenri.com/还有api文档的样式也是手搓的吗?不说api文档的具体内容,感觉光是这些css都很费劲了。
作者: Admenri    时间: 2025-9-8 18:44
小怪兽奇奇侠 发表于 2025-9-8 13:06
大神,你这个官网https://urge.admenri.com/还有api文档的样式也是手搓的吗?不说api文档的具体内容,感觉 ...

是查文档+ai辅助写的,我之前一直是写c/c++的,花了2天熟悉了下前端写的还是比较粗糙的
作者: wang9527    时间: 2025-9-8 23:09
66666
作者: 小米LV10    时间: 2025-9-13 23:51
89444640 发表于 2025-7-30 16:45
太强了,但是我怀疑我这个不能用,试试吧。
1.03J放进去是这样吗
运行测试出现这个

偶尔回来论坛看看,原来你还在啊
作者: 秉博士    时间: 2025-9-19 16:52
秉博士 发表于 2025-9-5 11:40
大佬,什么时候发布编辑器啊,我好多脚本都依赖win32,有可以替代的API吗? ...

我觉得还是XP好一些,VA的画风已经和MV,MZ差不多了,我现在用XP就是很喜欢XP的画风,感觉更写实一些,期待大佬的编辑器发布
作者: majian173    时间: 2025-10-10 18:03
我将一个demo工程移植到手机上,整体游戏速度降低,战斗画面速度降低,如下是ini文件

个人感觉是渲染方法,参数都试了还是不行,测试的手机是 nova7和nova9  都一样的效果,这俩手机性能也不差应该,求大佬帮忙解答下

[Game]
; 必填,指定RGSS样式脚本压缩文件的执行路径
Scripts=Data/Scripts.rvdata2
; 窗口标题,Windows平台需要输入ASCII编码的文本,其他平台为UTF-8
Title=test

[Engine]
; RGSS版本指定 (0-3),为0自动根据脚本路径适配对应版本
APIVersion=3
; 指定默认字体及其他字体的加载目录
DefaultFontPath=Fonts/111.ttf
; 指定GUI汉化文件路径
I18nXMLPath=Game.xml
; 指定启动时窗口的大小(非游戏内分辨率),不填则设置为游戏分辨率大小
WindowSize=544|416
; 指定启动时游戏内分辨率大小,不填则按照对应RGSS版本设置
Resolution=544|416

[GUI]
; 禁用默认F1菜单
DisableSettings=false
; 禁用F2帧数监控
DisableFPSMonitor=false
; 是否禁用F12重置游戏功能
DisableReset=false

[Renderer]
; 渲染器后端指定(D3D11 D3D12 VULKAN OPENGL)
Backend=UNDEFINED
; 内置渲染管线的默认纹理采样方式(0 - 线性采样, 1 - 临近采样, ...)
PipelineDefaultSampler=0
; 启用渲染器验证层(会降低渲染性能)
RenderValidation=false
; 启用更大的顶点数据范围,如果显卡不支持请关闭
LargeDrawIndex=true
; 是否允许跳帧(不允许跳帧则会出现画面加速现象)
AllowSkipFrame=true
; 是否全屏启动游戏
Fullscreen=false
; 启动游戏时的默认帧率 (40/60)
FrameRate=60
; 是否允许游戏后台运行
BackgroundRunning=true
; 是否采用平滑采样进行画面呈现
SmoothScalePresent=true

[Platform]
; [Windows] 启用调试控制台
DebuggingConsole=true
; [Windows] 是否禁用输入法
DisableIME=false
; [移动端] 设置屏幕旋转方向:
; 可填:LandscapeLeft LandscapeRight Portrait PortraitUpsideDown
Orientations=LandscapeLeft LandscapeRight

作者: congwsbn    时间: 2025-10-21 23:22
本来两眼一亮,试了试,发现好多脚本都不兼容,最重要的是不兼容Win32API,一些兼容vx和va的脚本中,无法识别 if vx? 。
把不兼容的脚本先去掉,终于能启动了,然而并非我所想的,放大或全屏的画面并不像RGD一样是像素临近式放大,还是糊的。我知道,这可能是电脑问题,有些电脑是临近算法,有些电脑是和我一样的双线性过滤,这就导致一些像素游戏在放大或全屏时画面会非常糊。
所以一些经典的放大脚本,如Fullscreen++,在我这里都是全糊。能真高清像素放大的除了RGD,就是用第三方软件Magpie了。如果URGE能拥有Magpie的效果,那是真正的无敌。
总之,现阶段没法用,未来可期了。
作者: Admenri    时间: 2025-10-22 10:17
congwsbn 发表于 2025-10-21 23:22
本来两眼一亮,试了试,发现好多脚本都不兼容,最重要的是不兼容Win32API,一些兼容vx和va的脚本中,无法识 ...

其实win32api和你说得硬边都是支持的,只不过需要一些修改。
1. Win32API因为要跨平台所以隐藏了,需要补丁才能使用,而且因为exe是64位的所以全部外部dll都无法使用了(比如TRGSSX)
如果你不考虑跨平台了可以加回来:https://bbs.admenri.com/forum.ph ... &extra=page%3D1
2. 引擎内部的缩放方式在启动的时候会编译到管线里,所以需要你在ini里就修改缩放方式:
https://github.com/Admenri/urge/blob/main/doc/engine_config.ini
默认是平滑缩放所以会糊


作者: congwsbn    时间: 2025-10-23 04:52
Admenri 发表于 2025-10-22 10:17
其实win32api和你说得硬边都是支持的,只不过需要一些修改。
1. Win32API因为要跨平台所以隐藏了,需要补 ...

感谢解答,我又用几个工程试了试,总是有些意想不到的问题,很多脚本都有弹错,有些不知如何解决,有点打退堂鼓了……以后再试试吧。
以及这个ini有几个疑问:字体如何读取脚本中的Font设置呢(有多个字体和字号变化)?最大化或全屏时如何能保证画面是整数倍放大呢?x2 x3之类的,以及如何在游戏中作为选项更改这些设置?
作者: Admenri    时间: 2025-10-23 10:42
congwsbn 发表于 2025-10-23 04:52
感谢解答,我又用几个工程试了试,总是有些意想不到的问题,很多脚本都有弹错,有些不知如何解决,有点打 ...

因为脚本引擎升级到了Ruby3.3.9,语法不兼容是很常见的,不过很多问题其实是脚本自己编写不严谨导致的,原版的RGSS包容了这部分错误,但是URGE更严格所以变成了报错。
如果你有解决不了的脚本问题可以发到URGE的反馈帖:https://bbs.admenri.com/forum.ph ... &extra=page%3D1(当然也可以发在这里)

字体方面,引擎不会读取系统的字库,所以需要自带字体文件,详情可看教程:https://bbs.admenri.com/forum.ph ... &extra=page%3D1

总之适配过程确实很难受,但却是为了跨平台和性能与画面做的必要牺牲

作者: 仲秋启明    时间: 2025-10-23 12:05
本帖最后由 仲秋启明 于 2025-10-23 16:51 编辑

使用va新工程试了一下,提示没有Graphics/Tites1/Plain文件夹,新建Plain文件夹后提示  5-Cache:106:in "initialize'(Errno::ENOENT):No such file or directory-permission denied: Graphics/Titles1/Plain,应该是测试的时候使用了附加脚本
打开菜单有的时候会提示Window Base里 def convert_escape_characters(text)下 'gsub!'(FrozenError)can't modify frozen String:,对话没提示,有可能是我调用的问题
使用图片较多的情况下读取会很卡,是我电脑问题吗
web版我没看懂怎么打开就测试了win版

作者: 765111039    时间: 2025-10-26 23:23
新人前来顶下,支持楼主,感谢分享
作者: RPG筱咲工作室    时间: 2025-11-5 18:26
本帖最后由 RPG筱咲工作室 于 2025-11-6 17:23 编辑

真的很厉害,感谢分享!
作者: BCJT    时间: 2025-11-14 10:50
希望以后的成品游戏可以合作
作者: BCJT    时间: 2025-11-14 11:02
本帖最后由 BCJT 于 2025-11-14 13:28 编辑

弱弱地请问一下大佬,具体VA的游戏工程怎么在安卓上运行。apk文件是哪个呀?编程小白实在是没看懂
作者: 智将Jesse    时间: 2025-11-16 03:23
BCJT 发表于 2025-11-14 11:02
弱弱地请问一下大佬,具体VA的游戏工程怎么在安卓上运行。apk文件是哪个呀?编程小白实在是没看懂 ...

感觉具体操作可能是把游戏文件塞到URGE的apk里面的assets文件夹中
(apk内没有此文件夹,应需要自己创建),然后使用MT2之类的文件管理器签名重新封包即可
apk文件的话...GitHub或者官网载点上面有说来着
作者: 云佬-1098    时间: 2025-11-16 14:58
我尝试使用,然后在地图上放了二十几个并行事件播放动画,原来的运行时是正常的,但是URGE就特别卡,这是为啥啊?

dec2fccb-5942-4211-8f4f-20ec0d5b95aa.png (144.12 KB, 下载次数: 71)

dec2fccb-5942-4211-8f4f-20ec0d5b95aa.png

作者: ooooooopl    时间: 2025-12-13 14:07
我粘贴了win32api,报错提示***.rb:30:in initialize' (TypeError):no implicit conversion of nil into Integer是什么情况
作者: 金碧辉黄    时间: 2026-2-1 22:12
很遗憾,我的工程使用后报错,目前看下来到末尾,没有解决方法,并且发现这和我的绝大多数脚本不兼容,去掉这些脚本会约等于放弃我几年的一切成果,所以我还是换回原来的引擎了
作者: 这是一个昵称9    时间: 2026-2-21 14:41
要是能自己修改tilemap每个图层的z轴、编辑图层数据就好了,之前弄了个多层遮挡地图结果用不了
作者: 这是一个昵称9    时间: 2026-2-21 14:42
这是一个昵称9 发表于 2026-2-21 14:41
要是能自己修改tilemap每个图层的z轴、编辑图层数据就好了,之前弄了个多层遮挡地图结果用不了 ...

原版rgu已经很完美了
作者: R_03氏    时间: 2026-5-11 22:18
本帖最后由 R_03氏 于 2026-5-12 14:13 编辑

想知道大佬的网站https://bbs.admenri.com/forum注册时验证问答说什么,想加载dll用的fiddle模块用的补丁看不到
作者: 灵九哲    时间: 6 天前
给个三连666,2006年左右第一次接触RPG Maker XP,现在看见有人复活他,真的是太牛了
作者: 风吹处阴凉    时间: 6 天前
技术强大且无私奉献。必须支持!




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