Esoteric Update #244 - We're Not Making a Boltzmann Machine


Update time. And as promised, I come carrying something to read, at least:

So, you want to be a video game writer?
Impressions – Book of Hours

Now, what happened for the last week? A lot, actually, but unfortunately, not exactly all of it worked out. Look, this whole update might be a bit dry. But if you are interested more in the technical aspects of game dev or just programming, you might get something out of what I have to say, even if just to see what sometimes happens when you are trying to figure something out.

So, let's start this up with Hopfield Networks. Now, I fully realise that such networks don't find much use in practice, but I thought that we actually had a use case for them. Initial testing was promising; the networks were doing what we needed them to do (that is to say, cluster bitmasks to certain archetypes), and I was about to implement them into the game when... well, I ran more tests, and those tests came out different. They actually weren't good at all. Not only was some of the data poorly clustered, but sometimes the network would just straight up produce nonsensical responses. Obviously, the first assumption I could have here is that I did something wrong.

Well, I didn't. It turns out that the reason Hopfield Networks aren't used that much might have something to do with their inability to properly handle data that isn't strongly orthogonal. Unfortunately, there are also better ways to differentiate strongly orthogonal data, meaning they actually are pretty useless. And I wasted a lot of time trying to implement them because, in theory, they would solve a problem I've been pondering for a long time.

Then I went on a goose chase, looking for an improved alternative to Hopfield Networks, and somewhere along the way, while I was pondering the math behind so-called Boltzmann Machines and Deep Belief Networks, it struck me that I was way overthinking the issue. Also, I'm unwilling to hand over decisions to black-box machine learning either.

So that was a bust.

Moving on, I've also done some work with SVG, as I was looking back at the magic circle generator. I'm not going to bother you with the details of what I changed with the code for it and the radar chart, but I will say that it was fun figuring out how to make nice spirals using SVG:



(The second option is clearly superior.)

I've also looked into the option to animate filters, which returned three possible ways of implementing such an animation. Sadly, my renderer does not support SVG's native animate statements, CSS animations can change filters but not interpolate over their values, and the JS approach I'll try out some other day.

Finally, I did some work on the park and the things that we want to put in the park. There turned out to be some logical issues with vending machines, so I took care of that. Then I wrote some variant code that can handle machines where you pay with either coins, a card or both.

Well, somewhere in the process of that, I also looked into finishing some texts for version 2 of the consume action... which also gave us this:


Finally, I also added a few dozen new entries to the glossary system and made sure they were used around the game... and also implemented neck corsets. Because why not? Gotta make sure your neck doesn't just accidentally get crooked, right?




And that isn't even all of it, but I'm just not gonna split hairs on minor issues.

I'll likely be just writing next week, trying to put everything we've prepared about the park location into modular writing and all that.

Get Esoteric ♥ Esoterica

Comments

Log in with itch.io to leave a comment.

What was the boltzmann machine thing originally gonna be doing?

(+1)

Pattern classification to reduce the possible space of player character behaviour to something that we can manage and write responses to. Really it's more or less the same concept as a Hopfield network, but more advanced and likely much more accurate.