版本考古
源起
根据作者 在 reddit 上的帖子,早期版本大概长这样:
随后作者在 Github 上留下了客户端和服务器的代码。
这里的客户端可以看作时 easyrpg player 的直接魔改,在其基础上同步并渲染了其他玩家的位置。而 orbs fork 的代码 go 语言的 websocket 聊天室,为 rm 游戏中的每一个场景都建立了一个独立的聊天室,并且还增加了一个 file server 用于导入导出玩家存档。
(好吧,我也认为这里面最困难的地方就是编译这个 easyrpg player)
随后作者选择将代码留给了社区并进行了神隐,根据目前查阅的资料,由原始版本随后衍生出 ynoproject 和 yumebooru 两个分支。
ynoproject
这份版本直接继承自 twig33 的版本,其中服务端对原来的 orbs 进行了细化,将服务器模块和网页模块进行了分离,把外面那个框独立了出来,取名 Forest Orb …(不知道是什么梗)
另外还做了一个非常酷的门世界的主页,用来在不同的派生之间进行导航。。。
yumebooru
Yumebooru 是一个来自俄罗斯的梦日记同人图床,维护者为 hujle,(对,她还出现在了上面的截图中)
随着 twig33 的神隐,Yumebooru 也几乎和 ynoproject 同时进行了二次开发,两边的版本各具特色,当然最主要的两点修改是:
1 – Yumebooru 的服务器使用了 nodejs(妈妈再也不用担心我编译不起来 Go 语言了)。
2 – Yumebooru 对客户端进行了更多魔改,将聊天室、网络版设置菜单等功能也一并封装在了客户端里。
所以你进去之后会发现游戏里多了一组菜单,可以用于进行调整。
Easyrpg 里的菜单选项是存储在 vector 里,所以上面多出来的菜单并不需要修改游戏的原代码,和之前一样都是在解释阶段加进去的。这样的好处和坏处我觉得一样多,首先额外多出来的菜单的风格可以自动同步游戏内部的 UI,比如当你在 y2k 里切换菜单主题的时候,外面聊天框的主题也会随之变化。但是对于像对于对菜单进行了魔改的游戏,比如 ib 来说,就会出现额外的兼容问题,同时也需要额外的代码来进行本地化。
除此之外两边都处在活跃更新的状态,都加入了对音效的同步,但是都还没有同步其它的 npc。
(例如 y2k 的卧室里开关柜子,其他人就看不到。)