Jump to content


Photo

Making a time trial demo


  • Please log in to reply
23 replies to this topic

#1 pure_evil020

pure_evil020

    GMC Member

  • New Member
  • 1479 posts

Posted 06 February 2011 - 03:17 AM

Hi, If you have made a time trial demo for your software/game before, I'd like to hear how you went about doing it.

I have made a program with GM (in my signature), and it became a pretty popular download on softpedia.
I'd like to try to make a time trial version of it, and make it so people can use the full features of the program for a certain amount of time, but then they will have to buy the license to continue using it after time runs out.
I don't plan on charging much for a license... like $2 a license, as it is a relatively small program, but powerful at that :)

So how would I go about making up a time trial with my program?
I have a domain, with direct file access and I think also php able, if it is needed.
  • 0

#2 Dangerous_Dave

Dangerous_Dave

    GMC Member

  • Global Moderators
  • 9402 posts
  • Version:Unknown

Posted 06 February 2011 - 07:51 AM

Seriously, you are making a program that interferes with the registry and running processes, and you don't know how to make a time trial?
...



If you are going to charge, charge proper. At least $5, maybe $10.
  • 1

#3 pure_evil020

pure_evil020

    GMC Member

  • New Member
  • 1479 posts

Posted 06 February 2011 - 10:33 AM

Anyone wanna give a REAL answer?
Don't bother replying, if you are just trolling for an argument.

and you don't know how to make a time trial?

I know of one method for a time trial, but sadly, it is so easily tricked that I'm not going to bother.
The reason I posted this thread, is to get new ideas, and to see if anyone else uses different methods that I haven't thought of.


EDIT: I just had a thought... what if, instead of checking the time on the computer, you get gm to check the time via a url? have it check a web page, or constantly updated file of some sort, to check the time, then determine how long the user has used the game/program for...

Any thoughts?

Edited by pure_evil020, 06 February 2011 - 10:39 AM.

  • 0

#4 Xardov

Xardov

    Game Developer

  • GMC Member
  • 292 posts
  • Version:GM8

Posted 06 February 2011 - 12:37 PM

That's a really good idea actually. You should try it then. But what if they're on a dial-up? The software wouldn't be able to access the website...
  • 0

#5 pure_evil020

pure_evil020

    GMC Member

  • New Member
  • 1479 posts

Posted 07 February 2011 - 03:38 AM

Who would be on dial up these days? :s I'm in Australia, which is one of the furthest behind in Internet technology in the world, but I still don't know anyone that uses dial up anymore...
I guess you could make a failsafe in this case...

Make it try to check the time off the Internet, but if it fails, use the system time.
This would leave the program slightly vaunrable to being tricked, IF they know that it works by checking the time online, but unless they have the source code, that would be unlikely...
  • 0

#6 Dangerous_Dave

Dangerous_Dave

    GMC Member

  • Global Moderators
  • 9402 posts
  • Version:Unknown

Posted 07 February 2011 - 05:19 AM

Who would be on dial up these days? :s I'm in Australia, which is one of the furthest behind in Internet technology in the world

Australia is in the top 25% of fastest average internet speeds in the world. How can you possibly say Australia is "one of the furthest behind in Internet technology" when there are countries that don't even have widespread access to electricity?

but I still don't know anyone that uses dial up anymore...

A statement on the kind of people you make friends with rather than a statistically significant survey.

I guess you could make a failsafe in this case...

If you can make a failsafe version, why would you not use this failsafe as the actual version so you don't have to be connected to the internet 24/7?

Make it try to check the time off the Internet, but if it fails, use the system time.

The time for which country? And why not just block the program access to the internet, thereby it will always use the system time, therefore it's no more secure.

This would leave the program slightly vaunrable to being tricked, IF they know that it works by checking the time online, but unless they have the source code, that would be unlikely...

Apparently, it's pretty easy to find this information on the internet. I mean, it's posted above...
  • 0

