Skip to content

v4.1.0

Compare
Choose a tag to compare
@chrismaltby chrismaltby released this 02 Sep 17:22
· 399 commits to develop since this release

GB Studio is a quick and easy to use drag and drop retro game creator for your favourite handheld video game system.

[4.1.0] - 2024-09-02

Added

  • Add ability to create reusable actor and trigger "prefabs"
  • Add ability to set reusable "preset" values on "Display Dialogue" and "Launch Projectile" events
  • Add "Draw Text" event allowing drawing text directly to background or overlay (based on "Display Background Text" plugin by @pau-tomas)
  • Add "Set Overlay Scanline Cutoff" event allowing you to show overlays at the top of the screen
  • Add "Close Non-Modal Dialogue" event, required if using "Close When" -> "Never" option in updated "Display Dialogue" event.
  • Add "Mute Channel" event allowing control over which music channels are active or muted (based on "Mute Channel" plugin by @pau-tomas)
  • Add "Set Dialogue Frame" event allowing the dialogue frame image to be dynamically replaced with any 24px x 24px tileset (based on "Set Dialogue Frame" plugin by @pau-tomas)
  • Tilesets asset folder added to all sample projects @pau-tomas
  • Add _stackPushVariable(variable) and _isIndirectVariable(variable) helpers for use in plugins
  • Add "View Script Uses" feature accessible from the script context menu, allowing you to see all places where a script has been used in your project
  • Add ability to change compiler optimisation settings in Build Options section on Settings page @patrickmollohan
  • Add event "Set Actor Collision Bounding Box" to modify collision shape
  • Add event "Set Text Sound Effect" to set a sound effect to play as each dialogue text character is displayed
  • When deleting scripts, you are now given the option to also delete all "Call Script" events that reference the script
  • Add ROM usage monitor to Build Log showing how much free space is available before the next ROM size increase @pau-tomas
  • Add "Print Using GB Printer" event to send either the current Background or Overlay to a connected GB Printer. Game must be run on real hardware with a printer connected for this feature to work (based on "Print Screen Background" plugin by @pau-tomas)
  • Add "Set Camera Property" event for changing camera deadzone and offset values
  • Add "Actor Effects" event for playing effect animations on actors (based on "Actor FX" plugin by @pau-tomas)
  • Add "Thread Start" and "Stop Thread" events allowing running scripts in the background.

Changed

  • Changed project file structure. The .gbsproj file will now contain very little information, instead each scene, actor, trigger, etc is individually stored in a .gbsres file in a projects/ folder allowing for better support for version control + working in teams. Migration is automatic on first save after loading a project
  • Update to latest GBVM
  • Optimise subpixel calculations in Actor and Camera Move events by using bitwise shifting rather than multiplication/division
  • Updated Polish localisation. @ReptiIe
  • Updated Japanese localisation. @tomo666
  • Updated French localisation. @Pomdap
  • Updated Spanish localisation. @doomer6699
  • Only the inbuilt scene types that were actually used in your game are now compiled, improving build time if only some scene types were used
  • Improve build cancelling: Stops spawned processes immediately rather than waiting for in progress processes to complete
  • Changing the engine field in a "Store Engine Field In Variable" event no longer resets the variable
  • Build time now shown in seconds when < 60s and minutes+seconds when >= 60s
  • Update Scene Pop events to allow setting Fade Speed as "Instant" @pau-tomas
  • "Launch Projectile" event fields organised into multiple tabs
  • Update "Display Dialogue" event to include tabs with additional layout and behavior options (based on "Display Advanced Dialogue" plugin by @pau-tomas)
  • Update "Set Sprite Palettes" event to allow restoring default palettes

Fixed

  • Fix localisation of collision mask input field
  • Fix issue where using variables used within Not, Rnd(), Abs(), etc. in scripts were not being listed as parameters
  • Fix Variable Uses list to include variables used in script value calculations
  • Fix tilemap generation when number of unique tiles is above limits to match behaviour in v3.x
  • Fix issue where custom movement speed input would become focused unnecessarily
  • Fix issue causing broken rom header when project name contained no ascii characters
  • Fix issue where sound effect preview button would sometimes not cause sound effect to play
  • Fix issue where using reusing a script that would launch projectiles across multiple scenes could cause the wrong projectile to be launched
  • Fix issue where passing values from one script to another wouldn't correctly pass by reference
  • Fix issue where using parameters from one script while calling another wouldn't register the parameter in the parent script correctly
  • Fix issue where modified player flags were not being reset when changing scenes
  • Fix issue where "If Actor At Position" wasn't rounding to chosen units before comparing causing condition to fail when between tiles
  • Fix issue where resetting palettes back to defaults from a script used in multiple scenes may not load the correct palettes
  • Fix issue where timers were not suspending when executing modal dialogues and menus
  • Fix issue where using "Start Actor's 'On Update' script" could change sprite draw order