GOAP and Utility AI in Grab n' Throw

Why don't we have both?

I’m working on a game where you throw stacks of your own team-mates in first-person, in various game-modes. I tried a few different approaches for player AI, but ended up settling on Utility for “what to do” and GOAP (Goal Oriented Action Programming) for “how to do it”. Each of these ( Utility AI and GOAP AI note) are worth watching videos on, they’re extremely cool. Utility AI was popularised by Dave Mark, and was used in Guild Wars 2 (or an expansion). [Read More]

BGP on Windows Desktop

BGP on Windows Desktop
I love seeing BGP pushed to the edges of its intended use-case, and I’d been wanting to learn Go for a while. I’d also been frustrated that I couldn’t ingest BGP routes on my Windows desktop - it’s only included in the server OS versions. So I decided that my holiday project would be extending GoBGP to get my network’s BGP routes into my Windows 10 desktop’s routing table. I’m also a huge fan of “Why not? [Read More]

Python-automated lightweight BGP lab in GNS3

Python-automated lightweight BGP lab in GNS3
I was looking to play around with some BGP changes so I set up a topology in GNS3 using FRR docker containers. Once I laid out the topology I didn’t want to manually address it, so I automated the entire lifecycle. Address generation, config application etc. This ended up taking way longer than manually doing it but was also way more fun and is now much easier to reset! BTW: FRR docker containers are incredible if you’re just looking to lab routing protocols. [Read More]

Compilers for programming while tired

Strongly typed languages and compilers are wonderful. Especially when my eyes are struggling to stay open and the bed is calling. Usually by this time of night I can’t complete a full task, but I can plan and start one. If I’m refactoring I might change the parameter type in one function. If I come back a few days later and didn’t note exactly where I got to, I press CTRL+B and the compiler will dutifully show all the calls I have left to change. [Read More]