Page 21 -
P. 21
로딩하는 동안 간단한 미니 게임을 플레이할 수 있다면 더욱 즐거울 것입니다. *
그림 1-13 로딩하는 동안 즐기는 미니 게임
1
멀티스레딩
멀티스레딩을 하지 않는다면 이처럼 ‘로딩하는 동안 다른 뭔가를 하도록’ 어떻게 구현해 주어야 할
까요? 아마도 다음 코드처럼 ‘하나 로딩하고 렌더링하기’를 반복해야 할 것입니다.
LoadScene()
{
Render();
LoadScene();
Render();
LoadModel();
Render();
LoadTexture();
Render();
LoadAnimation();
Render();
LoadSound();
}
당연히 코드가 매우 지저분합니다. 로딩하는 파일 크기가 크다면? 큰 파일을 로딩하는 동안에는
일시적으로 프레임률(frame rate)이 뚝뚝 끊길 것입니다. 그러면 큰 파일은 부분(chunk) 단위로 로딩
하면서 렌더링을 하면 어떨까요? 좀 낫기는 하겠지만, 그래도 프레임률은 균일하지 못할 것입니
다. 코드가 더 지저분해지는 것은 물론이고요.
이때 멀티스레드를 이용하면 두 가지 문제를 모두 해결할 수 있습니다. 다음 코드를 봅시다.
* 로딩 화면에서 미니 게임을 플레이하는 아이디어는 ㈜남코(Namco)의 특허였으나, 이 특허가 2015년에 수명을 다했습니다. 여러분, 봉인이
풀렸습니다!
029