데모 및 실제 게임 보호


9

몇 달 안에 나는 대중 (인터넷)에서 일하고있는 (희망적인 상업적) 게임을 선보일 계획이다. 문제는 스크린 샷과 예고편 (예 : 기능 기능) 외에도 보호 할 수있는 데모를 만드는 방법은 무엇입니까?

조금 설명하겠습니다. 이 게임은 일종의 크로스 플랫폼 RPG입니다. 지금 내가 게임을 코딩 한 방식은 파일에서 맵, 캐릭터 등의 데이터를 읽고 구성 파일과 자산을 추가하여 세상 / 이야기를 확장 할 수있는 모든 것을 결정하는 것입니다.

즉, 실제 게임이라고하는 게임의 데모 버전을 만들면 모든 애셋 / 구성 파일 등이 제거되어 첫 번째 맵 / 레벨의 데모가됩니다. 누군가를 막고 나서 실제 게임의 데이터 팩을 배포 할 수있는 방법이 있습니까?

데모 보호는 실제 게임이 출시되기 전에 잠시 동안 데모를 원하기 때문에 우선 순위입니다. 나는 나중에 실제 게임에서 어떤 보호 방법을 선택할지 결정할 수있다.

어쨌든 게임을 보호하는 실제 방법이 있다고 생각합니다 (이 게임은 크로스 플랫폼이며 게임을하기 위해 인터넷이 필요하지 않기 때문에 사용자가 온라인 확인을 수행하도록 제한하고 싶지는 않습니다). 내가하고 싶은 마지막 일은 합법적 인 사용자를 혼란스럽게하는 것입니다. 그리고 폴더를 쉽게 패치하고 모더가 약간 엉망이 될 수 있기 때문에 가능한 한 자산을 열어두고 싶습니다.

기본 키 라이센스 시스템을 설정하더라도 한 사람이 자신의 키와 게임 사본을 업로드하지 못하게하는 이유는 무엇입니까? 사람들이 이진 변경 사항을 수정하고 게임을 다시 크래킹하기 위해 자주 업데이트하는 것에 대해 이야기하는 것을 보았습니다. 그러나 합법적 인 사본 1 개를 구해서 퍼뜨릴 수있을 때 누가 게임을 해킹해야합니까?

어쩌면 내가 뭔가를 잃어 버렸는지 확신 할 수 없습니다. 실제로 다음과 같이 요약됩니다.

  1. 기본 키 라이센스 보호 기능을 사용하십시오.
  2. 데모에서 자산 / 구성 파일 제거
  3. 최고의 희망

모든 조언 을 부탁드립니다! 나는이 모든 것에 매우 익숙하다. -;)

이것이 중복이라면 죄송합니다! 데모 개념을 많이 찾을 수 없습니다.


첫 번째 레벨 파일 만 읽고 다른 파일은 읽지 않는 실행 파일로 릴리스 하시겠습니까? 최종 제품이 아닌 데모입니다. 어쩌면 "데이터 팩"을 추가하여 데모 실행 파일이 갑자기 전체 기능을 사용하는 이유에 대해 자세히 설명 할 수 있습니까? 솔직히 말해서이 문제는 "누군가가 다른 사람에게 정식 게임을 출시하면 어떻게되는지"와 같이 합법적으로 들리는데,이 질문은 일반적으로 불법 복제에 관한 것이며 이로 인해 데모가 불법적으로 업그레이드되는 것을 막는 것이 아닙니다.
SpartanDonut

지점이나 무언가를하고 싶지 않다면 코드는 실제로 전체 게임입니다. 나는 많은 기능을 수행했으며 내가 만든 데모는 출시 후에도 사용자가 구매하기 전에 다운로드하여 재생할 수있는 무언가가되고 싶다는 것을 의미합니다. 어떤 의미에서 전체 게임과 동일하다고 생각합니다. 나는 아직도 내가 할 수있는 일이 많지 않은 3 개의 마지막 총알 포인트로 올바른 길을 가고 있는지 궁금합니다. 그냥 그렇게하고 최선을 다하겠습니다. x :
Zyaga

답변:


12

엔진의 데모 버전으로 시간 제한과 같은 하드 코딩을 고려 했습니까?

문제는 데모를 얼마나 많이 보호하든 게임이 나오면 어떻게 든 해적판됩니다. 데모를 사용하든 메인 게임을 사용하든 상관없이 게임이 인기가 있다면 일어날 것입니다.

게임 비용을 지불하지 않으려는 사람들은 게임 비용을 지불하지 않습니다 .

게임 비용을 지불하려는 사람들은 게임 비용을 지불합니다.

이것은 가장 작은 인디 게임에서 가장 큰 트리플 A 타이틀에 이르기까지 모든 것에 적용됩니다. 크리드 상시 온라인 DRM. 당신은 이미 그것이 옵션이 아니라고 말했기 때문에, 나는 당신이 그것을 받아 들일 것을 제안합니다.

