더북(TheBook)

X 값과 Y 값을 기록한 다음 지표면에서 높이가 0인지 아닌지를 검사한다. 0이면 단일 비트로 true를 기록하여 ‘그러함. 이 객체는 보통의 높이 0임’이라 표시한다. Y 값이 0이 아닌 경우 같은 비트에 우선 false를 기록하여 ‘아님. 높이가 0이 아니므로 다음 32비트에서 실제 높이를 읽어야 함’이라 표시한다. 이제 높이를 기록하는 데 있어 최악의 경우엔 1비트가 늘어 33비트를 써야 하는 경우도 있음을 주목하자. 늘어난 1비트는 이 값이 일반적인 경우를 나타내는 기댓값인지 그렇지 않은지 나타내는 플래그이며, 나머지 32비트는 특수한 경우에 실제 값을 표현하는 데 쓰인다. 얼핏 보기에는 전보다 직렬화에 필요한 비트 수가 늘었으므로 비효율적으로 여겨질 수 있다. 그렇지만 실제 사용될 비트 수의 평균치는 고양이가 보통 땅에 있는 경우가 많은지 그렇지 않은지를 따져 계산해 보아야 알 수 있다.

게임 내 통계 추적을 통해 유저의 고양이가 바닥에 있는 경우가 얼마나 되는지 로그를 남겨 볼 수 있다. 집중 테스트실에서 테스터들이 플레이할 때 로그를 남기거나, 실제 유저들이 초기 버전 게임을 플레이할 때 게임 시스템이 인터넷으로 통계치를 전송하게 할 수도 있다. 이런 실험을 통해 얻은 결과로 플레이 타임의 90%를 바닥에 붙어있었다는 지식을 얻었다고 가정해 보자. 기초적인 확률 공식으로 높이를 나타내는데 필요한 비트 수의 기대치를 계산할 수 있다.

P(바닥) × Bits(바닥) + P(공중) × Bits(공중) = 0.9 × 1 + 0.1 × 33 = 4.2

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.