A Walnut's Thoughts

My name is Anthony, I'm a self taught developer based in the midwest. I'm interested in systems programming, dev tools, and game design. Currently looking for work.

3 miles deep in the Rust debugging rabbit hole. If you have any questions regarding that, feel free to send me an email or a message in the Rust zulip or LLVM discourse.

I love epic fantasy novels, my favorites are Malazan Book of the Fallen and The Wheel of Time. Currently reading The Black Company.

Bypassing the borrow checker - do ref -> ptr -> ref partial borrows cause UB?

Partial borrows across function boundaries don't really work in Rust. Unfortunately, that's kind of a major issue. There are workarounds, some are outlined here, but all of them come with pretty major drawbacks.

2024-08-09 · 30 min · 5893 words

Simulating Starcraft Part 2 - Data Wrangling

Oh how naive I was when I thought I'd be moving on to pathfinding and abilities. I had hoped some of the game's mechanics would function better in isolation, so I could gradually add complexity on top of the tracer bullet in a modular way. Unfortunately, that doesn't seem possible without a huge refactoring burden every time I add the next layer. It'll be more worth my time to properly architect it right now, and build it from the ground up with all of the systems it'll need.

2024-06-02 · 15 min · 2889 words

Simulating Starcraft Part 1 - Tracer Bullet

A while back, I made a small application meant to demonstrate some important principles about RTS design, namely that unit stats in a vacuum can be very misleading. As a quick example, stalkers have ~9.7 dps on paper. When fighting marines though, their effective DPS drops to ~8.4 (8.2 with combat shields) due to overkill. That's about the same DPS as a sentry. Unfortunately, there's only so much info that can be extracted from a Time To Kill calculation between two units.

2024-05-15 · 22 min · 4214 words

The space time complexity tradeoff

I encountered a neat example recently while solving Advent of Code 2015, day 6. The problem can be boiled down to "There is a 2D array of values. Given a range and instruction, apply the instruction to all values in that range. How many values are 'on' at the end?". There are only 2 possible states for each value: on and off, and only 3 possible instructions: on, off, and toggle. I won't focus too much on parsing the input or the structure of the algorithm here, I just want to investigate the hot loop which applies the instruction to each value.

2024-03-09 · 10 min · 1998 words

Protoss has always had a cost efficiency problem

2024-02-07 · 28 min · 5434 words