게임 런처용 PC 클라이언트 빌드 업로드

개요

이 가이드는 게임 런처를 통해 배포되는 클라이언트 파일을 업로드하는 방법과 관리 절차를 설명합니다.

효율적인 파일 배포와 무결성 검증을 위해 필요한 권장 사항과 필수 조건을 포함하고 있으며, 개발 환경(QA, STAGE, PROD) 및 배포 과정에서의 주의사항을 명시합니다. 이를 통해 안정적인 업데이트 및 설치 과정을 지원하고자 합니다.

파일 업로드 및 게임 실행 명세 가이드

1. 파일 업로드 방식

전체 클라이언트 파일 스냅샷 업로드

클라이언트 빌드 내용을 참고하셔서 전체 클라이언트 파일을 업로드 해 주셔야 합니다.

  • 파일은 버전별 전체 파일 스냅샷 방식으로 관리됩니다.

  • 최신 버전의 전체 파일을 한 번에 업로드하는 것을 권장합니다.

  • ZIP 으로 압축하지 않은 설치 경로 그대로의 파일을 업로드 해 주시는 걸 권장하며, 별도의 아카이빙 포멧은 사전 협의가 필요합니다.

변경 파일만 업로드

  • 변경 점이 적은 경우 기술PM과 협의 후 변경된 파일만 업로드할 수 있습니다.

  • 변경된 파일을 최신 빌드 스냅샷에 덮어쓰기(Overwrite)한 뒤 해당 스냅샷을 기준으로 배포 됩니다.

2. 환경 별 파일 그룹 관리

  • 파일은 환경(QA, STAGE, PROD 등) 별로 구분하여 관리됩니다.

  • 각 환경에 맞는 파일을 별도로 업로드해야 합니다. ( 클라이언트 빌드 내용 참고)

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"

실행 방법:

  1. 위 스크립트를 .ps1 파일로 저장 (예: GenerateChecksums.ps1).

  2. PowerShell에서 실행:

    powershell -ExecutionPolicy Bypass -File GenerateChecksums.ps1
  3. 결과가 지정한 checksums.json 파일에 저장됩니다.

  4. 빌드 업로드 시 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 이상의 알고리즘을 권장합니다.

  • 모든 파일 업로드 및 변경 사항은 로그를 기록하여 증적 관리합니다.

Last updated