#7 pure_evil020

pure_evil020

    GMC Member

  • New Member
  • 1479 posts

Posted 07 February 2011 - 07:38 AM

:lol: dangerous dave... always stripping down and critiquing people's posts sentence by sentence, instead of as a whole :P

The time for which country? And why not just block the program access to the internet, thereby it will always use the system time, therefore it's no more secure.

It wouldn't matter if the time it checks is accurate to your actual time... what matters is that it can be compared to the time it first checks it.
for example... you might live in china, but it doesn't matter where you live, because no matter where you are, it would record in one single time zone. Lets say you open the program for the first time, and it checks the date as "1/3/2011" for example, but in your time it is actually 2/3/2011, it wouldn't matter anyway.
Every time you open the program, it would quickly check the date shown online which would remain in the same time zone constantly, and compare it to the origional date checked.
once the date reaches 30 days different from the original date check, it would deny access to the program.
store the original date check as a registry entry, or somewhere it wouldn't be found easily.

p.s. most people wouldn't get as far as figuring out that the program uses internet to check the time, whereas more people are likely to try simply changing the date on their computer.
lots of software programs use internet access to check weather the program is genuine or not, but most people don't think to block the program's access to the internet to prevent this process.

If you can make a failsafe version, why would you not use this failsafe as the actual version so you don't have to be connected to the internet 24/7?

Most people are connected to the internet 24/7, so it wouldn't be a problem in most situations. The failsafe version is easily tricked, by simply changing the system time..., the internet version wouldn't be tricked as easily.
So it would make sense to make the program TRY the more secure method first, then if it fails, revert to the crappy system time check method.


A statement on the kind of people you make friends with rather than a statistically significant survey.

And I'd say your hypocritical words are just as much based on your quick to judge assumtptions.
My statement was in fact based on a Statistically significant survey: http://abs.gov.au/au....nsf/mf/8153.0/
Which clearly shows, that there are far less than 10% of people in Australia still using Dial up services as apposed to any other type of internet service.

Apparently, it's pretty easy to find this information on the internet. I mean, it's posted above...

What are the chances that a random person downloading your game off softpedia for example, just happen to know HOW your game was made, and just happen to know that the author of the program posted his methods of making a time trial for the program on this website?
Chances are slim to none...
The simple fact is, many software distributers use methods of security that use the internet to check for activation codes, or whatever it might be, and in most cases it works... yes, some people might play around, and try to hack it, and eventually figure out that it uses internet access to check the keys, but most people don't bother trying that much. thus ending up with a secure program, and a happy customer still.
More people are likely to think "hmm I wonder if I simply changed the date on my computer..." *click click*


Australia is in the top 25% of fastest average internet speeds in the world.

I'm curious to know what "statistically significant survey" you pulled those facts from... :whistle:

I will admit, I used bad wording here... Its not one of the worst in the world with internet technology, compared to every single country in the world,
but among all of the main countries around the world, it is right down the bottom end, if you look at the "statistics"...
For example: http://www.jamaipane...nternet-speeds/

when there are countries that don't even have widespread access to electricity

:blink: uuuh, well those people won't be "downloading" any programs to their imaginary computer's will they? Soooo HOW is this relevant? :blink:
Clearly I would be talking about people who would have a computer, and internet access of some sort.

Edited by pure_evil020, 07 February 2011 - 07:56 AM.

  • 0

#8 Dangerous_Dave

Dangerous_Dave

    GMC Member

  • Global Moderators
  • 9402 posts
  • Version:Unknown

Posted 07 February 2011 - 08:40 AM

:lol: dangerous dave... always stripping down and critiquing people's posts sentence by sentence, instead of as a whole :P

Actually I wasn't breaking it down by sentence, some were only part sentences ;).

...
It wouldn't matter if the time it checks is accurate to your actual time...

