I went through with my plan from last week! I've made good progress on a small game project, which I might be able to release in a week or two. My mental health is still a little unreliable, but I've gotten at least some work done on all 7 of the last 7 days, so I think I can reasonably expect to keep being productive.

Also, I've gotten Chapter 4 of Ravelling Wrath up to 8700 words, and it's still growing! It's going to be a little longer than I expected, haha.

Unfortunately, this game isn't much closer to being an actual, playable game. It's gotten me some meaningful experience making web games in Rust, and it's going to be a useful test case for TimeSteward, but I don't want to keep just posting a projects update on most weeks. I want to have awesome finished works to show you.

We'll have to see what my mental health is up to, but I do have a small game project I was working on a year ago. That project is already about 70% complete, I just never finished it. Maybe I can finally finish it soon...

I've also gotten a lot done on Ravelling Wrath. Chapter 4 is now 6500 words, almost double the last time I reported! I expect it to finish at around 8000-8500, like the last 2 chapters. So it's getting there!

(This is a post about game design. It's generally targeted at game designers, although players may also be interested. It assumes some knowledge of common computer game genres.)

In Hearthstone, there's a card called Auchenai Soulpriest. It turns all your healing spells into damage spells. It also has a 3/5 body, and it costs 4 mana. (If you don't know Hearthstone, that's okay – for this post, all you need to know is that it's a game where you choose what cards to put in your deck, bigger numbers are better, and spending more mana is worse.)

Auchenai Soulpriest is a well-balanced card.

But there's another card, Embrace the Shadow, that does exactly the same thing, except that it costs 2 mana, only lasts one turn, and doesn't have a body at all. So when you play Auchenai Soulpriest, it's like you're playing Embrace the Shadow and also paying 2 extra mana for a 3/5 body (and a chance for the effect to last longer). Adding a 3/5 for 2 mana is normally an outrageously good deal. You'd normally have to pay 4 mana for that. So it seems like Auchenai Soulpriest was balanced as if Embrace the Shadow was a zero mana card. Why?

A few days ago, I got nostalgic about a couple of old strategy games that I played many years ago. This got me excited about game design again! So I went ahead and made this simple prototype of a real-time strategy game. There's no actual controls yet (you just watch the game spawn little dots that shoot at each other), but hey.

I'm doing loads better on the mental health side, too! I've been consistently close to a fairly normal level of motivation to do the stuff I want to do. I'm especially hoping to break my long stall on Ravelling Wrath – I actually expect to get back to work on it within the next few days.

For the computer programmers among you, the game linked above is written using TimeSteward, my game/simulation library. It also has a git repository here, and it uses the Rust stdweb library – it's written mainly in Rust and then compiled to the web, with small bits of JavaScript embedded in the Rust code. This makes it much more convenient for me to write games for the web, since it lets me write the main game in Rust (my favorite programming language) without having to make a clunky compatibility layer. Finding a way to do this has been one of my long-term goals. It should help me finally make a bigger collection of games to put on my games page.

In the last few days, I've been feeling a lot better. Surprisingly normal, in a good sense. I've been getting a lot done on TimeSteward, and I'm starting to feel some of my normal confidence that I could work on other projects if I wanted to, too. I'm still not 100% up to my normal, but I'm definitely getting closer.

My energy levels have been up and down a lot in the last week. On average, they've been significantly more “up” than they have been in a while, and I've continued getting stuff done on TimeSteward. On the other hand, I don't really have control over which days I'll be productive and which days I won't. I've also tried to channel the energy into other projects, but it's just not working yet. I'm hoping that these things will improve over the next few weeks.

This Sunday, my brain decided to get interested in TimeSteward again. That's a huge project, so I didn't think I'd be up to it, but then it turned out I was! I've been working on it since then. I still have to be careful not to overdo it, but I've also been succeeding at being careful, so overall this is looking like a great success.

I've also been intermittently working on Chapter 4 of Ravelling Wrath (up to 3400 words) and my comics (up to 6 completed line drawings).

