누락 된 리소스를 어떻게 처리해야합니까?


13

게임에 특정 자산이로드 될 것으로 예상하지만 찾을 수 없습니다. 상황을 어떻게 처리해야합니까? 예를 들면 다음과 같습니다.

Texture* grassTexture = LoadTexture("Grass.png"); // returns NULL; texture not found
Mesh* car             = LoadMesh("Car.obj");      // returns NULL; 3D mesh not found

사용자가 실수로 삭제했거나 개발 중에 손상되었거나 철자가 틀렸을 수 있습니다.

몇 가지 잠재적 인 답변 :

  • 어설 션 (이상적으로는 개발 중에 만)
  • 게임을 정상적으로 종료
  • 예외를 던져 처리하십시오.

어느 방법이 가장 좋습니까?


이를 수행하는 한 가지 방법은 게임 데이터가 손상되지 않았는지 확인하는 것입니다. 누락 된 데이터를 자동으로 다시 다운로드하지 않으면 오류> 사용자에게 데이터를 확인하도록 요청> 다운로드 이를 위해 작은 도구를 만들어야합니다.
Sidar

당신은 대부분의 대답을 투표보다 어쩌면 당신은 당신이 말하고자하는 것을 잘 설명 할 수있는 더 말처럼 @Sidar I
concept3d

추악한 실수는 때로는 게임을 중단하고 사람들이 게임을 시작하거나 시작할 수 없다는 것입니다. 예를 들어 Steam에서 게임이 제대로 작동하지 않으면 게임 데이터를 확인할 수 있습니다. 무언가가 손상되거나 누락되거나 변경된 것처럼 보일 때 Steam은 자동으로 해당 파일을 다시 다운로드합니다. 나는 그들이 어떻게하는지 정확히 모른다. 그러나 그들은 분명히 일부 데이터와 비교하여 확인합니다. 아마도 해시 코드? 나는 정말로 모른다. 그러나 항상 표준 대체 자산 (단순히 "오류"라고 표시되는 텍스처)이
있어야합니다.

@Sidar 왜 대답으로 멋지게 포맷하지 않습니까?
concept3d

나는 그것이 어떻게 작동하는지 정확히 알지 못하고 잘못 알고 싶지 않기 때문입니다. 그래서 나는 당신에게 적절한 대답을 줄 수 없었습니다.
Sidar

답변:


19

많은 게임에는 실제로 볼 수있는 일반적인 "오류 자료"와 "오류 메시"가 있습니다. 물론 이것을 로그의 경고와 함께 사용하십시오.


이 게시물에 완전히 동의하십시오. 그러나 릴리스 / 분산 빌드에서 다른 작업을 수행 할 수 있습니다.
Jonkel

릴리스 빌드의 경우 해싱을 사용하여 사용 가능한 파일의 유효성을 검사하여 누락되거나 잘못된 파일을 다운로드하는 방법을 생각할 수 있습니다. 그러나 개발 중에는주의를 끌기 위해 검은 색과 자홍색의 바둑판 질감을 표시하는 것이 가장 좋습니다. 모델의 경우 큰 ERROR 모델을 사용할 수 있습니다.
기독교 Ivicevic

텍스처에 적합합니다. 3D 모델에는 그리 많지 않습니다. 대부분의 3D 모델이 없으면 어떻게됩니까? 게임은 재미있을 것 같지만 처음부터 플레이 할 수 있어야합니다. 3D 모델의 기하학적 특성을 기반으로 공간 데이터 구조를 계산하면 어떻게됩니까? 나는 텍스처가 빠진 것과 같은 단순한 상황에서만 이것을 사용합니다. 그러나 데이터 완전성 검사는 상업용 게임에 더 나은 접근 방식이라고 생각합니다.
concept3d

1
@ concept3d-최소한 소스 엔진에 크고 명백한 오류 메쉬가 있음을 알고 있습니다 (도타 2 테스트 클라이언트에서 가끔 영웅을 추가 할 때 보았습니다). 큰 수준의 레벨 데이터가 누락 된 경우 특히 릴리스 빌드에서 오류가 발생하는 것이 가장 좋지만 디버깅 목적으로 물음표가 큰 춤을 추는 것은 그리 나쁘지 않습니다.
Robert Fraser

6

당신이있는 경우 다른 해상도 자산같은 질감을 , 당신은 다른 해상도를 사용하여 상황을인양을 시도 할 수 있습니다.

Texture* grassTexture;
try {
    grassTexture = LoadTexture("Grass.png");
} catch (WhateverExcaption e) {
    grassTexture = LoadTexture("Grass_512.png");
}

경우에도 실패가 구제하는 시간이 될 수 있습니다.


2
캐치에 토글을 추가하여 Dev에서 항상 누락 된 메쉬 / 텍스를 표시하지만 게시 할 때 먼저 복구하려고 시도하고 누락 된 텍스처가 덜 분명합니다.
DampeS8N
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.