Secure .exe for distribution

This forum is currently in read-only mode.
0 favourites
From the Asset Store
Daily Rewards and Timed Rewards secure 24 hour timer
  • Welp, I've combed the forums over for something about this, but not finding much.

    So, here's a distribution/piracy question.

    Let's say I manage to make a game I want to sell. And I want to prevent it from being pirated. How would I go about trying to secure it? I've read up a little on MD5, and such. I know Construct generates a single .exe file. I figure a 3rd party installation program might be needed, but I wanted to see what solution Construct users have come up with (if any).

  • If it is worth pirating, it will be pirated. No protection will prevent that, sadly, short of the most extreme and draconian protection schemes.

  • What exactly are you trying to protect?

    I'd suggest that although you could add things like online verification or even an online check every time the user opens the program, even these could be engineered out the .exe by someone who wants to pirate it enough.

  • 'If it is worth pirating, it will be pirated. No protection will prevent that, sadly, short of the most extreme and draconian protection schemes.'

    'I'd suggest that although you could add things like online verification or even an online check every time the user opens the program, even these could be engineered out the .exe by someone who wants to pirate it enough.'

    Hackable? Very, if you put in even modest effort. But that's the point. Most users are lazy and won't, but ALOT of users can and will try to copy via usb stick to a friend, etc. I'm not worried about chinese hackers that can crack Vista or XP here (I could only be so lucky!). We're aiming much further down the piracy tree.

    For the average everyday buyer there has to be BASIC protection to prevent simple piracy. Not very complicated, not even online verification. Enter a serial number 1 time emailed with your purchase, you play the game on that machine. Off hand, I think a basic example might use a hidden MD5 hash protecting the exe. But how to implement that? or something like that?

  • I guess your installer/game could set a registry key - using the registry object - or create an ini/file based on a code the user has to enter. This could be combined with some system information using the system information object to create a 'unique' string to the user and PC, which could be hased using the MD5 object - a 3rd party plugin in the upload forum.

    It's not particularly secure or hack-proof, but it's the basics which some as you say, will stop a lot of people.

  • Well, you've literally asked the million dollar question. If you find a good solution, let the big distributors know too, because they still haven't figured it out yet either.

    I think the most robust way is to verify your application over the internet. However, this will inevitably cause problems for legitimate users, who have firewalls, have offline laptops and computers, you might have server outages, and so on. Ironically the pirates who crack your program have a much easier time without any of that hassle, so this kind of system probably ends up pressuring legit users to pirate the software to avoid the DRM hassle.

    Personally, I'd be inclined just to release it totally unprotected. Legit users get zero hassle. Anyone can pirate it of course, but in a world where people make it their hobby to routinely find software, crack it, and release it for free, are you really losing out that much?

    If your EXE is an indie game or similar, the fact someone can trivially send their game to their friend might actually work to your advantage. Word will spread and you may get more sales that way.

    In short, the secure distribution thing is a myth. Nobody has done it well before. It's effectively impossible, so I'd be inclined to go to the opposite extreme.

  • Piracy is a big problem and it hits indies especially hard (Seriously, copying a game that costs as much as a Pizza is just fucked up).

    I think the safest way at the moment would be to target locked platforms like PSN, WiiWare, XBLA, AppStore, etc. - set a lower price point and make your bet on many, many people buying it if it's actually any good.

    Releasing the game just like that without any protection if you've worked for months on it is not a very smart idea. If people can copy it easily, they will. If they can't, they won't. DRM is a lot of shit, really and it's definitely not the answer - but if you invest a lot into making sure that your creation is great, it's natural that you want people not to steal it.

  • mmm i believe strongly in the argument that anti-piracy measures affect legitimate customers more than those who acquire software illegitimately. whereby protection is more or less non-existent to the illegitimate end-user, the only ones who end up having to deal with the hurdles of anti-piracy measures are those who actually purchase software by legal means.

    as mentioned about worthiness of piracy, pirated versions will present little to no anti-piracy hurdle whatsoever resulting in a product probably of better quality than the original even if it is only due to a lack of an annoying anti-piracy measure.

    adding to thomasmahler's list of distribution mediums, i think steam might be a good point of distribution.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • DRM is a waste of time and energy. If your game is good, people will buy it. Enough people, anyway, that you will still come out ahead. The chances that you will get "indie rich" are slim... but if you play your cards right you can do okay.

    The best way to get paid, I think, is to get out there in the indie community and make yourself known. Get to know people. Make friends, and contacts. Then show off your work. It's easier to get buzz going by word of mouth on the internet than any other way... ads don't work, and shameless self-promotion doesn't work (aka Bob's Game). The more people who respect your work, the more likely they will be to say "this guy deserves my money."

    That is, if you want to make the kinds of games you like... you could of course just whore yourself out to the iPhone or Popcap crowd and make soulless casual games, they have plenty of money to throw away

  • The way I see it is if some one actaul pirates your game they think its worth their time and effort to give it away to people for free. So if anything it will get your name out there.

  • I don't disagree with what's above, but I can't see much rationale for not taking the most basic measures as opposed to making it completely trivial to just copy a game onto a USB stick and give it to everyone. Putting in a registry key or file is the minimum you can do, it takes all of a minute to add.

  • There is only one solid method that ensures people will buy your game if they like it... look at Galactic Civilizations. When you buy the game, you get a key that you can create an account with - or something like that - which enables you to download patches and other bonus content. You can also play online (well, GC has this Metaverse thingy).

    For Construct games, well, you could use unique keys to 'unlock' the content and extra features. When someone buys your game, you send them an unique key! Accounts can only be created with an unique key, so cloned keys can't be used to create a new account, thus one can't just distribute the key to 'friends'. It will work to unlock the game, but account-related features - patches, bonus content etc. - are only available to original accounts.

    That is how it works the best in my opinion. Remote computers work as well; you just install the content you downloaded with your account, as long as the used keys match.

  • I agree, steam is the way to go. antipiracy measures don't work much, but it does allow you to sell a few copies before the pirates kick in

    the best thing is to make it easier to buy than to steal. if you can click 2 or 3 times, enter a credit card number, pay 10 bucks or less, and be playing the game in minutes. alot of people will buy,

    the main thing though, is to have enough web presence that they hear of your game from your site or someone linking to you before they see it listed on a torrent site

  • oh yeah. I haven't read all the specifics

    but steamworks is free, doesn't require you to distribute through steam, and has antipiracy protection:

    http://www.steampowered.com/steamworks/

    Steamworks is entirely free. There are no licensing fees and there's no charge for bandwidth, retail copies, or OEM distribution.

    Steam Anti-Piracy

    Steamworks' anti-piracy suite combines three approaches to anti-piracy: (1) Custom Executable Generation, (2) Retail Encryption, and (3) Valuable Platform-Dependant Features. These work together to provide a seamless end-user experience, protecting your game and giving real value to customers.

    1. Custom Executable Generation

    Custom Executable Generation creates a unique build of your game for each user, making it difficult for any one user to share the game with any other user. Each individual copy of a CEG-protected game is only playable by the Steam account authorized to access it. CEG is transparent, and does not impose limits on users. It lets users access their content from any hardware, and allows unlimited hardware configuration changes without the content becoming unplayable. In fact, no changes are made to a user's computer for CEG to work. Instead, CEG works in tandem with Steam authentication, enabling content access based on user accounts, not arbitrary hardware-based "rights-management" restrictions.

    2. Retail Encryption

    Protect your day-one release by shipping encrypted media to stores world-wide. No need to worry that your game will leak from a replicator or stock room - your game stays encrypted until the moment you decide to release it.

    Encryption technology also allows you to preload your game to users on Steam. Download encrypted data weeks in advance so that players have access to your game the moment it's released, increasing player numbers and satisfaction during the critical first days.

    3. Valuable Platform-Dependant Features

    Customers won't want to pirate a game that's connected to 20 million gamers and a feature-rich platform. Features like Steam Achievements, Anti-Cheat, Auto-Updating, and Steam Cloud simply don?t exist outside of Steam.

    Furthermore, constantly updating your game with upgrades and content leaves the pirates in the dust ? they are relegated to a featureless game with no community of players.

  • Wow, hadn't seen THAT before.

    'Steamworks is entirely free. There are no licensing fees and there's no charge for bandwidth, retail copies, or OEM distribution.'

    Oh c'mon, pull the other one. How do they pay for this? And WHY would they do it for free? The catch is somewhere, just can't find it yet. NO service can run like that without someone footing the bill.

    Kay. Let me suspend reality a bit here and assume I can sell a game on this service. Has anyone using Construct attempted to integrate this in a Construct game? Anyone found any limitations or disadvantages yet? From appearances, this would seem like the ideal service to distribute with.

    -Free distribution

    -Free anti-piracy

    -Free multiplayer (how do you handle THAT with Construct?)

    Man, someone slap me with a 10 foot tuna and wake me up.

    [EDIT]

    Too late. Just read up on this on CVG. Yes, it is indeed free. You just have to contact Jason Holtman at Steam support:

    so they can provide you with info on how to integrate it. I always assumed I had to pay big bucks to get onto Steam as a software developer/publisher, so I never bothered to look. Color me impressed.

    I assume some of us have looked at this, or are actively trying to use it with Construct.

    -Anyone got an opinion on it?

    -How about sharing any experiences if you're using it?

    -Is the Construct team tempted to think about integrating Steamworks support into Construct?

    Hooboy.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)