My Diary #249

Dear Tigey,

It's amazing to spend a whole week on writing, and feel very accomplished about it, and yet only actually complete six passages of a planned 5,000+ passage story, isn't it?

Entry #249 (Aug 23 2026)

Table of Contents

Parasocial...
ට  Life
ට  Games
ට  Plushie of the Week #242
ට  Dreams

Life

The vast majority of my time this week went towards my game, the Twine/SugarCube2 one that I had a sudden renewed interest in developing and writing last week. Even though I've long named it internally as Lament (full name: Lament of a Magical Girl), I don't know if it's the name that I'm going to keep at the end, because the story still needs room to breathe and write itself and sometimes the name confines the story. I'll at least call it that for now while writing about it though.

At its core, it's a magical girl/slice of life/coming of age story with time loop aspects, but I'm loathe to go too deeply into even fleshing out the description here because of two things -- one, that it hides some darkness under it as well that would be spoilery to talk about, and two, that I have ambitious plans for it, but I again want the story to flow and write itself to some extent, and putting it down on paper this early almost makes it an obligation that I then have to achieve and cannot let the story deviate away from. A final "happy ending" is planned though at least, so there's that at least.

But as mentioned in the opening blurb for this blog post, I only really wrote six or seven passages (containing 2-5 paragraphs each) this week, despite all my fiery enthusiasm for it. It felt good to put pen to pap- er, fingers to keyboard and get something down, but the reason that so little story was actually written down was that a lot of the week was spent on world-building instead, to put together a coherent background so that my storytelling will hopefully be somewhat consistent going forward.

So this meant that I spent the week working on fleshing out things like the geography of the island country that the game takes place on, its position in the world, its weather and climate, its socioeconomic history and why part of the country is now declining, the train line leading through the country and the names of all the major stops on it, names of some schools, roads, and other such infrastructure, and more. I also continued to flesh out the names of the characters (which I had done a chunk of last week, but wanted to improve on), and started to brainstorm about their personalities.

Part of my worry is that if and when I put this project aside to work on other things, I'll forget about a lot of this by the next time I return to the project, and so I also have been trying to write down and combine my notes for my future self's sake. To put this into perspective, I have something like ten OneNote pages of random notes, thoughts, and ideas, that have been haphazardly thrown together between the last time I wanted to really work on the game, three and a half years ago, and now. And a whole random forum of threads in my own personal Discord note-taking server too.

While consolidating some of these down into three or four pages, this made me wonder if I should take a side detour and look into a OneNote replacement as well. I know Jah has suggested one or two in the past, and Kezheng also suggested one when I went to talk to him in Singapore. I don't really like OneNote, it's clunky to use, and it has a proprietary clipboard thing that makes notes difficult to copy/paste out into Discord, Gemini, Google Sheets, this blog, and other places. I don't need many features, but I do need a nested category tabs system, syncing between phone and PC, yet with offline access, the ability to nicely copy data tables in and out of the app, and the lack of a monthly fee. And privacy/encryption over the Internet would be nice too, though not strictly necessary.

I also acutely remember Trin being very mad when she was developing her game back in the past because OneNote glitched out for her and erased all her notes. I do keep exported backups of my data occasionally, but I don't remember to do it often enough, and OneNote has so many different versions, some of them locked behind predatory Microsoft paywalls, while others are "free", that I'm worried that one day most of my data will get sucked behind the paywall due to syncing or just outright glitch and disappear too.

In terms of the relationship between generative AI and my game, I've basically used none of it except to generate CSS and script code to get things working the way I want them. And that's probably how I'm going to use it going forward. I have little to no interest in sitting down for hours and figuring out where to even begin to start making UI things like this with HTML/CSS alone, when I can literally just draw it out or describe it and have Gemini make the framework for me, and then adjust things from there to link it up to data sets and look right.

That being said I've still learnt quite a few things about CSS and scripting along the way, including one absolutely inane SugarCube2... I'll call it a bug, but it drives me nuts. I would get a random error message saying that my script lacked a } at the end, even when it was a short passage and clearly bracketed properly.

The issue stemmed from the fact that when scripts are run, whether inline or on a new line, it sometimes leaves a newline (<br>) gap in the text itself, and one of the ways to get around that is to label the separate passage where the script is defined as [nobr]. Oh, and when I make comments in code, SugarCube2 only allows me to use /* <comments> */ or <!-- comments --> as a comment syntax. But when I include Javascript (<<script>>) segments in the code, that allows me to do // <comments> comments inside of it too, which comments out everything else on that line until the End Of Line character.