It could be out by as much as (off the top of my head) 24 hours and 45 minutes, so although it's cheated really it wouldn't matter. Of course that's just hoping that 1. The person doesn't think of changing their system time, and 2. that they don't think of it connecting to the internet. You gotta love security through secrecy :D.


And I'd say your hypocritical words are just as much based on your quick to judge assumtptions.

I'm not sure why my assumtptions are hypocritical, care to elaborate?

My statement was in fact based on a Statistically significant survey: http://abs.gov.au/au....nsf/mf/8153.0/
Which clearly shows, that there are far less than 10% of people in Australia still using Dial up services as apposed to any other type of internet service.

1 in 10 Australian internet users have dialup. If 1 in 10 Australians jumped off a bridge, would you say that wasn't many?

In fact, unless your group of friends was more tech savvy than average, for you to not know anyone with dialup statistically you would have to have less than 10 friends. I'll stop there.

What are the chances that a random person downloading your game off softpedia for example, just happen to know HOW your game was made, and just happen to know that the author of the program posted his methods of making a time trial for the program on this website?

What are the chances that a random person downloading from Softpedia wants to pirate your program in a way that would have otherwise lead to a sale if your DRM wasn't included?

Chances are slim to none...


In fact, many people have reported higher sales not included DRM simply because the people who believe DRM is "defective by design" respect and want to encourage those who don't include it, so piracy rates are lower.

The simple fact is, many software distributers use methods of security that use the internet to check for activation codes, or whatever it might be, and in most cases it works... yes, some people might play around, and try to hack it, and eventually figure out that it uses internet access to check the keys, but most people don't bother trying that much. thus ending up with a secure program, and a happy customer still.


Like spore. But I guess anyone would want to have made the program that broke all time piracy records in a matter of days.

More people are likely to think "hmm I wonder if I simply changed the date on my computer..." *click click*
Store it (properly, not in some stupid hidden place, yet encrypted) then check it against the time. Every run, update the "latest run time" part. Then you can check if the time goes backwards.

I'm curious to know what "statistically significant survey" you pulled those facts from... :whistle:
I did have a source, but you actually proved it yourself. Keep reading a little lower.

I will admit, I used bad wording here... Its not one of the worst in the world with internet technology, compared to every single country in the world, 
but among all of the main countries around the world, it is right down the bottom end, if you look at the "statistics"...
For example: http://www.jamaipanese.com/top-30-countries-ranked-by-fastest-internet-speeds/

Did you see it? You linked to the source ;). Australia's internet is among the top 30 countries in the world. Japan's doesn't count. Their country is so small and they have so many people that pretty much everyone lives next door to an exchange.

 :blink: uuuh, well those people won't be "downloading" any programs to their imaginary computer's will they? Soooo HOW is this relevant?  :blink:
Clearly I would be talking about people who would have a computer, and internet access of some sort.
Just pointing out the flaws in your argument ;).
  • 0

#9 Xardov

Xardov

    Game Developer

  • GMC Member
  • 292 posts
  • Version:GM8

Posted 07 February 2011 - 09:03 AM

Oh my god why are we all trying to think of complex ways to do this? This is more simple.

Just make a countdown timer in the program. When he opens it, it starts. Make the trial time like 5 hours or so. :P

Edited by Farcrusader, 07 February 2011 - 09:04 AM.

  • 0

#10 pure_evil020

pure_evil020

    GMC Member

  • New Member
  • 1479 posts

Posted 07 February 2011 - 09:27 AM

haha good point farcrusader...
Your suggestion is exactly what I was after.
Some constructive critisism WITH a solution, instead of pointless breaking down of ideas, to create unhelpful arguments...*cough*...Dave...*cough*
How about making some kind of save/load method?

Once in a program I wrote a while ago in GM, I made it so that every time you exited and re-opened the program, it would load an automatically saved file that it saves as you exit the program.
So when you open the program/or game, it automatically "loads game", then when you exit the program/ or game, it automatically "saves game".
If you used this method, then you could have an In-Game count down timer set to 30 days, or whatever it might be...

