Skip to content

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-beta.1] - 2026-07-19

Added

  • A mini Nutshell 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() and measure() parameters
  • Input
    • Allow gamepad updates while application is in the background
    • Loading gamepad mappings from file
  • System
    • resolve_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.nut can 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 mini Nutshell version

[0.1.0-alpha.3] - 2026-07-07

Added

  • Color
    • New class to represent RGBA colors
    • Colors can now be represented as:
      • Color instances: Color(255, 0, 0) or named colors like Color.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: 0xFF0000 or 0xFF000080
  • 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

Fixed

  • Input
    • Gamepad & Joystick
      • Added missing gamepad buttons

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_key and Input.key_to_keychar functions
    • 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

  • Font
    • path is not required anymore in the Font constructor
  • 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