-1

我有一个我想用以下系统销售的游戏:赠送一个演示(比如,前几个级别)并销售完整版。我想让用户尽可能无缝地过渡到完整版本。我以前从来没有在网上卖过任何东西,所以我不确定它是如何工作的(即使没有免费的演示)。

这似乎是一个非常普遍的问题,所以我想有一个标准的解决方案。我正在用 C++ 编写,面向 Windows,我的安装程序是由 NSIS 生成的。

4

4 回答 4

7

有两种选择:

  1. 单独的演示版和完整版。您的电子商务提供商会将完整版本发送给购买它的人。
  2. 通过注册密钥或在线激活过程解锁的演示。注册密钥可以即时生成(或从预先生成的列表中获取)。然后,电子商务提供商可以在购买后立即将密钥发送给客户。

两种方法都有其优点和缺点。

单独的完整版

  • 更小的演示文件,节省带宽
  • 购买完整版的客户所需的技术支持较少(根据我的经验)
  • 两个版本的游戏,更多的测试
  • 更难将更新版本分发给客户 - 需要为每个客户保留一个登录名或在几天后过期的秘密 URL。

解锁演示

  • 包含所有资产,可能会浪费带宽
  • 更容易分发破解版(盗版者可以分发一个10KB的补丁或注册密钥并链接到你的演示文件,更多的带宽浪费)
  • 单一构建,更少的测试
  • 易于分发更新版本(每个人都可以下载相同的公共版本)

关于“通用”解决方案,请四处寻找商业 DRM 包装器,例如这个。一些游戏门户/发行商还要求您使用他们自己的包装器。

于 2009-03-23T16:08:13.027 回答
3

不要将您的完整产品作为可以激活的演示来发布。这样你就不会消除盗版(这仍然是你必须处理的事情),但至少你消除了某人只是下载演示、破解它并传播它的可能性(甚至只是一个破解的可执行文件) . 他们至少必须先购买完整版。

至于检查合法客户是否正在使用该软件,您确实可以按照 Danny 的建议进行一些在线身份验证,但请注意,这只会阻止人们使用您的在线服务,而且合格的破解者/逆向者通常只是时间问题确保无需购买即可使用您产品的离线功能。

通过不立即发布完整的产品,确实会使升级变得更加困难,但有一些方法可以解决这个问题,例如:仅在在线身份验证后才能使用的更新程序。

于 2009-03-17T05:13:08.157 回答
0

如果你开发得当,你应该能够在第 X 级之后有一个检查机制。这种检查机制基本上可以命中注册表项。此注册表项可能包含一些由您的程序生成的编码信息。密钥基本上可以表示已安装机器 MAC 地址、名字和姓氏等的 MD5 散列(或 SHA-1 或 SHA-2,如果您真的关心高安全性)。当有人购买游戏时,您让他们在表单中输入该数据,然后生成代码发送给用户以解锁游戏。您甚至可以采用相同的算法并将其放在您的 ASP.NET 网站上,并在购买后自动生成密钥。

于 2009-03-17T05:00:34.523 回答
0

我的 2 美分:

不要花太多时间设计打击盗版的方法。使用简单的串行生成器机制来解锁游戏,用户可以在执行过程中手动进入。

我想说有一个可以根据输入的序列号切换到试用模式或完整的构建。这将减少维护两个单独代码的开销。

个人观点,不管有多少盗版,真正买软件的人都会买你的游戏。因此,使注册目的尽可能简单,这将阻止普通用户破解它,同时易于使用。无论您使用什么保护措施,黑客都会破解它。否则我们将不会看到微软/adobe 产品等的盗版副本,他们花费如此多的钱使他们的产品免于盗版。不管他们收取什么费用,人们都会购买。它的产品质量将鼓励您的用户购买您的产品。

此外,尽量不要对您的软件施加锁定,例如使用 MAC 地址等生成序列号等。在线激活可能是一个好主意,但请记住,人们对您在激活时尝试传输的信息持怀疑态度。此外,如果您的客户没有 Internet 连接或在单独的 LAN 中工作,您可能必须提供一种替代机制来进行离线激活。

一旦您看到您的游戏越来越受欢迎并且您看到更多的盗版副本与用户,您可能会投入更多的时间和金钱来开发反盗版技术。

于 2010-01-28T12:51:11.587 回答