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

Project1

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

[原创发布] 【RGU】RGSS全系跨平台运行时 Windows/Linux/Android

[复制链接]

Lv4.逐梦者

梦石
5
星屑
2844
在线时间
425 小时
注册时间
2021-6-10
帖子
33
跳转到指定楼层
1
发表于 2024-3-1 23:04:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 Admenri 于 2024-4-14 12:04 编辑

    RGU 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的解释器


   一些截图


   

   
   



   写在后面


   原先的版本因为个人混乱代码管理导致源码无法发出,同时最初的目标移植到其他平台也变得十分困难,鉴于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




评分

参与人数 1+1 收起 理由
zhangc + 1 精品文章

查看全部评分

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

Lv4.逐梦者

梦石
0
星屑
6170
在线时间
793 小时
注册时间
2017-9-27
帖子
17
2
发表于 2024-3-2 14:32:13 | 只看该作者
强力支持!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1920
在线时间
1061 小时
注册时间
2006-1-10
帖子
798
3
发表于 2024-3-2 17:10:14 | 只看该作者
大佬居然把RGU重写了啊,太强了
试了一下不能直接替换旧版,新版里的鼠标scroll_x不知道有什么用,鼠标似乎也没有水平滚轮...
还有不知道是性能还是其他原因时不时有些卡顿,我使用老鹰的对话框脚本全家桶,打开对话框卡顿掉帧非常严重,用老鹰的范例demo测试都很卡

期待新版RGU能更加完善
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
2844
在线时间
425 小时
注册时间
2021-6-10
帖子
33
4
 楼主| 发表于 2024-3-2 18:04:06 | 只看该作者
非常白菜 发表于 2024-3-2 17:10
大佬居然把RGU重写了啊,太强了
试了一下不能直接替换旧版,新版里的鼠标scroll_x不知道有什么用 ...

涉及audio部分就会拖慢整体速度,或许是对话框里的文字声音导致的
目前版本频繁播放se会导致整体掉帧
建议在ini中禁用audio避免过度影响,后期会对audio重写
此外Mouse.scroll_x其实是给触控板滚动准备的
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1920
在线时间
1061 小时
注册时间
2006-1-10
帖子
798
5
发表于 2024-3-2 18:32:44 | 只看该作者
Admenri 发表于 2024-3-2 18:04
涉及audio部分就会拖慢整体速度,或许是对话框里的文字声音导致的
目前版本频繁播放se会导致整体掉帧
建 ...

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

这个是demo,您有空的话可以看看,移除掉 按键扩展,鼠标扩展,Add-On2 兼容鼠标 这三个涉及调用win32API的脚本就可以测试了
https://github.com/OneEyedEagle/ ... _EagleMessageEX.zip
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19284
在线时间
3074 小时
注册时间
2013-1-11
帖子
1288
6
发表于 2024-3-3 20:49:23 | 只看该作者
支持一下!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14116
在线时间
2142 小时
注册时间
2019-1-24
帖子
1121

R考场第七期纪念奖

7
发表于 2024-3-9 20:24:28 | 只看该作者
就等大佬的移动端出来测试了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
189
在线时间
8 小时
注册时间
2023-7-27
帖子
18
8
发表于 2024-3-9 23:01:24 | 只看该作者
想请问一下大佬,就是脚本兼容性方面有没有得到改善,因为之前的版本我尝试跑自己的测试游戏,结果把脚本全删完了才能运行()
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
130
在线时间
63 小时
注册时间
2021-4-23
帖子
24
9
发表于 2024-3-10 08:59:10 | 只看该作者
维护自己要死了
1340pip install Django==4.2.37418038
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
2844
在线时间
425 小时
注册时间
2021-6-10
帖子
33
10
 楼主| 发表于 2024-3-10 13:06:23 | 只看该作者
智将Jesse 发表于 2024-3-9 23:01
想请问一下大佬,就是脚本兼容性方面有没有得到改善,因为之前的版本我尝试跑自己的测试游戏,结果把脚本全 ...

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

与RGD不同,RGU注重性能与通用的平衡,
如果你有性能上或者移植移动端的需求,再来尝试RGU吧(
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 19:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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