Well, we can guess what happened here -- that, combined with the passage being marked as [nobr], somehow meant all the code got truncated into one single line *before* execution, and an early // comment which seemed to render properly in VS Code essentially commented out the rest of the code block and forced it to break. I was apoplectic when Gemini figured out that one after I fed it the snippet in confusion.

Another SugarCube2 bug I ran into is that I passed a text string, an email address like "myname_student@email.xyz", saved to a key called email. But because _student happened to also be the name of the parent container and I iterated through _student with a for loop, it parsed that text string and returned "myname[object Object]@email.com.sg" EVEN THOUGH it was inside quote symbols. And neither Gemini nor I found a good way of bypassing that besides writing a separate wrapper of some kind for the email address lines or using an &#95 symbol instead. It's nonsense like this that makes people want to vibe code instead of tearing one's hair out.

I also had big problems with every script call inserting blank lines into story passages, which made things look ugly, unless I put a slash character after every call to nullify the automatic newline tag manually, or wrap the script in a <<silently>><</silently>> tag. But then that silently group itself still needed a slash character afterwards to nullify it. I remember this issue the last time I tried using Twine and Sugarcube2 too and it's awful.

However, Gemini actually managed to solve this one quite elegantly, at least as far as I can tell (it's only been a few passages so far). It gave me this code to dump in my local Javascript and that seems to have solved the issue.

/* This removes those stupid newline outputs from widgets before the first actual printed line in story passages */
$(document).on(':passagerender', function (ev) {
    while (ev.content.firstChild) {
        var first = ev.content.firstChild;
        if (first.nodeName === 'BR') {
            ev.content.removeChild(first);
        } else if (first.nodeType === 3 && !first.nodeValue.trim()) {
            ev.content.removeChild(first);
        } else {
            break;
        }
    }
});

One of the other things that Gemini's been very useful for is also the same as last week -- I used it to bounce off names and details of my world while world-building, and it tells me if it's realistic or not. We figured out typical monsoon patterns for my fictional Singapore-lite island country, for example, and the school/holiday schedule for my chosen year. And it told me when my proposed train station or school or company name matched some well-known anime or real life counterpart, so that I could change it instead. I had no idea, for example, that rocketmail.com.sg (a planned parody of the rocketmail.com domain that was popular in the late 90s) was actually registered by Yahoo (local), even though it was unused. And I ran lots of first names and surnames by Gemini to check its Japanese and Chinese readings. I also know way too much about Singapore urban planning now, and what floor and door numbers mean, when block numbers must coordinate with street numbers, and so on.

The other thing I tried using Gemini for was to do basic proofreading, but I don't like it for this purpose. It's good for catching singular instances of dumb stuff, but Gemini (at least the browser/app -- I hear the Google App Studio version is better) is lobotomized and awful with remembering context these days, constantly invents nonsense and offers ways to rewrite sections even though I specifically ask it not to, and when I was deep-diving into the meanings and readings of names for some primary schools in my fictitious world, any sort of positive-leaning answer would cause it to declare that we were "Locking in XYZ Secondary School." What the hell. I never asked you to do anything like that, just give me the information and shut up. And we aren't even talking about secondary schools, but you completely lost the context again for the sixth time.

And then it'll make up all sorts of stupid history about the school or neighbourhood or people unprompted as part of its answer too, and run with that on subsequent replies (i.e. immediately polluting its OWN token context for future replies, since it reads back recent chat to get context when any request is sent) if I don't specifically say no to each one in my reply to it. It really reminded me of the adage that it's very low effort for a person to lie, and very expensive for someone else to disprove a lie. It's very tiring having to play constant whack-a-mole.

And as a test I fed the Gemini 3.7 Flash Extended version a paragraph with a bit of a run-on sentence, and it said I should split it up. So I split it up, and fed it back in, and it said the two sentences were disjointed and I should connect them, suggesting the original way that I had it. Thanks for the circular "corrections", bot. It doesn't get my intended writing style too, so I don't like using it for this. It's great at troubleshooting one-offs or answering general knowledge questions, but I don't know how people allegedly use it for serious, sustained projects over any period of time outside of minor coding.

I don't think this is even considered a use of a generative LLM -- grammar and style checkers have been a thing for decades, and the only difference is that the feedback replies are complete sentences now, but it can't get into the head of my character the way that I can. It is useful for parsing out silly mistakes and typoes and style guide stuff though, and that I appreciate.

I'm very into the world-building and plotting right now though. I already do feel a sort of kinship connection with my characters, and I want to let my main character tell their stories. That parasocial hook has so far kept me going. I hope I can pull this project off eventually. It won't be everybody's cup of tea -- it won't even be interesting to most of the people in my main Discord, but it's also a story I want to write as a tribute to some of my own reflections and experiences and slang and artifacts growing up, while throwing in a bunch of other things that I'm interested in.

The characters were a little difficult to get going at first because I'm purposely trying to make sure none of them are "inspired by" or "references to" people I know in real life, even if the general vibe is, but once I settled down and started writing out some of their personalities, things started to roll along a bit.


Alright, enough about the game. That got long-winded really quickly. There was a lot of noisy construction going on around the complex this week that sounded like it was coming from literally right outside the balcony, and I took some pictures of it when I went to the grocery store on Tuesday. Apparently a bunch of sidewalks around the complex were being torn up, and they started work at 8:00 am in the morning.

And I found a small, live spider in my napa cabbage, which I bought on that Safeway trip, the next morning. It scuttled down my sink drain and was never seen again. That's all I'll say about that incident.

I didn't go out much this week, since I spent nearly all my non-work free time on the latest shiny project that I had. Next week though, there'll be at least one full-day, in-person team meeting which will probably be somewhat more exhausting than a normal in-person office day, even though it will probably be a good meeting, and a couple more outdoor ventures and possibly meetings that I need to make.

The first electricity bill after my balcony camera was set up came in this week, and it was about $15 CAD more than last month, and $10 more than August 2025. But last month was also $12 less than July 2025, so there's quite some fluctuation anyway. And I know that I'm on some sort of last resort pricing plan that I should swap to a contract with an electric company for to get lower prices, but I haven't had the energy or willpower to do that in eons since I was all caught up in trying to buy a new home. (Maybe that's something I should throw at Gemini.) So I am paying a bit more than I should be.

