Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
[0.1.0] - 

Do squirrels dream of electric nutshells? - 2026-09-10¶
Added¶
- Nutshell now has complete distribution packaging functionalities builtin! You can now bundle your game as a single archive, or even compile it into a standalone executable for easy distribution.
Fixed¶
- Engine
- Release VMs resources on shutdown
Audio- Avoid sound effect leak
ImGui- Do not let Dear ImGui take over cursor management by default
Window- Check if a window is already a parent of another when trying to set parenting
- Avoid window leak if parenting fails
Changed¶
- Engine
- Extract libraries to application cache directory
[0.1.0-beta.3] - 2026-09-05¶
Added¶
- Nutshell now has basic Dear ImGui bindings! You can easily create your
user interfaces through the
ImGuiclass. - Nutshell now exposes a public API for native plugins. Native plugins can therefore enqueue draw images or text commands into current rendering pass and load images or font assets.
Image- Added support to render images to arbitrary quads
Changed¶
Image- Switched to image entry pointers
Font- Switched to reference count entries
- Render
- Expose
FontandFontDrawOptions
- Expose
- SDL
- Upgraded SDL to 3.4.16
- Upgraded SDL Image to 3.4.6
[0.1.0-beta.2] - 2026-08-15¶
Added¶
- Nutshell now supports native plugins. If you felt limited by its capabilities, you can now extend them without sacrificing its scripting level simplicity!
- Nutshell now has internal sprite batching, combining multiple images that share the same texture and style into a single drawing step, making rendering much faster and smoother.
Input- Added support for terminal input
Image- Added support for batch rendering
SpriteBatch- New class to manage a collection of batched sprites
- Documentation
- Advanced sections about rendering performance, native plugins and terminal input
- Tutorials
- Added Pumpkin Push tutorial port
Changed¶
- Documentation
- Moved Advanced usage into an Advanced section next to the new native plugins page
- All examples scripts have been formatted
- Go
- Upgraded Go to 1.26.6
- SDL
- Upgraded SDL to 3.4.14
[0.1.0-beta.1] - 2026-07-19¶
Added¶
- A
miniNutshell version is now available. It only supports core file formats, and has no complex text layout, but is ready to go for game jams! Audio- BGM properties can be updated on the fly
- Stopped BGM can now be restarted
Canvas- Fill / Stroke rectangles with rounded corners
Font- Font derivation
- String truncation
- Automatic string coercion for
draw()andmeasure()parameters
Input- Allow gamepad updates while application is in the background
- Loading gamepad mappings from file
Systemresolve_path()resource path resolution helper- Access to project's root directory property
Fixed¶
Input- Limit example to 8 players
- SDL
- Unconditionally unload SDL libraries on startup / load failures
Changed¶
- A specific script other than
main.nutcan now be targeted as entry point with Nutshell CLI - Examples' music files have been converted to Ogg Vorbis format to make them
compliant with new
miniNutshell version
[0.1.0-alpha.3] - 2026-07-07¶
Added¶
Color- New class to represent RGBA colors
- Colors can now be represented as:
Colorinstances:Color(255, 0, 0)or named colors likeColor.Red- Named tables:
{ r=255, g=0, b=0, a=255 } - Flat arrays:
[255, 0, 0]or[255, 0, 0, 128] - Hex strings:
"#FF0000"or"#FF000080" - Hex integers:
0xFF0000or0xFF000080
Input- Gamepad & Joystick
- Joystick support
- Gamepad battery, connectivity, sensors, touchpad, trackball, types, rumble and LED support
- Gamepad button aliases and labels
- SDL Mapping string support
- Specific demo
- Gamepad & Joystick
Fixed¶
Input- Gamepad & Joystick
- Added missing gamepad buttons
- Gamepad & Joystick
Changed¶
Input- Implemented better input manager
- Reworked SDL from/to generic mappings
- Updated demo for joystick support
- SDL
- Upgraded SDL to 3.4.12
[0.1.0-alpha.2] - 2026-06-28¶
Added¶
Audio- Enable position option for sound effects
- Examples
Canvas- Examples
Font- Bitstream Vera Sans is now the default embedded font
- Fonts can now be loaded from their font aliases
- Examples
Image- Examples
Input- Expose keyboard, gamepad buttons and axis supported count to script engine
Input.keychar_to_keyandInput.key_to_keycharfunctions- Examples
System- Enable to request specific ID when spawning a VM
- Examples
Window- Examples
- Licenses
- Add third party license attribution
- Bundle licenses into distribution packages
- Documentation
- Primary and emoji fonts handling
- Keyboard layout
- Gamepad handling
Fixed¶
Window- Destroy created windows for failed spawned VMs
- Implemented window closing lifecycle rules
- Avoid rendering hidden windows
- Better handling of child popups/tooltips window closing
- Linux build
- Don't link to JBIG host's library to keep the SDL libaries portable
- Windows build
- Enable GME file format
- Linux and Windows builds
- Enable ANI file formats
Changed¶
Fontpathis not required anymore in theFontconstructor
Image- Allow single-axis stretching
Input- Switched to layout-agnostic scancode input tracking
- SDL
- Upgraded SDL to 3.4.10
- Upgraded SDL_Mixer to 3.2.4
[0.1.0-alpha.1] - 2026-06-14¶
🚀 Initial release