查看: 130|回复: 0

[转载发布] 【RGU】RGSS全系跨平台运行时 Windows/Linux

[复制链接]
  • TA的每日心情
    开心
    昨天 10:15
  • 签到天数: 73 天

    连续签到: 1 天

    [LV.6]常住居民II

    2044

    主题

    86

    回帖

    8602

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    -2
    卡币
    6460
    OK点
    16
    积分
    8602
    发表于 2024-4-12 16:31:35 | 显示全部楼层 |阅读模式
    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
         F1设置菜单
         Win32API
         效率极低需要重写的Audio


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





                本帖来自P1论坛作者Admenri,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=495686  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-9-21 16:44 , Processed in 0.046910 second(s), 38 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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