Talking about which, a cheap house popped up this week for sale in the neighbourhood that I was watching out for, but the family didn't like it due to how much work it would take to clean it up, and what looked like some potential leak and burn residue, along with its listed asking price ($329k), so I left it alone. I worry that being too stringent means that I will never get a house that satisfies everyone though, and it's location above all else for me -- but on the other hand I agreed by the end of the day that this was the wrong one, and I am in no hurry to move either since my current upstairs neighbour is quiet and I just got my balcony camera. Maybe in a couple of months if the place doesn't sell and the price drops.

Anyway, a more accurate reading of my electricity usage is that I used 243 kWh between Jun 11 and Jul 10 2026, and 281 kWh during Jul 11 and Aug 11 2026. July 26 was when I first plugged in the camera, and it's been plugged in and running every second of the day since, but obviously other things also throw this number off (like turning on the fan, or the computer that I need to fix up and give to Dad). So I need to see what this number is in four weeks to see if it's significantly higher. Last year, I used 265 kWh from Jun 13 to Jul 14 2025, and 245 kWh from Jul 15 to Aug 13 2025. I should put this in a table. Maybe next month when I have more data. I probably should do that contract thing to cut down on the 12.01 cents per kWh, and some of the silly EPCOR "fees" on top of that, that I'm paying though.

As a segue from electricity and an update from last week, I'm pretty sure I solved my screen flickering issue, and it was (probably) not the myriad of issues that Gemini suspected and had me try to fix. In the end, it was something that Gemini refused to believe was the answer, until I noticed, and provided an observation, that the flickering always started 1 hour before sunset, and lasted until sunset, whether I had played a game that evening or not. I'm pretty sure the culprit was a combination of the newest NVIDIA driver (610.88), and a program called f.lux (local)!

I've had this app since forever... probably approaching two decades by now, and I like what it does, it dims the screen around sunset so that the screen during the night period isn't so blaringly bright. The flickering was a new issue to me, but it couldn't be a coincidence that it would start at an hour before sunset and stop some time after that for the rest of the night, could it? And I knew of no other app that I ran that was so time-sensitive. In the end, I went to its Options page and turned on "Always use Windows internal color table", and set "How quickly should transitions happen?" to "Very Fast (Gaming"). I still do get a flicker, so I don't know that the first option did anything per se, but over the past few nights I've only gotten that flicker once per night now -- 1 minute before sunset. Crazy.

