게임 런처용 PC 클라이언트 빌드 업로드
개요
이 가이드는 게임 런처를 통해 배포되는 클라이언트 파일을 업로드하는 방법과 관리 절차를 설명합니다.
효율적인 파일 배포와 무결성 검증을 위해 필요한 권장 사항과 필수 조건을 포함하고 있으며, 개발 환경(QA, STAGE, PROD) 및 배포 과정에서의 주의사항을 명시합니다. 이를 통해 안정적인 업데이트 및 설치 과정을 지원하고자 합니다.
파일 업로드 및 게임 실행 명세 가이드
1. 파일 업로드 방식
전체 클라이언트 파일 스냅샷 업로드
#undefined-3 내용을 참고하셔서 전체 클라이언트 파일을 업로드 해 주셔야 합니다.
- 파일은 버전별 전체 파일 스냅샷 방식으로 관리됩니다.
- 최신 버전의 전체 파일을 한 번에 업로드하는 것을 권장합니다.
- ZIP 으로 압축하지 않은 설치 경로 그대로의 파일을 업로드 해 주시는 걸 권장하며, 별도의 아카이빙 포멧은 사전 협의가 필요합니다.
변경 파일만 업로드
- 변경 점이 적은 경우 기술PM과 협의 후 변경된 파일만 업로드할 수 있습니다.
- 변경된 파일을 최신 빌드 스냅샷에 덮어쓰기(Overwrite)한 뒤 해당 스냅샷을 기준으로 배포 됩니다.
2. 환경 별 파일 그룹 관리
- 파일은 환경(QA, STAGE, PROD 등) 별로 구분하여 관리됩니다.
- 각 환경에 맞는 파일을 별도로 업로드해야 합니다. ( #undefined-3 내용 참고)
3. 무결성 검사
Checksum 업로드
- 업로드하는 파일의 무결성을 검증하기 위해 Checksum 모음 파일을 함께 업로드할 것을 권장합니다.
- 해당 Checksum은 유저 공개용 빌드 배포 전 빌드 업로드 과정에서의 무결성 체크 검증을 위해 사용합니다.
- 빌드 업로드 과정에서 플랫폼 내부 정책으로 일부 파일이 변경 될 수 있으며, 유저에게 공개되어 배포 되는 최종 Checksum은 플랫폼에서 별도로 생성합니다.
Checksum 생성 예시
PowerShell 스크립트:
# 디렉토리와 기준 경로를 설정
$baseDir = "C:\YourDirectory"
# 결과를 저장할 파일 설정
$outputFile = "C:\YourDirectory\checksums.json"
# 결과를 저장할 배열 생성
$result = @()
# 디렉토리 내 모든 파일 처리
Get-ChildItem -Path $baseDir -Recurse -File | ForEach-Object {
$filePath = $_.FullName
$hash = Get-FileHash -Path $filePath -Algorithm SHA256
$relativePath = $filePath.Substring($baseDir.Length + 1) # 상대 경로 계산
$result += [PSCustomObject]@{
FileName = $_.Name
RelativePath = $relativePath
SHA256 = $hash.Hash
}
}
# 결과를 JSON로 저장
$result | ConvertTo-Json | Out-File -FilePath $outputFile
Write-Output "Checksums saved to $outputFile"
실행 방법:
-
위 스크립트를
.ps1파일로 저장 (예:GenerateChecksums.ps1). -
PowerShell에서 실행:
powershell -ExecutionPolicy Bypass -File GenerateChecksums.ps1 -
결과가 지정한
checksums.json파일에 저장됩니다. -
빌드 업로드 시
checksums.json파일을 포함합니다.
유저 PC파일 업데이트 방식의 권장사항
- 클라이언트 파일 업로드 후, 유저 PC에 설치된 파일과의 Checksum 비교를 통해 업데이트 여부를 판단합니다.
- 배포 이후 실행 과정에서 파일이 변경되지 않도록 구성하는 것을 권장합니다.
- Checksum이 달라도 업데이트하지 않아야 하는 파일이 있다면, 해당 파일 목록을 별도로 전달해야 합니다.
파일 목록 신청 표 양식 예시
| 파일명 | 파일 경로 | 설명 |
|---|---|---|
| example.dll | \Game\ | 업데이트 제외 파일 예시 |
| config.json | \Game\Config\ | 설정 파일 예시 |
| * | \Game\Saved\ | 디랙토리 전체 제외 예시 |
4. 설치 및 실행 단계 예외 사항
설치 이후 추가 아카이빙 처리
- 설치 이후 압축 해제 등의 추가 아카이빙이 발생하는 경우, 해당 파일의 무결성 검사는 게임 내에서 직접 수행해야 합니다.
게임 실행 후 추가 다운로드 파일
- 게임 실행 이후 다운로드되는 파일(예: Asset Bundle, IFix, DLC 등)은 게임 내에서 무결성 검사를 직접 수행해야 합니다.
설치 과정 중 추가 요구 사항
- 설치 과정에서 Registry 수정이나 윈도우 방화벽 예외 추가 혹은 필수 라이브러리의 추가 설치가 필요한 경우, 해당 요구 사항을 사전에 별도로 요청 주셔야 합니다.
- 설치 과정에서 빌드에 포함되어 있는 Post Install Script 를 실행 해야 하는 경우 해당 Script 위치와 목적을 공유 주셔야 합니다.
게임 실행 경로와 인자
- 게임 실행 시 필요한 실행 경로와 Arguments를 사전에 공유해야 합니다.
- 실행 파일 경로 예시:
bin\game.exe - 인자 예시:
-server [ServerName]
- 실행 파일 경로 예시:
- 실행 시 추가적으로 필요한 사항은 반드시 공유 주셔야 합니다.
- 윈도우 설정이나 환경 변수 변경이 필요한 경우
- 실행 시 관리자 권한(Administrator)이 필요한 경우
5. 실행 파일의 보안 처리
- 실행 파일은 Code Signing 또는 보안 모듈 랩핑 등의 절차를 거칠 수 있습니다.
- 이로 인해 업로드된 파일과 유저에게 배포되는 파일이 다를 수 있습니다.
- 안티바이러스 소프트웨어의 오탐지 여부를 사전에 확인하는 절차가 있습니다.
- 주요 안티바이러스 소프트웨어에서 오탐 여부를 테스트하며, 필요한 경우 재 빌드나 화이트리스트 등록 과정에서의 업데이트 지연이 발생 될 수 있습니다.
추가 참고 사항
- 파일 업로드 시 환경별 디렉토리 구조를 명확히 구분하고, 각 환경의 요구 사항이 있는 경우 준수 하셔야 합니다.
- 무결성 검사를 위한 Checksum은 SHA-256 이상의 알고리즘을 권장합니다.
- 모든 파일 업로드 및 변경 사항은 로그를 기록하여 증적 관리합니다.