LLM Testing

adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,365
edited September 2025 in GameSalad Kitchen

I'm starting to work on an LLM for GameSalad, here's some test results.

TL;DR: We got the basics, we need to verify it and make it cheaper to run. But what we get is already pretty cool.

===

Propmpt: Make a cookie clicker game. I just need the main actor, the counter actor, and an actor that displays and fades as a result of the amount the click adds to the score.


Result:

⏺ High-Level Cookie Clicker Implementation

 Core Behaviors Needed:

 Cookie Actor (Main Interactive Element):

 - Touch/Click Detection - Rule with mouse/touch conditions to detect clicks

 - Visual Feedback - Scale animation or color change on click

 - Score Management - ChangeAttribute to increment counter

 - Audio Feedback - PlaySound for satisfying click response

 Counter Actor (Score Display):

 - Text Display - DisplayText showing current score

 - Dynamic Updates - Rule to update display when score changes

 - Number Formatting - Expression to format large numbers

 Popup Actor (Click Feedback):

 - Spawn on Click - Created by cookie when clicked

 - Value Display - Shows points gained from click

 - Fade Animation - Interpolate alpha from 1 to 0

 - Upward Movement - MoveTo behavior for floating effect

 - Auto Destroy - Timer to remove after animation

 Key Parameters:

 - Base click value: +1 point per click

 - Popup duration: 1.5 seconds

 - Popup movement: Float up 50 pixels

 - Counter update: Real-time score tracking

 - Audio: Short, satisfying click sound

 ---

 Cookie Clicker - Pseudocode Implementation

 Cookie Actor:

   Attributes:

     position: (400, 300)

     size: (128, 128)

     image: "cookie"

     clickValue: 1 (custom integer)

     originalSize: 128 (custom real)

   Rule "Click Detection" (ANY condition):

     Condition(event: touch_pressed)

     Condition(event: mouse_down, over_actor: true)

     →

       ChangeAttribute(target: game.score, value: game.score + self.clickValue)

       PlaySound(sound: "click", volume: 0.8)

       Spawn(prototype: "clickPopup", x: 0, y: 20,

          direction: random(-30, 30))

       // Scale animation for feedback

       ChangeSize(width: originalSize * 1.1, height: originalSize * 1.1)

       Timer(interval: 0.1, runOnce: true):

         ChangeSize(width: originalSize, height: originalSize)

 Counter Actor:

   Attributes:

     position: (400, 100)

     size: (200, 50)

     image: ""

     scoreText: "0" (custom text)

   Rule "Update Score Display" (always active):

     →

       ChangeAttribute(target: self.scoreText,

              value: "Score: " + precision(game.score, 0))

   DisplayText(text: self.scoreText, font: "Arial", size: 24,

         color: (1,1,1,1), alignment: center)

 ClickPopup Actor:

   Attributes:

     position: (0, 0) // Set by spawner

     size: (60, 30)

     image: ""

     popupText: "+1" (custom text)

     alpha: 1.0 (custom real)

   Rule "Setup Popup Text" (runOnce: true):

     →

       ChangeAttribute(target: self.popupText,

              value: "+" + precision(game.cookieClickValue, 0))

   DisplayText(text: self.popupText, font: "Arial", size: 18,

         color: (1,1,0,1), alignment: center)

   MoveTo(position: (self.position.x, self.position.y + 50),

       speed: 30, runToCompletion: true)

   Interpolate(target: self.color.alpha, finalValue: 0,

         duration: 1.5, easing: ease_out, runToCompletion: true)

   Timer(interval: 1.5, runOnce: true):

     Destroy()


This implementation provides a complete cookie clicker with satisfying visual and audio feedback, real-time

 score updates, and animated popup effects that communicate the value gained from each click.

===

This is in Claude 4 Opus, so it would be expensive for us to share this now. Next is to try these inputs on cheaper versions of Claude an other LLMs as well as figuring out how to bake in the fine-tuning so we don't eat up the context window.