My application for a special ballot voting package from Elections Alberta for the upcoming referendum nonsense was approved (local). It took a week, and we're almost exactly a month out from the election (Oct 19 2026) now. I didn't expect the application to NOT be approved, they've been pretty much advertising (an Elections Alberta ad on Spotify's free tier being the main one that's been hammered into me) that anyone can get one for any reason, and to just apply. But it's still nice to have the confirmation.

Lastly, here are a couple of balcony camera pictures from the week. Most notably, the pair of pictures from Thu, Aug 20 at 7:38 pm and 7:46 pm show a hot air balloon flying by. I've never seen that before! I mean, obviously I've seen hot air balloons before, just not specifically over here from my balcony view of the horizon/sunset. Cool. it eventually fluttered down and landed on the left-central part of my horizon with what I imagine was a deflated hiss.

Games

I was so engrossed in my writing and world-building this week that I barely played any games at all. Sometimes one just isn't in the mood. What I did play was Hades II (local), where I finally won enough times to finish the first ending of the game and rolled credits. It was a cool ending to the story. But even this was on last Sunday night, just after I posted My Diary #248. After that, all my energy went into writing instead. There's a lot of post-game story and epilogue stuff to do and some achievements to grind out in Hades II still though, and some other interesting games potentially waiting on the docket, but everything is on pause right now. Everything!

Satinel and I also didn't play any co-op games this week and I appreciate her for giving me space to do my things. I think she's also working on a project of her own, though I am not sure if it is formally tied to a game jam or a separate but coincidental project.

Plushie of the Week #242

While I was at Safeway this week, a rack of plushies between the Egg section and the Bakery/Peanut Butter section caught my eyes, which is rare since Safeway almost never sells plushies, and when they do they're usually pretty terrible ones.

These ones were cute though, and although I had been heading there to buy peanut butter initially, I ended up spending that money on something a bit more lasting and less fattening instead. Meet Mimi, basically short for Manga Meat (local)! She's an oversized but very cute mystery meat drumstick of some kind. Mimi the Mystery Manga Meat? Her birthday (acquisition day) is Aug 18 2026, and she cost $12.99, $13.64 after tax.

She's apparently made by a Canadian toy company named Kunjo (local). They seem to have quite a few cute toys on their platform, and thankfully the tags below also contain the direct link to the website instead of just an accursed QR code. Mimi has her own page (local) on the website too, and it describes her as:

Look Tigey, another suitor for you. Wait, what do you mean that poem is for someone else?

Front:

Back:

Tag 1 outer:

Tag 1 inner:

Tag 2 front:

Tag 2 back/Tag 3 front:

Tag 3 back:

Dreams
Aug 21 2026
  • Snippet: I took a plane ride back to my home city and was half-expecting some of my family or friends to wait for me at the airport, but no one was, so I was slightly disappointed about this. But I acknowledged that this also gave me freedom, so I texted my parents that I had arrived safely and then took my time to wander around.
  • Snippet: I got to put on a police officer outfit to help some lady who I admired and who was trying to start up a volunteer police troupe. I had a vision of myself arresting someone in the future and that the role would be tough and potentially dangerous.
  • Snippet: I left a bar of soap in the groove of a taxi door, above where the latch to open the door was, as a welcome gift to a Japanese taxi driver who was coming here for vacation. Later on, once he had arrived and was in his taxi, I joined him in the taxi as a customer and greeted him. He recognized me and asked if I had left the soap for him and I said yes. We then chatted and I tried to use Japanese at first but he said in perfect English that we could just use English, so we did that instead.
  • Snippet: I was playing through a boomer shooter with Satinel and there was a dull red portal on a wall in the sewers. We were curious if we could touch it but I remembered from a previous encounter that that was a demon portal, so we destroyed it instead. Behind that was a narrow, rectangular alcove that was empty.
  • Snippet: I had Satinel and Jahandar follow me to my workplace, past a bunch of workmates and friends including Jackson, and up to levels to a loft area where I had stashed some stuff. I wanted them to help me move some pink furniture home, particularly a table that I had up there. On the way up, they both stopped for a moment by my desk in the middle of where my workmates were, and I was a bit embarrassed and asked them to hurry up. It turned out they were both just scribbling friendly messages on the desk and leaving them there for me though.
Aug 22 2026
  • Snippet: I remember going to the bank and withdrawing two instances of a string of html that I could use as a header tag to place on objects, but that for some reason, even though that was supposed to imply that I could only use it twice, I could slap multiple copies of it on things around the world.