Of course, this auto save/load method would create problems for some games, but for the program I designed, it would probably work fine :)
This would be relatively simple and non-complex as you suggested, but also allow for the developer to make the trial longer if need be...
You would want to make the save file less obvious though, so the user doesn't know to back up the original save file, to keep his/her time trial going.
Feel free to critique this idea, and remind me of flaw's, if you have any constructive input Dangerous_dave :P

Edited by pure_evil020, 07 February 2011 - 09:34 AM.

  • 0

#11 IceMetalPunk

IceMetalPunk

    InfiniteIMPerfection

  • GMC Member
  • 9328 posts
  • Version:Unknown

Posted 07 February 2011 - 10:29 PM

I stopped reading after Dangerous_Dave's post, to be honest. But here's my 2-cents.

It's much better to make a limited-functionality demo version than a time trial. But if you really want to make a time-trial, you could do this:

When the program is first installed, store the current time in the registry, preferably in two different places. Each time the program is run, store the current time in the registry, also in two different places. Each time you run the program, check for two things:

1) If the key pairs don't match, someone's tampered with your keys and tried to bypass the system.
2) If the current system time is less than or equal to that of either the initial time key or the last-run time key, someone's changed the system time to try and bypass the system.

If either of those happens, alert the user that, for example, "Some required data has been corrupted, and the program needs to download replacements". Thus, this prompts the user to make sure (s)he's connected to the Internet. Once you're connected, grab the GMT time frmo the Internet and offset it based on the user's timezone (maybe you ask for that on first run?). Then use that as the new "last-run time" key's value.

If the first-run keys don't match, use the older one.

After all this, you can check if the current time minus initial time is greater than the allotted trial time.

Of course, if the user knows/figured out where the keys are stored, they can still easily edit both pairs to make them match, but still have incorrect data (i.e. make the first-run key always update to the current date). There's no foolproof way around this without actually creating two separate programs and using limited-functionality trials instead of time trials.

-IMP ;) :)
  • 0

#12 Dangerous_Dave

Dangerous_Dave

    GMC Member

  • Global Moderators
  • 9402 posts
  • Version:Unknown

Posted 08 February 2011 - 07:02 AM

Some constructive critisism WITH a solution, instead of pointless breaking down of ideas, to create unhelpful arguments...*cough*...Dave...*cough*

I had helpful suggestions, I just have a ratio problem ;).

How about making some kind of save/load method?

Once in a program I wrote a while ago in GM, I made it so that every time you exited and re-opened the program, it would load an automatically saved file that it saves as you exit the program.
So when you open the program/or game, it automatically "loads game", then when you exit the program/ or game, it automatically "saves game".
If you used this method, then you could have an In-Game count down timer set to 30 days, or whatever it might be...

How is this any different to my time saving method, suggested in the depths of my last post?


I stopped reading after Dangerous_Dave's post, to be honest.

You could have stopped post earlier and missed nothing ;).

It's much better to make a limited-functionality demo version than a time trial.

Agreed. To elaborate: you can't hack what aint there.

When the program is first installed, store the current time in the registry, preferably in two different places.

But in two places within the scope of the program, right ;). All our registries are messy enough, we don't need amateur programmers making it worse. I'd suggest two different forms of encryption (or two different encryption keys). That way the keys can be next to each other, in the proper place, but not be easy to change. Preferably, the install program would put them in place. That way you can't just delete the keys and have the program think it's the first time it's been run.
  • 0

#13 Xardov

Xardov

    Game Developer

  • GMC Member
  • 292 posts
  • Version:GM8

Posted 08 February 2011 - 07:51 AM

But i do agree with IceMetalPunk, just make a limited feature version.
  • 0

#14 MasterOfKings