On the same day I said I was feeling better, I started feeling a bunch worse again. I think there might be a feedback loop where when I start feeling better, I get excited and do a bunch of work, but then I'm not actually up to it and I get burned out again. I don't think this loop is actually bad (like I'm not hurting myself, I just have limited total energy, and I happen to spend it in that pattern). But it does make things sort of unpredictable.

The next day, I started taking tianeptine, an atypical antidepressant. It's definitely been making me feel better, although it's hard to tell yet whether it's treating the underlying problem. I might write sometime about the subtleties of its effects, but I don't have the energy to do that right now, since I already did a bunch of work today.

Specifically, today, I did manage to write another thousand words or so in chapter 4 of Ravelling Wrath – the first time I've managed to work on it since November 1. It's up to about 2800 words now!

I've been doing significantly better this week. I'm nowhere near full energy yet, but I've been able to start getting things done to a certain extent.

In particular, I'm working on music composition software again! It's even technically usable already – I can arrange musical notes on the screen and have it play the music or save it to a file. But it's still very much in “only the author of this incomplete program would understand how to use it” territory. And I haven't quite gotten to using it to write music that I would actually want to share.

I've also been slowly but steadily doing more drawing. Now I have 5 comic pages with complete line drawings. I haven't been able to increase from 10 minutes a day yet, because of one thing and another, but it's still something.

Maybe you're someone with a lot of affective empathy – when you sense other people having feelings, you have a lot of feelings yourself. Or maybe you're more like me, and don't have so much.

A lot of people talk as if empathy is the same thing as goodness. Maybe you've said some things like that yourself without thinking about it. In this line of thinking, saying that someone has no empathy is the same as saying they're an evil person. Naturally, this bugs me because I don't want to be called an evil person. But there are also some subtler problems that you might not think of at first:

If being empathetic is automatically good, that makes it harder to talk about how empathy might lead you to hurt people – and how to avoid that problem.

If being unempathetic is automatically bad, that forces unempathetic people to pretend to be empathetic, instead of learning the unique ways of doing good that are easier without empathy.

How to stop your empathy from hurting people

If you feel someone else's distress, it can motivate you to help them. Helping people is good! Unfortunately, empathetic people can also have a hard time coping with others' distress. And I've seen a lot of coping strategies that actually end up hurting other people.

You may have used some of these yourself. They're not good, but they are understandable responses. If these sound like you, I hope to offer you a better way rather than judging you harshly.

I'm still lethargic. I haven't been getting much done. This is unfortunate.

For most of my adult life, I've had a cycle: I'm energetic for weeks in a row, super productive, and feel like “Why would I ever not work on big projects? They are so fun!”. Then I get lethargic for weeks in a row and don't feel like doing much at all. I recently talked to my doctor about this, and we think it might be cyclothymia.

It's taken a while for me to be sure that this is what's going on. In the past, I've generally thought there might be another explanation when I get lethargic. (Overheated that week? Must've been the heat that made me lethargic! Etc.) But it's becoming increasingly clear that my lethargic phases start by themselves without any particular trigger, and when I'm in a lethargic phase, even things that normally excite me don't get me out of it.

I have a lot of mental skills that can help me – my skills allow me to get everyday tasks done even when I'm lethargic, and they keep me from getting too distressed. But none of my skills let me bring back my creative motivation when I just don't have it. I'm in the process of seeing if there are medications that can help, but I haven't had much success with that yet.

The timeline of my current lethargic phase looks like this:

November 1: The last day when I was productive (writing a bit of Ravelling Wrath) as the phase began.

November 15: I started writing a good blog post. I wrote about 300 words of it, but then got burnt out and wasn't able to write more.

