우리가 흔히 아는 로딩 장면 |
소닉 더 헤지혹(2006)에서 |
[clearfix]
1. 개요
1.1. 원래 의미
정확한 의미는 프로그램 동작에 필요한 프로그램 그 자체와 리소스를 보조 기억장치(가령 하드디스크)에서 주기억장치(메모리)로 불러들이는 과정이다. CPU는 보조기억장치에 바로 접근할 수 없기 때문이다.[1] 때문에 로딩은 현대 전자계산기 구조에서 반드시 필요한 과정이다.'Loading'은 '싣다'라는 뜻의 load의 현재진행형이기 때문에 '로딩 중'이라는 말은 일종의 겹말이다. 번역시 보통 '불러오는 중'이나 '읽는 중', '로드 중' 정도가 많이 채택된다.
일반적으로 로딩 시에는 프로그레스 인디케이터 UI를 이용하여 로딩 중임을 나타낸다.
1.2. 부가 의미
하지만, 일반적으로 '로딩'은 이러한 '로딩 작업이 걸리는 시간'이란 의미를 가진다.프로그램이 처음 실행될때 디스크에서 읽어서 메모리에 저장하고, 이것이 화면에 출력되는 데까지 걸리는 시간을 의미한다.
1.3. 게임에서의 의미
일반적으로 이전 세대의 콘솔 게임기는 '적은 메모리'와 '느린 광 미디어'라는 두가지 사항[2]이 조합되어, 로딩에 많은 시간이 소모되는 경우가 흔했다. 게다가 게임은 그 특성상 새 게임을 하거나, 스테이지가 바뀌거나, 지역 이동을 하거나 할때마다 로딩을 해야 하는 경우가 많다. 그리고, 이러한 로딩시간이 길면 길수록 게임에 몰입을 방해하게 된다.1.4. 로딩에 영향을 미치는 요소
- RAM: 메모리가 많으면 미리 대량의 데이터를 로딩해 놓고 돌리면 되기에, 처음 한 번은 로딩시간이 길 지라도 게임중에는 별다른 로딩 없이 쾌적하게 플레이가 가능해 진다. 크고 넉넉한 메모리 용량은 로딩을 줄이는 데 크게 도움된다. 다만, 현재는 메모리의 용량이나 처리속도가 매우 높은 수준이고 절대 다수의 데이터 출입의 병목현상은 바로 아래 서술할 보조기억장치에서 일어나기 때문에 현재는 로딩속도를 개선하기 위해서 중요시되는 부분은 아니다.
- 보조기억장치: 보조기억장치가 빠르면 빠를수록 로딩 시간은 줄어든다. CD-ROM을 사용하던 기기들은 태생적인 성능 때문에 로딩 문제가 많이 발생했다. PS3나 엑스박스 등이 기본적으로 HDD를 장착하여 출시하는 것에는 성능 문제도 크다.[3] 아이러니하게도 가장 읽기 성능이 빠른 보조기억장치는 '롬 카트리지'인데, 말 그대로 CPU가 직접 읽을 수 있는 주기억 장치인 롬을 연결해서 사용하기때문에 롬 카트리지 방식을 사용하는 패밀리컴퓨터, 네오지오는 사실상 로딩이 없다. 다만, 롬 카트리지는 가격과 용량 문제로 퇴출되었다. 또한 2010년도 중반에 들어서 SSD가 대중화되면서 현재는 개선이 많이 된 편이다. 그러나, 여전히 전자기기의 모든 구성요소 중에 가장 느리게 작동하는 부분[4]이어서 여전히 로딩속도에 가장 큰 영향을 주며, 프로그램 외적인 부분에 있어서 느린 로딩속도를 해결하기 위해 가장 우선적으로 성능을 개선해야 되는 부분이기도 하다.
- 데이터 양: 불러올 데이터가 많으면 많을 수록 당연히 로딩 시간은 길어진다. 보조기억장치 → 메모리 → CPU 순으로 흘러가게 되는 공정 속에서 데이터는 운반 해야할 "물품" 이라 볼 수 있고, 이런 물품의 양이 많으면 많을 수록 처리속도가 느려지는 것은 당연한 것이다. 이 데이터 양으로 인한 로딩 속도의 저하는 크게 사용자 측면과 개발자 측면의 문제로 나눌 수 있는데, 사용자가 사용하는 보조기억장치나 메모리 등의 사양이 낮다면 처리해야 할 데이터 양이 적다 하더라도 로딩속도가 느려지고, 개발자가 만든 프로그램이나 게임이 최적화가 제대로 되지 않아 별것 아닌 작업에도 방대한 양의 데이터를 요구하거나 사용자가 가진 기기의 성능을 제대로 활용하지 못하면 역시 로딩 속도가 느려지는 결과를 낳는다.
2. 로딩 방법
2.1. 로딩 화면 띄우기
- 검은 화면
- 로딩 화면조차 띄우는 것을 거부하는 방법. 제일 간단한 방법 이지만 이 방법은 게임이 로드 중에 오류로 인해 중단되어도 확인할 수가 없다는 치명적인 문제점이 존재한다. 그래서 현재는 UI가 발전하면서 아케이드 게임이 아닌 한 쓰지 않는 방법이며, 일부 게임에서는 연출의 일부인 것처럼 속이는 용도로 사용하기도 한다. 대표적인 게임으로 스탠리 패러블과 비기너스 가이드.
- 그냥 '로드 중'이라고만 띄우기
- 역시 간단하지만, 그냥 정지된 글자나 이미지를 띄워 놓으면 역시 게임이 멈췄는지 정상 로드 중인지를 확인할 수 없다. 그래서 로드 중이라는 표시 외에 움직임을 추가하는 방식을 많이 사용하며, 로딩 메시지를 게임에 맞게 바꾸기도 한다.
- 게임과 관련된 정보와 팁
- 가장 널리 쓰이는 보편적인 방법으로 게임에서 써먹을 수 있는 작은 팁이나 게임 관련 정보를 화면 상에 보여준다. 물론 대부분 도움이 안 된다. 보더랜드 2나 엘더스크롤 5: 스카이림 같이 게임에서 나오는 무기류나 지역들을
얼짱각도로보여주기도 한다. 가끔씩 농담을 집어넣기도 한다. 농담이나 생뚱맞은 문구를 로딩 화면에 집어넣기로는 맥시스사의 게임들이 유명하다. 특히 심즈 시리즈의 로딩 문구가 워낙 특이해서 밈으로도 자주 쓰이는 게 특징. 이 문구가 해당 확장팩의 특징 같은 걸 은유적으로 잘 표현하는지라 확장팩 별로 이런 로딩 문구를 읽는 재미가 있다. 오컬트 요소가 많이 추가된 심즈3 슈퍼내츄럴 확장팩 같은 경우 '빠른 로딩 영약을 만드는 중'이라는 문구가 로딩 화면에 뜬다. '심시티 5 로딩 같은 경우는 라마를 몰고 가는 중, 클로저스의 세하가 게임기를 끄는 중과 같은 플레이와는 관련이 없는 행위를 하는 중이라고 뜨는 경우가 많다. 하스스톤 로딩에서도 그렇다. 하지마라도 워해머의 로딩 메시지로 유명해진 것이다. - 웹툰
모바일 게임에서 주로 사용되는 방법으로 로딩화면에 하나의 만화를 넣는 방법으로 위 방법의 일부로도 활용되기도 한다. - 미니 게임
- 로드 화면에 게임을 집어넣는 것.
메인 게임이 재미없으면 이게 더 재밌을 수도 있다.대표적으로 플레이스테이션용 릿지 레이서의 로딩게임 갤럭시안과 철권 1의 로딩 게임 갤러그가 유명하다. 유독 남코 계열 게임에서 많이 찾아 볼 수 있는데 이는 단순히 로딩중 미니 게임 특허를 남코가 소유하고 있었기 때문이다. 지금은 유튜브와 크롬에도 인터넷 연결이 지연되거나 아예 안될 때 가능한 점프 게임이 있다.[5] 극악의 로딩으로 유명한 심즈 3에서는 1.63패치부터 세이브 파일 로딩에 숨은 아이템 찾기 미니게임을 넣었는데, 지정된 아이템을 찾아 클릭하면 일정량의 평생 행복 포인트를 획득했다는 메시지가 표시되고, 로딩 완료 후 활성 가족에게 평생 행복 포인트가 분배된다. 위의 팁과 합쳐서 스킬 연습을 넣는 경우도 있다. 소닉 프론티어가 이러한 경우 중 하나. - 컷씬
- 로드 중에 컷씬이나 보고 있으라고 하는 방법. 다만 이미 본 컷신이라도 스킵도 못하고 그냥 봐야 하거나 스킵이 가능하다고 해도 로딩 스크린을 봐야하며, 일부 게임의 경우 로딩이 끝나면 컷신을 스킵할 수 있게 설정해놓는 경우도 있다. 혹은 콜 오브 듀티 시리즈처럼 로드 중에 미션 브리핑을 진행하는 경우도 있다. 이건 주로 바이오하자드 시리즈 초창기 버전에서 문을 열거나 계단을 오르내리는 등의 컷신을 넣고 그동안 다음 방의 데이터를 로드한다.
2.2. 심리스(seamless) 방식
로딩 화면을 띄우지 않고 게임 플레이 중간중간 데이터를 미리 로드해서 게임 플레이가 끊기지 않게 하는 방식. 로딩 때문에 끊기는 게임의 템포를 끊기지 않게 해주는 기술이다. 오픈 월드라고 하면 대부분의 사람들이 이 방식으로 알고 있지만 그렇지는 않다.- 프리 로드
- 프로그램 시작 전이나 프로그램 시행 도중에 다음에 로드해야 할 부분을 미리 로드하는 방법이다. 일반적으로 대형 맵을 다수의 셀로 나누어 현재 셀과 인접한 셀을 최우선적으로 로드하고 이동하면서 이를 지속적으로 갱신[6]하는 방식으로 만든다. 대표적으로 젤다의 전설 바람의 지휘봉과 스카이림의 프리로드 방식이 이에 해당한다. 로딩 화면을 굳이 볼 필요가 없어진다는 장점이 있으나 연산 성능이 일정 수준을 만족해야 하며, 주기억장치인 RAM의 용량 및 SSD/RAID의 사용 여부가 프리 로드 성능을 크게 좌우하게 된다는 단점이 있다.
즉, 돈을 컴퓨터에 발라야 한다.개발자의 입장에서도 로딩 알고리즘을 구성하기가 매우 어려워지기 때문에, 어느 정도 개발역량이 있는 개발사의 오픈월드 게임에서 자주 사용된다.[7] 그 외에 마인크래프트도 청크 로딩[8]이라는 이와 같은 개념을 사용한다. - 교묘한 눈속임
- 미러스 엣지, 데드 스페이스 같이 엘리베이터가 나오는 대부분 게임과 테라의 페가수스를 통한 마을 이동 등이 이에 해당된다. 특정 지역간의 이동 사이에 항상 메모리에 미리 로드가 되어 있는 특별한 공간[9]을 사이에 추가하여 기존 맵 → 미리 로드되어 있던 특수맵 즉시 이동 → 목적지 맵 로딩 진행[10] → 목적지 맵으로 이동하는 방식이 이에 해당한다. 게임에서는 굳이 엘리베이터 타는 시간은 건너뛰지 않는 경우가 많은데, 이 시간이 로드 시간이다. 로딩 중은 안 떠도 로드 중인 셈. 갓 오브 워 시리즈처럼 문을 여는 시간을 길게 하는 방법을 쓰기도 하는데, 이 역시 문 여는 시간이 로드 시간.[11] 어떤 게임들은 고의로 긴 통로를 만들어 놓아서 플레이어가 통과하는 시간을 길게 하는 경우도 있다. 저니나 록맨 시리즈 등에서 써먹었다. 일종의 버퍼링이라 할 수 있겠다. 동굴처럼 점점 어두워지는 공간 사이에 검은색 빈화면만 표시되게한 로딩스크린을 띄우는 식으로 로딩화면을 숨기는 희귀한 사례도 존재하지만, 로딩 도중에 게임이 뻗어버려도 플레이어가 바로 알아차리지 못한다는 치명적인 단점이 존재한다.
- 우선순위 로드
- 제일 중요한 부분만 먼저 로드해서 일단 게임 화면을 띄우고 나중에 덜 중요한 부분을 로드하는 방법이다. 일부 게임들은 처음 게임 시작시에 그래픽이 뭉개지는 현상(일명 찰흙 현상)을 볼 수 있는 데 이는 핵심 스크립트와 저급 그래픽 리소스를 먼저 로드하여[12] 게임 진행이 가능한 상태로 만들어주고, 게임을 진행하면서 남는 여유 능력을 이용해 실시간으로 고급 그래픽 리소스를 로드하여 교환하는 방식을 사용하기 때문이다. 대표적으로 사이버펑크 2077와 원신이 해당 방식을 사용하는 것으로 알려졌다.
- 최적화
- 게임 데이터 리소스와 그 배치를 최적화해서 애초에 로딩 시간을 줄이는 것. 각종 프로그래밍적 꼼수와 상식을 뒤집는 다른 시각이 필요할 때가 많다. 리소스의 용량 압축도 여기에 해당되는데, 예전 게임에서 자주 봤을 CRIware 미들웨어가 한 예다. 이 로고를 자주 봤을 것이다. 밸브 코퍼레이션에서 제작한 싱글플레이 지향형 게임들은 다른 게임사라면 하나의 구간으로 만들었을 것도 여러 개의 로딩 구간으로 쪼개서, 로딩을 자주 하는 한이 있어도 로딩 시간을 최대한 줄이는 방식으로 최적화를 달성했다.
3. 극악의 로딩으로 유명한 게임
로딩이 길어지는 원인은 주로 과거 게임기의 2배속 시디롬 같은 부족한 성능에서 기인하는 일도 많지만, 개발자의 실수로 이해할 수 없이 긴 로딩 시간을 갖는 게임들도 많이 있다.진한글자게임은 이하 막장 로딩에 해당하는 게임 목록들. 모두 시간이 너무 많이 걸려서 플레이어를 빡치게 만드는 로딩으로 유명하며 이를 플레이하는 사람들은 미치거나 해탈하거나 둘 중 하나. 흔히들 커피 한잔의 타임 또는 컵라면 한그릇의 여유라고 디스한다.
- 네오지오 CD로 발매된 거의 모든 게임들: 이건 기기 특유의 많은 양의 램을 CD-ROM 드라이브의 속도가 버티질 못해 일어난 참사다.
- 스맥다운!vsRaw PSP타이틀
- PS판 각명관 시리즈
- PS2판 네오지오 배틀 컬리시엄
- PS판 KOF 시리즈: PS의 램 용량이 KOF 6명분의 데이터를 모두 읽어들이기에 모자라서 사람 바뀔 때마다 로딩한다.
- PSP판 신기환상 스펙트럴 소울즈2 ~언리미티드
로딩사이드~ - 진설 사무라이 스피리츠 무사도열전: SS판은 그나마 빠르다. 그래봤자 오십보백보지만.
- 소닉 더 헤지혹(2006): 이 분야의 레전설. 넘쳐나는 버그들로도 모자라서 사실상 시리즈 내의 전설급으로 로딩이 길다. 발매 후 10년이 지난 현재까지도 공식에서 심심하면 이 게임의 로딩 드립을 치고 있다.[13]
- 심즈 3: 수많은 DLC와 오픈 월드의 조합으로 시리즈 중 독보적인 로딩을 자랑한다. 결국 후속작 심즈 4에서는 오픈 월드와 CASt를 삭제하는 등의 극약처방을 내놓아서 로딩 문제를 해결했다.
- 신 슈퍼로봇대전: 전투 장면 돌입 로딩이 길뿐더러 스킵도 불가능.
- Grand Theft Auto Online: 온라인 프리모드 진입에 매우 오랜 시간이 걸린다.[14] 농담으로 플레이 타임중 절반이 로딩이란 소리도 있는데 플레이 해보면 사실이다. 로딩도 문제긴 한데 또 큰 문제는 무한로딩. 5번중 1~2번꼴로 무한로딩이걸린다. 다만 최근에 바뀌었는지 과거처럼 엄청나게 기다리지 않아도 된다!
Grand Theft Loading Online 이런 것도 나왔다하도 로딩이 심해서 어느 한 능력자 유저가 파일을 뜯어 분석하다가 해결책을 찾아내 개발사 락스타 측에 전달하고 락스타는 발매한지 무려 6년만에 그것을 패치해 현재는 많이 개선되었다. 여담으로 해결책을 찾은 유저는 10000달러를 개발사측에서 지급받았다고 한다.[15] - 콘솔판 XCOM 2:초반부는 멀쩡하지만 중후반부터 5분은 기본이요 최대10분까지 잡아먹는다.
철인 유저들은 그동안 자신의 플레이를 반성한다고 카더라 - PSVITA판 영웅전설 섬의 궤적
로딩전설 로딩의 궤적 - 아스팔트 8: 특히 상점의 경우 5~10분은 족히 기다려야 한다.
- 폴아웃 4: 로딩 중에도 GPU에 프레임 제한이 걸려 로딩이 지연된다. 이를 해결하는 유저 모드가 있다.
- 모여봐요 동물의 숲: 건물이나 다른방에 들어가거나 나오는데도 10초 이상 기다려야 하며 게임을 실행할때 타이틀 화면에 게임의 배경인 섬을 띄우기위한 로딩, 게임 시작후 안내방송을 위한 로딩(그날 처음실행할때만), 맵 로딩이 순서대로 진행되며 각각의 로딩시간이 짧은것도 아니다. 심지어 타이틀 화면에서 일정시간이 지나면 타이틀화면을 새로고침하기위해 또 로딩을 하며 당연히 이때는 게임을 시작할 수 없다.
4. 가짜 로딩
길든 짧든 로딩이 없는 소프트웨어란 존재할 수 없다. 그런데 오히려 이러한 점을 활용해서, 로딩 시간을 활용하는 가짜 로딩을 만들기도 한다.은행 업무와 같이 중요한 용도로 사용하는 어플리케이션이나 게임 등에서 이러한 가짜 로딩을 자주 활용한다. 은행 업무처럼 일반적으로 중요하다 여겨지는 업무를 할 때에는 일반인들이 '뭔가 특별히 더 오래 걸려야 할 것 같은' 느낌을 받기 때문에 로딩이 너무 빠르면 오히려 불안감을 조성한다. 따라서 이미 처리가 끝났음에도 아주 짧은 가짜 로딩을 보여줘 '중요한 일을 처리 중'이라는 이미지를 심어주는 것이다.
게임의 경우는 타 사무용 프로그램보다 더 긴 로딩 시간이 필요하므로 로딩 화면에 아예 '시간을 들여 읽어야 하는' 텍스트를 집어넣는 경우가 많은데, 어떤 개발자는 이런 식으로 게임의 세계관이나 플레이 팁을 소개하는 방식을 적극 활용하기 위해 로딩 시간을 늘린다. 이러한 텍스트는 길어봐야 한두 줄이지만, 이조차도 사람이 읽고 인식하려면 몇 초의 시간은 필요하기 때문에 1초만에 끝나는 로딩이라도 일부러 늦게 탈출시켜서 텍스트 읽는 시간을 부여하는 것이다.
여담으로 가짜 로딩에서 진행 상황을 로딩바로 표현할 때는 막대가 차오르는 속도에 일부러 무작위 계수를 부여해서 난잡하게 차오르게 하는 경우가 많은데, 이는 막대가 균일한 속도로 차오를 때 진짜 로딩인 것처럼 포장하려는 목적이다.
[1] DirectX 12, Vulkan 등 최근에 발표된 게임 API에서는 보조기억장치에 직접 접근이 가능하다.[2] 예를 들어 '플레이스테이션'은 총 메모리가 3.5MB 였고, 2배속 CD-ROM 을 사용했다.[3] PS5와 엑스박스 시리즈 X부터는 SSD를 쓰기 때문에 로딩이 더 줄어든다.[4] NVMe SSD와 듀얼채널 DDR4 SDRAM의 속도는 10배 이상 차이난다![5] 이 상태시 공룡 모양의 아이콘이 뜨는데, 이 공룡 모양의 아이콘을 누르거나 키보드에서 스페이스를 누르면 그래도 게임 시작이다.[6] 가까워지는 셀은 추가로 로드, 멀어지는 셀은 해제[7] 오픈월드가 아니지만 오버워치도 전투의 페이스를 유지하기 위해 비슷한 방식을 썼다. 게임을 시작할 때 맵은 보이지만 캐릭터가 안 보이는 게 그 이유.[8] 다만 게임을 처음 켜거나 다른 차원에 갈 때는 일반적인 로딩을 한다.[9] 또는 맵 이동과 관련된 조건에 근접하면 프리로드하는 방식을 응용하기도 한다. 이 경우 프리로딩에 필요한 시간을 벌기 위해 약간의 불필요한 행위를 하면서 동시에 프리로딩을 하기도 한다.[10] 이 때에도 제한적인 게임 진행이 가능하다.[11] 대표적인 사례가 폴아웃 시리즈의 볼트 문이다.[12] 대부분의 로딩 시간을 차지하는 것은 용량이 큰 텍스처와 GUI 및 대량의 텍스트 등이다.[13] 엑박 360의 에뮬레이터인 Xenia를 사용하면 로딩이 그나마 좀 줄어든다.[14] 다만 이는 컴퓨터 성능에 따라서도 다르다. 인텔 i7같은 고성능 CPU로는 로딩시간이 더 빠르고 즉시 온라인으로 들어가도 빠르게 접속되는반면에 셀러론처럼 최악의 성능의 CPU는 로딩시간이 매우 길다.[15] 이유는 휴먼에러. 정확히는 코드 배열에 다 때려 박는 식으로 짠 잘못된 코드 때문에 그랬다. CPU가 그걸 정리한다고 미친듯이 루프를 돌려버리는데 약 20억회 루프를 돌렸다고 한다. 게다가 이로인해 나름 쾌적한 그타 온라인이 되면서 많은 유저들은 "누구보다 코드를 잘 알고있는 락스타가 무려 5,6년 동안 해결되지 않은 문제를 찾아줬는데 1만달러 포상금은 너무 적은것 같고 10만달러를 줘야하지 않냐."는 진지한 반응이 나올 정도였다.