当前位置: 首页 >> 广告
【翻译】音游开发速成:来自Bemuse作者的提示(作者:5argon) 全球聚焦
来源:哔哩哔哩     时间:2023-07-03 01:06:56

【文章原载于/native-audio/rhythm-game-crash-course/,授权翻译转载,再次转载请联系原作者获取授权。】

【系列文章目录】

音游开发速成(概论)


(资料图片)

背景音轨

游戏设计与制谱

四类音频应用程序

音频导入设置

与DSP同步

来自Bemuse作者的提示【本文】

来自Bemuse作者的提示

Bemuse(/)是一个基于HTML5技术、React、Redux和的在线web音游,其作者@dtinth(/dtinth)分享了他的一些关于延迟的技术。感谢@dtinth!

我们在Web环境中没有访问本地资源的权限,所以我开发Bemuse的时候无法控制延迟,不得不做了很多应变工作。(顺便说一下,浏览器一直在对此进行改进。例如我的Android设备上的Chrome曾经延迟高达120 ms以上,而现在是70 ms左右)。

延迟过大的问题:在高延迟设备上,我们可以仿照Guitar Hero将反应音效(raction sound)转换为分层音效(layer sound)。当延迟高于10 ms时,Bemuse会切换到另一种模式。它将在玩家敲击键盘前自动播放key音,但如果玩家没有击中Note,那么之前播放的声音就会被取消,并且暂时禁用自动播放功能。直到玩家击中了另一个Note,自动播放模式才会重新启用,但这个Note听起来会很晚,这是一个权衡点。另外,如果玩家在某个Note上打出了OFFBEAT判定【译注:这是Bemuse的最差击中判定】,那么作为惩罚,该Note的音高会稍微偏移。

与音频时间同步的问题:在Web环境中,也可能以非连续的步骤进行更新。该问题仅在某些浏览器/操作系统中出现,当缓冲区刷新时才会更新该值,而非“实时”更新。Bemuse通过持续采样并收集偏移增量(dspTime - 游戏时间)来绕过这个问题。游戏对上一秒内的多个偏移增量求均值,并依据该值从游戏时间测定真实音频时间。这意味着缓存超载和音频跳跃不会导致游戏内容的突然跳跃。Note会滚动得更快或更慢,从而跟上dspTime。

帧间输入问题:我们可以将点击动作发生的时间考虑成两帧之间的时间范围,而不是当做发生在一个时间点上的事件。权衡点在于判定将在帧率下降时会变得更宽松,但我觉得帧率下降本身就已经是一种惩罚

另一种视觉辅助是用颜色去编码不同的节奏类型(四分音符/强拍、八分音符/弱拍、十二分音符/三连音等)。这让玩家可以游玩非常唬人的谱面,例如英国视奏锦标赛的这张谱:/F69zEKYVLHE。

【译注:站内视频可参考

与原文是同一视频】

标签:
7月3日三大报内参精选
« 上一篇
最后一页
下一篇 »

最新头条

广告

X 关闭

广告

X 关闭

旅行社