LLM Testing
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
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).
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!
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.
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.
*cries in freelance GameSalad dev* 😂
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!
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:
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!
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.
"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.
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.
@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!
@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!
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!