Демо (и реальная игра) Защита

9

Через несколько месяцев я планирую начать показывать (надеюсь коммерческую) игру, над которой я работаю, широкой публике (интернет). Дело в том, что помимо скриншотов и трейлера (скажем, функциональности), как правильно создать демо, которое можно защитить?

Позвольте мне объяснить немного. Игра представляет собой кроссплатформенную RPG своего рода. Прямо сейчас мой код написан так, что он считывает данные из карт, персонажей и т. Д. Из файлов, и это решает все, что позволяет мне расширять мир / историю просто с помощью конфигурационных файлов и добавления ресурсов.

Это значит, что я беспокоюсь, если я сделаю демо-версию игры, которая, скажем, настоящая игра, но затем все ресурсы / конфигурационные файлы / и т. Д. Будут удалены, так что это просто демонстрация с самой первой картой / уровнем. Есть ли способ защититься от кого-то, просто выпустив пакет данных реальной игры (когда выйдет), и теперь вдруг любой, у кого есть демоверсия EXE, сможет сыграть в настоящую игру?

Демо-защита - мой приоритет Я всегда могу решить, какие методы защиты я выберу из реальной игры позже (до релиза, но еще позже ..)

Я предполагаю, что все сводится к тому, существует ли какой-либо реальный способ защитить игру (я не хочу ограничивать пользователей в необходимости делать какие-либо онлайн-проверки, потому что эта игра будет кросс-платформенной и не требует наличия в ней Интернета). Последнее, что я хочу сделать, это связываться с легальными пользователями. И я хотел бы оставить активы открытыми, если это возможно, поскольку это просто означает, что можно легко исправлять папки и позволять модерам немного возиться.

Я имею в виду, даже если я настрою базовую систему лицензирования ключей, что на самом деле мешает 1 человеку загрузить свой ключ и копию игры где-нибудь? Я видел, как люди говорили о частых обновлениях, так что двоичные изменения менялись, и им приходилось пересматривать игру. Но кому вообще нужно взламывать игру, когда вы можете получить 1 легальную копию и затем распространить ее?

Я не уверен, что, может быть, я что-то упустил, я просто пытаюсь убедиться, что я нет. Это действительно просто сводится к:

  1. Брось базовый ключ на лицензионную защиту.
  2. Удалить файлы актива / конфигурации из демо
  3. Надеюсь на лучшее

Любой совет ценится! Я очень новичок во всем этом; -;)

Извините, если это дубликат! Не могу найти много на демо концепции.

Zyaga
источник
Выпускать его как исполняемый файл, который будет читать только файл первого уровня и ничего другого? Это демо, а не конечный продукт. Может быть, вы могли бы уточнить, почему исполняемый файл демо-версии внезапно получит все возможности, добавив «пакет данных», что бы это ни было? По правде говоря, эта проблема настолько же законна, как и «что если кто-то выпустит полную игру кому-то другому», что приведет к тому, что этот вопрос будет о пиратстве в целом, а не просто о защите вашей демоверсии от незаконного обновления.
SpartanDonut
Код действительно полная игра, если я не хочу делать ветку или что-то в этом роде. Я имею в виду, что у меня много функциональности, и я создаю демо-версию, которую хочу, чтобы даже после релиза пользователи могли скачать и поиграть, даже не купив. Так что я думаю, что в некотором смысле это то же самое, что и полная игра. Я все еще задаюсь вопросом, нахожусь ли я на правильном пути с этими 3 последними пунктами пули, иначе, там не так много, что вы можете сделать. Просто сделай это и надейся на лучшее. x:
Зяга

Ответы:

12

Вы рассматривали жесткое кодирование чего-то вроде ограничения времени в демо-версии движка?

Дело в том, что независимо от того, насколько вы защищаете свою демоверсию, игра выйдет как-то пиратской. Будь то с помощью демонстрации или с помощью основной игры, это произойдет, если игра будет достаточно популярной.

Люди, которые не хотят платить за вашу игру , не будут платить за вашу игру.

Люди, которые хотят платить за вашу игру, будут платить за вашу игру.

