Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Time-based rewards, how do you handle them?

Discussion in 'Scripting' started by ADNCG, Feb 10, 2016.

  1. ADNCG

    ADNCG

    Joined:
    Jun 9, 2014
    Posts:
    992
    It's nothing new that users might potentially try to exploit rewards based on time by changing their device's current time. As far as I understand this, the more serious firms get the time from servers rather than from the device.

    Currently, I'm iterating through a few NIST time servers for a response. I'm worried that some of these servers might go down, post-release, at some point. How do you guys handle this kind of scenario? Do you have your own servers and query time from them?

    What's the professional way of doing this?
     
  2. lordofduct

    lordofduct

    Joined:
    Oct 3, 2011
    Posts:
    8,513
    Usually big companies have their own servers. Primarily because the server does more than just serve up the time, it may be used for pushing updates, leaderboards, save files, in game purchases, and more.

    If you just need time. An NTP server is your best bet. It's what most time syncing applications will use if there is no need for any advanced time services.

    You say you're polling through a list of NIST time servers for a response... this usually isn't the way you go about requesting the time from an NTP server as individual servers go up and down depending on load, age, and changing of ips. This is why ntp pools exist. For example:

    pool.ntp.org

    That's an open ntp pool that you send requests to and it gets you the best result from an available server. It's been around for a while and probably isn't going anywhere.

    Google also offers a few NTP servers:

    timeX.google.com

    replacing x with 1 thru like 6 I think. Google probably ain't going anywhere anytime soon...

    And of course, you can also fall back on system clock if the server fails. Future proofing your code. I mean hell, if in 50 years SOMEONE is actually playing your game, and whatever time server no longer exists (or has moved, or technology has changed), let it run locally. I mean honestly... come that point if things have really changed, who cares if they cheat.
     
    Last edited: Feb 10, 2016
  3. lordofduct

    lordofduct

    Joined:
    Oct 3, 2011
    Posts:
    8,513
    We're actually working on a game that is time sensitive as well.

    And we decided to go a completely different route than all this. Because again, who cares if they cheat. Note, this doesn't count if there is nominal gain for the time sensitive material. If people are cheating to game a payment feature (for instance wait 1 day to unlock, or pay 99cents for it now, ala candy crush)... not getting into the moral conversation about freemium games, I would understand wanted to block time cheating. But again, in that situation you'd have your OWN server.

    Anyways, to subvert the player from spinning the clock in our game... we instead embraced the idea. We're going to include an option right in the menu to spin the clock... this way they don't even have to go into their system clock to game it. It's right there at their finger-tips.

    BUT, by doing so, we have little badges they can gain. And we have various 'cheater' badges that you can earn. You beat the game by spinning the clock... here's your "I cheated to beat the game" award. Hell, you might want this award, you might not. Let the player choose!

    And sure, we can't track if they go into the system clock, and not catch them cheating. But the cheat is easily available, why would they cheat the cheat? And who cares if they did? Furthermore, I still can have simple checks to test that sort of thing.

    If they rewind the clock, I'll know because the time is before the last time the game saved.

    If they fastward their clock, either they have to avoid playing the game for 2 days when they reset their clock, or it appears as if they rewound the clock when they reset it to real time. And if they end up having to wait the 2 days, well... sort of defeats the point of cheating to avoid awaiting. You end up like my friend Lee Lee whose Nintendo DS says it's the year 2500 because she kept fast-forwarding the clock for Animal Crossing, and she can't reset it without ruining her save.

    We looked at it more like 'The Pirate Bay' and downloading music. Sure, I've downloaded music in the past, we all have, napster y'all! But I haven't in years... and I realized why. I have things like Spotify, Pandora, Google Music. All services that can be paid for... and I do, I pay a few bucks a month for spotify. Why? Why don't I download the music from TPB? Because this is easier! For most people the reason TPB is an option isn't really because it's free (heck, we pay money for all sorts of stupid stuff), it's because it's easier. And for the other portion who do it just because they suck... well, who cares? So what, they cheated. When I was a kid I used a game genie and the debug code in my sega genesis games... WHO CARES!?

    (again, this is ignoring those situations where there might be extreme loss of financial gains like that of a freemium games, while also avoiding the discussion of if freemium is considered a good form of monetizing a game, if you want to have that discussion... I'm willing to discuss other routes of dealing with cheaters)
     
    Last edited: Feb 10, 2016
  4. ADNCG

    ADNCG

    Joined:
    Jun 9, 2014
    Posts:
    992
    I didn't know about pools. That will solve it for me.

    I had never thought of cheating that way, but I must admit this is making a lot of sense. Now that you mentioned it, I can actually relate to downloading stuff at some point on TPB because it was simply easier.

    This clearly should impact how games are designed. I mean, I've read articles about theories of why the machine should work for the user and not the other way around, and about why making stuff simple for the user is important, but it just struck me now. This just might be why Netflix is so popular, how conveniently simple it is.

    From my understanding, you guys are allowing the user to cheat, because you prefer he cheats that way than by changing the clock. You believe the average user to be fundamentally lazy/uninvolved and you believe that, in most scenarios, he would rather earn the badge of shame(personally I think it's an amazingly suited name!) than take the time to change the device's clock and then deal with the consequences. I think you just might be right.

    So in theory, it would be possible to manipulate how the user will behave in your game based on simplicity. Say users can behave in x, y and z ways, and x is easier, you could expect that in 90% cases, the users will behave in x way.

    This has a lot of potential for design. If you're able to isolate what the other options are, and make yours the simplest of all, maybe simplicity can be quite a good niche.

    I don't know why it just struck me now, but thank you!
     
  5. lordofduct

    lordofduct

    Joined:
    Oct 3, 2011
    Posts:
    8,513
    I actually was going to touch on netflix as well, but I was already long winded as is.

    But yeah, simplicity is often king.

    Personally I wish Xbox/Steam/PS/etc would implement not just a 'trophy' system, but also an 'anti-trophy' system. But the anti-trophies shouldn't necessarily be a negative, just rather a modifier of the trophy. Like a 0-point trophy that is just there. And the fun thing would be that completionists and the sort might even seek these trophies, want to figure it out (think Stanley Parable and a lot of its trophies were actually anti-trophies).