Silverlight를 설치하려면 여기를 클릭합니다.*
Korea 대한민국변경|Microsoft 전체 사이트
MSDN
|개발자 센터
MSDN 홈 > MSDN 칼럼 > Driving DirectX > 게임 설치 및 유지 관리에 대한 유용한 정보

게임 설치 및 유지 관리에 대한 유용한 정보

Dave Bartolomeo
Microsoft Corporation

2003년 7월 25일

요약: 게임 설치 시간에 대한 사용자 불만을 줄이고 불필요한 지원 요청을 방지하고 게임을 최대한 쉽고 빠르게 시작할 수 있는 유용한 방법에 대해 설명합니다.

초기 설치

게임을 구입하는 이유는 게임 설치가 아니라 게임을 좋아하기 때문입니다. 최종 사용자에게는 게임 설치 과정이 신속하고 간단하고 쉬워야 합니다. 설치 UI조차 나타나지 않는 것이 이상적인 경우입니다. 게임 CD를 트레이에 넣기만 하면 게임을 시작할 수 있어야 합니다.

설치 UI 간소화

최종 사용자가 원하는 환경에 방해가 되는 기존 설치 UI의 일반적인 몇 가지 측면은 다음과 같습니다.

  • 불필요한 질문이 표시됨 예를 들어 많은 게임에서 DirectX 설치 여부를 묻는 메시지가 나타납니다. 게임에서 Microsoft DirectX를 실행해야 하는데 올바른 버전의 DirectX가 아직 설치되어 있지 않으면 게임을 계속 진행하면서 DirectX를 설치해야 합니다.
  • 대부분의 사용자가 똑같은 답을 할 질문이 표시됨 일반 사용자의 경우 설치 경로에 대한 기본 선택 사항과 시작 메뉴 위치 등을 모두 그대로 사용하므로 이러한 옵션을 변경하려는 사용자를 위해 "고급 옵션"을 만드십시오.

일반 사용자가 게임을 최대한 빨리 시작할 수 있도록 설치 UI를 디자인해야 합니다. 사용자 컴퓨터에서 기본값인 자동 실행을 사용하면 설치 프로그램에서 불필요한 질문을 건너뛰고 최대한 빨리 게임을 실행하려는 의도로 간주해야 합니다. 설치 프로그램에서는 "필요할 때 추가 설치" 스타일의 설치(아래 참고)를 사용하여 기본 설치 경로에 게임 설치를 시작해야 합니다. 자동으로 설치를 시작하기 전에 설치 옵션을 변경할 수 있는 기회를 주는 것이 좋습니다. 그러나 고급 설치 옵션을 원할 경우 키를 누르라는 메시지를 표시한 다음 5-10초 안에 사용자가 해당 키를 누르지 않으면 기본 옵션으로 자동 진행되어야 합니다.

사용자 컴퓨터에서 자동 실행을 사용하지 않을 경우에는 설치 프로그램에서 게임 설치를 자동으로 시작하지 않으려는 의도로 간주해야 합니다. 자동 실행이 아닌 다른 방법으로 설치 프로그램을 시작한 경우 고급 설치 UI가 표시되어야 합니다.

설치에 필요한 시간 단축

요즘 대부분의 Microsoft Windows 게임에서 설치 과정을 마치는 데 5분 내지 30분이 걸립니다. 반면에 대부분의 콘솔 게임은 게임 CD를 넣고 게임을 실행할 수 있을 때까지 30초를 넘지 않습니다. 대부분의 Windows 게임은 컴퓨터 하드 드라이브에서 해당 내용을 모두는 아니라도 대부분 실행하도록 디자인되었지만 많은 양의 내용을 영구적으로 저장할 공간이 부족한 콘솔은 원본 미디어에서 내용을 실행해야 하기 때문에 이러한 차이가 있는 것입니다. 실제 게임 로드 시간을 단축하기 위해 로컬 하드 드라이브에서 내용을 로드하기는 하지만 일정 시점에 원본 미디어에서 하드 드라이브로 모든 내용을 복사해야 한다는 것이 어려운 점입니다. 대부분의 Windows 게임의 경우 모든 내용을 하드 드라이브에 한꺼번에 복사하는 것을 설치 과정의 일부로 선택합니다. 그러면 몇 분 동안 진행률 표시줄을 보고 있다가 게임을 시작하게 되므로 게임에 대한 첫 느낌이 그다지 좋을 수 없습니다.

