Grumpy Gamer

Ye Olde Grumpy Gamer Blog. Est. 2004

Mar 17, 2026

I’ve been very critical of AI but have never really used it in depth and I feel that needs to change. Don’t criticize what you don’t know.

I’m going to ignore the moral, ethical and privacy implementation of AI and just focus on the practical. Morally and ethically, AI is a train wreck. But I’m not going to focus on that.

I’m also going to only focus on AI for programming as that is my area of expertise, at least in this case.

I’ve done a lot of looking into how LLM’s work and I get the basics in the same way that I understand quantum physics. Enough to make me entertaining at a cocktail party, but not much after that.

I am starting a new game pro-type project using Raylib and it feels like this is a good place to experiment with AI. So for the next 30 days I’m going to use AI for programming and see how it goes.

I’ve been programming C since 1987 and C++ since 1993 so I have a lot of experience (although const in all but it’s basic form still messes me up, but I thinks that true for a lot of people).

I am using Claude AI (basic subscription) cli for general programming, Co-pilot in VSCode and Gemini for quick unrelated to programming questions.

Gemini

I was only using Gemini on the free trier that everyone with a Goggle account gets and it was worthless for programming, so we’ll skip it.

Copilot

Copilot comes integrated with VSCode, so it was easy to try out and doesn’t cost anything (I already pay for Github).

Copilot treads this line between being somewhat useful and maddeningly annoying.

Copilot is good at realizing I’m going to make the same small change to the next 10 lines and offer (mostly correctly) to make it for me. It’s not making big AI decision about my code base, just that I’m going to add Ox in front of a list of ints or that I’m going to fill out an enum. Good stuff. I do find that useful in the same way Intellisense can be useful.

What Copilot is not good at is making larger AI decisions about what I’m trying to add right after the if(. I’ve found it to be mostly wrong. It’s double or triple irritating that it interrupts my flow by popping up a huge block of text that is wrong with the excitement of a poorly trained intern on their first day.

I wish I could keep the first part and disable the second, but I have not found a way to do that. What it needs is a char limit to the amount of new text it will try and insert. If it’s about 20 characters then STFU.

Claude Code

Again, ignoring the ethics of the company that make Claude Code.

What Claude code is good at is doing rote things that don’t need a lot of (ironically) “Intelligence”.

I asked it to make be a .yml file for Github actions for building Mac, Linux and Windows version of my game and it did a 99% right version. Only thing wrong was the way it named the executable, but anyone could make that mistake. Maybe I could have been clearer.

Which brings me to a point. The clearer you are the better AI is. But at some point I’ve spent so much time writing the spec that I could have just done it myself. And it’s not just a high level spec, you have to get into the weeds.

I asked Claude Code to write a .py program that did texture packing, taking a folder of .png files and making a sprite sheet with a .json file describing where everything was. Basically what TexturePacker does.

After a few seconds I had to stop it because it was freely pulling in python packages that I didn’t have.

I then told it to use Pillow (PIL) and nothing else that wasn’t standard.

After a few minutes it had a runnable program, but not correct. It was putting the .json and sheet .png in different places despite me tell it they should be together. It was also processing the .png files twice, once to check for changes and another before adding them. I called it out and it apologized profusely and fix it.

There were several other instances where it wrote c++ code that was technically correct, but horrible inefficient like passing std::string around when it could have done std::string &. I caught this, but a junior dev might not have.

I had it write some c++ code to read the sprite sheet it had created and it took 5 failed attempts to get the origins right for rotation and scaling. I finally fixed it myself but it was a frustrating back and forth. Are new devs being trained to think this is normal?

I also had it write code so billboard sprites in my 3D particle system were always camera-facing. It never got that right and had generated such mess of code that I just scrapped the idea. Math is not my strong point so I didn’t feel like I could just fix it.

I also had a instance where a file was being read from the wrong path and instead of prepending the right path it tried to completely rewrite my library.

Ironically it also had a problem with const. It recompiled the program three times randomly changing where const appeared. I feel for ya.

I have spent a lot time over this experiment correcting AI.

I could go on and on. But I won’t.

Conclusions

AI for coding is very impressive. It is a lot more then a fancy auto-complete.

But it can also be very wrong and you don’t really know it unless you look closely and have the experience to do that and I fear that new devs won’t ever get that experience. I hear about new devs freaking out when they run out of tokens for AI. They are lost without it.

I have a few friends who work at companies where their managers are telling them to use AI. This isn’t coming from “it’s a useful tool” place, but rather that AI feels like magic to some managers who don’t program.

Someone once said that “AI feels amazing when it’s talking about a subject you know nothing about, but is laughably wrong when you do”. I couldn’t agree more.

I doubt I’ll use AI beyond this 30 day experiment. I spend too much time correcting it plus I enjoy programming.

Someone else also said “I want AI to do my laundry so I can make Art, not make my Art so I can do laundry”.

I also worry that AI was trained on real programmers, but now it will just be training on itself. There is no good end to that story.

I blame the I in AI. It’s not Intelligent and it’s important to remember that. It’s a really good encyclopedia of (stolen) knowledge but AI is not figuring things out on it’s own.

Autopilots in modern planes are amazing. They can take off and land the plane. But pilots are also legally requited to hand fly the plane several times a month. Training requires them to hand fly the simulators or simulators with broken autopilots. Pilots use the auto pilot as a tool not a crutch. It’s also not called a AI Pilot (yet).

More conclusions

AI will get better. It might even get as good as we see in Star Trek. I know I felt like Geordi programming the computer in engineering at times.

I grew up in a time where everyone was afraid computers would take their jobs. And they were right. Computers did. There are fewer longshoremen because of automated ports, short-haul commercial flights don’t need three pilots anymore, there aren’t rooms full of accountants hand writing figures into a book.

That will happen with AI.

Let’s just hope it also doesn’t make us too stupid in the process.

Of course, someone from 1793 would say the same thing about me as I could not survive the night in the wilderness.

In the meantime, I’m going to enjoy programming and not being a baby sitter to an AI programmer.


Comments:

David Fox 1h ago
Thanks for sacrificing your time to research some of these tools!
Blackthorn 1h ago
I still hold the hope we programmers won't really lose our jobs. Sure, maybe one day a programmer+AI can produce as much as four programmers without AI, but it doesn't necessarily mean you need to fire those three. Instead, you pair them with an AI as well, and now your company's output is so much more than before! (I'd like to know how much: I'm not with math either :P).

Ofc I might be wrong and I'll need to find alternative ways of paying my mortgage...
Ron Gilbert 1h ago
Airlines now need 1/3 less pilots of fly a plane, but there are hundreds of more flights each day. Maybe that will happen.
@sean_earle@mastodon.gamedev.place 47m ago
I appreciate you going through this pain. I'm about to have to adopt this tooling for work and am definitely less than excited about it. I find seeing people who are equally skeptical try these tools helps keep me grounded about what they can and can't actually do.
Anon to Keep My Job 32m ago
We were told, in no uncertain terms, all programmers are to use Claude first, code later. If we didn't like it, "there's the door." Eight weeks later, everyone's neck deep in Claude. Even the skeptics had found some use for it.

That's when the next email came. We are using AI too much. The bill is too high. So, the original directive stands (AI first!) but they're capping us at a very, very low token limit. Literally about 10% of what we'd become accustomed to. Execs literally sold the company on 10x'ing our output then throttled us to 10% AI usage. I'm not good at math, but... Wish I was kidding.
Jan 8m ago
I deeply admire your openness to trying new technologies, even those you find objectionable. There is no denying that there is a lot of potential in LLMs. Maybe in the future, if they're trained on code that they're explicitly allowed to use, they will become a genuinely useful tool.
David Thomsen 5m ago
I use Gemini because it's the free one where I don't have to sign up for anything, I already have a Google account. I've found it reasonably useful when I have a specific goal in mind that is too difficult to articulate in a Google search. However if I weren't a reasonably experienced developer already it would have directed me in the wrong direction a few times, sometimes in ways that would have been catastrophically bad if I didn't know better.


Personally I just don't want any AI in my IDE because that sounds irritating as heck. I want my IDE as dumb as possible with the occasional line underlined to be like "this collection initialization could be simplified" or whatever.

Add comment: