Friday, September 21, 2018

TimeCock


Hello everyone, it's been a little while, hasn't it?

I've been hard at work on AW, trying to get 15.0 set up as an awesome release. But, I've also been following my eight hours of AW per day restriction... At least for the most part. I have a tendency to "run over" without realizing it, but it's usually under half an hour. In any case, I feel so much better. I think I'm still slowly recovering, but it's amazing how much difference it's made so far. I actually started feeling like I really wanted to write, for one thing. I've got about 3,500 words of new content added to the female start, as well as some of the other items set up like the career placement survey for the Institute job fair.

Aside from the writing, I've gotten a lot of other stuff done as well. I'm not exactly sure what I've covered already, but there was plenty of menu consolidation/improvement, fixing the cheat and NPC menus, adding he auto-backward compatibility system for saves, as well as a little more work on the Omni System, including converting event object functions into JSON and back again (it turned out to be more of a pain than it sounds). There's also a few other things like improving the texting interface, adding a new macro to simplify twee if/then logic for kinks and traits, creating a bug report form and bug display for the website to help simplify that process. (While getting bug reports is great, a majority of the bug reports I've been getting haven't included a lot of really basic info necessary to actually fix the bugs, so the form should help.) I also spent a little time getting things set up for Besty to start in October, and now it seems like we're pretty much ready to go. 


Oh, and this thing:

Which is basically my answer to: how can you have train molesters without a train? The whole train molestation thing has been a recurring question, quite a few people have asked about one variation or another. Obviously Appletree doesn't have a train or subway setup that would allow that kind of kink, it's just not big enough. However, autonomous buses crammed full of institute employees commuting to work does provide that kind of situation. 

TimeCock:

(Based on a little investigation, I've determined that the original artist for these gifs is someone called "Derpixon".)
TimeCock isn't really anything related to the game, at least not yet (I may have inspired some institute events). It's a series events related to saving functions as JSON strings that go along with Omni events, I was doing some tests with the demo event. Well it turns out that SugarCube has a plugin that adds a function.toJSON() method, but of course that method doesn't work for actually saving and restoring functions. But the modified prototype was breaking the method I set up to do the same thing. 

Anyways, as I was solving this particular problem, the good Jimbo stepped in to curse things. It's a special gift he has. I share something on discord that I created/added/coded/whatevered that's usually something good, Jimbo says "Uh oh", and something proceeds to break. Sometimes in a rather spectacular fashion, especially if he said "that doesn't sound good" instead of the usual "Uh oh". So I think I solve the issue with the function saving issue (which is apparently the bane of many twine authors, I'll have to share the solution somewhere). After I say in General what I think went wrong, and what I did to fix it... Jimbo comes in.

So I go to test the solution. It fails spectacularly, so basically it's "Jimbo cocked it up again", more poignantly because part of the problem seems to be related to a tiny little recursive function that is called simply "cock()", for no real reason, just because. So I go to examine what went wrong, and every test of the loaded save shows that it's working exactly as expected. 

So then I start digging into the logs. There's some really weird reverse causality stuff that happened that makes about zero sense. So then we have TimeCock. It was like the grandfather paradox, except in JavaScript. Instead of killing your grandfather, you throw an exception. So there was plenty of joking around about this craziness while trying to sort it out. Basically it went something like:
Load a save => non-existent (hasn't been loaded) TimeCock causes an exception => fun error messages showing that the save didn't load properly => TimeCock unexceptions?  => no exception => unexecuted loading code is apparently executed, meaning TimeCock now actually exists => TimeCock now actually executed in proper place at end of sequence => loads fine. => TimeCock Goes back in time => Causes exception during load...

Anyways, everything seemed to work fine after that and the error never repeated. loading the same save, etc. caused no issues. Fun times :P

So that's it for now... hopefully I'll finish writing up to at least to the penimorph segment tomorrow :D

o/




2 comments:

  1. I think you lost me at Anyways. Might have been a bit before that, but that's when I realized it.
    Otherwise, nice post, glad to hear you're feeling better.

    ReplyDelete
  2. Long ago England people were first to arrived to American in 1000s in history

    ReplyDelete

The Expecting Release - v1.27

  Here we are again. Odd how we keep running into each other like this... it must be fate... how about getting a drink? No, I'm joking! ...