Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

AppGameKit Classic Chat / AGK: Serial # Verification using Multiplayer Commands

Author
Message
IBOL
Retired Moderator
20
Years of Service
User Offline
Joined: 30th Mar 2004
Location: @IBOL17
Posted: 15th Sep 2014 15:55 Edited at: 15th Sep 2014 15:55
My AppGameKit game, Approaching Infinity, is about to come out, and I have been theorizing about "copy protection", using the multiplayer commands.

The problem is, I have no experience with agk multiplayer, and I only have 1 computer (can't test).

Here is my "idea":
=================================================================
- each copy of the game gets a "serial number". any serial # would work with any copy of the game, but we need a way to tie each one to a specific instance. so:
- the first time you run it, you need to 'connect to server for verification'.
- player types in the serial # they were given.
- the game collects some information behind the scenes to identify that computer
- the game sends serial # & info to "host"
- host returns a 'verification code', which game saves in a file, and never asks again, as long as file exists & information is correct
- host also stores the serial #, along with the associated information & verification code.
- if that serial # is used again, and different 'information' accompanies it, host will reject, and not verify.

=================================================================

will this work?
what problems do you foresee?
would anyone be willing to test this with me?

Thanks,
Bob


Attachments

Login to view attachments
Jack
19
Years of Service
User Offline
Joined: 4th Oct 2004
Location: [Germany]
Posted: 15th Sep 2014 16:12
It will work!
But a better and easier way to do this, is by using http commands of AGK.
Just send a string to your server and let the server return you a string true or false. Check for the string, get validation, you're done!

I use this system in a scientific application to give each device an unique ID. The ID is given by the server, but if you build a serial system, you can generate the key on the device.


[/url]
Markus
Valued Member
20
Years of Service
User Offline
Joined: 10th Apr 2004
Location: Germany
Posted: 15th Sep 2014 16:24
hmmm, fact is that a copy protection often more annoying
the people that bought your game.
for your idea u need to host a server for this,
and u need to make sure it works perfect.
u need spend much extra time & work & money for it, if it worth?
what is the price and what do you think how much
people buy this game.

but i think your idea works.

is the game for pc/android/ios?
about copy protection:
normal android sdk & google play store using the billing service for verification of purchased products.
for pc i whould try green light & steam.
but i believe than the game must be in tier2.
for android/ios and tier1 i think u can use the "in app purchase" commands.

AGK 108 (B)19 : Windows 8.1 Pro 64 Bit : AMD Radeon R7 265
IBOL
Retired Moderator
20
Years of Service
User Offline
Joined: 30th Mar 2004
Location: @IBOL17
Posted: 15th Sep 2014 17:11
@Jack:
thanks. my problem with that is that I don't have a website, a server, or *any* experience with writing modern web stuff. I tried HTML, but it seems to lack simple math commands.

could you give me a starting point? example? language? pretend you're talking to an idiot, because in this case it's very near the truth

I would be open to talking over email...

@markus:
my publisher suggested that we put together a copy protection scheme. game is for pc/mac. IAP only works for mobile.

Markus
Valued Member
20
Years of Service
User Offline
Joined: 10th Apr 2004
Location: Germany
Posted: 15th Sep 2014 17:32
i think its best u use a third party drm copy protection system.
(i am not a fan of it but it is better than "insert disc" ...)
http://en.wikipedia.org/wiki/Digital_rights_management

AGK 108 (B)19 : Windows 8.1 Pro 64 Bit : AMD Radeon R7 265
Digital Awakening
AGK Developer
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Sweden
Posted: 15th Sep 2014 20:10
I would be very careful about copy protection. With the exception of Steam, DRM is usually frowned upon on PC. DRM-free is very common these days, especially in the indie scene. AppGameKit does not have any Steam Store support. Which is something I have been asking about but the interest has been very low.

IBOL
Retired Moderator
20
Years of Service
User Offline
Joined: 30th Mar 2004
Location: @IBOL17
Posted: 15th Sep 2014 20:22
@Digital Awakening:
Quote: "AGK does not have any Steam Store support"

(please note that I believe you)
wow, that's funny, cuz a while back I asked if an agk game could get on steam, and people said "sure, why not",
but they didn't provide any examples or actual useful feedback.

I definitely second your "steam" support request.
I also suppose I should take down my greenlight page, and send TGC a bill for the $100 I spent to get *on* greenlight in the first place.


I am still looking for technical advice concerning the method I outlined in the first post (or a similar DIY implementation).

Markus
Valued Member
20
Years of Service
User Offline
Joined: 10th Apr 2004
Location: Germany
Posted: 15th Sep 2014 20:48
about steam:
The Steamworks API is written in C++,
i believe u can use with AppGameKit if your game is made in Tier2.

https://partner.steamgames.com/

AGK 108 (B)19 : Windows 8.1 Pro 64 Bit : AMD Radeon R7 265
Hockeykid
DBPro Tool Maker
16
Years of Service
User Offline
Joined: 26th Sep 2007
Location:
Posted: 15th Sep 2014 22:49
Quote: "I also suppose I should take down my greenlight page, and send TGC a bill for the $100 I spent to get *on* greenlight in the first place."


I could be wrong, but I don't believe the Steam integration is a requirement for your game to be on Steam.

Quote: "The Steamworks API is written in C++,
i believe u can use with AppGameKit if your game is made in Tier2."


Even if your game is made in Tier 1, you should be able to hack the Tier 1 interpreter (like I did in my AppGameKit Mod: http://forum.thegamecreators.com/?m=forum_view&t=211806&b=41) to include Steam. I just took a quick glance at the Steam API documentation, it doesn't look too complicated.

Quote: "thanks. my problem with that is that I don't have a website, a server, or *any* experience with writing modern web stuff. "


It should be quite simple, ideally you would use AGK's HTTP commands to call a PHP script which will run MYSQL queries on your database (my leader board tutorial could help a bit with this: http://forum.thegamecreators.com/?m=forum_view&t=170586&b=1.) Alternatively, if you don't want to pay for a database you could use Parse (https://parse.com/ it's free for 30 request per second, if you want more you can pay for more) which I have used before, however it would require some Tier 1 interpreter hacking.


If you need any help with any of this, let me know.


Sean

Digital Awakening
AGK Developer
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Sweden
Posted: 15th Sep 2014 23:34 Edited at: 15th Sep 2014 23:36
Quote: "I also suppose I should take down my greenlight page, and send TGC a bill for the $100 I spent to get *on* greenlight in the first place."


I am not sure but I think you can release your game on Steam without their API. Can't your publisher get you on Steam without Greenlight? There's a ton of trash being released on Steam these days, bypassing Grennlight. IIRC the $100 spent is not per title but a one time fee. Also, it's non of TGC's business as they have no official support announced for Steam. What people say on their forum is a different thing.

These days Steam is very important if you want to develop seriously for PC.

IBOL
Retired Moderator
20
Years of Service
User Offline
Joined: 30th Mar 2004
Location: @IBOL17
Posted: 16th Sep 2014 16:10
@Hockeykid : thanks, I haven't actually clicked the links but it sounds like a good starting place

Quote: "These days Steam is very important if you want to develop seriously for PC."

right.

CJB
Valued Member
20
Years of Service
User Offline
Joined: 10th Feb 2004
Location: Essex, UK
Posted: 16th Sep 2014 17:27
3rd party DRM "Wrappers" can also be risky. I remember attempting to release a DB-Pro application called "Party Player Jukebox" using a service that wrapped your application into a 30 day trial package + payment option. The day after the 30-day locked download(s) went live, a "Crack" could be found via simple Google search. Unbeknownst to me at the time, the scumbags who cracked it obviously had a standard method of hacking this particular DRM service and simply released a new crack for every release that used it. I was most upset and it put me off releasing anything else for a long time.

I think writing your own protection is a great idea and less likely to fall foul of a "Standard hack" like this.

Maybe we could even get together and host an AppGameKit developer community authentication server between us?

Jack
19
Years of Service
User Offline
Joined: 4th Oct 2004
Location: [Germany]
Posted: 18th Sep 2014 05:58 Edited at: 18th Sep 2014 06:02
Quote: "@Jack:
thanks. my problem with that is that I don't have a website, a server, or *any* experience with writing modern web stuff. I tried HTML, but it seems to lack simple math commands.
"


We are using a php server to get http requests. Each request will send an answer. You can use the http commands in AppGameKit to send requests.
The rest is just php. There are a lot of manuals and instructions on the internet how to write and use php.
You need to write a server on an running sub domain to send the stuff to. The server should also wait for requests.
You may also use a free dyndns server and a running machine with an apache server on it, but I recommend you to buy a decent php server in a server room (~$10/month)

There is no way around this. If you want to validate your apps, you need a central validation server. Each app should get an id at the server, and a deadline date. Only the validation server should be able to expand this date. If the app is not connected to the internet, the deadline will come up, and the app is not able to play, unless you connect to the server to get a new deadline data file.


[/url]
Digital Awakening
AGK Developer
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Sweden
Posted: 18th Sep 2014 09:46
For a PHP server then most web hotels are enough. I use one.com, cheap but not bad.

IBOL
Retired Moderator
20
Years of Service
User Offline
Joined: 30th Mar 2004
Location: @IBOL17
Posted: 27th Sep 2014 16:33
@CJB,
I'm sorry, I see that was 2 weeks ago now...
thanks for your positivity.

I'm not ready to invest in anything yet,
but I'm sure i'll keep everyone posted
if and when I ever get around to doing this.

Naphier
13
Years of Service
User Offline
Joined: 2nd Oct 2010
Location: St Petersburg, Florida
Posted: 27th Sep 2014 20:59
I've got some tutorials on setting up PHP for leaderboards which creates a user id for each instance of the app that connects to the server. Most of our games use this method for at least analytics, Wordspionage uses a similar method for logging in. It could be extended to DRM, but I'd caution against it. Paul is eventually going to give us access to the UDID of the device so that would be pretty useful in making a DRM-like key paired with the device. You could even just verify that locally without sever connections. Just take the UDID and hash it with salt then verify it on each app load. If the user copies the app and data over to a new device then it can lock them out. I'd be careful of this though as users might back up app data to transfer to a new device. AND people hate DRM.

If you want to go the route of PHP/server verification then check out my tutorials:
blog.naplandgames.com

It would be really easy to set up.

IBOL
Retired Moderator
20
Years of Service
User Offline
Joined: 30th Mar 2004
Location: @IBOL17
Posted: 6th Nov 2014 17:33
Naphier,
I just sent you an email, asking for help

Login to post a reply

Server time is: 2024-05-20 00:47:16
Your offset time is: 2024-05-20 00:47:16