Как сделать условно-бесплатную программу с бесплатной демоверсией
У меня есть игра, которую я хотел бы продать по следующей системе: раздать демо (скажем, с несколькими первыми уровнями) и продать полную версию. Я хотел бы сделать переход на полную версию как можно более понятным для пользователя. Я никогда не продавал ничего до онлайн, поэтому я не уверен, как это будет работать (даже если бы не было бесплатной демоверсии).
Это кажется очень распространенной проблемой, поэтому я думаю, что есть стандартное решение. Я пишу на C++, ориентируясь на Windows, и мой установщик создан NSIS.
4 ответа
Есть два варианта:
- Отдельная демоверсия и полная версия. Ваш провайдер электронной коммерции отправит полную версию людям, которые ее купят.
- Демонстрация, которая разблокируется с помощью регистрационного ключа или процесса онлайн-активации. Регистрационные ключи могут быть сгенерированы на лету (или взяты из предварительно сгенерированного списка). Затем поставщики услуг электронной коммерции могут отправлять ключи клиентам сразу после покупки.
Оба подхода имеют свои плюсы и минусы.
Отдельная полная версия
- Меньший демонстрационный файл, экономит трафик
- Требуется меньше технической поддержки для клиентов, которые покупают полную версию (по моему опыту)
- Две сборки игры, больше тестирования
- Труднее разослать обновленные версии клиентам - необходимо сохранить логин для каждого клиента или секретный URL, срок действия которого истекает через несколько дней.
Разблокируемая демка
- Содержит все активы, может расходовать пропускную способность
- Проще распространять взломанную версию (пираты могут распространять патч 10 КБ или ключ reg и ссылаться на ваш демонстрационный файл, что приводит к большему расходу трафика)
- Одиночная сборка, меньше тестирования
- Легко распространять обновленные версии (каждый может загрузить одну и ту же публичную версию)
Что касается "общего" решения, поищите коммерческие обертки DRM, такие как эта. Некоторые игровые порталы / издатели также требуют, чтобы вы использовали их собственную оболочку.
Не отправляйте свой полный продукт в качестве демонстрационной версии, которую можно активировать. Таким образом, вы не устраняете пиратство (с которым вам все равно придется иметь дело), но, по крайней мере, вы исключаете возможность того, что кто-то просто скачает демо, взломает его и распространит вокруг (или даже просто взломанный исполняемый файл), По крайней мере, сначала им придется купить полную версию.
Что касается проверки того, что законный клиент использует программное обеспечение, вы действительно можете выполнить некоторую онлайн-аутентификацию, как предлагает Дэнни, но учтите, что это только остановит людей от использования ваших онлайн-сервисов, и зачастую это просто вопрос времени, когда квалифицированный взломщик / реверсер сделает убедитесь, что автономные функции вашего продукта могут быть использованы без покупки.
Не сразу поставляя полный продукт, обновление становится немного сложнее, но есть способы обойти это, например: Updater, который работает только после онлайн-аутентификации.
Мои 2 цента:
Не тратьте слишком много времени на разработку методов борьбы с пиратством. Используйте простой механизм последовательного генератора, чтобы разблокировать игру, в которую пользователь может войти вручную во время выполнения.
Я бы сказал, есть одна сборка, которая может переключиться в пробный режим или полный на основе введенного серийного ключа. Это уменьшит накладные расходы на поддержание двух отдельных кодов.
Это личное мнение, что люди, которые действительно покупают программное обеспечение в первую очередь, будут покупать вашу игру независимо от того, сколько пиратских версий доступно. Поэтому сделайте цель регистрации как можно более простой, что удержит обычного пользователя от взлома и в то же время проста в использовании. Хакеры взломают его независимо от того, какую защиту вы используете. В противном случае мы не увидим пиратские копии продуктов Microsoft / Adobe и т. Д., Которые тратят так много на то, чтобы сделать свои продукты пиратскими. Независимо от того, что они взимают, люди покупают это. Это качество продукта, которое будет стимулировать пользователей покупать его.
Кроме того, постарайтесь не налагать блокировки на свое программное обеспечение, например, использовать MAC-адрес и т. Д. Для генерации серийных номеров и т. Д. Активация в Интернете может быть хорошей идеей, но помните, что люди скептически относятся к тому, какую информацию вы пытаетесь передать во время активации. Также вам может потребоваться предоставить альтернативный механизм для автономной активации, если ваши клиенты не подключены к Интернету или не работают в отдельной локальной сети.
Как только вы увидите, что ваша игра становится популярной, и вы видите больше пиратских копий среди пользователей, вы можете тратить больше времени и денег на разработку методов борьбы с пиратством.
Если вы правильно его разработаете, у вас должен быть механизм проверки после X-го уровня. Этот механизм проверки может в основном попасть в раздел реестра. Этот раздел реестра может содержать некоторую закодированную информацию, созданную вашей программой. Ключ может представлять собой хеш MD5 (или SHA-1 или SHA-2, если вы действительно заинтересованы в высокой безопасности) MAC-адреса установленного компьютера, имени и фамилии и т. Д. Когда кто-то покупает игру, вы должны ввести эти данные в форму, а затем сгенерировать код для отправки пользователю, чтобы разблокировать игру. Вы можете даже взять этот же алгоритм и разместить его на своем веб-сайте ASP.NET и автоматизировать генерацию ключей после совершения покупки.