Forums  /  Anodyne  /  RE: System clock
  cleverpidgeoncleverpidgeon

i have reason to believe that the RNG for the Servants boss fight is partially controlled by your system's date and time. i had to find a consistent setup in April when i grinded 100%, and when i came back to derust in July for a marathon, i discovered that what i used to do wasn't as consistent anymore, so i found another new setup. i then didn't play the game for a few days over the transition from July to August, and when i came back, i found that my setup had stopped working again.
i realised what had happened and eventually had the idea of changing my system date. doing this immediately made my July setup consistent again. my setup seems to work best with my date and time set to the 15th July at 17:00 (timezone probably doesn't matter, but in case it does, it's BST).

before i seriously started grinding runs again, i wanted to talk about this, because this sort of stuff hasn't (to my knowledge) come up with this game before. how do we feel about the legality of messing with the system clock? personally i feel it should be 100% allowed, since there's no modification of game files going on and having to find a new setup every month would be horrendous and unnecessary.

on another, slightly related note, i came across a program that allows you to run a specific program at a certain date and time without modifying your system's entire clock. it's called RunAsDate (http://www.nirsoft.net/utils/run_as_date.html,), and doesn't seem to modify game files either. how do we feel about programs like this? this specific one is free, easy to use, and doesn't seem to work any differently for Anodyne than modifying your system clock globally. again, i think this should be 100% allowed for the three prior reasons, but i wanted to raise the issue before i PBd with it and discovered no-one wanted runs of that nature to be valid.

thanks!

(side note: i can set up a Discord server for this game's community if anyone think's it'd be beneficial. i know the community is quite small and intermittently active, but it might help with communication, and might also help to attract new runners, especially through things like the 12 Hour Challenge.)

(edit: an unrelated thought: Anodyne is also available for Mac, Linux, iOS and Android, and i feel it would be cool to add those to the list of platforms on the leaderboard. not a huge deal, really, though, although it might help with discovery if someone's searching SRC by platform.)

 
  seanprseanpr

It's possible to decompile this game and look at the code using any number of swf decompilers, so you could confirm your suspicions that way

cleverpidgeoncleverpidgeon likes this. 
  cleverpidgeoncleverpidgeon

i'll give it a go, but i have no gamedev or coding knowledge. worth a shot, though

edit: had a look through the code for the Servants, and i wasn't able to find anything about the system clock. given how little i know, though, that doesn't mean much. the system clock has been the only working theory to explain the inconsistencies in Servants RNG manipulation that i've come across so far.

 
  frenzied_coderfrenzied_coder

For the record, Anodyne is no longer supported on Linux. The short version of that story is that Anodyne requires software from Adobe to run on Linux, and Adobe stopped supporting that, so now Anodyne doesn't work on Linux.

Without looking at the code, it's unlikely but possible that the date affects the servants AI without the developers intending it to. It's common for RNGs to be seeded by the system time, so it's not out of the question. The problem is that usually the RNG uses the milliseconds, not just the month, so the behavior you're observing would not be possible.

However it is possible that the developers did what you're saying on purpose. In that case it should be discoverable by browsing the decompilation. I have experience doing that kind of analysis, so I'll try to make time to look into it. No guarantees on when I'll be able to get around to it though.

cleverpidgeoncleverpidgeon likes this. 
  cleverpidgeoncleverpidgeon

ok, i didn't know that about Linux. thanks.

thank you! there's no rush, it's ok. i'll keep testing setups and seeing what works from an in-game perspective. it does seem to me so far that day of the month and time of day also have an effect on the Servants' RNG, that might be important to find whatever you're looking for.

thanks again!

edit: bit of a weird question, but presumably if there's no concrete link found between the system clock and the Servants' RNG, then changing the system clock (either globally or on a per-application basis) would be allowed even as a placebo, as there's nothing conclusive to suggest banning it. at least that's how i feel. does that make sense? i guess i want to hold onto what works for me, even if it's discovered that there's no reason why it should work in the first place.

 
  frenzied_coderfrenzied_coder

System clock manipulation for speedrunning is pretty common as far as i'm aware. Two examples i looked up disagree on whether it's explicitly allowed in the rules or implicitly allowed, but it always seems to be allowed.

explicit: http://www.speedrun.com/FEZ#209.4
implicit: http://www.speedrun.com/pdta#All_Endings1

I haven't heard of anyone changing the system clock for just the game instead of the entire system, but technically that seems along the same lines as using an emulator, which is generally allowed here, and competitively it's equivalent to changing your entire system clock. So I say you should definitely be allowed to run the game with an artificially set system time.

I assume that the program you're describing will still track the passage of relative time accurately, as that would make a huge difference if that were not the case. For precedent in altering the speed at which time flows in your game, it is implicitly banned in this game (the fps must be set to 50): http://www.speedrun.com/iwbtboshy

cleverpidgeoncleverpidgeon likes this. 
  cleverpidgeoncleverpidgeon

excellent! thank you! the program does indeed track relative time as normal (for the record, it does have a setting to "freeze" time, although i haven't messed with it).