결정 01
효과음은 재생할 때 만들지 않고 미리 만들어 둔다
- 문제
- 채굴할 때마다 오디오 객체를 새로 만들어 재생했더니, 연타하면 소리가 끊기거나 지연됐습니다. 브라우저가 매번 디코딩을 다시 하기 때문입니다. 게임에서 0.2초의 지연은 '반응이 없다'로 읽힙니다.
- 선택
- 사운드를 미리 디코딩해 메모리에 올려 두고, 재생 시점에는 이미 준비된 버퍼를 꺼내 쓰도록 바꿨습니다. 동시에 울릴 수 있는 소리의 개수에 상한을 두어 겹쳐 터지는 것도 막았습니다.
- 결과
- 연타해도 소리가 즉시 따라붙었습니다. 체감 반응 속도가 눈에 띄게 좋아졌는데, 실제로 빨라진 것은 화면이 아니라 소리뿐이었다는 점이 오래 기억에 남았습니다.