🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Registration codes

Started by
7 comments, last by miles vignol 22 years ago
I''m looking to release my Barrel Patrol game as a shareware. What is the typical method for generating/verifying registration codes? I''m sure there are many techniques, but it''s something I''ve never even considered till I thought about actually trying to sell my game. Any articles out there that go over this aspect game publishing? Thanks.
Advertisement
There are various methods. It depends if you want to have aunique code for each user or a generic one for everybody. unique codes help fight piracy but can be a real pain, and you need something thats based on that users unique PC, like his netcard number, the hard drive ID or his windows serial number, you can generate a number using XORs with a portion of the windows serial number for example.
Its common to store the entered serial number in the registry (or a file) and recompare them with the uniqie number (the windows serial for example) everytime the game runs, then set a flag saying whther or not its registered.
Someone did write an article on this, as i recall they were a MAC developer. Anyone remember the URL?

http://www.positech.co.uk
For my shareware product, The Journal, I create a unique set of keys for each user, based on their name.

Personally, I dislike key systems that are based on hardware configurations. Such setups punish normal users for upgrading their system, or for being unlucky and having to re-install, while doing almost nothing worthwhile to stop pirates.

I use the purchaser''s full name to create the keys because then the keys are personalized. And if they *do* share their keys with someone else, then it''s pretty obvious.

A bit more technical detail:

I use the person''s name as an encryption key for program-specific registration information. So their name is the first key, and the encrypted data (in text form) is the second key.

When the keys are entered, the first key is used to decrypt the second key. If the decryption fails, the keys are rejected. Otherwise, they are saved.

It''s not too complicated, but it does support up to 32 "modules" within a given set of keys. The Journal actually uses 2 modules, that can be purchased separately. If someone purchases just The Journal, they get registration keys that show that. If they then buy the Extended Security module (or if they buy The Journal with Extended Security right away), I give them a set of keys with both the base module and the Extended Security module active.


DavidRM
Samu Games
Forgot to mention this...

For our game, Artifact, we don''t use any keyed registration system at all. But that''s because Artifact is a client-server game, and payments are applied to specific accounts. So there is no need to setup anything to prevent piracy. It''s inherent in the system.

Just to present another alternative.


DavidRM
Samu Games
Hmm... yeah, I think a name/code approach is probably what I''ll end up using. My game is cross platform, so hardware/OS specific codes aren''t really worth delving into. And, as cliffski points out, can really screw with people who upgrade/re-install stuff.

Do you go to extra lengths to keep your registration code from prying eyes? I mean, if it''s a character string, do you make an attempt to hide it?

Do you use a home-brew encoding scheme?
The ideal I guess would be for every copy of the software to be different so that each person has a unique copy which can be identified as such. Coupled with a code generated from their name or better address/phone number/email address this would be very difficult to break unless you could figure out what was changing in the copies.
You would need your own online payment system for it to work, but ebook distributers like PeanutPress.com use the users credit card as the key. When they purchase the book it is encrypted using their CC number, and so the reader software can only read the book (decrypt) using that number.

To apply it to shareware you would encrypt the serial number needed to unlock the product using the persons credit card number, hence to give the product to other people they would have to share both the "serial number"(encrypted) and their credit card number.
Besides hardware-locked codes, which are absolutely detestable, what I hate most about registration codes is when the company that makes the software doesn''t say anything about registration being required. Cinema 4D uses a registration code that''s tied to the user, but they don''t tell you that on their website. Lightwave 7.5 uses a dongle, but it also requires users to obtain a registration code, again tied to the user, and they don''t tell you that on their website. GMax included with Flight Simulator Pro requires registration, and unless I missed it the box for Flight Simulator says nothing about that (the GMax website does say registration is required, but once you''ve purchased the software at the store it''s already too late).

Selling software that requires registration without disclosing that fact prior to sale should be illegal.
quote: Original post by Michalson
You would need your own online payment system for it to work, but ebook distributers like <a href="http://www.peanutpress.com">PeanutPress.com</a> use the users credit card as the key. When they purchase the book it is encrypted using their CC number, and so the reader software can only read the book (decrypt) using that number.


Things like this are the reason I sworn never to buy an ebook while I can help it. Real books you can share and sell without restriction. No such luck with many ebooks.

This topic is closed to new replies.

Advertisement