Crossing the streams
At work, I’ve been diving into AI/LLM stuff, and I’m still pretty much always using coding assistants when I work on DC Tech Events. I hadn’t really attempted to bring that into game development, though. Last week, I decided to try it on my current roguelike project.
This game began life as part of a 10-day game jam, and I was beginning to regret some of the architectural compromises I made under the time pressure. In particular, the lines of responsibility were pretty murky between the class that generated maps, and the one that displayed the map and tracked positions. I gave Github Copilot some direction on what functionality belonged where, and it did a credible job cleaning things up, which made it easier for me to move on. Neat.
This led to some excitement and further experimentation, which resulted in two MCP servers, which allow a coding assistant more visibility and control of a a running Godot project. This one runs outside of Godot, and connects to the debugging port and language server, while the other is a Godot Plugin, and provides an HTTP server that allows for an agent to manipulate the node tree, and even send input. It’s cool when it’s all working.
As a “big swing” experiment, I created an empty project with a single spritesheet, and asked copilot to make a match 3 game. The game itself turned out OK, but across many attempts it completely failed to identify which parts of the sheet should be used as game pieces. Score one for humanity!
I’ve started a lot of projects and finish basically none of them– I think the promising thing for me is that I can use coding agents to get past the annoying/tedious tasks that cause me to lose interest and move on, and finish more games. For example, at one point I started “CISO Clicker”, meant to be an idle/clicker game that hopefully imparts some wisdom about the asymmetric nature of cybersecurity. I never really got past generating some company names.
With a few prompts, I’ve got a start on exactly the sort of simulation I’ve been thinking about:
Watched: Gimme Shelter πΏ
(this was over the weekend– I’m mostly just trying out the new Movies feature on micro right now)
Finished reading: Beyond Vibe Coding by Addy Osmani π
Finished Listening: Empire of AI by Karen Hao π
Fascinating and eye-opening. Parts of it also work as a primer on data center politics.
New on dctech.events: new pages showing just the events for Maryland, Virginia, or the District, as well as per-city pages, like this one for Arlington.
Finished reading: THE UNBEATABLE SQUIRREL GIRL VOL. 8: MY BEST FRIEND’S SQUIRREL by Ryan North π
(Also 6 and 7)
I decided after the last post that I’m not going to sweat the deadline. I’m not going to submit the game to the jam, which ends in 15 hours. This weekend, I decided I’d rather relax. Instead of staying up late working on the game, I watched Lower Decks.
I haven’t given up on the game, though– in fact I’m quite enjoying the process. I just didn’t feel like scrambling to complete it by the deadline, or submitting a version I’m not proud of.
Finished reading: The Unbeatable Squirrel Girl Vol. 3 by Ryan North π
progress
The deadline is fast approaching, and I haven’t made a ton of progress– but now there are mobs that actually chase you. There’s no combat or death yet. That’s next.
The graphics and colors here were meant to be placeholders, but it’s honestly growing on me. With the black shadows and bright light, I find it kind of pleasing in a brutalist way. Perhaps I’m rationalizing laziness, but I think I’ll lean into abstraction here. Colors and shapes, without any traditional genre references.
It’s not a game yet, but I can move a blue dude through a procedurally generated map. The brown square would be the exit, if such functionality existed yet.
I started working on some ideas yesterday for Roguetemple’s Fortnight game jam. I’m not sure if my current concept will survive, but I am pleased with the map generation script so far.
Volume 11
I’ve got my 11th bullet journal set up for September.
Even when I fall out of using it as a sort of daily productivity/mindfulness practice, I’ve benefited from simply having one notebook active at a time, with dated entries. Pre-BuJo I would jot things down wherever, including digital tools like OneNote, etc, and often those notes were never to be seen again.
Currently listening: Empire of AI by Karen Hao π
Finished reading: The Unbeatable Squirrel Girl Vol. 2 by Ryan North π
I don’t love it yet, but I added a simple search widget to DC Tech Events. There’s no backend, it just filters the list on the page.
Finished reading: The Unbeatable Squirrel Girl Vol. 1 by Ryan North π
soaking in it
I know, a few weeks ago I wrote “the internet doesnβt need more words about AI”.
Since then, I started working at a company that considers AI as part of it’s toolkit for helping customers, contributed some code to an internal project that uses the Google Gemini API, and my first client project?
Helping write LLM policy.
Β―\_(γ)_/Β―
I’ve tried and failed a couple of times to write some sort of position statement in this space, that would capture a mix of hope and fear, while giving myself permission to keep learning and experimenting. I could probably have ChatGPT write it, but I’m not so far gone as to subject readers to machine-written prose.
I am giving myself that permission to learn and experiment, though. Program or Be Programmed seems newly relevant, and I think the closing words of LLMs Are Weird Computers captures the moment pretty well:
But I will say that if you don’t want to be caught with your pants down when your workplace does expect you to do more and different things with this technology, there’s no better time than now to start learning how to use it.