독립적 인 개발자로서 더 많은 매출을 올리는 가장 좋은 방법은 게임에 더 많은 관심을 갖는 것입니다. 불법 복제에 관심이없는 사람들은 데모를 플레이 한 다음 게임을 구매할지 여부를 결정합니다. 불법 복제에 관심이있는 사람들은 데모를하고 설명대로 자산을 찾은 다음 게임을 구매할 수도 있고 구매하지 않을 수도 있습니다.


이것은 내가 예상 한대로입니다. 그것은 약간 실망 스럽거나 오히려 그 경우에 짜증이 났지만 그것이 그렇게 굴리는 방식입니다! 내가 할 수있는 일은 코드를 약간 분기하여 기본 저장 (로드 메뉴가 전혀 없음)을 재생 한 다음 게임이 기본 맵 (모든 기본 / 기본 기능을 사용할 수있는 경우)을 인식하지 못하는 경우 하드 코드 그 안에 있으면 종료됩니다. 누군가 그것을 깨뜨리고 실제 데이터를 재생하도록 할 수 있지만, 그 시점에서 그들은 실제 게임을 직렬로 꺼내고 완료 할 것입니다. : P
Zyaga

2
그들이 게임을 사지 않더라도 게임을보고 친구를 사서 구매할 수도 있습니다. 불법 복제를 막을 수는 없습니다 (큰 예산의 불법 복제 방지 솔루션조차도 실제로 그것을 막을 수는 없었습니다). 그래서 걱정하지 마십시오. 너무 쉽게 만들지 않기 위해 데모 exe로 무언가를 하드 코딩하여 @ Amadeus9와 같은 시간 제한이나 첫 번째지도 만 읽었을 때 최상의지도를 기대할 수 있습니다.
Christian

@Christian에게 감사합니다! 그것이 올바른 방법이라는 더 많은 피드백! ^ _ ^
Zyaga

@ WeakDev, 여기에 좋은 점이 있습니다. "과도하게 제한적인"경로를 넘어간 고객은 고객 기반에만 피해를줍니다. 해적은 모든 DRM이 24 시간 이내에 우회되기 때문에 쉬운 시간을 가진 사람입니다. 게임의 품질과 타겟 고객에 집중하고, 당신은 잘못 갈 수 없습니다 :)
Moo-Juice

나는 약해지지 않을 것이다. Weak Dev. 우선, 당신은 데모를 제공함으로써 불법 복제를 완화하기 위해 꽤 큰 발걸음을 내딛고 있다고 생각합니다. 인디 게임 불법 복제의 가장 큰 이유는 구매를하기 전에 시도해 볼 기회가 없기 때문이라고 생각합니다. 데모가 아닌 게임이 일종의 시험으로 불법 복제되는 것이 일반적이라고 생각합니다. 사람이 긍정적 인 경험을 가지고 있다면 구매는 전혀 문제가되지 않습니다.
Sean O'Hollaren

5

주석에서 "branch"의 의미를 모르지만 조건부 컴파일을 사용하여 동일한 소스 코드 트리에서 서로 다른 두 개의 실행 파일 (demo 및 정식 버전)을 만들 수 있습니다. 첫 번째 에피소드를 재생하는 기능 만 포함하도록 컴파일 타임 옵션을 만들 수 있습니다. (예를 들어, C ++에서는 #ifdef정식 버전 전용 코드 주위에 명령을 사용할 수 있습니다 .) 데모 버전에서 최소한 다음과 같은 게임 플레이 효과를 낼 수 있습니다.

  • 첫 번째 에피소드의 자산은 zip 파일에 저장되며 데모 버전은 시작하기 전에이 zip 파일에서 디지털 서명을 확인합니다. 모드를 사용하려면 플레이어는 정식 버전을 지불해야합니다.
  • 데모를 컴파일 할 때 스크립팅 바이트 코드에서 opcode 인코딩을 다시 섞습니다.
  • 이후 에피소드에서만 사용되는 하나 이상의 스크립트 opcode에 대한 핸들러를 완전히 제거하십시오. 이로 인해 파일 수정 검사 및 opcode 인코딩이 패치 된 경우에도 이후 에피소드의 세트 조각이 실패합니다.

1
또 하나의 트릭은 각 개별 데모 레벨 파일의 MD5 / SHA 해시를 데모 버전으로 하드 코딩하는 것입니다. 이것은 16 진수 편집기를 사용하여 단일 해시 / 서명 키를 변경하는 것이 상당히 쉽지만 최소한 재생 가능한 레벨 수를 늘리기 위해 해시 수를 늘리는 것이 다소 까다 롭다는 장점이 있습니다. 적어도 다음에 많은 다른 데이터가 있다면 그들.
Ilmari Karonen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.