Version History

1.0.8#

  • Added support for GameMaker Studio 2 individual sprite speeds
    • Global animation speed arguments have been removed from¬†vngen_object_draw,¬†vngen_log_draw,¬†vngen_emote_create, and¬†vngen_emote_create_ext
    • Other timing functions have also been improved as a result of this update
  • Added¬†vngen_file_save_map¬†to facilitate adding VNgen data to fully custom save files
  • Added¬†vngen_set_vol¬†and audio type macros to replace individual audio volume scripts
    • Volume control of UI/navigation sounds is now supported
    • Volume can now be set from the debug command console
  • Added auto keyword support to¬†vngen_log_add, allowing custom content to be added to the backlog using the system queue
  • Added looping animation support to emotes
  • Added support for custom hotspots using rectangular collision masks (bounding boxes) on options and buttons
  • Added new scanline and radial blur shaders
  • Added new cubic bezier ease mode
  • Added new 'output' functions to retrieve the state of many 'input' functions, such as whether or not the engine is paused, or a button or option is held down
  • Added new 'get' functions for global audio volumes, text alignment, lineheight, text speed, and event read state
  • Added new¬†vngen_code_execute¬†functions for running arbitrary code as VNgen actions without the use of scripts
  • Updated¬†vngen_set_lineheight¬†to support per-entity lineheight multipliers
    • Save functions now also read and write global lineheight multipliers
  • Updated input functions to use a common prefix and support explicit true/false settings in addition to toggles
    • Important!¬†See compatibility notes for a list of syntax updates!
  • Updated¬†vngen_option_clear¬†to support removing option results from history as well as memory
  • Updated UI visibility toggle script to optionally allow progression while hidden
  • Updated¬†vngen_room_goto¬†to optionally allow skipping to a VNgen event upon room change
  • Updated highlight argument in¬†vngen_object_draw¬†and perform argument in¬†vngen_instance_change¬†to be optional (enabled by default)
  • Updated auto prompts to match text scale and rotation, not just position
  • Updated backlog audio to match global voice volume
  • Updated¬†vngen_file_load¬†to support switching rooms upon loading files
  • Updated¬†vngen_file_load_map¬†to accept¬†ds_maps¬†generated by¬†vngen_file_save_map
  • Fixed multiple crashes related to running file functions when files or save data do not exist
  • Fixed room data missing from unencrypted save files loaded with¬†vngen_file_load_map
  • Fixed text alignment and speed reverting to global defaults after window is resized
  • Fixed volume functions causing crashes when run outside of a VNgen object or after the running VNgen object has been cleared
  • Fixed pause state not being preserved if¬†vngen_goto¬†is run while the engine is paused
  • Fixed indefinite pauses applying even if auto mode is enabled
    • All negative values will now trigger indefinite pause, but if auto mode is enabled, the literal numeric value will be used instead. (e.g. [pause=-2] will pause for 2 seconds if auto mode is enabled, and pause indefinitely otherwise)
    • This behavior can be enabled or disabled with¬†vngen_set_auto_type
    • This update applies to both events and text markup
  • Fixed options being added to the backlog even when an empty string is used
    • Image-only options are now properly supported
  • Fixed¬†vngen_get_option¬†clearing options prematurely if an option ID is provided in the same event as options are presented
  • Miscellaneous fixes and improvements

1.0.7#

  • Replaced internal timing functions with a simpler, more versatile timing system
  • Added automatic checks to preserve custom text alignment when drawing VNgen
    • Previously it was required to manually reset¬†draw_set_halign¬†or¬†draw_set_valign¬†before drawing VNgen. This is no longer necessary, as VNgen properly handles both functions.
    • (Requires GameMaker Studio v2.2.1.375 or newer)
  • Added automatic option results logging. Setting an option block ID in¬†vngen_get_option¬†now returns user selections from any previous option!
    • Option selection data is now also saved/loaded with VNgen file functions
  • Added¬†vngen_file_load_map¬†for restoring saved VNgen data to a user-defined¬†ds_map¬†for later usage
  • Improved file functions
    • Fixed loading only restoring the VNgen object and not the event, in some cases
    • Save/load can now be performed in non-VNgen objects
    • Save files now also record the active room when saved
  • Improved rendering on scenes and debug interface
    • Blending is now consistent between full/reduced and legacy render modes
    • Texture filtering is now disabled on debug interface for more legible text
  • Improved handling of speech animations when text and voice are active simultaneously
  • Fixed an issue where prematurely skipping text with an indefinite pause skipped the text, but not the pause
  • Fixed incorrect backlog touch scrolling at non-standard framerates
  • Fixed perspective shaders drawing a blank frame when initialized
  • Fixed mouse interactions in HTML5
  • Miscellaneous additional fixes and improvements