MasterOfKings

    The True Master

  • GMC Member
  • 4888 posts
  • Version:GM8

Posted 08 February 2011 - 09:29 AM

IMP's idea is probably the best (for the time trial, and to just use a limited-feature version). Both ways, a user CAN get the full version without paying. There's no stopping it.

By the way, although off-topic, I wouldn't pay for your program, nor would I even use a trial; as I know what it does. More than likely, those who downloaded, don't know what it does.

-MoK
  • 0

#15 Dangerous_Dave

Dangerous_Dave

    GMC Member

  • Global Moderators
  • 9402 posts
  • Version:Unknown

Posted 08 February 2011 - 09:31 AM

IMP's idea is probably the best (for the time trial, and to just use a limited-feature version). Both ways, a user CAN get the full version without paying. There's no stopping it.


If you have a limited feature version, it's impossible to get the full version without at least one person buying it. With a time trial version, no one has to buy it for it to be cracked.
  • 0

#16 pure_evil020

pure_evil020

    GMC Member

  • New Member
  • 1479 posts

Posted 08 February 2011 - 03:37 PM

How about making some kind of save/load method?

Once in a program I wrote a while ago in GM, I made it so that every time you exited and re-opened the program, it would load an automatically saved file that it saves as you exit the program.
So when you open the program/or game, it automatically "loads game", then when you exit the program/ or game, it automatically "saves game".
If you used this method, then you could have an In-Game count down timer set to 30 days, or whatever it might be...

How is this any different to my time saving method, suggested in the depths of my last post?


It is entirely different to anything you have suggested...
As far as I could tell, you suggested to make it save the system time when you install the game, then have it check against that time every time you open the program/game.
I suggested actually using "save game" and "load game" every time you open/close the program, with an in game timer that farcrusader suggested.
While I am not trying to fault your suggestion, Its clearly not the same as the method I explained.

View PostMasterOfKings, on 08 February 2011 - 10:29 PM, said:
IMP's idea is probably the best (for the time trial, and to just use a limited-feature version). Both ways, a user CAN get the full version without paying. There's no stopping it.



If you have a limited feature version, it's impossible to get the full version without at least one person buying it. With a time trial version, no one has to buy it for it to be cracked.


Good point... If its going to be cracked, or hacked... you may as well get a little out of it, rather than none! :P

By the way, although off-topic, I wouldn't pay for your program, nor would I even use a trial; as I know what it does. More than likely, those who downloaded, don't know what it does.

-MoK


:whistle: Just as well you aren't the type of Audience my software would be targeting...:P I wouldn't expect someone with your level of skill in programming to buy that program, as you wouldn't require it, nor would I be attempting to bother trying to sell it to you.

FYI, I am not planning on selling the program AS IS.
The program you see from my sig, is really just a limited demo of the full featured version I am currently working on,
so the idea of just using a demo, and offering a full featured version for a small price, is starting to become more likely for me I think.
It was what I originally planned, but I wanted to explore the idea of a time trial first :)
BTW, besides its usefulness to you, what else was unattractive about the program to you? I'm just curious to know, so I could improve on it.
  • 0

#17 Dangerous_Dave

Dangerous_Dave

    GMC Member

  • Global Moderators
  • 9402 posts
  • Version:Unknown

Posted 09 February 2011 - 07:48 AM

It is entirely different to anything you have suggested...
As far as I could tell, you suggested to make it save the system time when you install the game, then have it check against that time every time you open the program/game.
I suggested actually using "save game" and "load game" every time you open/close the program, with an in game timer that farcrusader suggested.
While I am not trying to fault your suggestion, Its clearly not the same as the method I explained.

I actually suggested storing two variables. One is the initial install time and date, to compare to when checking how long they've had it, but also have a second, which is the last run time and date. That way you can make sure that the time never goes backwards.
  • 0

#18 flame boyyyy

flame boyyyy

    GMC Member

  • New Member
  • 12 posts