Today, November 22: I wrote another 350 words of the post, making it about half finished, then burnt out again. Later today, I also wrote this post, which was another sign of improvement, even though it was an easier task (I'm not trying to craft this post as carefully).

I feel like I'm at the beginning of my transition back into my productive phase, so if I'm lucky, this'll be my last “whoops I didn't do much this week” post for a while.

I've also been continuing to draw for 10 minutes once a day – I tried to increase the amount, but then I coincidentally got physically sick, which tends to make my hand muscles less resilient. So there's still hope that I can ramp it up again. And it's still good news that I've managed to maintain that amount, even if it's small.

I've been very lethargic this week. I've tried to get myself to work on my projects, but I just haven't been able to. Both writing and programming are types of creative work that I can't do right now.

However! Drawing Voldemort's Children is different, because I already wrote all the dialogue and sketched all the remaining pages. All I have to do is draw, not think about what to draw. And my hands have continued getting better. I've been regularly doing two 10-minute drawing sessions each day, and I'm on track to increase that. I've completed the line-drawing stage of about 3 pages in 2 weeks. There's a bunch more work after the line drawing, but if I'm lucky, I might even be able to start fully completing a page per week soon!

I've already gotten to work on Chapter 4 of Ravelling Wrath! It's around 1600 words now. Hopefully, I won't leave you all hanging for months like I did for the last chapter!

Finally, I've been making some slow progress on drawing Voldemort's Children. It's not much, but I've managed to draw for 10 minutes on multiple days in a row without hurting myself, which is more than I've been able to for a long time. So maybe this is a sign of long-term improvement.

This week's been a busy week. For one thing, I've all-but-completed Chapter 3 of Ravelling Wrath! I almost decided to rush it out to post today, but I figured I should get someone to proofread it first. But it's very likely I can have it ready by next week.

For another, I've kept working on my music stuff! I can't explain all of it, but I did make some neat procedurally-generated music that I can show you. I initially made a 30 second clip of it, but a friend asked me to generate a one-hour version because it sounded relaxing, so one hour it is! It's generated by an algorithm that picks random pitches, then tweaks them until they sound consonant according to the odd limit concept.

I also worked on drawing Voldemort's Children a bit yesterday! I've had a lot of false starts in the past, so we'll have to see how it goes. This time, I think I've discovered that my idea of holding the stylus lightly was actually an anti-pattern. Gripping it less hard gave me less control over it, which meant I ultimately used my muscles more to do the same amount of drawing.

Chapter 3 of Ravelling Wrath is now 8200 words, and almost finished! Unfortunately, I'm kind of stuck on getting the last few details right, and I just haven't been in the right mental state to do a good job. I should probably aim to release it in the next couple of weeks, but I can't promise anything.

Today, I worked on some computer music stuff! There's a song I started writing ages ago, but all existing computer music software just bugs me, so I'm writing my own. I'm currently bogged down in some technical details, but maybe I'll have some music to share soon.

(Content warning: Discussion of abusive relationships and other violence.)

For a long time, I've had two conflicting ideas, and I've been looking for a way to reconcile them:

When we're talking about abusers and spree killers, we shouldn't call them “psychos”. We shouldn't call them mentally ill in general, because that stigmatizes mental illness. Mentally ill people are disproportionately the targets of violence, rather than the perpetrators. If you imply that they're violent, that isolates them further and prevents them from getting the care they need. So we should treat violence and mental illness as completely separate issues.

Punishment isn't the most effective way to reduce violence. As a society, we should take an epidemiological approach to violence. We should research the causes of violent behavior and remove those causes, rather than just punishing individual people who did violent things. In a sense, we should treat most violence as mental illness.

Obviously, these two beliefs have a conflict of each other. But yesterday, I finally found a way to reconcile them.

How did I do it? This post will explain. Maybe it can help you develop your own skills, too.

My general approach

Many writers think of writing as a mystical activity. Their words come from a metaphorical “muse”, whose methods are unknowable. I am the opposite. I like to say “I'm not an artist, I'm an art engineer!” I want to understand the structure of prose in detail – how all the elements work, and how [...]

In school, they taught me that humans have five senses: sight, hearing, smell, touch, and taste.

This is silly. We have many more wonderful senses than that. Some people like to say “and proprioception!”, but that's only the tip of the iceberg. Lately, I've been trying to notice all the various ways I perceive the world.

With my lungs, I can perceive a lot of things about the air in my environment. I can tell the difference between very humid air and dry air. I can sense certain pollutants when I feel nausea, even without smelling them directly. If my airways are blocked, I can feel the low pressure inside my lungs when I try to breathe in, and the high pressure when I try to breathe out.

When I eat something, my digestive system gives me information about which nutrients were in it. Is it satisfying? Does it feel [...]

I also did some more work on Ravelling Wrath. Chapter 3 is now about 5500 words.

In TimeSteward, there were a lot of arcane technical things I had to deal with before I could make more example simulations. But fortunately, a big chunk of that work is now finished, and I should be able to make more simulations soon. I specifically improved the code of quadtree diffusion so that I can easily make other things similar to it. I'm planning to make a more sophisticated fluid-dynamics thing next.

I'd really like to be making real Wednesday posts for y'all, but I'm still on a roll with my huge project, TimeSteward, and I don't want to mess it up. My mind is focusing on it really well, and I can't easily switch to focusing on a different project. (In general, I'm sometimes able to switch projects by choice, but not always.) And between my hand issues and throat issues, it's been a long time since I've had the chance to be this productive, so I want to make the most of this.

