It's time for my annual self review. It's been a messed up year, not only for me but for many other people. Last year I said I wanted to learn some biology and math. I didn't have any particular goals for game or tutorial projects. I knew the year would be a mess so I left it open ended.

Chart showing predator-prey differential equations
Learning
I've been slowly learning biology from a few textbooks. I've only written up interactive notes on one of the topics: the classic predator-prey system. There are some other models I'd like to implement at some point but I'm enjoying learning the high level right now before I dig into more details. I'm also finding that writing notes in a way that's meant for sharing slows down my learning. I'm wanting to learn the high level ideas, and not the details right now, so I think I'll write high level notes these about hiv without implementing a simulation or making interactive diagrams. Many of the biology topics I'm learning don't make sense to simulate interactively.
Grids
I've improved several of my grid-related pages. I rewrote my guide to grids to be interactive and more aligned with what readers wanted. I experimented with animation for that page but realized it was overkill and taking too much time. I redesigned the circle drawing diagrams and like the new ones much better. I rewrote my hexagon implementation section on making rectangle maps. The old section was more "let's look at the things I can do" and the new section is more "let's look at the things you want to do". The new code is cleaner and more useful. I also made the scary change of reconciling the two different coordinate systems I used, xzy on the theory page and qrs on the implementation page. Having two different systems made it harder for readers to connect the pages and make their own implementations, and I'm much happier now that they're consistent.
Maps
Because I'd like to someday reuse some mapgen4 code for future projects, I cleaned it up a little, switching from browserify to esbuild. While I was working with the code I added some minor features. I made a little animation showing how tetrahedrons support both square and triangle maps on a sphere. Most of all I worked on the Noise-based terrain generation page, adding charts showing how elevation remapping works, including for Terraces and Ridged Noise. One of the reasons I so rarely improve this page is that it's a major pain to rebuild, as I save all the images manually. I automated this using some python, and I'm hoping to make many more improvements to the page.
Games
When I started Red Blob Games I was hoping to work on some actual games. It's part of the name! But I ended up working on tutorials instead. I'd still like to work on some small games, so I tried several this year. I started working on a container port simulation and made a little animation but lost interest in this project soon after that. I also participated in the annual r/roguelikedev summer event to make a roguelike. I only got halfway through, but am pretty happy with what I did implement. It inspired me to work on a tutorial about field of view but I didn't finish that page. I also tried revisiting a project from 2009 but got frustrated and gave up.
Art
I've enjoyed my small art projects the last few years and want to do more. This year I played with grass rendering, spinning blobs, particle transitions between shapes, svg symbols, constrained delaunay, webaudio sound generation, and compass roses. Some of these were art projects and some of these were learning projects to give me more tools for future art projects.
Infrastructure
I've enabled IPv6 for redblobgames. I've simplified the CSS, improved caching, and sped up the build system.

What are my plans for 2022? As far as interactive tutorials, I've realized that I've been less motivated the last few years, for three reasons: (1) as I've gotten better at it, the implementation challenge is no longer there; (2) as more people have been making these, there's less novelty; (3) I've run out of topics I'm excited to write about. I'll continue making small interactive demos but I don't expect to write any new guides like the pathfinding, hexagon, or map generation pages. Instead, I hope to spend more time on experiments and art and learning, and I'll improve my existing guides. But the pandemic has made me uncertain about everything.

You can see my project ideas and status on Notion.

Labels:

0 comments: