【发布时间】:2010-10-13 18:35:42
【问题描述】:
我想通过以下系统销售一款游戏:赠送一个演示版(例如,前几个关卡)并销售完整版。我想让用户尽可能无缝地过渡到完整版本。我以前从来没有在网上卖过任何东西,所以我不确定它会如何运作(即使没有免费的演示)。
这似乎是一个非常普遍的问题,所以我想有一个标准的解决方案。我用 C++ 编写,面向 Windows,我的安装程序是由 NSIS 生成的。
【问题讨论】:
我想通过以下系统销售一款游戏:赠送一个演示版(例如,前几个关卡)并销售完整版。我想让用户尽可能无缝地过渡到完整版本。我以前从来没有在网上卖过任何东西,所以我不确定它会如何运作(即使没有免费的演示)。
这似乎是一个非常普遍的问题,所以我想有一个标准的解决方案。我用 C++ 编写,面向 Windows,我的安装程序是由 NSIS 生成的。
【问题讨论】:
如果你开发得当,你应该能够在第 X 级之后有一个检查机制。这种检查机制基本上可以命中注册表项。此注册表项可能包含一些由您的程序生成的编码信息。密钥基本上可以表示已安装机器 MAC 地址、名字和姓氏等的 MD5 散列(或 SHA-1 或 SHA-2,如果您真的关心高安全性)。当有人购买游戏时,您让他们在表单中输入该数据,然后生成代码发送给用户以解锁游戏。您甚至可以采用相同的算法并将其放在您的 ASP.NET 网站上,并在购买后自动生成密钥。
【讨论】:
不要将您的完整产品作为可激活的演示版发布。这样你就不会消除盗版(这仍然是你必须处理的事情),但至少你消除了某人只是下载演示、破解它并传播它的可能性(甚至只是一个破解的可执行文件) .他们至少必须先购买完整版。
至于检查合法客户是否使用该软件,您确实可以按照 Danny 的建议进行一些在线身份验证,但请注意,这只会阻止人们使用您的在线服务,而且合格的破解者通常只是时间问题/reverser 确保您的产品的离线功能无需购买即可使用。
由于不立即发布完整的产品,升级确实有点困难,但有一些方法可以解决这个问题,例如:仅在在线身份验证后才能使用的更新程序。
【讨论】:
有两种选择:
这两种方法各有利弊。
单独的完整版
可解锁演示
关于“通用”解决方案,请四处寻找商业 DRM 包装器,例如 this one。一些游戏门户网站/发行商还要求您使用他们自己的包装器。
【讨论】:
我的 2 美分:
不要花太多时间设计打击盗版的方法。使用简单的串行生成器机制解锁游戏,用户可以在执行过程中手动进入。
我会说有一个单独的版本,可以根据输入的序列号切换到试用模式或完整模式。这将减少维护两个单独代码的开销。
个人观点,不管有多少盗版,真正买软件的人都会买你的游戏。因此,使注册目的尽可能简单,这将阻止普通用户破解它,同时易于使用。无论您使用什么保护措施,黑客都会破解它。否则我们将不会看到微软/adobe 产品等的盗版副本,他们花费如此多的钱使他们的产品免于盗版。不管他们收取什么费用,人们都会购买。它的产品质量会鼓励您的用户购买您的产品。
此外,尽量不要对您的软件施加锁定,例如使用 MAC 地址等生成序列号等。在线激活可能是个好主意,但请记住,人们对您在激活时尝试传输的信息持怀疑态度。此外,如果您的客户没有 Internet 连接或在单独的 LAN 中工作,您可能必须提供一种替代机制来离线激活。
一旦您发现自己的游戏越来越流行,并且看到用户中有更多的盗版副本,您可能会投入更多的时间和金钱来开发反盗版技术。
【讨论】: