플레이어에서 게임 데이터를 숨기시겠습니까?


13

첫 번째 (C ++) 게임을 만들고 있는데 컴포넌트 기반 디자인을 사용하고 싶습니다. 나는 최근에 이것에 대해 많이 읽었고 어제 더 유연하고 쉽게 액세스 할 수 있도록 외부 JSON 파일에 객체 데이터를 저장하기로 결정했습니다.

그런 다음이 파일을 게임의 디렉토리 트리에 남겨두면 플레이어가 원하는 것을 매우 쉽게 수정할 수 있다고 생각했습니다.

게임이 오픈 소스이기 때문에 개발자에게 코드를 표시하는 것에 대해 걱정하지 않지만 경험이 부족한 게이머가 게임을 중단하거나 최소한 재미를 망칠 수 있습니다.

뭔가 빠졌습니까? 오픈 소스 게임에서 게임 데이터를 숨기는 것에 대한 정책은 무엇입니까? 모든 사람이 누구나 쉽게 액세스 할 수 있도록 두는 것이 정상입니까?

그렇지 않은 경우 데이터를 숨기는 좋은 방법은 무엇입니까?


3
일반적으로 게임을 수정하는 기능은 특히 싱글 플레이어 게임의 경우 버그가 아닌 기능입니다.
jprete

8
정말 귀찮게하지 않습니다. 좋은 게임을 만드는 데 시간이 더 좋습니다. =)
Jari Komppa

1
나는 오픈 소스 게임이 실제로 충분히 알고 다운로드가 (거의) 사람이 생각하는 경향있어 즐길 게임 데이터 땜질 및 프로세스에 게임을 파괴합니다. 좋은 게임이라면 곧 JSON 형식 팝업을 설명하는 위키가 나타납니다!
Nevermind

답변:


33

플레이어가 재미를 땜질하고 망치면 나는 그것이 그들의 문제라고 말할 것입니다. 어설프게 절반의 재미는 무엇이 깨지는 지 보는 것입니다.

플레이어가 신 모드 치트 코드를 사용하고 플레이어에게 도전하지 않을까 걱정하는 것과 같습니다.

나는 구성 파일을 zip 파일 (로드 시간에 어쨌든해야 할 것)에 넣고 코드가 손상된 데이터를 정상적으로 처리 할 수 ​​있도록하는 것 이상을 수행하지 않을 것입니다.


20

경험이 부족한 게이머가 게임을 중단하거나 최소한 재미를 망치게 될까봐 걱정됩니다.

그들이 게임 데이터를 다루고 있다면 그것이 '재미있는'것으로 간주됩니다. 이것으로부터 그들을 보호 할 필요는 없습니다. 엔터티 구성 요소 데이터는 결국 스포일러가 아닙니다. 대화 나 퀘스트 데이터가있는 경우 문제가되지만 아닐 수도 있습니다. 대부분의 게이머는 이런 종류의 물건을 어디에서 찾아야할지 모르기 때문에 의도적으로 검색하거나 편집하지 않아도됩니다.

내 조언은 압축을 풀고 파일 확장자를 바꾸는 것입니다. 이것은 캐주얼 한 외관을 유지하지만 작업하기가 어렵지 않습니다. PhysicsFS 와 같은 것을 사용 하여 파일로 작업 할 수 있습니다.


5
네. 나는 아미가에서 식민지 연주를 기억합니다. 단위의 매개 변수는 표준 txt확장자를 가진 간단한 텍스트 파일로 저장되었습니다 . 꽤 많이 연주 한 후 나는 그 매개 변수를 조정하여 게임을 더 어렵게하기로 결정했습니다. 나중에 나는 그 설정을 친구들과 공유했습니다. 그것은 재미 있었다.
liori

3

대칭 암호화 체계 (AES)를 사용하여 암호화 된 데이터를 저장할 수 있지만 이는 의미가 없습니다. 소프트웨어가 오픈 소스 이므로 모든 사람이 키를 읽고 데이터를 해독 할 수 있습니다. 이것은 캐주얼 게이머가 부정 행위를 "중지"하는 것입니다.

게임 바이너리의 키를 찾기가 매우 쉽기 때문에 폐쇄 소스 프로젝트에서도 무의미합니다.

따라서 두 가지 가능성이 있습니다.

  1. 물건을 암호화하지 않은 채로 두십시오 (그러나 적어도 모든 파일의 md5 해시를 수집하여 게임 배포시 손상에 대해 런타임에 확인할 수 있도록하십시오).
  2. closed-source로 이동 하여 데이터를 스크램블하고 (문자열 리버스 + 바이트 스와핑 + x 또는 상수 문자열 등의 비밀 가역 다중 단계 알고리즘 사용) AES로 모든 것을 암호화하십시오. 누구나 데이터를 복구하기가 더 어려울 것입니다. 훨씬 더 어렵다.

1
폐쇄 소스 방법조차 그렇게 어려운 것은 아닙니다. 복제 방지에 사용 된 체계를 일상적으로 어기는 사람들도 그와 같은 문제를 겪을 수 있습니다. 주요 차이점은 그들이 귀찮게하지 않을 것입니다.
jprete

@jprete : 확실합니다. 그것은 단지 시간 문제이지만 사람들에게는 시간이 매우 중요하기 때문에 때로는 어렵고 수익성이없는 경우도 충분합니다.
gd1

3

나는 그것을 떠날 것입니다. 거대한 모드 커뮤니티와 변화 / 모딩 게임과 같은 플레이어가 있습니다. 그들이 무언가를 깨 뜨리면 그들 위에 있습니다. 그들은 항상 다시 설치할 수 있습니다.

또한 다른 개발자가보다 쉽게 ​​작업 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.