Posted 20 July 2011 - 01:53 PM

Who would be on dial up these days? :s I'm in Australia, which is one of the furthest behind in Internet technology in the world, but I still don't know anyone that uses dial up anymore...
I guess you could make a failsafe in this case...

Make it try to check the time off the Internet, but if it fails, use the system time.
This would leave the program slightly vaunrable to being tricked, IF they know that it works by checking the time online, but unless they have the source code, that would be unlikely...

and if they have a computter without the internet? then they would be able to use it forever...not smart
  • 0

#19 Dangerous_Dave

Dangerous_Dave

    GMC Member

  • Global Moderators
  • 9402 posts
  • Version:Unknown

Posted 21 July 2011 - 12:25 AM

and if they have a computter without the internet? then they would be able to use it forever...not smart

And replying to a topic that dies many months ago is smart?

Anyway, it's using the system time as a fallback. If they wanted to use it forever, they would need to continuously change their system time. It would be so time consuming, you'd be better off just buying it.
  • 0

#20 PiXeLinDiE

PiXeLinDiE

    inDiE Gamer

  • GMC Member
  • 88 posts
  • Version:GM8

Posted 21 July 2011 - 01:45 AM

You could do a type of trial where for a specific amount of time you get all the features and during this time the software creates a new file in your registry that has its own built in clock similar to Sony Vegas. After the time is up the program will cease to operate and you could do something similar to Avast anti-virus. To continue using a 'lite' version of the program you must register your email. Otherwise you can pay for a one-time use license for a small fee. Or for a much more expensive fee have an unlimited use license for small businesses or family's with multiple computers.
  • 0

#21 Terrified Virus

Terrified Virus

    Moderators Plaything

  • GMC Member
  • 753 posts
  • Version:GM:Studio

Posted 18 August 2011 - 07:42 PM

You could use some software, however, it could cost thousands of dollars. I recommend a trial that uses only 1 of 10 levels, for example.
  • 0

#22 Jobo

Jobo

    Freelancer

  • Local Moderator
  • 2708 posts
  • Version:GM:Studio

Posted 18 August 2011 - 08:25 PM

What you need is to use a website to make sure the trial dies. Then when it does, they can't play it anymore no matter what. Not even if they download a new trial executable (store their IP on a database for example).

And to kill all those thinking about the "they have no internet!"-issues, they do. If they didn't have internet, how would they be able to download the game in the first place?
"But their internet is too bad!"
Have the trial version attempt to call the database once every new day it's opened to see if it's expired. Make a screen that checks, and if it verifies that it can be played, move on to the game.
If the person does not have internet at the time it's launched, you should have Game Maker create a back-up log file that displays the date and time first launched, then check that file.

"Why check the text file last?"
Because that can easily be manipulated. So to prevent that, we check the log file only if internet connection failed.

Or, if you're way out there, you can create a C# database and store stuff in that instead. But I wouldn't recommend that. At all.

Edited by Jobo, 18 August 2011 - 08:27 PM.

  • 0

#23 flame boyyyy

flame boyyyy

    GMC Member

  • New Member
  • 12 posts

Posted 28 September 2011 - 01:43 AM


and if they have a computter without the internet? then they would be able to use it forever...not smart

And replying to a topic that dies many months ago is smart?

Anyway, it's using the system time as a fallback. If they wanted to use it forever, they would need to continuously change their system time. It would be so time consuming, you'd be better off just buying it.


stop being a butthole
  • 0

#24 KevinBlazeCoolerz

KevinBlazeCoolerz

    GMC Member

  • GMC Member
  • 136 posts
  • Version:GM8

Posted 20 April 2012 - 04:15 AM

i'm made the time trial using Game Maker, and if you want it, I can help you...
PM me if you want the example of *.gmk + extension (I dont upload it yet)

I made it 100% using Game Maker, and it's not using *.dll
  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users