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

Project1

 找回密码
 注册会员
搜索
查看: 1501|回复: 18

[原创发布] 【RGSS3 - runtime】要不要试试新的Game.exe?—— Lanziss Reporting!

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3413
在线时间
2226 小时
注册时间
2011-3-24
帖子
682

开拓者

发表于 2020-2-28 13:45:46 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Mr.Jin 于 2020-3-26 18:04 编辑

众所周知~我们的RMVA~RGSS3提供的runtime是有一些bug,而且在现代显卡之下性能不佳的。
我们英明神武的黄鸡哥哥和⑨姐姐已经以DirectX制作了RGD来解决硬件加速的问题——

那么,作为凑热闹心态而言,我用Opengl+SDL+mruby实现了另一个全新的兼容RGSS3的游戏引擎。
目标是在兼容RGSS3大部分内容的情况下,尝试跨平台、并且加入更多的功能来增强其适用范围。
由于脚本层是采用mruby实现的,因此它必然和cruby有很多不兼容的地方,已发现的不兼容和注意事项我已经在示例工程中注明。

示例工程(并不携带最新版的player程序。)百度网盘下载 - 提取码: kv5h

这是主程序的下载链接。现阶段仍然只提供windows版,其它平台择日放出。
永硕E盘链接
win32版-百度盘下载 - 提取码: 4exy
(建议选择最新日期和标号的版本来试用~)

Lanziss对图像部分增加了跳帧/自动跳帧功能。
当你将Graphics.frame_skip赋值为一个正整数时,每次渲染将会固定跳过指定的帧数;当你将Graphics.frame_autoskip设为true时,将开启自动跳帧功能,同时Graphics.frame_skip的值将指定自动跳帧时的最大跳帧数目。

当然,保证跨平台的情况下,我还加入了很多其它的扩展内容,
比如你可以利用置入的Genann库来实验一些简单的人工神经网络功能?用法示例
比如你可以利用置入的Fossa库来制作简易的网络联机功能?用法示例
又或者,得益于SDL的强大,你可以获取全键盘/触摸/鼠标/手柄的输入信息等~

本项目还在测试的阶段,欢迎大家多多试用,多提建议以及捉拿BUG!
※测试工程暂只提供windows版,以后有机会将会给大家提供android等平台的移植实现。

================================== 2020.03.26 实验 ==============================================
更新mruby版本和构建工具后,在某些平台运行时出现段错误:经过检查发现是mruby的bug,改用MRB_METHOD_T_STRUCT选项规避。
即将推出适用于android的测试工程!(一周内)

================================== 2020.03.18 更新 ==============================================
添加了mod和xm音频格式的支持。它们都是module式的音乐,同时具有midi般的"曲谱"和任意真实波形的采样数据。因此可以在很小的体积获得不俗的效果。通过openmpt软件也可将midi曲谱转换成mod和xm格式。

================================== 2020.03.16 更新 ==============================================
优化了Tilemap,现在在地图界面可以减少卡顿了。
优化了Sprite的性能。

================================== 2020.03.15 更新 ==============================================
更正了Graphics.frame_reset的行为。
修改了Graphics.transition的实现方式,现在你可以获得更贴近RM原版的transition效果了。
增强了opengl兼容性,一些原本可能显示黑屏的设备现在可以显示了。

