代码之家  ›  专栏  ›  技术社区  ›  Jesse Beder

如何制作免费演示的共享软件程序[关闭]

  •  -1
  • Jesse Beder  · 技术社区  · 16 年前

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

    这似乎是一个很常见的问题,所以我想有一个标准的解决方案。我用C++编写,以Windows为对象,我的安装程序是由NSIS生成的。

    4 回复  |  直到 15 年前
        1
  •  7
  •   Tomas Andrle    16 年前

    有两种选择:

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

    这两种方法各有利弊。

    单独的完整版本

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

    可解锁演示

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

    关于“通用”解决方案,请查看商业drm包装,如 this one . 一些游戏门户/发行商还要求您使用自己的包装器。

        2
  •  3
  •   Daniel Sloof    16 年前

    不要将完整的产品作为可激活的演示发布。这样你就不会消除盗版(这仍然是你必须面对的问题),但至少你消除了有人下载演示,破解,传播(甚至只是破解的可执行文件)的可能性。他们至少得先买完整版。

    至于检查合法客户是否正在使用该软件,您确实可以按照丹尼的建议进行一些在线身份验证,但请注意,这只会阻止人们使用您的在线服务,而且通常只有一个时间问题,合格的破解器/反转器才能确保您的产品关闭。无需购买即可使用线条特征。

    如果不立即发布完整的产品,升级确实会有点困难,但也有办法解决这个问题,例如:更新程序只能在在线身份验证之后才能工作。

        3
  •  0
  •   Danny G    16 年前

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

        4
  •  0
  •   K Singh    15 年前

    我的2分钱:

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

    我想说有一个单一的建设,可以切换到试用模式或完全基于串行键输入。这将减少维护两个独立代码的开销。

    这是一个个人的意见,真正购买软件的人会在第一时间购买你的游戏,无论有多少盗版版本可用。因此,使注册目的尽可能简单,这将阻止正常用户破解它,同时易于使用。不管你用什么保护,黑客都会破解它。否则我们就看不到微软/adobe产品等的盗版,他们花了那么多钱让自己的产品不受盗版的侵害。不管收多少钱,人们都会买。它的产品质量将鼓励你的用户购买你的产品。

    另外,尽量不要对你的软件加锁,比如使用mac地址等来生成序列号等。在线激活可能是个好主意,但请记住,人们对你在激活时试图传输的信息持怀疑态度。此外,如果您的客户没有Internet连接或在单独的LAN中工作,则可能需要提供脱机激活的备用机制。

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