게임을 처음 설치하는 데 걸리는 시간을 최소화하려면 "최소 설치"와 "필요할 때 추가 설치"라는 두 가지 방법을 사용할 수 있습니다.

최소 설치

최소 설치 시나리오에서는 최소한의 내용만 하드 드라이브에 설치됩니다. 일반적으로 최소 설치는 게임 실행 파일과 DLL만으로 구성됩니다. 나머지 내용은 원본 미디어에서 직접 액세스합니다. 게임 실행 파일 크기는 대개 10-20MB 이내이므로 이렇게 하면 설치에 필요한 시간이 상당히 단축됩니다. 단점은 속도가 느린 원본 미디어에서 내용을 로드해야 하므로 게임 중 내용 로드 시간이 더 길어진다는 것입니다.

Windows Installer 기반 설치에서 최소 설치 구성을 만들려면

  • 하드 드라이브에 설치할 모든 구성 요소를 로컬 설치로 표시되는 기능으로 그룹화합니다. 이 기능을 "부트스트랩" 기능이라고 합니다.
  • 원본 미디어에서 실행할 모든 구성 요소를 "원본에서 실행"으로 표시되는 기능으로 그룹화합니다.
  • 원본 미디어에 있을 수 있는 파일을 열 때는 경로를 하드 코드하지 않고 MsiGetComponentPath API를 사용하여 파일의 경로를 확인합니다. 그러면 CD/DVD 드라이브 문자가 바뀌더라도 파일을 찾을 수 있습니다.
  • CD/DVD에 있는 내용은 압축되어야 합니다. 대개의 경우 CD/DVD 드라이브의 전송 속도가 느리기 때문에 압축을 푸는 데 걸리는 CPU 시간은 그리 길게 느껴지지 않습니다.
  • 크기가 크고 순차적으로 액세스되는 연속된 파일로 내용을 그룹화해야 합니다. CD/DVD 드라이브의 검색 시간은 하드 드라이브에 비해 엄청나게 오래 걸리므로 연속된 하나의 큰 파일을 읽는 경우가 아니라면 대부분의 CD/DVD 드라이브는 최고 전송 속도에 도달하는 일이 없습니다.
  • 내용은 액세스하기 쉬운 순서로 CD/DVD에 배치되어야 합니다. 디스크에 배열된 상태와 동일한 순서로 파일에 액세스하면 검색 시간이 상당히 줄어듭니다.

필요할 때 추가 설치

필요할 때 추가 설치 시나리오에서는 최소 설치 시나리오와 마찬가지로 처음에 게임을 시작하는 데 필요한 파일만 하드 드라이브에 설치됩니다. 그러나 나머지 내용의 경우 필요할 때마다 원본 미디어에서 액세스하지 않고 처음에 필요할 때 해당 내용의 각 부분을 하드 드라이브에 실제로 설치한 다음 나중에 사용할 때는 계속해서 로컬 하드 드라이브에서 액세스합니다. 초기 설치에 필요한 시간은 최소 설치 시나리오만큼 적게 걸리지만 각 내용이 처음 액세스된 다음부터는 로드 시간이 빨라집니다.

