A separate demo and full version. Your ecommerce provider will send the full version to people who buy it.
A demo that is unlocked by a registration key or online activation process. Registration keys can be generated on the fly (or taken from a pre-generated list). Ecommerce providers can then send the keys to customers immediately after purchase.
Both approaches have their pros and cons.
Separate full version
Smaller demo file, saves bandwidth
Less technical support required for customers who buy full version (in my experience)
Two builds of the game, more testing
Harder to distribute updated versions to customers - need to keep a login for each customer or a secret URL that expires after a few days.
Unlockable demo
Contains all assets, may waste bandwidth
Easier to distribute cracked version (pirates can distribute a 10KB patch or reg key and link to your demo file, more bandwidth waste)
Single build, less testing
Easy to distribute updated versions (everybody can download the same public version)
Regarding a "general" solution, look around for commercial DRM wrappers such as this one. Some game portals/publishers also require that you use their own wrapper.
Don't ship your full product as a demo that can be activated. This way you don't eliminate piracy (which will still be something you will have to deal with) but at least you remove the possibility of someone just downloading the demo, cracking it, and spreading it around (or even just a cracked executable). They would at least have to buy the full version first.
As for checking a legit customer is using the software, you can indeed do some online authentication as Danny suggest but note that this will only stop people from using your online services and it often is just a matter of time before a qualified cracker/reverser makes sure that your product's offline features can be used without purchase.
By not shipping the full product immediately, it does make upgrading a little harder, but there are ways around this, ex: Updater that only works after online authentication.
如果你正确地开发它,你应该能够在第X级之后有一个检查机制。 这种检查机制基本上可以命中注册表项。 该注册表项可能包含一些由您的程序生成的编码信息。 该密钥基本上可以代表已安装计算机的 MAC 地址、名字和姓氏等的 MD5 哈希(或者 SHA-1 或 SHA-2,如果您确实关心高安全性)。 当有人购买游戏时,您让他们在表单中输入该数据,然后生成一个代码发送给用户以解锁游戏。 您甚至可以采用相同的算法并将其放在 ASP.NET 网站上,并在购买后自动生成密钥。
If you develop it correctly you should be able to have a checking mechanism after the Xth level. This checking mechanism could basically hit a registry key. This registry key could have some encoded information which was generated by your program. The key could basically represent an MD5 hash (or SHA-1 or SHA-2 if you really concerned with high security) of the installed machine MAC Address, the first and last name, so and so forth. When someone purchases the game, you have them input that data in a form and then generate a code to send along to the user to unlock the game. You could even take that same algorithm and put it on your ASP.NET website and automate the key generation after a purchase has been made.
Dont spend too much time devising methods against piracy. Use simple serial generator mechanism to unlock the game which user can enter manually during the execution.
I would say have a single build which can switch to trial mode or full based on the serial key entered. This will reduce the overhead of maintaining two separate code.
It is a personal opinion, that people who really buy software at first place will buy your game no matter how many pirated versions are available. So make registeration purpose as simple as possible which will deter a normal user from cracking it and at the same time easy to use. Hackers will crack it no matter what protection you use it. Otherwise we wont see the pirated copies of microsoft/adobe products etc who spend so much on making their products piracy free. No matter what they charge, people do buy it. Its the quality of the product which will encourage your users to buy your product.
Also, try not to impose locks on your software like using MAC address etc for generating the serial numbers etc. Online activation may be a good idea but remember people are skeptical as to what information you try to transmit while activation. Also you might have to provide an alternate mechanism for offline activation if your customers dont have internet connection or work in separate LAN.
Once you see that you game is getting popular and you see more pirated copies with users, you may invest more time and money on developing anti-piracy techniques.
发布评论
评论(4)
有两个选项:
两种方法都有其优点和缺点。
单独的完整版本
可解锁演示
关于“通用”解决方案,请寻找商业 DRM 包装器,例如 这个。 一些游戏门户网站/发行商还要求您使用他们自己的包装器。
There are two options:
Both approaches have their pros and cons.
Separate full version
Unlockable demo
Regarding a "general" solution, look around for commercial DRM wrappers such as this one. Some game portals/publishers also require that you use their own wrapper.
不要将完整产品作为可激活的演示版提供。 这样你并不能消除盗版(这仍然是你必须处理的问题),但至少你消除了有人下载演示版、破解它并传播它的可能性(甚至只是一个破解的可执行文件) 。 他们至少必须先购买完整版。
至于检查合法客户是否正在使用该软件,您确实可以按照丹尼的建议进行一些在线身份验证,但请注意,这只会阻止人们使用您的在线服务,并且合格的破解者/逆向者通常只是时间问题确保您的产品的离线功能无需购买即可使用。
如果不立即发布完整的产品,确实会使升级变得更加困难,但有一些方法可以解决这个问题,例如:仅在在线身份验证后才起作用的更新程序。
Don't ship your full product as a demo that can be activated. This way you don't eliminate piracy (which will still be something you will have to deal with) but at least you remove the possibility of someone just downloading the demo, cracking it, and spreading it around (or even just a cracked executable). They would at least have to buy the full version first.
As for checking a legit customer is using the software, you can indeed do some online authentication as Danny suggest but note that this will only stop people from using your online services and it often is just a matter of time before a qualified cracker/reverser makes sure that your product's offline features can be used without purchase.
By not shipping the full product immediately, it does make upgrading a little harder, but there are ways around this, ex: Updater that only works after online authentication.
如果你正确地开发它,你应该能够在第X级之后有一个检查机制。 这种检查机制基本上可以命中注册表项。 该注册表项可能包含一些由您的程序生成的编码信息。 该密钥基本上可以代表已安装计算机的 MAC 地址、名字和姓氏等的 MD5 哈希(或者 SHA-1 或 SHA-2,如果您确实关心高安全性)。 当有人购买游戏时,您让他们在表单中输入该数据,然后生成一个代码发送给用户以解锁游戏。 您甚至可以采用相同的算法并将其放在 ASP.NET 网站上,并在购买后自动生成密钥。
If you develop it correctly you should be able to have a checking mechanism after the Xth level. This checking mechanism could basically hit a registry key. This registry key could have some encoded information which was generated by your program. The key could basically represent an MD5 hash (or SHA-1 or SHA-2 if you really concerned with high security) of the installed machine MAC Address, the first and last name, so and so forth. When someone purchases the game, you have them input that data in a form and then generate a code to send along to the user to unlock the game. You could even take that same algorithm and put it on your ASP.NET website and automate the key generation after a purchase has been made.
我的 2 美分:
不要花太多时间设计打击盗版的方法。 使用简单的串行生成器机制来解锁游戏,用户可以在执行过程中手动输入。
我想说的是,有一个版本可以根据输入的序列号切换到试用模式或完整模式。 这将减少维护两个独立代码的开销。
个人观点是,无论有多少盗版版本,真正购买软件的人都会购买你的游戏。 因此,注册目的尽可能简单,这将阻止普通用户破解它,同时易于使用。 无论您使用什么保护措施,黑客都会破解它。 否则我们不会看到微软/adobe等产品的盗版副本,他们花费如此多的钱来使他们的产品免遭盗版。 无论收费多少,人们都会购买。 产品的质量会鼓励您的用户购买您的产品。
另外,尽量不要对您的软件施加锁定,例如使用 MAC 地址等来生成序列号等。在线激活可能是个好主意,但请记住,人们对您在激活时尝试传输的信息持怀疑态度。 此外,如果您的客户没有互联网连接或在单独的 LAN 中工作,您可能还必须提供离线激活的替代机制。
一旦您看到您的游戏越来越受欢迎并且用户看到更多的盗版副本,您可能会投入更多的时间和金钱来开发反盗版技术。
My 2 cents:
Dont spend too much time devising methods against piracy. Use simple serial generator mechanism to unlock the game which user can enter manually during the execution.
I would say have a single build which can switch to trial mode or full based on the serial key entered. This will reduce the overhead of maintaining two separate code.
It is a personal opinion, that people who really buy software at first place will buy your game no matter how many pirated versions are available. So make registeration purpose as simple as possible which will deter a normal user from cracking it and at the same time easy to use. Hackers will crack it no matter what protection you use it. Otherwise we wont see the pirated copies of microsoft/adobe products etc who spend so much on making their products piracy free. No matter what they charge, people do buy it. Its the quality of the product which will encourage your users to buy your product.
Also, try not to impose locks on your software like using MAC address etc for generating the serial numbers etc. Online activation may be a good idea but remember people are skeptical as to what information you try to transmit while activation. Also you might have to provide an alternate mechanism for offline activation if your customers dont have internet connection or work in separate LAN.
Once you see that you game is getting popular and you see more pirated copies with users, you may invest more time and money on developing anti-piracy techniques.