News for hackers. Stuff that matters.
Re:MTG Bench: Testing how well LLMs can play magic by josh_p on Thursday June 11, 2026 @08:33PM (#48498348)
I know the author specifically did not use a rules engine in their simulation because of uncertainty on how it would affect it.

I do still wonder if adapting something like card forge for llm use would result in engaging gameplay with an llm.

https://github.com/Card-Forge/forge

Re:MTG Bench: Testing how well LLMs can play magic by CallumFerg on Thursday June 11, 2026 @08:41PM (#48498413)
I actually considered using card forge when I started this. I mostly didn't end up using it because of how much more work it would have been.

But also with a rules engine, you have to manually go though every step, and pass priority after every action.

I think it makes more sense to let an LLM play magic like a person would. On early turns it is acceptable to say "I play a land and pass" without going through every phase. And you can say "I tap all my land and play this card" without having to use a tool call and agent turn for every land tap.

Also card forge would not let you goldfish a deck. You must have opponents.

Re:MTG Bench: Testing how well LLMs can play magic by fc417fc802 on Thursday June 11, 2026 @10:44PM (#48499237)
Those things sound less like general problems with rules engines and more like deficiencies of card forge IMO.
Re:MTG Bench: Testing how well LLMs can play magic by fc417fc802 on Thursday June 11, 2026 @10:42PM (#48499232)
> because of uncertainty on how it would affect it.

Have the LLM submit a proposed move and either advance the game state or reply "permission denied, try again". Probably also log the number of times it happens since attempted violations seems like a valuable signal as well.

Re:MTG Bench: Testing how well LLMs can play magic by veqq on Friday June 12, 2026 @12:30AM (#48499939)
MTG: Arena uses a rules engine CLIPS (a s-expr expert system based on the RETE engine), which an acquaintance wrote a course for: https://ryjo.codes/tour-of-clips.html and even a declarative chat server: https://ryjo.codes/articles/a-simple-tcp-server-written-in-g...

    (defrule connection
      (connection ?id)
      =>
      (println "User " ?id " connected")
      (printout ?id "Welcome to the chatroom from CLIPS!" crlf)
      (do-for-all-facts ((?f connection)) (neq ?id (nth$ 1 ?f:implied))
          (printout (nth$ 1 ?f:implied) "User " ?id " connected" crlf)))
    
    (defrule say
      (connection ?id)
      ?f <- (message-buffered ?id)
      ?ff <- (message ?id ~/me ?message)
      =>
      (retract ?f ?ff)
      (printout ?id "You: " ?message crlf)
      (do-for-all-facts ((?f connection)) (neq ?id (nth$ 1 ?f:implied))
        (printout (nth$ 1 ?f:implied)
         ?id ": " ?message crlf)))
Re:MTG Bench: Testing how well LLMs can play magic by josh_p on Friday June 12, 2026 @08:34PM (#48510994)
I was about to ask why someone would reach for CLIPS over implementing their own rules engine in the language of the rest of the application (I did this once).

It’s answered on the same site. https://ryjo.codes/articles/forgoing-implicity-using-abstrac...

Thank you for sharing! A lot of good stuff here!