8
votes
What programming/technical projects have you been working on?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
I've been developing a StarCraft II bot in Rust for the past few weeks.
The bot beats the strongest non-cheating built-in AI more than 85% of the time using nothing but Marines. In order to achieve this, it uses speed-mining, which exploits the practically limitless APM (actions per minute) of a bot to increase resource gathering rate by ~12% (so I guess it is cheating -- kind of).
Implementing speed-mining in particular was tricky and took several days of experimentation and much gnashing of teeth -- a lot of the example code I looked at for it was just plain wrong and/or ineffective, and I also ran into a bug or limitation in the SC2 interface that cost me a lot of time to figure out.
I also used the project as an excuse to finally test GitHub Copilot. In the beginning it was more annoying than helpful and it took me a few days to get the hang of it, but now that I know its limitations, I find it very useful, especially when prototyping: just write a comment (or even the start of a comment) and it will fill in the blanks, sometimes with an elegant approach I would not have thought of myself. I still wouldn't want to use it for work stuff though, because (a) it potentially could leak the source code to Microsoft and (b) it can (and does) introduce subtle problems into the code if you're not vigilant.
Despite its success against the built-in AI, the bot is still nowhere near good enough to be uploaded to the SC2AI ladder because it is lacking so many basic skills (e.g. making anything other than Marines...).
Working on this has been extremely addictive and exhausting, enough so that it could potentially lead to problems if I keep it up, so, unfortunately, I've decided to shelve the project for now and wrote this post as a conclusion of sorts.
I'm overhauling Tailscale's Windows installer.
The default installer that users download is NSIS-based. I wrote an MSI installer over a year ago, but it was not ready yet to replace the NSIS installer by default. I'm getting the MSIs ready to go so that we may finally complete that migration in preparation for adding an auto-updater.
Oh, is that where you're working now? Neat! Their HQ is in my home province. :) How are you enjoying it so far?
We're 100% remote, so the "HQ" is more a formality than anything!
It's a fast-growing place, so there's always lots to do!
I’ve started designing a 3D printer: repo. There are several reasons I’m starting this project:
FreeCAD has been a bit annoying to work with, but it’s FOSS.