1.0.6#

  • Added support for setting the typewriter effect speed of individual text entities with¬†vngen_set_speed
    • This complements the existing [speed] markup feature, which only allows setting a multiplier of the global speed rather than explicit CPS
  • Added global¬†vngen_get_prop¬†and¬†vngen_set_prop¬†functions to modify properties not accessible through existing functions
    • Can also be used to modify a single property when other functions require modifying multiple at once, e.g.¬†vngen_text_modify_pos
    • WARNING: This is an advanced feature, and improper usage can break things. Use at your own risk!
  • Significantly improved performance of¬†vngen_get_*¬†functions when addressing multiple consecutive properties for the same entity
  • Updated button entities to fully ignore the engine pause state
    • Buttons are now suitable for use in creating pause menus
  • Renamed¬†vngen_perspective_modify¬†to¬†vngen_perspective_modify_pos¬†for consistency with other functions
  • Fixed "out of range" errors when creating prompts while no corresponding text exists
  • Fixed GUI not initializing to the correct scale when running¬†vngen_set_scale
  • Fixed¬†vngen_get_*¬†functions returning empty values on entities created in the same frame

1.0.5#

  • Added support for using variables in [font] markup
  • Fixed button states not being cleared on destroy
  • Fixed errors if¬†vngen_object_clear¬†is run when an object has already been cleared

1.0.4#

  • Added global volume controls for music, sound, voice, and vox
  • Added support for built-in cursor states to¬†vngen_set_cursor
  • Added support for auto text positioning in extended option and button functions
  • Fixed incorrect syntax guides for¬†vngen_scene_modify_style¬†and¬†vngen_label_replace_ext¬†(GMS2 only)
  • Fixed overdraw in wipe transitions
  • Fixed¬†vngen_goto¬†performing certain skipped actions when performing skipped events is disabled
  • Fixed¬†vngen_button_select¬†and¬†vngen_log_button_select¬†causing crashes if run when buttons do not exist
  • Fixed typo causing errors in¬†vngen_label_create_ext

1.0.3#

  • Added auto keyword support to¬†vngen_text_create_*¬†actions to better facilitate NVL-style presentation
    • Using auto positioning will create the new text entity directly below the previous one, eliminating the need to guess at unpredictable text surface dimensions
  • Updated prompts and character speech animations to pause while¬†[pause]¬†tags are active
  • Fixed a bug causing consecutive¬†[pause=-1]¬†tags to fail
  • Fixed a bug causing incorrect vox playback
    • General vox behavior and text performance have been improved as a result of this fix
  • Fixed a bug causing audio volume to be reset if fullscreen mode is changed
  • Fixed outdated documentation examples in Getting Started guide

1.0.2#

  • Updated debug console to accept escaped commas as ^, instead of \,
    • This change was necessary to escape markup in GMS2, but was changed in both versions for interoperability
  • Fixed¬†vngen_goto¬†and¬†vngen_room_goto¬†sometimes failing when executed in debug console (GMS 2 only)
  • Fixed scene replacements sometimes failing to refresh scene on replace if dimensions are the same
  • Fixed erroneous usage examples in some scripts

1.0.1#

  • Miscellaneous fixes and improvements

1.0.0#

  • Added native GameMaker Studio 2 support
    • GameMaker Studio 1 support now moved to critical updates and bug fixes only
  • Added native 4K support to internal functions and debug interface
  • Added¬†*_transformed¬†functions to VNgen options for added hover/select animation and stylization
    • This also replaced the extra color functionality previously added to¬†vngen_option_create_ext, resulting in a simpler¬†*_ext¬†function
  • Added on-screen buttons as a new entity type
    • Log buttons have been rewritten to match the new button standard and can now be used to execute arbitrary code, not just scroll the log
    • The existing¬†vngen_type_button¬†macro now refers to both log buttons and standard buttons and can be used to check both in property functions
  • Added support for deformations of any number of subdivisions
    • Deformation columns and rows can now be set on a per-deformation basis
    • Updated the included¬†def_wave¬†deformation to display an actual sine wave
  • Added new underwater-like wave shader
  • Added¬†vngen_count¬†to replace individual entity¬†*_count¬†functions with a universal function
  • Added previous keyword support to character face coordinates in character replace actions
  • Added full keyword support to¬†vngen_audio_modify¬†loop clip settings
  • Added¬†vngen_event_get_label¬†to complement¬†vngen_event_get_index
  • Added¬†vngen_script_execute_ext¬†to perform scripts as VNgen actions, including when the running event is skipped
  • Updated¬†vngen_event_get_index¬†to optionally return the index of an event by label (rather than the current event)
  • Replaced per-entity text speed with¬†vngen_set_speed, which sets speed for all text entities.
  • Replaced¬†vngen_instance_create¬†with¬†vngen_instance_change
    • The existing script was not really necessary and functioned more closely to the built-in¬†instance_change¬†function anyhow
  • Replaced bracket escape character with¬†^. Markup can now be drawn literally as¬†^[¬†instead of¬†\[
    • This change was necessary to escape markup in GMS2, but was changed in both versions for interoperability
  • Removed crop animations from replace transitions for consistency among all entities
    • Previously, only a few entities supported them, and created undesirable visual effects in some use-cases.
  • Removed tiled scene deformations from renderlevel 1
    • It is technically not possible to deform tiled scenes at this renderlevel, therefore scenes will now fall back to non-deformed tiles rather than sacrifice tile mode for deformations
  • Removed¬†vngen_option_exists¬†as its functionality has been superseded by¬†vngen_exists
  • Removed language macros as they have been superseded by¬†vngen_type_*¬†macros
  • Fixed text speeds of 0 or less (instant) causing crashes
  • Fixed negative interpolation causing crashes if¬†ease_circ_*¬†modes are used
  • Fixed opaque backgrounds appearing on highlighted objects if certain shaders or blend modes were used
  • Fixed shaders being duplicated when a deform is also active
  • Fixed auto mode being disabled when an indefinite event pause is encountered
  • Fixed backlog override fonts/colors failing to apply
  • Fixed missing backlog audio data if voice is paused in background while previous voice is played in backlog
  • Fixed non-looped audio continuing to play when skipped while the engine is paused
  • Fixed music losing position and clip settings if¬†vngen_goto¬†is run
  • Fixed non-looped sounds failing to fade in on create
  • Fixed mouse cursor getting stuck in hover state if¬†vngen_goto¬†is run while in this state
  • Fixed scaling not updating when launched in fullscreen
  • Miscellaneous additional fixes and improvements

0.9.9 (EA)#

  • Added¬†vngen_goto_unread¬†to skip to the nearest option block or unread event
  • Added functions to set shader floats, samplers, and matrices
  • Added functions to replace sounds and vox while synchronizing playback position and other properties
  • Added multi-track and pitch range support to vox
    • Vox source can now be input as an array to create a list of vox which will be randomly selected from each time text increments
    • Additional sounds can be added or removed post-creation
    • Pitch is now randomized between two min/max values rather than simply enabled/disabled with a switch
  • Added¬†trans_spin_in¬†and¬†trans_spin_out¬†transitions
  • Added¬†[event]¬†markup to execute events inline directly (a la links, but without requiring a click)
  • Updated deforms to use 2D point arrays instead of 1D fixed variables
    • This will allow for meshes of any number of columns and rows in a future update
  • Updated effects to use custom variable array, allowing for infinite custom effect variables
  • Raised¬†vngen_script_execute¬†argument limit to 32.
  • Fixed compatibility issues with YYC. YYC is now fully supported
  • Fixed audio fade transitions not being skipped if¬†vngen_goto¬†is run
  • Improved HTML5 compatibility
    • Fixed broken mouse/touch hotspots when using scaling
    • Reduced renderlevel 2 surface usage to mitigate texture swapping glitches
  • Miscellaneous additional fixes and improvements

0.9.8 (EA)#

  • Added per-entity shader support and a selection of included shaders
    • Support for custom uniforms coming in a future update
  • Added¬†make_color_rgb_to_hex¬†to complement¬†make_color_hex, which has now been renamed¬†make_color_hex_to_rgb¬†for consistency
  • Added optional perform argument to¬†vngen_goto¬†to allow disabling performing skipped events
  • Added optional id argument to¬†vngen_option_select¬†to allow selecting a specific option directly without navigation
  • Fixed wrong colors being used when auto labels are replaced with the previous color/font setting at the target event of¬†vngen_goto
  • Fixed style inheritance failing to record certain properties. Backlog now inherits label styles for speaker names
  • Fixed incorrect scaling when launched directly in fullscreen
  • Removed audio wrappers in favor of native functions
  • Miscellaneous additional fixes and improvements

0.9.7 (EA)#

  • Added¬†vngen_room_goto¬†to switch rooms while properly cleaning up VNgen data and preserving log data
  • Added support for multiple renderlevels to improve compatibility with some platforms such as Android, iOS, and HTML5
    • Also added command to set renderlevel in debug console
  • Updated backlog with improved text processing and support for new rendering features such as text alignment
  • Updated display scaling to function as a setting--running a script every step is no longer required
    • Scaling now supports HTML5
    • Also added command to set scaling view in debug console
  • Unified label and text rendering to fix numerous bugs with labels
  • Fixed a bug causing transitions to never be considered complete
  • Standardized code to reduce redundancy and improve performance
  • Miscellaneous additional fixes and improvements

0.9.6 (EA)#

  • Externalized transitions as a new category of keyframe animations
  • Added support for performing animations, deformations, and effects in reverse
  • Added optional ease override support to animations, deformations, and effects to match transition ease behavior
  • Added¬†input_rot¬†as an available constant for keyframe animations (where applicable)
  • Fixed a bug causing text links to crash
  • Standardized code to reduce redundancy and improve performance
  • Miscellaneous additional fixes and improvements

0.9.5 (EA)#

  • Added new tiled scenes system with support for rotation, gradient color blending, wipe transitions, and deforms
  • Added paragraph alignment support to text (labels coming soon)
  • Added animation blending support to transforms and deforms
  • Added color gradient and wipe transition support to deforms
  • Updated file functions to save/load text alignment and language settings
  • Improved replace fade transitions to better support transparent entities
  • Improved text auto linebreak accuracy
  • Fixed character flipping in¬†vngen_char_replace_ext¬†being absolute instead of relative
  • Fixed memory leaks in¬†vngen_object_clear
  • Removed scale from perspective calculations. Distance is now determined solely by z-index for better control and more predictable perspective behavior.
  • Standardized code to reduce redundancy and improve performance
  • Miscellaneous additional fixes and improvements

0.9.4 (EA)#

  • Updated syntax for consistency and ease of use
    • Added all keyword support to modify, animate, effects, audio, and log button functions
    • Added idle argument to¬†vngen_char_create_ext¬†for consistency with¬†vngen_char_replace_ext
    • Added name argument to¬†vngen_text_create_ext¬†and¬†vngen_text_replace_ext¬†for consistency with other functions
    • Added any keyword support to¬†vngen_exists¬†to check whether any entity of a given type exists
    • Added optional easing support for all non-extended functions
    • Added¬†vngen_option_create_ext¬†with support for origin, scaling, and variable text colors, and simplified¬†vngen_option_create
    • Added support for checking log buttons to¬†vngen_exists¬†and¬†vngen_get_index
  • Updated prompts to accurately reflect current state during replacement fade and accurately auto-position on rotated text
  • Updated¬†vngen_get_option¬†to clear option results by default--setting the true argument is no longer required
  • Updated replace functions to fade the most recently viewed resource when combined with¬†vngen_goto¬†(rather than the most recent resource chronologically, which isn't always visually correct)
  • Updated animations to rotate coordinates relative to perspective only, not the rotation of the animated entity
  • Fixed option position being calculated incorrectly
  • Fixed destroy actions never completing when all keyword is used if no entities of the given type exist
  • Fixed skip failure when skipping to an event label where the event is last in a series
  • Fixed effects causing errors during some uses of¬†vngen_goto
  • Renamed audio functions for consistency with other functions and added wrappers for legacy syntax support
  • Renamed¬†vngen_get_option_number¬†to¬†vngen_option_count¬†for consistency with other functions
  • Renamed¬†vngen_get_option_active¬†to¬†vngen_option_exists¬†for consistency with other functions
  • Standardized code to reduce redundancy and improve performance
  • Miscellaneous additional fixes and improvements

0.9.3 (EA)#

  • Rewrote developer command console (now QCMD!)
    • Added support for keyboard cursor navigation (left/right/home/end)
    • Added support for repeat input if key is held down
    • Externalized commands--console is now extensible!
    • Added new language, log, and window commands (type 'help' in QCMD to learn more!)
  • Added keyframe-based effect scripting system
    • Execute arbitrary code in VNgen keyframes!
    • Includes effect scripts for haptic feedback, screen flash, screen shake, and Dualshock 4 lightbar flash
  • Added¬†vngen_get_index¬†function to retrieve internal numeric index for any given entity from the entity type and ID
  • Added¬†vngen_event_count¬†function to retrieve the current total number of events
  • Added support for all keyword in¬†vngen_*_destroy¬†functions for destroying all entities of a given type
  • Merged backgrounds and foregrounds into a single internal data structure for more efficient memory management
  • Separated vox speech synthesis into its own data structure and added audio functions to independently pause, stop, and modify vox audio
  • Renamed¬†vngen_log_get_size¬†to¬†vngen_log_count¬†for consistency with other functions
  • Renamed¬†vngen_get_event¬†to¬†vngen_event_get_index¬†for consistency with other functions
  • Updated skip functionality to allow skipping past the final event
  • Updated¬†vngen_script_execute¬†to accept a full 16 arguments (as opposed to the previous 15-argument limitation)
  • Fixed¬†vngen_file_load¬†failing due to outdated use of¬†vngen_goto¬†to restore object event
  • Fixed¬†vngen_log_draw¬†generating errors if log was cleared without destroying the running object
  • Fixed skipped event data being added to the backlog when jumping across objects
  • Fixed text/label actions generating errors if empty string is input
  • Standardized code to reduce redundancy and improve performance
  • Miscellaneous additional fixes and improvements

0.9.2 (EA)#

  • Fixed an issue causing touch scrolling to sometimes scroll the backlog infinitely
  • Fixed manual linebreaks being removed from backlog text
  • Fixed backlog entries being listed in literal order rather than historical order.
  • Added¬†vngen_log_get_index¬†script to return historical log entry index from an entry's on-screen order.
  • Added new proportion scaling modes which scale relatively to changes in display scale
  • Added new properties functions (vngen_get_*)¬†to return the calculated width, height, x, y, xscale, yscale, and rotation of VNgen entities, factoring in animations and modifications
  • Updated¬†vngen_exists¬†to optionally check a specific character for attachments, rather than check all characters
  • Enhanced all built-in animations for use with perspective
  • Reduced linebreak strictness so that text surface width can expand or shrink to fit text automatically
  • Renamed¬†vngen_pragma¬†to¬†sys_config¬†for consistency with other new engine functions
  • Standardized code to reduce redundancy and improve performance
  • Miscellaneous additional fixes and improvements

0.9.1 (EA)#

  • Added online and offline documentation
  • Added additional macros for entity types, which can now be tested with¬†vngen_exists
  • Added new zoom transitions which replace the old scale transition
  • Rewrote skip functionality to fix bugs with labels and some jumps taking more than a frame to complete
  • Fixed backlog data being duplicated when the window is resized, forcing an event restart--without also disabling duplicate data for intentional restarts. This required creating a new backlog queue system to hold all new log data until rescaling is complete.
  • Fixed attachments scaling to the display rather than the parent character with¬†vngen_attach_replace_ext
  • Fixed option button sprites not respecting sprite alignment
  • Renamed existing¬†vngen_emote_create¬†to¬†vngen_emote_create_ext¬†and added a simplified vngen_emote_create in its place.
  • Standardized code to reduce redundancy and improve performance
  • Miscellaneous additional fixes and improvements

0.9.0 (EA)#

  • Initial release