Comments

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,365

    Okay, I have a test bot up and running. DM me for the link (I don't want to post it and rack up an AI bill from random usage).

  • pinkio75pinkio75 Member, PRO Posts: 1,224

    So if I understand correctly… are we actually heading toward AI Claude 4.5 sonnet integration in GameSalad? 😮

    Basically an LLM that can generate actors, rules, and behaviors just from a natural language prompt like “make a cookie clicker game”?

    If you can make that stable and affordable, it would be a huge game-changer for indie developers.

    Can’t wait to see a real “AI copilot” inside the editor!

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,365

    So the bot is actually based on Gemini (I used Claude to help write the documentation for the bot and test it). It was just easier to deploy what I needed on Gemini, though I may go back and look into a Claude version at some point. And yes, that's the end goal, but for now it's more like helper copilot. My idea would be to have it open in the tool and it generates the actors, behaviors, and attributes into the projects. Then because GameSalad has a good UI, you an continue working the project easier that if you were doing this all through code.

  • pinkio75pinkio75 Member, PRO Posts: 1,224
    edited October 2025

    Try Sonnet 4.5 is better than Opus 4!

    Imagine this: you type “Make me a game” and in seconds, it’s real. That’s the future of creation.

  • ArmellineArmelline Member, PRO Posts: 5,497

    *cries in freelance GameSalad dev* 😂

  • Tumblecoin Game StudiosTumblecoin Game Studios Member, PRO Posts: 39

    This is amazing! Is there anyway to test it with a prompt for a Match Three game? I currently have a project, but had some hard time with the following:

    1. Reverse a movement in case there is no valid match. (Right now the item moves and switch to the new box, but do not reverse)

    and

    2. Detection of matches (and consecutive matches) on a "grid" (For now it works, but Its to slow, player needs to wait for 1-2 seconds (per match) and couldn't figure out an animation movement, only image change to the new box, although, elements mimics the creation of new items on the top).

    But this "bot" looks awesome!

  • CasualEvolutionCasualEvolution Member Posts: 560

    Hi @adent42

    I'm curious about how far you ended up taking it. I've been thinking quite a bit lately about whether AI could become genuinely useful for working on real GameSalad projects.

    A few things I'd love to know:

    1. Did you make any further progress with the experiment since that thread?
    2. How were you imagining the AI actually working with GameSalad? Would the LLM access and modify the project files externally, or do you think it could eventually operate GameSalad itself through the editor UI? With current computer-use agents, that second option seems increasingly realistic.
    3. Was the main idea to help create a project from scratch, or did you also test having the AI work on an existing, reasonably complex project? For me that is probably the most interesting case: letting it inspect how a project is already structured, understand actors, attributes and behaviors, and then continue developing or modifying it without rebuilding everything from scratch.
    4. Is there currently any documentation, system prompt, skill, knowledge package, or similar resource that could be given to an LLM so it understands GameSalad in a more complete and controlled way? Something beyond simply feeding it pieces of documentation manually.
    5. Have you considered an MCP for GameSalad? For example, exposing structured tools that let an AI inspect the project, query actors/attributes/behaviors, create or modify them, and perhaps run or test the game. It feels like that could be a much more reliable interface for an AI than manipulating project files directly or trying to operate the UI visually.

    I'm asking because I'm considering experimenting with this seriously on one of my existing GameSalad projects, so I'm particularly interested in what is already possible today and what direction you think makes the most sense.

    Thanks!

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,365
    edited September 16

    It's already out in the wild, @CasualEvolution Check out https://creator.gamesalad.com and you'll see it there!

    We've got it running Gemini 3.6 flash at the moment and are about to move it to GLM 5.3 Flash as default with option to switch to Gemini or Claude once we work in a monetary credit system instead of a token based system.

    The system has a rather large default prompt with the basics of GameSalad as an engine and a version of PGF called PGFScript for it to reason about. Creator translates between pgfscript and pgf json for the LLM (because LLMs can reason better about code than they can about json).

    It can both reason about GameSalad games and create them from scratch (my go-to test prompt is "I want to make super mario bros.)" We are keeping image gen AI out of it because there are still just enough ethical questions around it that I'd rather just leave that to the users.

    We do indeed intend to create an MPC with the same base prompts and built in PGF Json <-> PGFScript transpiler so that you can work directly with the server based gameproj. We'll likely do something similar for the new desktop version too. We'll likely make both a Pro only feature.

  • lukejnrlukejnr Member, BASIC Posts: 64

    "Have you considered an MCP for GameSalad"

    I would second this motion, being able to have a MCP like Unity and allow the use of Claude Code, or Codex, etc would be very useful indeed.

  • CasualEvolutionCasualEvolution Member Posts: 560

    HI @adent42 , I honestly didn't realize you had already implemented this.

    I don't use the online Creator at the moment. I'm still on the old Mac desktop version, which I know I probably should have abandoned a long time ago :) Maybe I'll finally make the jump once I finish this project and start a new one, but for now I'm still working with the old editor.

    One thing I found especially interesting is PGFScript. If that format is easier for LLMs to understand, I think it could also be useful to expose it to users directly. It would be great to have the option to work in that format when desired, and move back and forth between the visual UI and the script representation.

    I also think having relatively open access for LLMs could be very important. Just my opinion, of course, but opening the platform a bit more could make it much easier for people to experiment with it, bring in new users, and maybe even help GameSalad get back to some of its golden days haha.

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,365

    @CasualEvolution it's something I'm considering for Pro access. The reason I'm hesitant is that PGFScript is basically the json/xml in a more code like format. so it won't let you "program" the game like you're expecting (i.e. expressions are still pgf lua strings with a subset of functions and not fully interpreted or programmable).

    I have some plans to expose coding in the engine though (a script behavior and script condition). Once I get those in, then PGFScript may actually be a "useful" thing to expose to people.

    So keep an eye out, but for now I'm concentrated on getting the new engine out the door first!

  • CasualEvolutionCasualEvolution Member Posts: 560

    @adent42 Got it, that makes sense.

    The script behavior and script condition sound very interesting, and I can see why PGFScript would become much more useful once those are in place.

    For now I'll keep an eye on how the new engine develops. Thanks for taking the time to explain all this!

  • EthanTechEthanTech Member Posts: 3

    Wow, this is impressive! 🎉 The cookie clicker demo shows that the LLM can already generate actors, rules, and feedback loops in a way that feels very “GameSalad native.” The popup fade and score tracking are exactly the kind of polish indie devs love.

    If you can get this running on a cheaper model and bake in fine‑tuning so prompts don’t eat the context window, it really could evolve into a true AI copilot inside the editor. That would be a huge boost for rapid prototyping and teaching newcomers. Excited to see where this goes next!

Sign In or Register to comment.