Hi John, My 2¢ on how I’ve gotten around some of these problems.
Two weeks prior I started with a basic M100 language server for VSCode (it’s in the extension store, and 100% not finished). Claude Code, Copilot, Codex, etc the thing that makes them useful (over just an LLM model), is they can pull context from the linter into their plans. So what I see happened in the internal prompts is like this: “I added the new subroutine at 1060” “Oh no, It looks like I have a duplicate line number at 1060, grep 1060 blah blah” “I fixed and renumbered the subroutine” Or “the linter says i have unreachable code at 1060” Basically, the more feedback you can programmatically expose to the Agent, the better its internal iterations will be. Unfortunately it’s not working so well with VirtualT, but when dealing with printing of screens and menus, I can run the game, and stop the screen when something looks wrong and tell him “hey, look at the screen, it’s not printing correctly” He runs the mcp, dumps the screen down as text, reads it “oh i see the issue, we’re trying to print 12 lines of text into an 8 line display, let me tweak the UI to use multiple columns” I’ve got another game coming soon, that is an adaptation of the 1970’s 3M game board game Stocks and Bonds. It’s something i’ve wanted to do for a long time, but never had the patience to sit down and start. Claude cranked out hundreds of lines of pretty good BASIC code in a matter of an hour or two on my car ride today. I would suggest maybe giving Claude or Codex a try if Gemini is not offering satisfactory results. Or even Copilot is free if using 5.1 mini. -George On Thu, Dec 25, 2025 at 1:48 PM John R. Hogerhuis <[email protected]> wrote: > Yeah playing with Gemini for a while is very frustrating for basic > programming. It did all kinds of weird things. Like one time it generated a > program with like number 23.5 and when I told it the UL error it > confidently lied that many BASICs allow "decimal" line numbers. > > One time it generated line numbers out of order. It randomly puts comments > without REM. > > At some point I had it add an error handler and when fixing other stuff it > would just randomly forget about it and drop the error handler but keep the > ON ERROR GOTO so then when an error did happen it would crash. > > But miraculously it was generating functioning programs almost right off > the bat without me having taught it anything about m100 basic. So it had > some context from somewhere. > > The ML code it generated would just crash so I told it to stop. > > It did the variable name collision thing but worse than that I think it > was sharing variables for what would be different object instances in > another language. > > It seems to have a lot of context for game logic... algorithms for > physics, collisions, round processing > > It seems like a focused base local model for model 100 basic programming > would be the way to go. Then add modules for problem domains like > platformer games, adventure games, etc. > > Because a general model like Gemini just gets into a lot of frustrating > trouble and since I didn't give it all the context and priorities it's hard > to keep it out of trouble. > > And I think it would be better to generate to some intermediate language > with more high level constructs (subroutines, methods, instantiable > components or objects tasks, state machines, code libraries) and then > compile to line numbered BASIC and ML. BASIC has too few guardrails. I mean > it works most of the time but then you end up fighting syntax issues when > you're trying to get higher level functionality working. > > -- John. >
