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

Project1

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

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

[复制链接]

Lv4.逐梦者

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

Lv2.观梦者

梦石
0
星屑
627
在线时间
46 小时
注册时间
2022-2-6
帖子
17
16
发表于 2024-6-25 02:37:12 | 只看该作者
现在正在工作,谢谢。过几天我会尝试一下,稍后我可能会有一些问题。

只是检查以确保当前项目无法加密/压缩以使其正常工作,对吧?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
3217
在线时间
546 小时
注册时间
2021-6-10
帖子
41
15
 楼主| 发表于 2024-6-24 20:44:00 | 只看该作者
BCJenbo 发表于 2024-6-24 20:09
遗憾的是,我还是无法启动它,即使是使用默认的 VX Ace 游戏也无法启动。
您能用图片指导我完成这些步骤吗 ...


1. 创建一个新工程

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


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


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


5. 直接双击Game.exe即可


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

使用道具 举报

Lv2.观梦者

梦石
0
星屑
627
在线时间
46 小时
注册时间
2022-2-6
帖子
17
14
发表于 2024-6-24 20:09:40 | 只看该作者
遗憾的是,我还是无法启动它,即使是使用默认的 VX Ace 游戏也无法启动。
您能用图片指导我完成这些步骤吗?
我需要在这里编译任何东西吗?


当我将 rgu_player.exe 重命名为 game.exe 时,什么都没有启动,使用 rgu_player_amd64.exe 会出现错误。
我没有使用 WIN 32 API。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
3217
在线时间
546 小时
注册时间
2021-6-10
帖子
41
13
 楼主| 发表于 2024-6-24 11:38:34 | 只看该作者
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接口实现相同的效果
基于OpenGL SDL2的RGU(已重制开源)
EMAIL: [email protected]
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
627
在线时间
46 小时
注册时间
2022-2-6
帖子
17
12
发表于 2024-6-23 20:52:52 | 只看该作者
我该如何使用它?我将我的项目复制到 RGU 文件夹中,但它说无法加载。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
194
在线时间
9 小时
注册时间
2023-7-27
帖子
18
11
发表于 2024-3-13 17:29:49 | 只看该作者
Admenri 发表于 2024-3-10 13:06
脚本方面为了效率已经把ruby版本升级到了3.2.2
同时我为了跨平台直接把Win32API砍掉了
所以成品游戏一般 ...

好吧(笑),谢谢,我改天再看看(doge)
不过有一说一,效率确实挺快的
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
5
星屑
3217
在线时间
546 小时
注册时间
2021-6-10
帖子
41
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]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
179
在线时间
67 小时
注册时间
2021-4-23
帖子
29
9
发表于 2024-3-10 08:59:10 | 只看该作者
维护自己要死了
1340134074180388038
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-16 21:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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