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