iDevGames Forums
Registering dialogs - Printable Version

+- iDevGames Forums (http://www.idevgames.com/forums)
+-- Forum: Development Zone (/forum-3.html)
+--- Forum: Game Design (/forum-5.html)
+--- Thread: Registering dialogs (/thread-7533.html)



Registering dialogs - Fenris - Oct 11, 2002 11:44 AM

I'm just about to ship my contribution to the uDevGames, and I'm just about to add the Register... dialog. However, I need some way to store the apps' registered state, and then I'm going to ask you guys and girls: where do you store this?

In the app's resource fork? Noo... Smile It can't be inside the application itself, since that would make it too easy registering and then duplicating the heck out of it...
Is a Preferences file the way to go? (Although that wouldn't give me more security than the aforementioned...)

Or am I overlooking something? How do you do it?

/Ivan Milles


Registering dialogs - IBethune - Oct 12, 2002 10:48 AM

Probably one of the simplest ways to do this is create a hidden file in the Prefs folder - do this by creating a file with a . at the start e.g. ".register.txt" You can read the file as normal through your app, but the file will not show up in the finder. Obviously you want to encrypt the data in this file in some way, possibily including some system-specific info e.g. the MAC address or something. When the app starts, read the file, and check the system-specific info against the machine being used.

This method is simple to implement, stops users copying the app to another machine, but they can still move the app around on their own machine without losing the file.

Of course, a cracker can of course find the file as it will show up when 'ls' is used in the terminal, but it is always possible to defeat any registration system anyway.

I think this one works reasonably well and isn't too hard to do, and doesn't cause too many problems for legitimate users.

- Iain


Registering dialogs - Josh - Oct 12, 2002 10:58 AM

Of course the above method works only on Mac OS X, but if your game is Mac OS X-only, it seems like a good solution.


Registering dialogs - Fenris - Oct 12, 2002 01:31 PM

This was interesting - how would I go about finding the MAC address? Is this a Gestalt selector?

Then, this is a OS 9 game (at least for now), but I suppose there are info on creating invisible files in IM?

Thanks, this was pretty intelligent. Smile


Registering dialogs - furballphat - Oct 12, 2002 02:43 PM

Why do you want registration for uDevGame? I can see commercialisation as a possibility after the contest ends, but until then there is no point in fussing around with writing secure registration. You'd be best having an uncrippled version (but it could stop working after a certain date) and writing the shareware version later.


Registering dialogs - Fenris - Oct 12, 2002 02:55 PM

Pure and crass greedability. Smile I currently work a 23% test employment as a subway toll booth attendant, and my rent is about 160% of my monthly salary, not to mention the payments on my computer, adding up to another 90% of that salary... So any ten bucks would make a difference. Smile


Registering dialogs - Josh - Oct 12, 2002 05:17 PM

Quote:Originally posted by Fenris
Then, this is a OS 9 game (at least for now), but I suppose there are info on creating invisible files in IM?
MoreFilesX has just what you want.


Registering dialogs - codemattic - Oct 12, 2002 06:07 PM

Quote:Originally posted by IBethune
Probably one of the simplest ways to do this is create a hidden file in the Prefs folder - do this by creating a file with a . at the start e.g. ".register.txt" You can read the file as normal through your app, but the file will not show up in the finder. Obviously you want to encrypt the data in this file in some way, possibily including some system-specific info e.g. the MAC address or something. When the app starts, read the file, and check the system-specific info against the machine being used.


I think this is a bad idea. Unless you are Microsoft (and even for MS imo) connecting your game to a specific machine is bad. When someone moves to a new machine their game isnt going to work anymore and they are going to be pissed at you.

Also - dont bother hiding files.

Do encrypt though. In the prefs file - have the name (in plaintext) of the person registered (which you get from paypal, kagi, etc.. which is based on his credit card so you have a high expectation that its real). Then have a number of checksums etc., that are based on the name. When the game runs first check that the checksums match the name. Also in the splash screen print "registered to <persons name>". That way a person who registers your game cant upload it somewhere without his real name attached to it.

Realize though - that unlike when you encrypt a message to someone - here a cracker has the code he needs to break the checksums. Obviously its somewhere in the game. He can disassemble the code and figure out the algorithm needed to generate a checksum and so copies of your game can be circulated with a pref file that is registerd to "I. P. Daily" Or they can find the code that checks the preference file and just route around it.

To give yourself a little more security - check the pref file from a number of different spots in your code and in different ways.

The best you can realistically hope for is to discourage the honest people. You can spend all your time trying to beat the hard core crackers who will never buy it anyway - but wouldnt you rather spend that time writing your next big thing?!

The most important features of a registration scheme IMHO is to discourage the mostly honest users - but also to be as unabtrusive and cause as few headaches for the user as possible. If you have a higher level of protection - but it involves more work from the users perspective I say pass on it.

good luck, hth,
Codemattic


Registering dialogs - codemattic - Oct 12, 2002 06:15 PM

Quote:Originally posted by Fenris
Pure and crass greedability. Smile I currently work a 23% test employment as a subway toll booth attendant, and my rent is about 160% of my monthly salary, not to mention the payments on my computer, adding up to another 90% of that salary... So any ten bucks would make a difference. Smile


nothing wrong with that!

But of course if you are going to enter the uDev contest you will have to submit all your code also!

I dont know what kind of game you are making - but here is my suggestion. As you develop your game - design some basic levels for uDev - and some advanced levels (or a somehow expanded version) just for your shareware version. "Your Game" for uDev - and a "You Game Pro" for shareware.

The point of uDev is for people to learn from your code - which they will from your entry. But you then make a version with extra levels, characters, etc... for your shareware version.

Does anyone here think that that would violate the principles behind uDev?

hth,
Codemattic


Registering dialogs - Fenris - Oct 13, 2002 02:24 AM

Well, as for talking people into registering early, here's my malicious scheme: Grin

Galder 1.0 is a quite basic version of my puzzle game - which BTW is a non-level thingie. This registers for 10$. The 1.5 version will be a _major_ update - internet support, a "Tetris" mode, new graphics engine, puzzle editor, a "suggest a move" feature, OS X support as well as skinning possibilities and ambient sounds. This will register for 15$. However, those who register 1.0 will also recieve the 1.5 for free - thus, there's a small freebie for registering early.

Is this a very greedy way to go, or in any way immoral?

As for releasing the code, I have no problems with that. It's all in the assets, and I am aware that releasing the code will also ruin my protection scheme, but I am a very naive person at times and hope that the code won't travel that far outside the iDevGame. (But I know this is naive, yes. Smile )


Registering dialogs - Hog - Oct 13, 2002 11:06 AM

Quote:Originally posted by IBethune
... including some system-specific info e.g. the MAC address or something.

MAC address? oh, for a moment there i was thinking you meant the Media Access Control address of the network card, silly me (would be a nasty thing to bind registration to the network card's address). be sure not to get that mixed up.
i don't think that that there is any method which makes copyprotection absolutely failsafe.
if you choose to have very sophisticated methods of copy protection you should make sure that the number of people who buy your app because of the copy protection exceeds the number of people who don't buy it because they are annoyed by your methods of copyprotection (like linking registrations to machine specs).
a pretty failsafe method of copyprotection i'd think of, is to check for the uniqueness of registrations over a network, possibly the internet, especially concerning network games.