I have mixed feelings about this morning’s snowfall. On the upside, the garden will be immensely picturesque under snow. On the downside, the golf course will likely be closed all weekend, which scraps the plans the wee yin and I had for tomorrow.
Walking the path with TypeScript
This week, I spent most of my free time adding an NPC character to my ThreeJS game and have them walk towards me each time I move my own character.

I’m using the A* algorithm. Each time I move my own character, the NPC finds the shortest path to my character using this algorithm and then moves one step to my character.
As I’m already using a two-dimensional array to represent the game’s board, using the algorithm on this array helped me get it working. What I wasn’t prepared for was the amount of code needed to implement the algorithm and move the NPC across the board. Still, I managed to learn a thing or two more about TypeScript.
What’s next for my game? I’m not sure yet. There are so many things that I could be doing, such as adding attributes for my characters, both PC and NPC characters, and adding more elements for the map, like ancient ruins. My youngest is also designing skins for the playing character and the NPC, so they’re more than just coloured rectangles on the board.
Projects like EmojiRain make me glad we have developer-friendly social media platforms again.
The first frost of fall.

I had more fun with ThreeJS tonight. I increased the size of the board and added some trees and boulders to it. I am now at a point where I will focus more on building a representation of the board as an object to start moving my character around the board.

I continued to make some progress with ThreeJS and TypeScript tonight. I managed to draw a tiled board, move it around the screen with the mouse and be able to change my field of view with a slider.

There’s no such thing as having too many Markdown editors.
Joan Westenberg suggests giving yourself 5-year timeframes. I love this. It gives you enough time to work on something, even tear it down, and start again.
Why 5 years? Because it’s the perfect amount of time to marinate in the quiet dread of potential failure, without fully descending into the loud panic of inevitable failure. Five years is enough time to tenderize the soul. You could go from a nobody to a legend, or from a nobody to a nobody with five years of extremely detailed regrets. Either way, you’re richer for the experience.
Molly White’s blogroll page is a treasure trove of RSS feeds if you’re looking to escape from the algorithm-based timelines of the big social media companies.
A couple of web development projects for the winter
Now that the golf season is down to me and the boys only getting out at the weekend, I can start spending more time on a few side projects. There are so many things I would like to learn, but I figure just limiting myself to a couple won’t take up too much of my time.
So, from now to March, I’ll spend a few hours each week on the following.
- Learning more about Rails 8 and Kamal — Dailymuse and Writeabout will each get a bump to Rails 8. Only Writeabout, though, will get the Kamal) treatment to begin with. When I have gained enough knowledge about Kamal, I’ll also look to deploy Dailymuse with Kamal.
- Learn TypeScript and ThreeJS — A work colleague showed me a hobby project he is working on using ThreeJS. It’s the perfect excuse to learn TypeScript and build something for the web that isn’t just another web application.