AI agent kits that actually ship your game jam game. Rules + roles for Cursor, Claude Code, Codex & Copilot. Godot 4 · Phaser · Roblox. Free Godot rules ↓
Godot tip if an agent writes your code:
It spawns a coin or disables a hitbox right inside body_entered. Godot errors: "Can't change this state while flushing queries."
Defer it:
add_child.call_deferred(coin)
shape.set_deferred("disabled", true)
@hakurukai quickest way to see it alive: export it as .glb with the walk as an action. Godot 4 imports the skeleton and animations straight into an AnimationPlayer, so it can be walking around a test scene in a few minutes
@c_rastrelly if the whip should hit everything in the lane (Arknights style), use a ShapeCast2D along it instead of a RayCast2D: force_shapecast_update(), then loop get_collision_count() / get_collider(i). a raycast only returns the first enemy
@gitsouv for game projects: "after every change, run godot --headless --quit-after 300 and fix every error in the output before saying done." agents love saying a scene works without ever loading it. this makes them actually check
Godot tip if an agent writes your code:
It sometimes moves a CharacterBody2D in _process. Fine at 60 Hz, jittery on a 144 Hz screen.
Movement and move_and_slide() go in _physics_process. Then turn on Physics > Common > Physics Interpolation.
@MatasRezinovsk1 that coat fall reads great. for the speed mismatch: Aseprite frame durations don't survive a plain sheet export, so give every direction the same FPS in SpriteFrames (or per-frame duration). then N/E/S/W stay in sync
@TheAgencyMGE looks fun! jam tip for the web build: browsers only allow mouse capture after a click, so setting MOUSE_MODE_CAPTURED in _ready does nothing on itchio. add a "click to play" screen that captures the mouse on that click
@PrabhjotSL love this. if you haven't yet, set mouse_passthrough_polygon to the monster's outline and update it as they move. then clicks on empty space go to the desktop and only the monsters themselves are clickable
@TomLyonsLF for "beside" a bounding box rule works well: same floor height, AABBs don't overlap, and the gap on one axis is under some max distance. the agent gets a pass/fail it can check instead of guessing what beside looks like
@naufaldi for the sword I'd skip skinning it into the rig at all: keep it a separate mesh and parent it to a BoneAttachment3D on the hand bone in Godot. joint count stops mattering for props, and you can nudge the grip offset without re-exporting
@SilasBazar give the bot its own RandomNumberGenerator (not the global seed()), print rng.seed at the start of every run, and pass it back with godot --headless -- --seed=1234 via OS.get_cmdline_user_args(). particles won't advance that one, so the same seed should hit the same snag
@iisafosh@loadoutprotocol nice jam entry. for idle fleets that keep earning offline, stash Time.get_unix_time_from_system() when the player leaves and credit (now - then) * rate on load. then the fleet works even if Godot wasn't running
@Fasil5255 that tracks with what i see in jams. one short rules file + one agent that actually plays the build beats 49 roles and 29 docs. keep the process light for 30 days: https://t.co/9KZueJP7Jy
@masamunecode the project-wide filter tip is the one agents keep undoing. pin rendering/textures/canvas_textures/default_texture_filter = Nearest (and an integer stretch) in CLAUDE.md so a later "fix the blur" pass can't flip it back to linear
@detectivegamzee 3 hours to 80% is the easy part. for the last polish, have the agent open Studio and walk a fixed checklist after every UI change: open menu, buy one upgrade, die once. tests that only check ModuleScripts miss the blank screens
Godot jam tip if an agent writes your code:
It loves await get_tree().create_timer(2.0).timeout for cooldowns and spawns.
That timer keeps running while the game is paused. Pass false as the 2nd argument, or use a Timer node.
@saschkaunseld@claudeai the menu bar app doesn't even need the editor open: godot --path /your/project runs the main scene straight away, and --debug-collisions shows the hitboxes. on mac the binary is https://t.co/MgWk12qkmn