================================== 2020.03.14 更新 ==============================================
修复了一些可能导致闪退的问题(#Viewport.dispose相关)
将mruby版本提升到v2.1.0。
优化了自动跳帧的计算方式。

================================== 2020.03.13 更新 ==============================================
使用soloud库重写了Audio模块。现在支持各种采样率的ogg、wav、mp3、flac格式声音了。
音频播放也从单声道改为立体声。
也在Lanziss::AudioEx提供了reset方法供大家重新设定音频引擎的参数(采样率、缓冲字节数、声道数目、是否异步)。默认是44100hz, 1024bytes, 2 Channels, 异步。
当你使用reset方法将音频设为同步时,可以设置Lanziss::AudioEx.auto_update的true/false来决定是否在更新图像时一并更新音频,关闭后,你可以选择用Lanziss::AudioEx.update单独更新音频(还可传入固定的deltatime)。
同步的好处是可以让音频准确地跟着画面帧步进,这对制作MTV等功能有好处,但是它可能导致一定的声音延迟。因此默认开启的是异步方式。
另外,用新的方法编写了Graphics.snap_to_bitmap和Graphics.freeze,减少了CPU/GPU提交数据的次数,速度增快(但内存使用少许增加)。
另修复了Window绘制时的缺失(主要是内容超出窗口范围的箭头)。
另修复了Marshal模块和Table的写法。我编写的mruby用Marshal模块已经上传到github,这可能是当前你能用到的最好的mruby上的marshal实现。
新计划:增添内置的ULDS实现。

================================== 2020.03.05 更新 ==============================================
修复了一些BUG(主要是Marshal和Table部分的)。
增加了Bitmap的一些扩展功能,示例代码如下:
RUBY 代码复制打印
  1. bitmap = Bitmap.new(Graphics.width, Graphics.height)
  2. bitmap.font.color = Color.new(0xFF, 0xFF, 0xFF)
  3.  
  4. sprite = Sprite.new
  5. sprite.bitmap = bitmap
  6.  
  7. x, y = bitmap.width / 2, bitmap.height / 2
  8.  
  9. 256.times do |i|
  10.   bitmap.clear
  11.   # -----------------------------------------------
  12.   # bitmap.draw_arc x, y, width, height, color
  13.   # -----------------------------------------------
  14.   bitmap.draw_arc x, y, i * 0.25, i * 2, i * 3, Color.new(0xFF, 0, 0)
  15.   Graphics.update
  16. end
  17.  
  18. 256.times do |i|
  19.   i = i / 64.0
  20.   bitmap.clear
  21.   # -----------------------------------------------
  22.   # bitmap.draw_line x1, y1, x2, y2, color
  23.   # -----------------------------------------------
  24.   bitmap.draw_line x, y, x + Math.cos(i) * 64, y + Math.sin(i) * 64, Color.new(0xFF, 0, 0)
  25.   Graphics.update
  26. end
  27.  
  28. 256.times do |i|
  29.   i = i / 64.0
  30.   bitmap.clear
  31.   # -----------------------------------------------
  32.   # bitmap.draw_line_aa x1, y1, x2, y2, color
  33.   # -----------------------------------------------
  34.   bitmap.draw_line_aa x, y, x + Math.cos(i) * 64, y + Math.sin(i) * 64, Color.new(0xFF, 0, 0)
  35.   Graphics.update
  36. end
  37.  
  38. 256.times do |i|
  39.   i = i / 64.0
  40.   bitmap.clear
  41.   # -----------------------------------------------
  42.   # bitmap.draw_line_thick x1, y1, x2, y2, width, color
  43.   # -----------------------------------------------
  44.   bitmap.draw_line_thick x, y, x + Math.cos(i) * 64, y + Math.sin(i) * 64, 4, Color.new(0xFF, 0, 0)
  45.   Graphics.update
  46. end
  47.  
  48. 128.times do |i|
  49.   bitmap.clear
  50.   # -----------------------------------------------
  51.   # bitmap.fill_circle x, y, radius, color
  52.   # -----------------------------------------------
  53.   bitmap.fill_circle x, y, i, Color.new(0xFF, 0, 0)
  54.   Graphics.update
  55. end
  56.  
  57. 128.times do |i|
  58.   bitmap.clear
  59.   # -----------------------------------------------
  60.   # bitmap.draw_circle x, y, radius, color
  61.   # -----------------------------------------------
  62.   bitmap.draw_circle x, y, i, Color.new(0xFF, 0, 0)
  63.   Graphics.update
  64. end
  65.  
  66. 128.times do |i|
  67.   bitmap.clear
  68.   # -----------------------------------------------
  69.   # bitmap.draw_circle_aa x, y, radius, color
  70.   # -----------------------------------------------
  71.   bitmap.draw_circle_aa x, y, i, Color.new(0xFF, 0, 0)
  72.   Graphics.update
  73. end
  74.  
  75. 128.times do |i|
  76.   bitmap.clear
  77.   # -----------------------------------------------
  78.   # bitmap.draw_rect_rounded x, y, width, height, radius, color
  79.   # -----------------------------------------------
  80.   bitmap.draw_rect_rounded x - i, y - i, i * 2, i * 2, i * 0.2,  Color.new(0xFF, 0, 0)
  81.   Graphics.update
  82. end
  83.  
  84. 128.times do |i|
  85.   bitmap.clear
  86.   # -----------------------------------------------
  87.   # bitmap.draw_rect_rounded rect, radius, color
  88.   # -----------------------------------------------
  89.   bitmap.draw_rect_rounded Rect.new(x - i, y - i, i * 2, i * 2), i * 0.1,  Color.new(0xFF, 0, 0)
  90.   Graphics.update
  91. end
  92.  
  93. exit

评分

参与人数 15星屑 +100 +14 收起 理由
whitedewxiao + 1 精品文章
sdgn + 1
百里_飞柳 + 1 精品文章
SixRC + 1 塞糖
哇哇哇啊叭叭 + 1 天呐...太棒啦
张咚咚 + 1 塞糖
xiaohuangdi + 1 塞糖
fux2 + 100 精品文章
wabcmcc + 1 塞糖
zyf722 + 1 塞糖

查看全部评分

>>→Lanza Games 2020←<<
Lanza Schneider
不会放弃,我的精力永远充沛!   我应该在车底,不应该在车里
>>>>>Lanza Adventure<<<<<
>>>>>Lanza的新年派对!<<<<<
>>>>>Lanza的口袋心脏病!<<<<<

Lv3.寻梦者

梦石
0
星屑
1026
在线时间
266 小时
注册时间
2013-4-30
帖子
38
发表于 2020-2-28 14:00:41 | 显示全部楼层
是大佬!
前排,先顶一个!
Electron Studio 成员。摸鱼ing...
目前开发个人项目 终末之梦 The Last DREAM 中。

========== 关于 Electron Studio ==========
这里是一支由在校高中生组成的业余PC独立游戏开发团队,希望各位多多支持与关照!
团队使用资源目前全部自费,您的捐助将能更好地推进我们的开发工作!
目前正使用 RMVA 开发第一款 解谜类ARPG独立游戏 Futurize
详细信息与支持我们:我们的爱发电主页
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1147
在线时间
69 小时
注册时间
2017-2-26
帖子
19
发表于 2020-2-28 14:09:56 | 显示全部楼层
不愧是醋虾lanza,这么快就正式发布了,恭喜lanza~
然后今年下半年,我个人开发的基于DirectX11的RGSS1 runtime(windows)也计划发布,和魔族勇士一起两开花(?),大家多多关注(狗头保命)

评分

参与人数 1+1 收起 理由
哇哇哇啊叭叭 + 1 敬两开化

查看全部评分

RM水友群号   917854767  欢迎加入
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
8262
在线时间
7837 小时
注册时间
2012-6-19
帖子
6774

开拓者短篇九导演组冠军

发表于 2020-2-28 14:17:20 | 显示全部楼层
Runtime大联欢(X
造轮子大联欢(X

RGD 在我的新 win10 上提示缺 dll,百度了 dll 扔进去后报错 0xc000007b,懒得折腾查原因了,试试这个怎么样

点评

装个dx9 runtime应该就行(  发表于 2020-3-17 10:14
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6987
在线时间
764 小时
注册时间
2016-9-20
帖子
557
发表于 2020-2-28 19:12:16 | 显示全部楼层
看上去看好像很多扩展 , 好多功能
实际上, 这是大部分人给了范例也不会用的工程 , 原因是用RM的大部分人是技术比較低
回复 支持 0 反对 1

使用道具 举报

Lv4.逐梦者 (管理员)

老黄鸡

梦石
0
星屑
19318
在线时间
6530 小时
注册时间
2009-7-6
帖子
12998

开拓者贵宾

发表于 2020-2-28 19:59:50 | 显示全部楼层
甚至已经公开了,强,lanza强
RGDirect - DirectX驱动的RGSS,点我了解.
长期合作请联系QQ1213237796(暂停)
定制RM全系列脚本,黑科技,请联系QQ349570812(暂停)。
不接受私人问题咨询
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
8262
在线时间
7837 小时
注册时间
2012-6-19
帖子
6774

开拓者短篇九导演组冠军

发表于 2020-3-2 21:37:17 | 显示全部楼层
啊……没有 TOPLEVEL_BINDING
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
1764
在线时间
3230 小时
注册时间
2005-10-22
帖子
5525

开拓者贵宾

发表于 2020-3-3 08:13:53 | 显示全部楼层
于是,我要实验这个和RGD哪一个可以更快把GPU加热到100度然后用来做饭(大雾)
Ascension draws near.
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1258
在线时间
556 小时
注册时间
2011-12-18
帖子
662
发表于 2020-3-17 00:43:56 | 显示全部楼层
求MEGA或GOOGLE或其他不用註冊帳號的盤

点评

感謝... 主要還是想要那個 player程序  发表于 2020-3-17 21:31
已添加永硕E盘的链接,不过由于单个文件限制,目前只提供player程序的下载,没有示例工程  发表于 2020-3-17 08:35
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3713
在线时间
1140 小时
注册时间
2016-4-7
帖子
973

开拓者

发表于 5 天前 | 显示全部楼层
这是可以用ruby 标准库了?
我试试我的RGUI 是否可以正常在上边跑
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2020-3-30 02:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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