Unfortunately, most of it is still arcane computer stuff that I can't exhibit in a cool way. I did made a better version of the simple diffusion example, but I can't show it to you today because of technical difficulties.

This week, I've gotten loads of work done on TimeSteward! I've completed the basic form of the new, faster TimeSteward. Now I can show you a simulation of simple diffusion. I already implemented it for the old TimeSteward, but it was so slow that it wasn't practical to watch. It's still a little slow, but it will be much easier to optimize it now.

Suppose I have a friend who knows I'm interested in them sexually, but hasn't decided to do anything sexual with me before. One day, this friend comes up to me, obviously upset, and says they want to have sex with me. What should I do?

On one hand, I have an immediate feeling of “this is wrong”. I feel like, while they're in this emotional state, doing anything would risk hurting them in the long-term. On the other hand, I believe that people have the right to choose what risks to take for themselves, and it feels wrong to say “I'm refusing for your sake” when they clearly indicated consent. When I was younger, a lot of adults did things that hurt me while saying they were helping me. I don't want to act like that towards anyone else.

I came up with this post while trying to reconcile those two feelings.

I can explain a bit of my TimeSteward work now! Both the green caves game and the bouncy-circles example are working examples of TimeSteward simulations, but they are both very simple. That's because I've only made prototypes of TimeSteward that work, but are not efficient. Complex simulations run too slowly.

My current work is fixing that. The old TimeSteward did a lot of extra computations tracking redundant dependencies, to make sure it works even if there are mistakes in the simulation design. In the new system I'm building right now, TimeSteward trusts the simulation to do its own tracking, in whichever way is the most efficient. To deal with mistakes, I'm making a way to audit the simulation after-the-fact to make sure there are no inconsistencies.

This week, I've been hard at work on TimeSteward, which I've briefly mentioned before. My mind is pretty occupied with the design, so I don't have the energy to explain what I'm actually doing right now.

A few weeks ago, I built a top hat that is also an air purifier. Last week, I stated building a second one. I wanted to improve on the design, and take photos of the process to show to the rest of you.

I was hoping for this to be a triumphant post about how I built a great hat, but, well… you'll see.

Materials

A bunch of scrap cardboard.

Cloth with a flowery pattern, to cover the finished hat.

A bit of an old sleeping pad.

A USB cord with one end missing.

A 5V 40mm static pressure fan (NF-A4x20 5V).

A 6"x4" HEPA filter.

A box of cut-to-fit pre-filter, which I cut to the same size as the HEPA filter.

Some thin nonporous foam, for making things airtight.

Some white glue.

Some clear packing tape.

Out of these materials, my only significant costs were for the fan (about $16) and [...]

The same day I finished Saddlebags 2.0, we had a great idea for how to improve the design:

I didn't actually need a clever system to keep the pouches from swinging. The swinging was only a problem when they could slap against the fronts of my legs while I ran. But these boxes are always flat at my sides, so they don't get in the way.

I can comfortably run and bicycle while carrying 10 pounds (4.5kg) of encyclopedias in these. They also held up to walking with a load of 25 pounds (11 kg). These pouches are slightly smaller, so I didn't go up to the 32 pounds I tried in 2.0, just because it was hard to fit that much stuff in them.

My original saddlebags were built using a piece of aluminum. But why use regular old aluminum when you can use modern-day supermaterials?

That's right, corrugated cardboard is a supermaterial. It's easy to build with, lightweight and strong. People have built chairs and even bicycles out of it. And on top of that, it's absurdly cheap and biodegradable. It's so cheap that I don't even have to buy it directly – I can just reuse the cardboard they use as packing materials when I buy other things.

Behold:

I call these Saddlebags 2.0. They're a lot bulkier than saddlebags 1.0, but they are heavy-duty. I was able to walk around while carrying 32 pounds (15.5 kg) of encyclopedias in [...]