Windows Installer 기반 설치에서 필요할 때 추가 설치 구성을 만들려면

  • 하드 드라이브에 처음 설치할 모든 구성 요소를 로컬 설치로 표시되는 기능으로 그룹화합니다. 이것은 최소 설치 시나리오의 부트스트랩 기능과 동일합니다.
  • 함께 사용할 가능성이 많은 구성 요소를 기반으로 나머지 내용을 여러 기능으로 그룹화합니다. 예를 들어 레벨을 기준으로 하는 게임에서는 주어진 레벨에서 사용하는 모든 내용을 한 기능으로 그룹화합니다. Windows Installer에서는 여러 기능이 한 구성 요소를 공유할 수 있으므로 여러 레벨에서 사용하는 내용이 있을 경우 해당 내용을 복제하지 않고 필요한 모든 레벨의 기능에 추가할 수 있습니다. 이러한 모든 기능은 처음에는 설치되지 않지만 나중에 필요할 때 설치할 수 있다는 의미로 "보급됨"이라고 표시되어야 합니다.
  • 파일이 필요할 경우 먼저 MsiQueryFeatureState API를 사용하여 그 파일이 이미 설치되어 있는지 여부를 확인합니다. 아직 설치되어 있지 않아 INSTALLSTATE_ADVERTISED 상태인 경우 MsiConfigureFeature API를 호출하여 해당 기능을 로컬로 설치합니다. 파일을 설치한 후 열 때는 MsiGetComponentPath API를 사용하여 파일의 경로를 확인합니다. 내용은 항상 사용되기 전에 하드 드라이브에 설치되므로 이 시나리오에 꼭 필요한 것은 아니지만 이렇게 할 경우 필요할 때 추가 설치 시나리오 외에도 최소 설치 시나리오를 더 쉽게 지원할 수 있습니다.
  • 가능하다면 곧 필요하게 될 내용을 예상하여 유휴 시간 동안 백그라운드로 설치합니다. 소개 동영상, 컷 장면, 메뉴 등 게임에 컴퓨터의 모든 성능이 필요하지 않은 시점에 백그라운드 설치를 실행하는 것이 좋습니다.
  • 나머지 내용을 모두 설치하도록 지정하는 옵션을 게임 옵션 메뉴에 포함합니다. 그러려면 필요할 때 추가 설치 기능 전체의 상위 기능을 만든 다음 MsiConfigureFeature API를 호출하여 이 마스터 기능을 로컬로 설치합니다. 그러면 하위 기능도 로컬로 설치됩니다.
  • 내용 레이아웃은 최소 설치 레이아웃과 유사해야 하지만 한 수준에서는 모든 내용이 함께 있어야 하는 것처럼 동시에 필요한 내용 간에만 클러스터되어야 합니다.

사후 설치 게임 실행

자동 실행

이미 설치되어 있는 게임을 실행하려면 CD/DVD를 트레이에 넣기만 하면 됩니다. CD/DVD의 자동 실행 파일은 처음에 게임이 이미 설치되어 있는지 확인하고 설치되어 있으면 게임을 시작합니다. Windows Installer 기반 설치 프로그램을 통해 게임이 설치된 경우 MsiQueryProductState API를 한 번 호출하여 게임이 설치되었는지 확인할 수 있습니다.

필요할 때 추가 설치로 설치한 결과를 전체 설치로 변환

필요할 때 추가 설치로 설치된 상태에서는 사용자가 전체 설치보다 훨씬 빠르게 게임을 시작할 수 있지만 나머지 게임 내용을 로컬 하드 드라이브에 명시적으로 설치해야 할 수도 있습니다. 사용자는 원본 미디어를 지정하라는 메시지 없이 게임을 실행하려 할 수도 있고 요청 시 내용 추가 설치로 인해 발생하는 실제 게임 로드 시간 지연만 피하려 할 수도 있습니다. 게임 설치 프로그램에서 Windows Installer를 사용할 경우 나머지 내용을 모두 설치할 수 있는 사용자 인터페이스가 실제 게임 옵션 중 하나로 제공될 수 있습니다. 사용자가 이 옵션을 선택하면 게임에서 MsiConfigureFeature API를 호출하여 나머지 기능이 로컬로 설치되도록 할 수 있습니다. 그러한 작업을 수행할 설치 응용 프로그램을 별도로 생성할 필요는 없습니다.

유지 관리

콘솔 게임과 비교하여 Windows 게임이 갖는 장점 중 하나는 게시자가 초기 릴리스 후 게임의 업데이트를 비교적 쉽게 출시할 수 있다는 것입니다. 이러한 업데이트에 새로운 내용이 도입되든 버그 수정만 포함되든 관계없이 최종 사용자에게 최대한 쉬운 업데이트 과정을 만드는 것이 중요합니다. 일반적으로 모든 사용자가 최신 버전의 게임을 실행하여 서로 연결해야 하는 온라인 게임에서는 업데이트 과정이 훨씬 더 중요합니다.

자동 업데이트를 위한 검사 목록

