You can now add new character appearances (sprites) right from within the editor, and there's a brand-new "Rewind All" button that takes your simulation straight back to the very beginning with one click. We also added a "Discard Unsaved Changes" option so you can undo all your edits since the last save, and a confirmation step before logging out so you don't lose your work by accident. Plus, a bunch of bug fixes!
- Add new appearances (sprites) directly in the editor with automatic naming (#97)
- "Rewind All" button in stage controls that jumps straight to the beginning of the simulation (#106)
- "Discard Unsaved Changes" option to revert the editor back to the last saved state (#96)
- Confirmation dialog before logging out to prevent accidental logouts (#102)
- When creating a rule condition with an actor selected on stage, the recording now opens with the full world as context — useful for seeing surrounding actors like roads and walls (#101)
- Home page tagline updated to "video game construction set for ages 6 and up" — no age ceiling, since Codako is great for older students and teachers too (#103)
- Removed unused initial game state save/restore code — the UI for it had already been removed (#107)
- Deleting a game now immediately removes it from your games list (#105)
- Pressing Escape or using browser controls to exit fullscreen now correctly returns to the home/navigation view (#104)
- Rule thumbnails in the rules panel now show characters in the correct front-to-back order (#98)
- Ignored square tool now returns to the pointer tool after placing a square, and works correctly on the "before" side of a recording (#100)
- Chrome occasionally triggering unwanted side panels when dragging recording extent handles (#99)
The stage now fills all available space in the editor and automatically zooms to fit — no more tiny stage surrounded by empty grey! We also added a "rewind" button so you can play your game backwards, and fixed a bunch of crashes that could happen when deleting characters while recording rules. Password reset by email is now working too.
- Stage now fills all available editor space and auto-zooms to fit, just like the player view
- Rewind button in stage controls — hold it to play your game in reverse, step-by-step through history (#87)
- History is now stored as compact diffs instead of full snapshots, allowing up to 500 steps of undo (~96% smaller memory footprint) (#87)
- Create-character tool on the toolbar — click anywhere on the stage to place a brand new character (#83)
- Password reset via email — "Forgot your password?" link on the login page (#90)
- Show/hide password toggle button on login, join, and reset password pages (#92)
- AI sprite editing moved into a modal for a cleaner look
- Library "+" button now directly creates a new character; "More" menu contains Explore Characters and Set Character Order (#78)
- "Add" buttons in the Rules/Variables sidebar now use "+" icons for consistency (#86)
- TickClock moved to the right of the Forward button in stage controls (#82)
- Key Pressed conditions now default to "=" comparator instead of "contains" (#80)
- Crash when deleting a character while a recording was in progress for that character (#0460a97, #3c03fff)
- Selected actors for a deleted character remaining selected when viewing a different character (#e87c5b6)
- Stage crashes (undefined actor) after undo/redo or character deletion (#26b6db1)
- Drag-selection box appearing beneath actors on stage — now renders on top (#81)
- Transformed multi-cell actors becoming unclickable (#88)
- Actor transform: conditions like "rotation = 0" now match actors with no rotation set (#94)
- Saving failing silently when localStorage is full — now shows a console warning (#4aad333)
- Duplicate "Back to login" link on the password reset success page (#95)
- Password reset emails not sending due to missing AWS region (#91)
- Password reset email button showing white text on white background in some email clients (#93)
Games are now much better on iPads and phones! You'll see on-screen arrow keys and buttons so you can play games that use keyboard controls even without a real keyboard. There's also a prompt to go fullscreen so you have more room to build. We added AI-powered image editing for sprites, fixed some tricky bugs, and tidied up the stage settings.
- On-screen touch keyboard for mobile and tablet devices — games with key press rules now show tap-friendly buttons so you can play on iPad (#75)
- Fullscreen mode prompt on touch devices to maximize workspace in the editor and player (#72)
- AI-powered sprite image editing via
gpt-image-1in the appearance editor (#70) - Prominent "Add Stage" placeholder card in the stage list, making it easier to discover how to add new stages (#71)
- Stage toolbar button renamed to "Stage Settings" for clarity (#71)
- reCAPTCHA badge hidden on editor and play pages to avoid overlapping controls (#77)
- Actor disambiguation dropdown showing wrong options when clicking non-anchor squares of multi-square actors (#76)
- Player view sometimes loading stale data when a draft save was still in progress (#74)
- Game clock not advancing when no rules fire during a tick (#73)
- Build errors (#d2e3a78)
You can now control which characters appear in front of or behind other characters! Use the new "Set Character Order" option in the Library panel to drag and drop characters into the order you want. When characters overlap on the stage, clicking once selects the one on top, and clicking again lets you pick from all the characters stacked there.
- Character z-order system for controlling which characters draw in front of others on the stage
- "Set Character Order" modal in the Library panel's + menu for drag-and-drop layer reordering
- Smarter actor selection: clicking overlapping actors selects the topmost one first, with a second click showing a popover to pick from all overlapping actors
- Character order modal displays top-of-list as drawn on top (most intuitive ordering)
- Library panel now lists characters in z-order
- Screenshots and stage rendering respect character z-order
- Select-all not working immediately after opening the paint modal
We made it easier to work on your games with a new "Save & Exit" feature that lets you save drafts and exit without losing work. You can now turn rules on and off by clicking the colored circle next to each rule - great for testing how your game works! There's also a cool new spinning clock that shows when your game is running. We fixed some annoying bugs too, like characters disappearing when you edit them and the game freezing when you delete variables.
- Save & Exit with draft support - save your work and exit, or exit without saving. Your draft is preserved if you reload the page (#52)
- Enable/disable rules by clicking the traffic light circle - disabled rules are skipped during simulation and show a diagonal slash on hover (#54)
- TickClock visual indicator that spins during playback, steps on Forward click, and shows tick count on hover (#55)
- Drag-and-drop actors directly into actor-type variable boxes (#47)
- Custom sprite dragging system that shows all selected sprites during multi-drag, displays transforms correctly on all browsers, and works outside stage boundaries (#62)
- Keyboard input now works when game is paused - hold a key and click Forward to test key-triggered rules (#60)
- Pixel canvas uses pointer capture for smoother drawing, fixing offset issues in scroll containers (#57)
- Rules list drop zone extends to fill the panel, making it easier to drop rules at the end (#56)
- Variable panel shows placeholder ("—") when multiple actors with different values are selected (#59)
- Converted store provider and undo-redo utilities to TypeScript (#51)
- System freeze when deleting variables used in rules - now shows a warning dialog listing affected rules with option to delete anyway (#50)
- Disappearing character bug when anchor square was outside trimmed image bounds - anchor now auto-adjusts when saving (#49)
- Actor selection popover layout for rotated/flipped actors with non-zero anchor points (#58)
- Selected pixels disappearing when using canvas expand/shrink - selection is now flattened first (#53)
- Worlds list not refreshing after deleting a game (#48)
We added email notifications! Now when someone remixes your game, you'll get an email letting you know. You can also opt in to weekly summaries showing how many people played your games. We also made it so game creators can choose when to share their games on the Explore page, and added a "camera follow" feature that keeps your character in view when moving around large stages.
- Email notification system with AWS SES and Handlebars templates
- Fork notifications: game owners receive an email when someone remixes their game
- Weekly play summary emails showing engagement metrics
- Periodic task scheduler for scheduled email delivery
- User notification settings (stored as JSONB) to control email preferences
- Published flag for games: only published games appear on Explore page
- Camera follow feature: stages can track and center on a specific actor during playback
- Actor X/Y position exposed as magic variables for use in rule conditions and actions
- CAPTCHA verification on user registration
- Tutorial audio updated with child-friendly voice (ElevenLabs)
- Replaced SendGrid with AWS SES for email delivery
- Improved cold start reliability by awaiting TypeORM initialization (#46)
- Staging environment API calls incorrectly routing to production backend
We converted lots of code to TypeScript to make it easier to catch bugs, and fixed some visual glitches in the appearance editor. You'll also notice the rule inspector now shows you exactly which conditions are passing or failing when you test your rules.
- Changelog page that renders this file directly from GitHub (#43)
- Changelog generator command for keeping this file up to date (#44)
- Converted appearance editor, toolbar, and many page components to TypeScript (#29, #30, #31, #32, #33)
- Refactored buildNamingPayload to top-level function with helpers (#37)
- Added typed useAppSelector and useEditorSelector hooks (#36)
- Hide condition status circles when rule has not been evaluated (#35)
- Appearance editor canvas pixel alignment bugs (#34)
- Build and backend test issues
We added a testing framework so we can catch bugs before you see them! We also fixed a bunch of small issues - like the color palette being hard to click, and rotated characters looking weird when you drag them.
- Mocha unit test framework and initial test suite (#11)
- Backend test infrastructure with mocha, chai, and supertest (#24)
- Tests for users and characters API routes (#25)
- World-operator integration tests for game simulation (#26)
- World-operator and world-lifecycle Claude Code skills (#19, #21)
- CLAUDE.md for Claude Code guidance (#10)
- Support non-square canvas sizes for AI sprite generation (#14)
- Upgraded TypeORM to 0.3.28 (#23)
- Color palette always clickable now (#13)
- Garbled drag image for rotated/flipped actors (#16)
- Rule and appearance tools reset properly on background click (#17)
- Delete tool now respects multi-selection (#12)
- Various edge cases and potential bugs (#15)
You can now control how animations play - choose between smooth movement, step-by-step, or instant!
- Animation control for actions: linear, single step, or skip modes
We improved how characters turn and face different directions. You can also now see and control individual animation frames for your characters.
- Visualize and disable individual animation frames
- Less than (<) and greater than (>) comparators for number conditions
- Direction is now a "turn" action that's easier to understand and use
We made playback mode smarter - it now pauses when you switch tools and prevents accidental changes to your game while it's running.
- Playback pauses automatically when switching out of pointer mode
- Stage prevents dragging actors during playback
- Clicking a character in recording mode now selects its variables automatically
- Multiple edits to the same variable create a single rule action
- Zoomed out stages now handle drag boxes, outlines, and cursors correctly
- Appearance comparisons work correctly with string comparators
Big update! You can now select multiple actors at once by drawing a box around them, and drag them all together. We also added AI-powered automatic naming for your rules, so you don't have to think of names yourself.
- Multi-actor selection with drag box on stage
- Multi-actor drag, move, and delete support
- AI auto-naming for rules (#9)
- Custom mouse cursors that center properly on click points
- New "direction" system with all transform options
- Rule icons updated from camera to before/after style
- Deleting a character that is referenced in rules
- Half-pixel positioning in pixel canvas
- Various Sentry-reported errors
Bug fix week! We squashed several issues with rule conditions and character appearances.
- Rule conditions expecting the wrong actor
- Editing the second appearance of a character
- Various Sentry-reported issues
You can now see your character's variables right on the sprite while you play! We also added a staging environment so we can test big changes before releasing them to everyone.
- Sprite variable overlay - see variable values on actors during play (#8)
- Read and write appearance names within the appearance editor
- Staging environment for testing larger changes
- Arbitrary conditions on rule containers using globals for key presses and clicks
- IDs now include data type prefixes for easier debugging
- Character and appearance both get named in the paint modal
Small fixes this week for the "ignore square" tool and some behind-the-scenes error tracking.
- "Ignore square" tool clears properly when canceling recording mode
- Ignored squares render correctly in production
Lots of new tools this week! You can now use a stamp tool to quickly copy characters and rules, and a trash tool to delete conditions and actions. We also made labels easier to edit with a single click.
- Stamp tool for copying characters, appearances, and rules
- Option-drag to duplicate rules within a character
- Trash tool for deleting actions and conditions from rules
- Default appearance condition added to new rules automatically
- Sentry error tracking for catching bugs
- GitHub Action for automatic deployment to Fly.io
- Labels now edit with single-click instead of double-click
- Muted background option and sprite renaming (#7)
- Cut/copy/paste now works in text fields
- Moving actors created within a rule
- Stamp tool cancels properly on first click
- Empty labels maintain their height
- History navigation ("back" button) skips frames with no changes
- Various crashes and Sentry-reported errors
Variables got a big upgrade! You can now use text (not just numbers) for variable values, and compare them in more ways. We also added background removal for sprites so you can paste images from anywhere.
- String variable values - variables can now hold text, not just numbers
- Expanded comparators for variable conditions
- Background removal for sprites (#6)
- Scaled rendering for larger stages
- Left and right sides of rule actions are now identical and replaceable
- Removed instructional screen when starting a recording (faster workflow)
- Data migrations for backwards compatibility with old saves
- Old saves not loading due to
flip-xytransform issue - Graceful handling when rule scenarios match but no empty squares available
You can now create bigger characters that take up more than one square! We also made it easier to select actors with a single click, and the drawing canvas now trims empty space automatically.
- Support for larger sprites that span multiple tiles (#5)
- Single click to select actors on stage
- Large sprite support in stage screenshots
- Canvas automatically trims empty rows/columns when saving
- Expanded color picker with "clear" color option and pen sizes
- Scroll bar now allows full canvas scrolling when zoomed
- Stamping no longer creates overlapping actors for multi-tile sprites
- Drag and drop sprite orientation
Animations are smoother now! When your game runs, you'll see characters move from square to square instead of just jumping.
- Animated tick frames - characters smoothly move between positions
We made Codako work better on iPads, and improved the stamp tool so you can see which character you're about to place.
- iPad support with mobile-specific styling and viewport settings
- Stamp tool cursor shows the character you picked up
- Direct editing of rule actions (removed "prefs" menu)
- Converted recording components to TypeScript
- Relative position issues in rules
- Stamp and trash tools now return to pointer mode after use
- Initial public release of Codako
- Programming by demonstration interface for creating games
- 2D grid-based stage system
- Character and actor system with sprites
- Rule-based simulation engine
- Explore page for discovering public games
- User profiles and authentication
- Fork/remix functionality for games