The web version of [NSFW] Hexy Bondage is coming along. However, this week, I've mostly been working on building outrageous things out of cardboard:

To help with my allergy problems, I made this top hat that is also an air purifier. It has a fan and filters inside it, and it blows a continuous stream of filtered air down my face. It's working great.

The hat weighs 1 pound, it's pretty comfortable to wear, and the fan is quiet. It's much more efficient than a normal air purifier because a normal one tries to purify the whole room, while this one just purifies my face. Since it doesn't use much power, it can theoretically run off a rechargeable battery for over 24 hours.

I definitely plan to write a full blog post describing this hat and how I built it, but I'm not ready to do that quite yet. I want to wait until it's all the way finished, and specifically, I want to wait until I've actually tried running it off a battery. And although I've ordered a battery, I have to wait a few weeks for it to be shipped.

I've also been working on the next version of my carrying contraption – this time made out of cardboard! The new design will hopefully solve the problems of the previous version, while being cheaper and easier to build as well. However, I'm only in the early stages of prototyping so far.

I've made a lot of progress on the web version of [NSFW] Hexy Bondage! I've been tweaking the rules a bunch. There were a bunch of ways the original rules could make things slow or confusing, even on a computer where you don't have to remember all the rules yourself. But I think I found a good way to fix a lot of the problems. My work isn't done yet, but there's a good chance it'll be ready for next week.

Also, I've been trying out drawing again! Yesterday, I decided to try out drawing the Voldemort's Children characters again:

That went well and only took me 10 minutes, so today, I did 15 minutes of work on the actual comic. I have to be extra careful not to hurt my hands, so I can't promise anything, but I have a vague plan to do 10 or 15 minutes of work every day or two and see how it goes.

My hands are doing much better than they were a month ago! I've been able to do lots of things that I couldn't do for a while. I've been bicycling, I've been using scissors, I've been typing somewhat more, and lots of other stuff. Unfortunately, drawing is still being troublesome for me. I can currently draw for about 10 minutes at a time without problems, but I want to do much more than that. I might get there soon, but I might not.

My throat is also doing better. I think the problem was mostly allergies. I've been taking allergy meds and using air purifiers, and my throat's doing a lot better now, although it's not perfect. I even built an air-filter-on-a-hose to deliver filtered air straight to my face:

Today, I've been working on a web version of [NSFW] Hexy Bondage! The idea is that people will be able to play together on one computer/smartphone/tablet, rather than having to print it out. I have a complete prototype, but I still have a lot of polishing to do before I'm ready to publish it. (That said, the prototype is already available on the secret page for my Patreon supporters!)

Also, Chapter 3 of Ravelling Wrath currently stands at about 3000 words. I'm guessing it'll be about 8000 words when it's done, like Chapter 2 is.

I grew up reading the Harry Potter books. They were real page-turners – I was always eager to keep reading. In particular, many chapters ended in cliffhangers.

I took a lot of creative writing classes, but none of them taught me how to write a book like that. They taught me a lot of theories about Conflict and Symbolism and Scene Structure. But none of them taught me a theory of how to write a page-turner. So I was forced to invent my own.

The second chapter of Ravelling Wrath now stands at 7100 words, almost twice as long as the first one. I'll probably split it in two. However, because I've been writing it out-of-order, the first half isn't finished yet either. And once I finish it, I will still have to do some website work. (Right now, I don't have a real system for stories with multiple chapters.) I could theoretically have a chapter ready by next week, but my best guess is more like two or three weeks.

My other projects are still stalled. The current phase in the Saga Of Eli Dupree's Hand Problems is expected to take another month or so. They are currently at a point where they sometimes feel good enough to do a bunch of computer work, but I have to stop myself because they're not actually ready for that much.

These are rules for the game of Go that elegantly generalize the game to arbitrary directed graphs, made by my sibling and I. (This post probably won't be interesting unless you're Go player and/or a mathematician.)

Our ruleset uses stone scoring because it's super simple and clear what that means. It uses divide-and-choose for komi because the first move is more valuable on some graphs than others. It uses a novel divide-and-choose method to address (super)ko. An ordinary superko rule would be well-defined here too.

The rules

INTRO: Go is a class of infinite combinatorial games1 between two players, one for each finite2 directed graph and [...]