Это относится ко всему, от самой маленькой инди-игры до самого большого названия Triple-A - единственный способ обойти это - сделать подключение к своим серверам не только обязательным, но и связанным с игровым процессом, то есть MMO, а не глупым Assassin's. Крид всегда-онлайн DRM. Поскольку вы уже сказали, что это не вариант, я предлагаю вам принять это.

Как независимый разработчик, лучший способ получить больше продаж - это посмотреть на свою игру. Люди, которые не склонны к пиратству, будут играть в вашу демонстрацию, а затем либо купят игру, либо нет. Люди, которые склонны к пиратству, могут сыграть в вашу демоверсию, найти активы, как вы описали, и так далее, а затем все еще могут или не могут купить игру.

Оловянный волшебник
источник
Это в значительной степени, как я ожидал. Это немного уныло, или, скорее, просто отстой, что это так, но это так, как он катится! Я думаю, что я могу немного изменить ветку кода, чтобы вы могли воспроизвести сохранение по умолчанию (меню загрузки вообще не доступно), а затем жесткий код, который, если игра не распознает основную карту (которая имеет все основные / основные функции, доступные). в этом), тогда это выйдет. Кто-то может взломать его и заставить воспроизводить реальные данные, но в этот момент они просто выпустят настоящую игру с серийным номером, и все будет готово. : P
Зяга
2
Даже если они не купят игру, у них могут быть друзья, которые увидят игру, и она ее купит. Вы не сможете остановить пиратство (даже крупные бюджетные антипиратские решения не смогли его остановить), поэтому я предлагаю вам не беспокоиться об этом. Чтобы не сделать это слишком простым, вы можете жестко запрограммировать что-то в демо-версию, чтобы оно читало только первую карту, независимо от того, сколько там, или ограничение по времени, как сказал @ Amadeus9, но тогда вы можете только надеяться на лучшее.
Кристиан
Спасибо, Кристиан! Больше отзывов о том, что это правильный путь! ^ _ ^
Зяга
@ WeakDev, все хорошие моменты здесь. Те, кто пошел по «чрезмерно ограничительному» маршруту, только повредили их клиентскую базу. У пиратов самое легкое время, так как все DRM обходятся в течение 24 часов. Сконцентрируйтесь на качестве игры и вашей целевой аудитории, и вы не ошибетесь :)
Moo-Juice
Я бы не стал слишком обижаться на себя, Слабый Дев. Во-первых, я думаю, что вы делаете довольно большой шаг в борьбе с пиратством, предлагая демо-версию. Я думаю, что основной причиной пиратства в инди-играх является отсутствие возможности опробовать его, прежде чем решиться на его покупку. Я думаю, что для не-демо-игр довольно характерно пиратство как своего рода испытание. Покупка вовсе не исключена, если у человека есть положительный опыт.
Шон О'Холларен
5

Не уверен, что вы подразумевали под «веткой» в своем комментарии, но возможно сделать два разных исполняемых файла (демо и полную версию) из одного и того же дерева исходного кода, используя условную компиляцию . Вы можете сделать опцию времени компиляции, чтобы включить только возможность воспроизведения первого эпизода. (Например, в C ++ вы можете использовать #ifdefкоманды вокруг кода, предназначенные только для полной версии.) Вы можете сделать так, чтобы демо-версия производила как минимум следующие игровые эффекты:

  • Ресурсы первого эпизода хранятся в zip-файле, и демонстрационная версия проверяет цифровую подпись в этом zip-файле перед запуском. Чтобы использовать моды, игрокам придется платить за полную версию.
  • Измените кодирование кодов операций в вашем байт-коде сценариев при компиляции демо.
  • Полностью удалите обработчики для одного или нескольких кодов операций сценариев, используемых только в более поздних эпизодах. Это приведет к сбою частей набора в более поздних эпизодах, даже если исправлена ​​проверка модификации файла и кодировка кода операции.
Дамиан Йеррик
источник
1
Еще одна хитрость заключается в том, чтобы жестко закодировать хеши MD5 / SHA каждого отдельного файла демонстрационного уровня в демоверсию. Это имеет то преимущество, что, хотя с помощью шестнадцатеричного редактора достаточно просто изменить один ключ хеша / подписи, увеличить количество хешей (чтобы увеличить количество воспроизводимых уровней) несколько сложнее, по крайней мере, если после их.
Ильмари Каронен