사용자가 패치 검색 작업을 기억할 필요가 없어야 합니다. 게임의 업데이트를 사용할 수 있을 때 최소한 사용자가 알림을 받아야 하며 패치가 먼저 다운로드되는 것이 가장 이상적입니다.

게임 업데이트를 확인하려면 게시자가 호스팅하는 웹 서버의 특정 URL에 연결하기만 하면 됩니다. 그런 다음 게임의 최신 버전 번호를 지정하는 텍스트 파일을 다운로드합니다. 이때 게임을 최신 버전으로 업데이트할 패키지를 다운로드할 수 있는 URL 역시 함께 다운로드해야 합니다.

최신 버전의 게임을 실행하려면 게임을 실행할 때마다 업데이트가 있는지 확인하는 것이 좋습니다. 그러나 사용자가 게임 실행을 시도하기 바로 전에 새 업데이트가 있는 것이 발견되면 업데이트 다운로드가 완료될 때까지 사용자는 게임 실행을 지연시켜야 할 수도 있습니다. 업데이트 크기가 크거나 연결 속도가 느리면 여러 시간 동안 지연되기도 합니다. 게임을 실행하기 전에 사용자가 기다리지 않도록 게임에서 작업 스케줄러 서비스를 사용하여 새 업데이트를 정기적으로 확인하는 일정을 세울 수 있습니다. 업데이트가 발견되면 게임에서 업데이트를 즉시 다운로드할 수 있으므로 대개 사용자가 다음에 게임을 실행할 때까지는 완전히 다운로드되어 설치 준비가 완료됩니다.

자동으로 패치 다운로드

사용할 수 있는 새 게임 업데이트가 발견되면 즉시 업데이트 다운로드가 시작되어야 합니다. 일반적으로 업데이트를 확인하는 작업은 백그라운드로 자동 실행되므로 다운로드도 최대한 드러나지 않게 이루어져야 합니다. BITS(Background Intelligent Transfer Service)는 해당 응용 프로그램이 실행되고 있지 않을 경우에도 인터넷에서 파일을 다운로드할 수 있는 운영 체제 기능입니다. BITS 다운로드 작업은 사용자가 로그온한 상태일 때와 컴퓨터가 네트워크에 이미 연결되어 있을 때만 실행됩니다. BITS 자체가 컴퓨터를 네트워크에 연결하려고 시도하지는 않습니다. 사용자가 네트워크에서 연결이 끊어지거나 로그오프되면 BITS 작업이 일시 중지되었다가 다음에 사용자가 로그인하여 네트워크에 연결하면 다운로드가 다시 계속됩니다. 응용 프로그램은 네트워크를 사용할 수 있는 다른 모든 응용 프로그램(예: 온라인 게임)의 성능에 BITS 작업의 영향이 미치지 않도록 하기 위해 다른 상황에서는 사용되지 않을 네트워크 대역폭만 사용하도록 BITS 작업을 구성할 수 있습니다. BITS는 Windows XP와 Windows 2000 서비스 팩 3에서 사용할 수 있습니다.

기타 리소스

  • 이 기사에서 언급된 기술에 대한 자세한 내용을 보려면 MSDN 라이브러리의 관련 섹션을 다음과 같이 참조하십시오.
  • 게임에서의 Windows Installer 사용에 대한 자세한 내용은 다음 달에 나오는 Driving DirectX 칼럼 "Introduction to Windows Installer for Game Developers"를 참고하십시오.

 


Driving DirectX

Dave Bartolomeo는 1997년 이후로 Microsoft에서 원래는 개발자이자 Microsoft Visual C++ 팀의 개발 팀장으로 일하면서 Visual C++ 6.0과 Visual C++ .NET 출시를 지원했습니다. 2001년에는 개발자 도구 작성 경험과 게임 개발에 자신의 대한 관심을 모아 Windows Third-Party Gaming 팀에 합류했습니다. 여기서 Visual Studio .NET용 DirectX 확장을 개발했습니다. 게임 개발에 유용한 도구를 작성하지 않을 때는 DirectX 및 Windows의 모든 장점을 최대한 활용할 수 있도록 전세계의 게임 개발자들을 지원하고 있습니다.




최종 수정일: 2003년 10월 20일
Top of Page Top of Page


Microsoft