棒到不行的音乐游戏!节奏跃然纸上!立即下载。 ——OSU! 官网
OSU!(俄亥俄州立大学),俗称粉饼、藕酥——是我很喜欢的音乐节奏游戏,大学时经常沉迷对着屏幕点圈圈,还买了块数位板当输入设备,算是我玩过的(一只手都数得过来的)联机游戏中的精品了。最近发现它的演进很快,不仅支持各种操作系统平台,还开源了。
其实UI唯美、玩法独树一帜的音乐游戏也很多,比如移动端的兰空VOEZ,古树旋律Deemo,Arcaea,Lanota,Cytus,O2Jam,同步音律喵赛克,节奏天国;街机核心玩家熟悉的IIDX,Jubeat,maimai,BEMANI。除了音游之外有其他游戏元素的类音游如偶像大师、缪斯计划、几何冲刺等。音游圈的亚圈子很大,亚文化也多如牛毛,其中的OSU!不算特别新颖独特,但它受众遍布全球,甚至还有挑战人类反应速度极限的全球赛事。我认为OSU!这么受欢迎的原因在于它的谱面格式开放,任何人都可以把自己喜欢的曲子做成谱面放出来给大家游玩,从而形成了庞大的、各种风格都有的谱面库、玩家群体/爱好者社区。
不过OSU!早期只能在Windows上玩,偶尔能在Github上看到不甘心的别系统用户DIY的开源版本,虽然大多都无人维护了。原版的OSU! 是闭源的,听说是用Microsoft .NET Framework Software Development Kit ——还是XNA Framework来着?当时.NET还没有拥抱Linux,别的操作系统只能用crossover、wine或者跑虚拟机,由于DirectX的Linux驱动支援不好,以及OpenGL性能问题,其他系统下OSU!的操作体验糟糕。
不过2019年了,我发现现在主流的OSU! 游戏程序有三四个维护良好的分支,分别是官方的osu!lazer ,opsu,还有osu droid和早期的iOS移植版osu stream。 一个个看了过去。
osu!lazer
osu!lazer是官方开发的新客户端,lazer是开发代号,对外仍然叫做OSU!。旧的那个只针对Windows开发的客户端是闭源的,而osu!lazer它是开源的,代码放github上。peppy老板不知怎么的突然拥抱开源社区,把osu官网的web代码,wiki,framework,resource,扩展template,deploy脚本以及相关API和一堆附加工具都放出来了,甚至还贴心地为非Windows用户打包了osu-wine。
由于底层运行时是跨平台的.NET core,故而这个版本支持Windows/macOS/Linux。甚至可以用Xamarin编译到Android,iOS,甚至Windows Phone上;实际上官方也提供了三大桌面操作系统和两大移动操作系统的二级制包。这显然是个音游界迈入大同世界的喜讯。这个客户端更新非常勤快,可能是每日自动编译release。
但它有一个好处就是功能与桌面版完全一样,支持osu、太鼓、mania、接水果四种模式。外设,画面效果,键位调整,登录功能什么的更不在话下。
然后有一个问题是,osu!lazer不再支持DirectX作为图形接口,只支持OpenGL,而众所周知OpenGL在巨硬系统下性能低一些(截至2017年)。 我用NVIDIA MX150显卡玩起来总觉得有迟滞感,体验不如在我上一台笔记本电脑(Lenovo E430)的NVIDIA GT635M显卡用DirectX接口跑旧版OSU!。
Android版本我试了,安装包比较大,但界面没有做移动设备适配,仍然是桌面的布局,界面元素在手机上非常小,普通手机根本按不准圈圈,我估计至少得拿7.9寸平板电脑才能玩。我在考虑把它移植到家里的Phicomm N1安卓机顶盒上(Amlogic S905——ARM Cortex-A53,Mali 450的图形性能应该够)再用USB外设在电视上游玩。(只要电视的HDMI输入延迟过得去)
osu droid
osu droid,或者叫osu!Evolution,早期是neico维护的,后面代码交由osu_droid贴吧开发组接管。更新也比较勤快,截至2019年12月,最新版本是2019年7月17日。安装包大小大约18MB,只支持osu游玩模式。界面有对手机进行适配,UI也和桌面版整得一样漂亮,支持部分设置。另外有一个爱好者写的谱面下载器osu!MapDownloader,可以配合使用。
opsu
这是一个……用java完全重写的社区维护的客户端,opsu就是Open oSU。不确定开发者有没有遵循净室原则,哈哈。
opsu用了 Slick2D(一个java的2D游戏库)和LWJGL (OpenGL和OpenAL的java wrapper),其Android fork是通过libgdx来fake Slick2D。桌面操作系统用的都是一个jar包,没有特别分开发行。
具体试下来并不咋样,很显然一些细节还没有整好,在Windows上甚至不能修改窗口大小,而且几乎没有可设置的选项。Android安装包十几兆,和Windows版一致。除了UI自适应做得不错之外,应该说还只是个仅仅“能用”的半成品。
osu!stream
这个移动客户端出现得很早了,是官方维护的版本,我甚至在Windows Phone 8上面玩过,不过它主要的开发对象是iOS。当然功能也比较单一,也只支持osu模式。而且最糟糕的是曲子只能从内置界面下载,只有二十来首,估计是试验性的移植版。
其他相关项目
还有一些民间涌现的OSU相关的项目,比如虾包做的osu!专用小键盘 osu-keyboard。以及用WebGL在浏览器上跑的客户端 osu-web,去除了游戏功能只保留音乐播放的osu-player还有在版权危机争论那一阵子出现的第三方bancho(服务端程序),还有小工具如osu!helper以及更多五花八门的小工具。不过好多年久失修了,毕竟开源社区就是忙忙碌碌永远在造轮子……
最近在逛Github时,还发现了个特别牛逼的项目osumapper:用CNN/LSTM/GAN神经网络给OSU!制谱。这样的谱面没有灵魂!不得不说身怀各领域绝技的玩家的创造力是无穷的,可能音游圈和编程圈子重叠不小。大家都喜欢在折腾中获取成就感。这个圈子应该蛮大的,以至于在互联网第一次集体沙盘绘图大赛上,OSU的图标占据了颇大的一块地方。
说来让人笑话,我之前甚至也用Unity3D仿造了一个兼容.osz格式谱面的游戏,选曲界面整得还有模有样,但性能奇差,经常内存溢出,而且最后卡在绘制贝塞尔曲线上,于是草草结束归档了。
这个游戏不玩也很久了,但它给我带来了不少快乐,但还是说一句,游戏要适度,健康娱乐,平衡时间。
Be safe! Don’t play for too long at a time! Remember to take breaks! ——OSU!官网