What if I stop browsing the web?

Browsing the web sucks these days. Wait! I’m not about to go on some nostalgia trip. It was pretty bad in the early days too. Take a wrong turn and you’d find your screen filled with infinite JavaScript popups. At least those are gone now. Now there’s a few problems as I see it. First, there’s just so much AI slop that it’s impossible to avoid. Frequently I’ll search for something and find that the first result is completely AI generated....

April 16, 2025 · 4 min · Mike Cartmell

My Stack for Side Projects

I do quite a lot of coding and general dabbling with computer stuff in my spare time. By spare time, I of course mean when I decide to sacrifice my sleep by staying up later than I should after the kids are asleep. Here’s what I use: Workstation: Macbook Air, Windows desktop PC (with WSL) Server hardware: 3 mini PCs. Prefer Beelink. Server software: Kubernetes (k3s) cluster, using Traefik ingress behind an OpenWRT router IDE: Nvim or VSCode Backend: Go (backend services) or Ruby (web apps) Frontend: Ruby on Rails + Hotwire Mobile: Flutter Gamedev: Defold....

February 26, 2025 · 1 min · Mike Cartmell

Curated Content

I recently dumped Spotify in favour of my own music collection sourced from Bandcamp and my CD collection. I don’t miss Spotify at all - it’s a lot more rewarding and fun to discover bands on my own instead. Also, I find myself avoiding AI content where possible now. I’ll often add ‘reddit’ on the end of search queries because it’s more reliable than the default results which are littered with AI slop....

February 16, 2025 · 2 min · Mike Cartmell

Setting up OpenWRT on a QNAP QHora-301W router with 10g Internet

I recently upgraded my home internet connection from 1 to 10gbps. The only problem was, I didn’t have any devices that supported it. My router, switches and all but one other device were all 1gbps or lower. Of course, there’s little practical need for 10gbps considering that far exceeds regular hard disk speeds but still, I felt this would a good excuse to upgrade my home network. So I did....

November 15, 2024 · 4 min · Mike Cartmell

Homebrewing Beer

Recently I’ve started to brew my own beer - I’m on my third batch now. I got the urge after wanting to make a game about managing a pub. That got me to discover another game via Steam called Beer Brewing Simulator. Then after playing that for a while, it seemed easier than I thought - so I decided to give it a go in real life! Several things put me off doing this before, but I realised they’re misconceptions....

September 27, 2024 · 8 min · Mike Cartmell

Creating a Tower Defense Game in Pico8: Part 5 - Placing Totems

In the previous tutorial, we made our player move around the screen. Next on our list is the ability to place totems (our towers) - a core gameplay element in a tower defense game! Unlike the player, totems don’t exist at the start of the game. Also, there can be many totems on the screen at the same time! So for this to work, we’ll need to introduce two new concepts:...

February 22, 2024 · 4 min · Mike Cartmell

Creating a Tower Defense Game in Pico8: Part 4 - Player Movement

What Next? So far, we’ve introduced some basic coding and game design concepts and written some helper functions that will live up to their name soon enough. Let’s take a step back and think about what kind of game we’re making, as this will help guide us over the next few parts of this tutorial. Tower Defense Player controls Typically, the player in tower defense games acts as a godlike presence, building and upgrading towers from nowhere as the player issues actions using their mouse or a touchscreen....

February 6, 2024 · 10 min · Mike Cartmell

Creating a Tower Defense Game in Pico8: Part 3 - Setting Foundations

Helper Functions There are some techniques, like _debug mentioned in part 2, that I use in almost all my games. In this post we’ll implement some of them right at the beginning, because it’ll save us time later! In Pico-8’s code editor you’ll notice a number at the bottom-right which increases as you write code. This is the token count, and it’s very important to keep an eye on this because Pico-8 programs can only have 8192 tokens!...

February 6, 2024 · 8 min · Mike Cartmell

Creating a Tower Defense Game in Pico8: Part 2 - Special Functions

Special Functions In part 1, we wrote some commands called function calls to tell Pico-8 to draw text and shapes on the screen. But we can write our own functions too. And there are 3 special functions that, if you include them in your code, will be called by Pico-8 itself while your program is running! This forms what’s known in game programming as a game loop. Games must run code constantly to calculate game logic, move characters around on the screen, respond to the user pressing controller buttons and so on....

February 6, 2024 · 6 min · Mike Cartmell

Creating a Tower Defense Game in Pico8: Part 1 - Hello World

Hello! This post is the first in a new series where I’m going to make a tower defense game in Pico-8 and explain exactly how to do it, from scratch. If you’re looking to learn how to code, or you know how to code and are interested in learning how to make games, this is for you! I think making games is an excellent way to learn how to code, for several reasons....

February 5, 2024 · 4 min · Mike Cartmell