Author Topic: AGS 3.3.5 - Patch 1  (Read 2028 times)

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on a game that won an AGS Award!
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
AGS 3.3.5 - Patch 1
« on: 26 Apr 2016, 23:42 »
AGS 3.3.5 - Patch 1 released

Please, read "Upgrading to AGS 3.3" AND "Upgrading to AGS 3.3.5" topic in the manual that comes with this version before upgrading your game project to 3.3.0 - 3.3.5! It contains important information on few potential problems you may encounter.

Released: 27th April 2016

Previous version: AGS 3.3.4 forum thread

Please, read the information under "spoiler" if you are new to 3.3.5 before using it
Spoiler: ShowHide

Since 3.3.5 AGS does not allow to write any files into other path rather than "$SAVEGAMEDIR$"
(personal user saves directory) or "$APPDATADIR$" (all-users game data directory). If you attempt to open
file for writing using relative path without location tag, the filepath will be automatically remapped to
$APPDATADIR$ location.

Because of that, for backwards compatibility reasons, when you try to open file for reading using relative path
without location tag, AGS will first look for that file in $APPDATADIR$, and only if no matching file is
found there, then the game installation directory will be checked.

To force opening file in the game installation directory (for reading) a new location tag was introduced:
"$INSTALLDIR$". When using this tag you will explicitly tell AGS to look in and only in the game's
installation directory. However, if you try opening file for writing at such location, that will result in

Players are now allowed to set up their own custom path in game setup, where the game
saves & data will be written. This is done in the game setup program.
This works as if $SAVEGAMEDIR$ and $APPDATADIR$ were redirected to custom location.
Redirection is done internally by the engine, you do not need to add anything to your game scripts to make it work.

Conceptually, AGS is gradually leaning towards using only "symbols of file locations" rather than actual,
explicit locations on the filesystem.

Furthermore, game setup will now write config file into game saves location, rather than game's installation directory.
If config file is present in the game installation folder, then it is used as "default" read-only config file.
The config in saves folder overrides default one.
This way it should be totally safe to install AGS games into C:/Program Files, without having administrative rights.

Changes in the Patch 1:

- Added support for $INSTALLDIR$ location tag in the filepaths used in the script.
- Fixed game could not find files in the current directory when run from the Editor.

- Fixed error that could occur if choosed custom save path contained "%" symbol.
- Read correct game's resolution from game data instead of config file.
- Do not write all default config contents to user config, save only options that are set by setup program.

Changes since version 3.3.4:

Editor Features:
- Path to resource's (sprite, audio) source file is now saved as relative one if the file is
  located inside game project's folder.
- Removed arbitrary limit of the script imports (was 50000).
- Script allows struct member qualifiers to be in any order.
- Better detection of integer constants overflow in script.
- Removed arbitrary limit of integer default value of +/-32000. Integer values are now limited
  by correct 32-bit values (-2147483648 to 2147483647).
- Support for negative constants in enums.
- Better folding markers and indentation guides in script editor.

Editor Bug Fixes:
- Fixed compiler crash if unknown keyword used after "readonly".
- Fixed compiler did not properly report incorrect type of dynamic array in function declaration.
- Fixed compiler did not report proper type name in case of syntax error sometimes.
- Fixed mouse cursor flicker above the script editor.

Engine Features:
- Removed unconfigurable mouse cursor's acceleration (Windows).
- Support for mouse cursor speed control (works in fullscreen mode only by defau;t): may be defined in configuration and changed in script.
- A config option for keeping consistent cursor speed relative to user's desktop resolution.
- Support for locking mouse inside window: automatic lock is enabled in configuration, and user
  may use Ctrl+Alt combination to lock/release mouse at any time.
- Restricted writing game files to special system directories
  (game is forbidden to write files into installation directiory or by absolute path).
  For old games unsafe paths are remapped.
- Support for player defined saves & game file directory.
- -v/--version command line argument makes engine display its version and bail.

Engine Bug Fixes:
- Fixed crash if screenshot is taken while game window was minimized or moving.
- Fixed alpha blend did not work properly for speech portrait if blinking frame did not have alpha channel.
- Fixed Display and Say script commands were displaying text for minimal amount of time under certain conditions.
- Fixed legacy audio functions did not start digital music playback if MIDI driver failed to initialize.
- Fixed game was run in smallest possible window if graphics driver failed to initialize fullscreen mode.
- Fixed "--help" command line argument not working all times depending on its order.
- Fixed engine did not always properly closed application window when running debug build.

Script API:
- Supported late_repeatedly_execute_always() callback in script, called after game has updated, but
  before it is drawn.
- Added Mouse.ControlEnabled (readonly) and Mouse.Speed properties.
- Added System.HasInputFocus property which tells if game currently has focus or runs at background.

Cosmetics & convenience:
- Clarified disabled MIDI option name in WinSetup.
- Extended information displayed if graphics driver failed to initialize.
- Clarified error messages for running unsupported games.

Templates updated:
Empty and Default Game templates were converted to 32-bit ones. You may still downgrade them to 16 and 8-bit after creating the game project of course.
Default Game template has its save system fixed, as explained in this thread.
« Last Edit: 19 Jun 2016, 23:21 by Crimson Wizard »