View Full Version : File Packer + Installer + Trial Mode + Binding Serial Key Installer etc..
mogul
01-09-2003, 07:25 PM
I wanted to contribute that Jonathan Clark, the former co-owner of crack.com and the creator behind the classic dark 2D platform shooter, Abuse, has developed an installer app aimed at shareware developers that:
Compresses data into a WAD style data format protecting your game art and media assets so you dont have to write your own format
Built in 30 day trial mode or X days for trial of your game/app
Self-installer or install program with desktop shortcut support
Great support and price for features (more to come for game dev. such as remote patching from a server etc.)
Enjoy,
http://thinstall.com/gamedev/
mogul.
Ratboy
01-10-2003, 04:34 AM
Wow. Now THAT I have to try out...
Shame I'm at work, or I'd try it right now...
milieu
01-10-2003, 05:39 AM
Has anyone here tried out Armadillo:
http://www.siliconrealms.com/armadillo.htm
On a related note, is it better to have a separate demo and full executable, or to have an unlock key? I can think of arguments for both, and would be interested in people's experiences with it.
princec
01-10-2003, 07:25 AM
Depends on the difference between the demo and the full game.
If the difference is that you've disabled the save game feature or crippled the internet scoreboard upload then use a key.
If the difference is 5 megs of extra graphics, sounds, and levels, then it looks as if your demo would be far too large to bother downloading. There's nothing I hate more than downloading 12Mb of crap when 3Mb would have given me the same impression. If it's actually worth paying for I don't begrudge wasting that 3Mb when I come to get the full version.
Cas :)
bstone
01-10-2003, 07:27 AM
IMO there are no significant differences.
Having a separate demo can be somewhat annoying for a customer compared to almost immediate satisfaction once order processing is finished and he's received the registration key. This can transform to less repeat customers. But the approach looks a bit more secure. Though people who surf for free registration keys and cracks are not going to buy anyway. So I don't think it's worth considering.
OTOH registration key can deliver a heavy headache for an inexperienced customer. The registration procedure should be as simple and clear as possible. Striving for this makes the registration scheme rather vulnerable for cracking. Furthermore, registration keys are better candidates for spreading over the net. Bearing in mind that we are biased toward casual gamers it seems that downloading the full version is easy (once the gamer has managed to download the demo). Registering the full version may be not. And I think if the customer experiences a problem he will think twice buying another game from you.
This is rather brief. If the topic is of any interest we could expand it with somewhat deeper analysis.
Kai-Peter
01-10-2003, 09:15 AM
I have been thinking about both approaches and am currently leaning towards the serial key approach.
My pros:
- Demo download is about as large as the full version (about 10-20% difference), and stripping would be difficult anyway
- Ease of activation of full version
- The demo uses crippled saving so that the player is able to save but unable to continue from their save without buying full version. Reinstallation would make this difficult to achieve.
My cons:
- Entering the registeration key is more complicated than simple download
- Bundling a full version on CD:s requires different build or distribution of keys
Note that these are for my specific game, not general guidelines.
I am not really worried about cracks because all technical defences will be broken eventually. You just want to lift the barrier a bit, some don't even do that and manage fine. I have evaluated Armadillo for this purpose and am pretty sure I am going to use it.
Fenix Down
01-10-2003, 01:14 PM
Originally posted by mogul
I wanted to contribute that Jonathan Clark, the former co-owner of crack.com and the creator behind the classic dark 2D platform shooter, Abuse, has developed an installer app aimed at shareware developers that:
Compresses data into a WAD style data format protecting your game art and media assets so you dont have to write your own format
Built in 30 day trial mode or X days for trial of your game/app
Self-installer or install program with desktop shortcut support
Great support and price for features (more to come for game dev. such as remote patching from a server etc.)
This is a very nice, I must give props to the author. And if I hadn't written my own similar (though not nearly as complex) system for doing this I might have bought it. :) I use ZLIB (http://www.gzip.org/zlib/) to essentially read ZIP files. Though this doesn't seem very secure at first, all you have to do is change the file extension (ZLIB doesn't care what the extension is) and 99% of users won't figure out that it's a ZIP file. Also, FYI Quake's pk2 format IS just ZIP (rename the files to ZIP and you can open them). And of course, Blizzard Entertainment uses ZLIB (end of War3 credits), need I say more? :)
I also didn't spend too much time writing my ZIP reader. I just used a wrapper someone wrote for ZLIB, and added my own functionality. Then of course I realized how will I load files from disk during development and from an archive in release mode. I don't want to go into how I did it because it might take a bit of time to explain it, but what it boils down to is with a change of one parameter in one header file I can tell the game to load from disk or from a ZIP file. Which is one of the features of Thinstall and that's pretty cool.
Of course, my system probably doesn't come close to being as efficient as theirs but for small game purposes I think it will do. :) Also one other thing is that this will only work on Windows. ZLIB is cross platform. So far I've kept my whole engine cross platform using SDL/OpenGL/ZLIB etc. (it was tested on Linux a while ago, don't have a MAC yet so can't test it there) so that I can potentially port my games to MAC and maybe Linux if it becomes a viable market. Still, it's a good link especially since most people only develop for Windows, and I'll keep it in mind.
Scorpio
01-10-2003, 02:09 PM
Originally posted by milieu
Has anyone here tried out Armadillo:
http://www.siliconrealms.com/armadillo.htm
On a related note, is it better to have a separate demo and full executable, or to have an unlock key? I can think of arguments for both, and would be interested in people's experiences with it.
We are usnig Armadillo at HipSoft for our small downloadable games. The reason we chose to go with Armadillo is that many of the registration services support Armadillo so they can automatically generate a key at the point of sale. Also, Armadillo's email support was very good and the price was not too shabby either.
With the demo version of Armadillo, I had my program protected in 5 minutes without any programming (their own dialogs will popup). However, you can also use their simple API to customize everything (the dialogs, mainly) to keep the look-n-feel of your game--this is what we did and it didn't take me long to do it...about a day.
Also, with their "certificates" setup, I was able to create a system where my software could be in the following "states": Trial, Full, Extended-Trial, and Refund. So, if someone goes on vacation after running the game once, I can easily give them a key to give them another 5 days to try it out.
As for having a seperate download for the Full version or keeping it all in one...I think going with a single download is best if the size difference is "reasonable" for your target audience (I'm not going to attempt to define "reasonable" for your game and your audience :) I can't remember where I got it from, but one of the bigger "puzzle game" online distributors said that the number one problem keeping their customers from playing their games was failed downloads.
-Scorpio
LordKronos
01-10-2003, 03:08 PM
Just from reading the description and features, thats pretty slick. The fact that it appears to use some sort of hooks to do on the fly decompression transparantly (no coding), and can even load the DLLs from the compressed file is pretty cool.
Originally posted by Fenix Down
This is a very nice, I must give props to the author. And if I hadn't written my own similar (though not nearly as complex) system for doing this I might have bought it. :) I use ZLIB (http://www.gzip.org/zlib/) to essentially read ZIP files. Though this doesn't seem very secure at first, all you have to do is change the file extension (ZLIB doesn't care what the extension is) and 99% of users won't figure out that it's a ZIP file. Also, FYI Quake's pk2 format IS just ZIP (rename the files to ZIP and you can open them). And of course, Blizzard Entertainment uses ZLIB (end of War3 credits), need I say more? :)
Fitznik Does the same. Although I don't really use it to protect the media. It keeps all of the data in one nice tidy place. It's much easier to tell if the user has accidentally deleted a file when the game only installs three files. It also saves space on the disk.
When it comes to letting people snoop, I'm actually tending towards activley allowing this. The projects that I'm currently working on are getting to be rather Mod Friendly even. All of the data is in a zip (With a different suffix to stop people who don't know what they are doing). Bitmaps, Sprites, Animations and samples etc are defined in Text files, Who knows, maye there will be someone keen enough to do their own changes to my games. I can't see there being a mod community as strong as quake or unreal but someone might want to have a go.
Is their any benefit to yourself by stopping people from looking at the data inside your game?
[If anyone is actually after Delphi code to handle Zip reading like this, drop me a line]
LordKronos
01-10-2003, 04:08 PM
Originally posted by Lerc
Is their any benefit to yourself by stopping people from looking at the data inside your game?
If you are planning on selling expansion packs, then I guess the more difficult you make it to find the data, the more difficult it would be for someone to release free addons for the game.
Other than that, the only other benefit I can see is the one mentioned on the site:
Packing our game data helps prevent data theft. We were usually more scared of publishers ripping us off than users. We assumed that a clever hacker could probably reverse engineer our format and take our data, as they do with all of id software’s games. This is a sign your game is popular and selling well, so that doesn’t bother me immensely. But when we sent a demo to a publisher, we didn’t want them to have full access to our bitmaps, sounds, models, etc. Possibly they might decide to can the project, say they own all of the data, and hire a different development team to finish the work using the data you so graciously gave them. It may sound a bit paranoid, but I have actually seen this happen.
Fenix Down
01-10-2003, 04:10 PM
Yeah I load some stuff from text files too, such as animation sequences. I don't see any other reason to protect your media other than so people won't use it in their games, use it on their web site, or try to sell it (pass it off as original art/music/sound fx) or even change all the graphics and try to sell the game as their own. Since the chances of you finding out are pretty slim for a small game, people could get away with that kind of stuff.
Kai-Peter
01-11-2003, 02:40 AM
Originally posted by Lerc
Is their any benefit to yourself by stopping people from looking at the data inside your game?
If you distribute FULL and TRIAL in one file you have to decided somwhere how they differ. If you have evertyhing in script files someone cracking it could essentially rename level55.cfg to level01.cfg and play parts of the game not intended for the trial. A bit paranoid but this is the only thing I can imagine.
You could circumvent this with some cheksum calculations on the most important files.
jonathanclark
01-11-2003, 04:52 PM
Hi All,
Mogul pointed me to this thread. A few game related notes to add:
Yes, Thinstall is not a portable solution for linux/mac (for the near future anyway), but on the other hand it doesn't require any source code changes - so you aren't "locked in" to anything - just write the game how you see fit and apply Thinstall at the end. Many of the places where it's useful are not portable - like being able to link DLLs and have your wad-files visible to those DLLs and 3rd party DLLs. For example, using an embedded media player control to play a clip - thinstall intercepts MS Media Player so it's able to read from your internal archive. Movies clips are difficult to make and great eye-candy rewards, but if they are sitting on the HD, it's too easy to peek and spoil the game.
Can you do mods with Thinstall? Yes, and even easier than ZIP files. By default Thinstall will first search the hard-drive, then the internal archive. This allows the user to replace any file in the archive simply by putting it on the hard-drive. So for the users who want to MOD, you have a separate ZIP files containing the files you allow them to replace. They unzip into the game directory and then can edit anything. If they want to go back to a clean distribution, all they do is delete everything but the original EXE. This way you also have control over which files the user can replace and which ones they can't - and they don't have to ZIP everything up after every change. For users who don't want MOD, the game looks cool as a single EXE (at least my opinion).
Why would you want to protect your data files? As previously mentioned by another user here, if you have some differences between the registered and unregistered, you want to hide those data files - especially if you allow the user to mod your game. You also may want to hide eye-candy that shouldn't be seen to later levels. I think the fewer files the user sees the more professional it looks. If it's just one compressed EXE, it's more likely to stay on the user's system and maybe passed to friends - especially if it doesn't need to be installed and can be run directly from an internet link or email attachment.
I announced this on a few days ago:
http://thinstall.com/unix_tools
I just packaged up some other free programs using Thinstall, and people really love it because they don't have to install and it doesn't take up much space on their harddrive. Something like 3000 downloads in the last 2 days - so there is something to be said for that.
Other useful future features to internet based game developers are coming this year, I think the most useful is remote automatic patching. This automatically checks your webserver for a new version of the game and constructs a "diff" version from any previous version so the download size is minimal. It works from any web server and doesn't require any code on your part - just plop a new version in your server apache/IIS directory.
Cheers,
Jonathan
Originally posted by jonathanclark
Can you do mods with Thinstall? Yes, and even easier than ZIP files. By default Thinstall will first search the hard-drive, then the internal archive. This allows the user to replace any file in the archive simply by putting it on the hard-drive. So for the users who want to MOD, you have a separate ZIP files containing the files you allow them to replace. They unzip into the game directory and then can edit anything.
Actually when I mentioned Zip file usage I thought that this would have been a given. I check for files within a directory with the same name as the Zip(without suffix).
Why would you want to protect your data files? As previously mentioned by another user here, if you have some differences between the registered and unregistered, you want to hide those data files - especially if you allow the user to mod your game. You also may want to hide eye-candy that shouldn't be seen to later levels. I think the fewer files the user sees the more professional it looks. If it's just one compressed EXE, it's more likely to stay on the user's system and maybe passed to friends - especially if it doesn't need to be installed and can be run directly from an internet link or email attachment.
Those are some valid issues for some people I suppose, They are just not of particular concern to me. I keep the file count low (Exe - Data - fmod.DLL).
The main feature that appeals to me is the incorperation of DLLs into the exe.
I'm curious how you can ensure that this will work on future versions of windows, since it looks like the kind of thing Microsoft takes glee in breaking with new releases.
But there may be a less technical barrier to that part, since A lot of the DLLs I have seen have licences prohibiting that sort of behaviour. I know that FMOD doesn't have come in a complete linkable version because they wanted to keep the DLL seperate.
All in all it looks like a good product though. It seems to be quite well put together and quite frankly I'd like to know what black magic you are doing to do the DLL trick.
jonathanclark
01-12-2003, 01:51 AM
I'm curious how you can ensure that this will work on future versions of windows, since it looks like the kind of thing Microsoft takes glee in breaking with new releases.
Microsoft is stuck with the format they created, so if they break things for me they will also break things for their older OSes. It's highly possible they will introduce new features that I won't immediately support, but this will not break older programs. For example some features Microsoft has introduced recently :
- side-by-side DLL loading which permits you to load DLLs from different locations than normal.
- XML manifest resource
These features either have no effect on older OSes, or they are for programs targeted specifically at XP. Thinstall supports them and actually allows side-by-side to occur on all versions of Windows (something MS cant' do).
Mainly there are only differences in the way Thinstall acts for the two kernel models of 95/98/ME and NT/2k/XP. Windows 95 is a pathalogical case because it doesn't have proper virtual memory support and has a number of "bugs" - but it's completely supported. I don't see anyway that Thinstall would break on new OSes. The Windows platform is pretty much carved in stone now.
All in all it looks like a good product though. It seems to be quite well put together and quite frankly I'd like to know what black magic you are doing to do the DLL trick.
In order to load DLLs you need to static and dynamic loading, thread tracking, thread local storage, DllMain callbacks, resource loading, imports & exports remapping, code relocation, dependency loading, etc, etc. It's very difficult and involves many months of reverse engineering. And surprisingly one of the hardest problems for me was DLL unloading and process shutdown.
I know that FMOD doesn't have come in a complete linkable version because they wanted to keep the DLL seperate.
Many people use DLLs because they can be used across languages but libraries cannot. For example VB/C++. No doubt, having a seperate DLL also allows some level of tracking so they can hunt down non-licensed games.
I have not seen any EULA that forbids the use of Thinstall, but that is largely due to the fact that no one thought this was possible. Still most people are unaware of it.
Another game engine forbids any changes to the EXE and calculates a checksum on the EXE before running. It has a signature embedded in the EXE so they know who it was licensed to. Thinstall is able to pack there game engine allowing the checksum to work, however externally the signature disappears. Nothing I planned to do, just something a user reported to me.
Jonathan