Skip to content

Releases: JujuAdams/Scribble

Bug Squashing

22 Mar 16:15
42cc9a6
Compare
Choose a tag to compare

This is a smaller release to fix some bugs.

Fixes:

  1. #38 - Now throwing an (informative!) error when a spritefont's source sprite is set to Separate Texture Page
  2. #42 - Removes call to irandom() when using sound effects with autotype
  3. #43 - Words that exceed the width of the textbox are now wrapped properly
  4. #45 - Fixes issues with text element timers being incorrectly set in a few places

Pages And Pages Of Text

08 Mar 16:38
Compare
Choose a tag to compare

Scribble now supports pages within text elements!

This release also fixes some bugs and adds some small features that the Scribble community have recently raised:

  • Vertical alignment for text is now more logical
  • Horizontal alignment is more reliable
  • Formatting tags can be escaped by doubling the first open bracket e.g. [[tag],
  • The UK spelling for colour is now accepted as a macro rather than a native Scribble function
  • scribble_autotype_get() returns 1 when no fade type is set
  • Fixed a bunch of bugs with manual cache flushing
  • Fixes autotype sound effects and events not firing if autotype had been reset

 

New major feature! Pages!

A lot of the time when dealing with text-heavy games you end up spending your time doing things that the game should be doing for you. Scribble has always supported text wrapping to avoid having to manually insert line breaks, but this new update introduces automatic page breaks as well.

Automatic page breaks are useful for lots of situations - when dealing with localised text where you don't know how many extra words will be needed, textboxes that might not always be the same size due to different device sizes, simplifying your writing process to totally remove needing to check where to split up text to fit into textboxes.

Scribble offers a few new functions to display pages. Firstly, you can set the current page for your text element with scribble_page_set() and you can get the current page with scribble_page_get(). You can get the total number of pages for a text element using scribble_page_count(). Additionally, scribble_page_on_last() has been added to make it easier to detect when you're on the last page.

Pages can be created two ways. Most people will want to let Scribble handle page breaks automatically: scribble_draw_set_wrap() now has a maxLineHeight optional argument. This is used to specify the maximum height of the textbox. Any text that would be drawn outside the textbox is instead pushed onto a new page. For those looking for a little more control, the text formatting command [/page] can be used to manually create a new page. Manual page breaks with [/page] are useful when localising to help language feel more natural.

If you're not interested in page breaks, that's fine! All the current features will work the same way with no extra changes required. The only exception is for people using the characterWrap feature for scribble_draw_set_wrap() - you'll need to allow for the inclusion of the new maximum height argument. A change such as scribble_draw_set_wrap(-1, 300, true) ---> scribble_draw_set_wrap(-1, 300, -1, true) will fix any wrapping issues you might have.

 

How do I import Scribble into my game?

GameMaker Studio 2.2.3 allows you to import assets (including scripts and shaders) directly into your project via the "Local Package" system. From the resources below, download the .yymp file. In the GameMaker IDE, load up your project and click on "Tools" on the main window toolbar. Select "Import Local Package" from the drop-down menu then import all scripts and shaders from the Scribble package. Now you're all set up to use Scribble!

 

A E I O U

11 Feb 19:17
Compare
Choose a tag to compare

Scribble now supports voice snippets!

 

scribble_autotype_set_sound() allows you to define an array of vocal sounds to play as a text element is revealed using the autotype effect. So long as text is being revealed, a sound is picked at random from the array and played. If the text is paused for any reason, sound playback stops and will start again as text is revealed. Sounds will be played such that they don't overlap, but the third argument for scribble_autotype_set_sound() is an overlap time, in milliseconds. This can be adjusted to get your vocal samples to sound a little more natural.

The behaviour of scribble_get_bbox() has changed - it now returns the strict axis-aligned bounding box for the text element. scribble_get_quad() has been added and functions like the old scribble_get_bbox().

Additionally, some bugs have been fixed: Font resetting now works as intended, error messages have been made clearer, and smoothness is no longer out of step with the value returned by scribble_autotype_get().

 

How do I import Scribble into my game?

GameMaker Studio 2.2.3 allows you to import assets (including scripts and shaders) directly into your project via the "Local Package" system. From the resources below, download the .yymp file. In the GameMaker IDE, load up your project and click on "Tools" on the main window toolbar. Select "Import Local Package" from the drop-down menu then import all scripts and shaders from the Scribble package. Now you're all set up to use Scribble!

 

Wobbling, Pulsing, Easier Sprites

07 Jan 12:01
452cd35
Compare
Choose a tag to compare

Scribble's shader has been improved!

 

Version 5.3.1 improves sprite handling substantially. Sprites will now reliably default to centring themselves on lines of text without needing to fiddle around with sprite origins. If you'd like to customise exactly where a sprite is drawn, set the SCRIBBLE_ADD_SPRITE_ORIGINS macro to true (it's false by default). SCRIBBLE_FORCE_NO_SPRITE_ANIMATION has been removed.

Additionally, text that uses different size fonts is also centred properly on each line.

The attribute layout for Scribble vertex buffers has also been changed. Now, the position X and Y coordinates are used to encode the centre of the character's quad. The normal X and Y components are used to encode the offset (the "delta") that the vertex should use. The worldspace position of the vertex is calculated by adding the offset to the centre. This means that scaling and rotation effects are possible and, to that end, two new effects have been introduced: wobble and pulse. Wobble will rotate a character around its central point whereas pulse will scale it.

This version also adds in default native GameMaker colour constants that had been missed, and improves JSON verification error messages. Some unnecessary console messages have been removed and new ones have been added to aid with debugging.

 

How do I import Scribble into my game?

GameMaker Studio 2.2.3 allows you to import assets (including scripts and shaders) directly into your project via the "Local Package" system. From the resources below, download the .yymp file. In the GameMaker IDE, load up your project and click on "Tools" on the main window toolbar. Select "Import Local Package" from the drop-down menu then import all scripts and shaders from the Scribble package. Now you're all set up to use Scribble!

 

Better Wrapping And Colours

10 Nov 17:51
Compare
Choose a tag to compare

Scribble's wrapping's had an upgrade!

 

Version 5.1.1 fixes line wrapping, and also exposes a new argument for scribble_draw_set_wrap() to toggle per-character line wrapping. This mode is optional (defaults to off) but can be very useful for tight textboxes or some East Asian languages.

This version also introduces a scribble_add_color() for compatibility with American spellings, and renames a couple constants to be easier to understand and remember.

 

How do I import Scribble into my game?

GameMaker Studio 2.2.3 allows you to import assets (including scripts and shaders) directly into your project via the "Local Package" system. From the resources below, download the .yymp file. In the GameMaker IDE, load up your project and click on "Tools" on the main window toolbar. Select "Import Local Package" from the drop-down menu then import all scripts and shaders from the Scribble package. Now you're all set up to use Scribble!