AGS 3.6.0 - Release Candidate (RC 11)

Started by Crimson Wizard, Fri 07/10/2022 00:21:56

Previous topic - Next topic

Crimson Wizard

AGS 3.6.0 - RC11
Full release number: 3.6.0.46


For Editor
Spoiler

For Android
Spoiler
NOTE: the Editor now includes Android build component letting you prepare your own games for Android
[close]

For Engine/Editor developers
Spoiler

Released: 25th March 2023

Previous stable version: AGS 3.5.1 P19 forum thread


This release is brought to you by:

- sonneveld (porting engine to SDL2)
- Alan v. Drake (improvements, fixes)
- Cameron Cawley [ccawley2011] (fixes, improvements to SpriteFont plugin)
- Crimson Wizard (stuff :))
- Dominik Mierzejewski (fix)
- Donovan Watteau (fix)
- eri0o (updated Android port, Web port, Editor improvements, etc)
- fernewelten (new fonts outlining, improvements to script compiler, fixes)
- Francesco Ariis (fixes)
- Morgan Willcock (improving templates, help with CI)
- Pablo Navarro [panreyes] (fixes)
- ChamberOfFear (improvements)
- rofl0r (fixes, suggestions)
- Thierry Crozat (fixes, plugin update)
- vga256 (fixes)



What is new in 3.6.0

AGS 3.6.0 is another big change to AGS.
First of all, this release presents a SDL2-based engine. For about 2 decades AGS engine was based on Allegro 4 graphic library, which was discontinued somewhere in the early 2010-ies (only received few patches since). There was an intent to move either to Allegro 5 or SDL (1 or 2) since, but for various reasons this task was continuously postponed.
Secondly the Editor and Engine now have full Unicode support. This means that you may use any language whatsoever in scripts, object descriptions and custom properties, as well as translations; so long as you also provide proper unicode fonts.
Third, we finally have expanded a list of platforms that the Editor can build for: now this includes Android and Web (Emscripten) port.

For more information please make sure to read "Upgrading to AGS 3.6" topic in the manual: https://adventuregamestudio.github.io/ags-manual/UpgradeTo36.html


Common features:
- Full Unicode support for all game texts: game properties, scripts, translations, input.
  ASCII/ANSI mode is still working, for backwards compatibility. This may be configured in the game project.
- Extended sprite compression options: lossless storage optimization for 16- and 32-bit sprites; LZW compression option for sprites in addition to existing RLE compression.
- GUI controls may now be told to clip their contents, which means that nothing gets drawn outside of their borders (as defined by X, Y, Width, Height properties). The only exception is Sliders, which are more complicated.
- The historical TTF fonts' "fixup" that altered their height and vertical offset is now optional and works only if backwards compatible option is set.
- Max number of AudioChannels is now 16 (was 8).
- Removed game Cursors hard limit (was 20).
- Increased Room Objects limit to 256 (was 40).
- Discontinued "Windows Game Explorer" support in both Editor and Engine.

Editor:
- Editor requires .NET Framework 4.6 to run.
- Added Android build target support (requires "Android component" installed).
- Added Web/Emscripten build target support (requires "Web build component" installed).
- Expanded UI color theme format, support global color options and allow missing entries.
- Script editor works in unicode mode.
- Added "Text format" option in General Settings which lets switching between ASCII/ANSI and Unicode (UTF-8) modes. This defines which format the game texts will be written in, when saving the game project and compiling the game.
- Added "Use old-style keyboard handling" option to the General Settings, which lets select between classic key press handling and new one meant for unicode chars support in scripts.
- Added "Touch to Mouse Emulation", "Touch to Mouse motion mode" and "Display FPS on Screen" to Default Setup. Removed few deprecated options.
- Supports compiling UTF-8 translations. TRS file now has "Encoding" setting that tells how to interpret this TRS text.
- Added support for building multiple speech voxes, by taking files from the Speech subfolders.
- Added support for adding custom files into the game package. This is done by assigning a list of directories to "Package custom data folder" option in General Settings.
- Editor now copies a acsetup.cfg file from the project's root folder (if one is provided by) as a base for generating default config file. Settings from Default Setup will be written over, but other found options won't be removed.
- Added "Sprite file compression" option in General Settings, replacing "Compress the sprite file" option. The new option allows a selection of compression algorithm used for sprites.
  Currently supported: None, RLE (old default compression) and LZW.
- Added "Enable sprite storage optimization" option to the General Settings, that permits the editor to repack sprites in a different storage format, reducing their disk size whenever possible.
  This option may be used alongside with the sprite compression. Note that this does not change how the sprites work in game.
- Added "GUI controls clip their contents" option to the General Settings.
- Added "TTF fonts height used in the game logic" option to the General Settings, that makes your game use real font's pixel height when arranging text and text-based UI elements, as opposed to the nominal font's size.
- Added "TTF font adjustment" property to Fonts, as well as to General Settings where it serves as a project default for the new fonts.
  This property lets you choose between "no changes" and backward compatible TTF fixup meant to keep fonts made for AGS displayed as they were meant to.
- In the "Import TTF" dialog added a choice to import the size closest to the given pixel height.
- Fonts now have Auto Outline Style and Auto Outline Thickness properties.
- Fonts now have a readonly Family Name field, that lets user see the original name of a font they've imported (if available).
- Added IdleDelay property to Characters that lets you set time needed to pass before IdleView is activated. This is equivalent to the Character.SetIdleView script function.
- Added Character.IdleAnimationDelay property to let setup idle view's animation speed.
- Added Cursor.AnimationDelay property to let setup cursor's animation speed.
- The TextWindow edges now have distinct names in the dropdown list of the property grid.
- Rooms created from a Blank template will now have default background of a game's resolution.
- When creating new room objects they will now have their script names set to some default value.
- Added Room.BackgroundAnimationEnabled property to let have disabled animation on room load.
- Editor will now create an empty sprite file if one is missing in the game project. Any existing sprite descriptions in the project will be kept, letting user to reimport these from sources.
- Added "File -> Restore all sprites from sources" menu command.
- Added "Apply" button on editor's Preferences dialog.
- In Preferences replaced "Import Color Theme" with a "Open Theme Folder", as a temporary solution for managing theme files.
- Select script editor's font in the editor's Preferences.
- Added "Help" option to the editor pane's tab context menu.
- Upgraded script editor to Scintilla 3.21.1 and ScintillaNET 3.6.3.
- Cursor's position in script is now displayed on the status bar.
- Dialog scripts now too can open help topics for keywords or script functions under cursor on F1.
- Added zoom controls for the Sprite Manager, Character, Cursor, Inventory and View panes.
- Sprites may now be imported by drag'n'drop into the Sprite manager.
- In sprite manager's context menu added command "Create source files for all sprites with missing external sources..."
- In sprite manager's context menu added (restored) command "Replace sprite using previous files".
  Also made "previous file" remembered consistently whenever a sprite is imported or replaced.
- In sprite manager's "export all" dialog added "skip if inside project's folder" option.
- In sprite manager's "export all" dialog added "reset tile settings" option.
- On the View pane the frames having set delay and linked sound will be now indicated with icons.
- Editor no longer errors and fails when opening a game project with some script files missing.
- Editor no longer errors on empty translations when compiling the game.
- Editor now exports values of the string type Custom Properties to translations.
- Editor no longer prevents exporting string arguments from Get/SetTextProperty calls to TRS file.
- Editor now cleanups spritefile on game load, identifying any data not referenced by the project and marking it for deletion.
- Fixed editor silently enabling all available Build Targets when upgrading a pre-3.4.0 project. This could be very inconvenient as there are several of them supported now.
- Fixed open folders in the Project Tree were collapsing whenever you create a new subfolder or change an object's name in properties.
- Fixed editor was not preventing from entering Character's and AudioClip's ScriptName too long for the engine to handle.
- Fixed Image and View properties in various objects were allowing negative values.
- Fixed some of the object previews (at least GUI) could crash if user entered a non-existing sprite's number as an Image property.
- Fixed editor displaying unhandled exception if the script which user is trying to open was missing. Instead it will now open a blank script.
- Fixed room editor was suggesting to save the modified room even if no changes were made.
- Fixed a recently imported sprite could be displayed incorrectly scaled up in the room editor for high-resolution games, if the "Allow relative asset resolutions" was enabled in General Settings, and the sprite 0 had "Resolution" property set to "Low".
- Fixed program crash occuring on sprite's import if failed to open a source file for any reason.
- Fixed View animation preview stopping at frame 100 (if loop contains over 100 frames).
- Fixed going to a "find all" result in dialog script did not highlight the found text, and sometimes did not scroll down to it.
- Fixed "Goto Definition" not working for Enums and Defines (macros).
- Fixed script autocomplete sometimes was not updated right after opening a script.
- Fixed script autocomplete for function calls was mistreating commas in strings and inline comments as if they were separating actual parameters.
- Fixed script autocomplete was not displaying members of extended structs if the parent struct was declared in another header.
- Fixed script autocomplete was not working for enum names.
- Fixed autocomplete crashing the editor if there was an import declared with type and variable having identical names, and user tries to type that variable's name and a dot to access its members.
- Fixed structs and enums were not highlighted if declared inside a script's body.
- Fixed in dialogs numbers inside names were incorrectly highlighted as numeric values.
- Fixed matching or mismatching braces were not highlighted consistently at all times in regular and dialog scripts.
- Fixed crash occuring when user was trying to set breakpoint on the very last line in script.
- Fixed few editor panes were not opening correct help topics in F1.
- (Possibly) fixed error message text in the runtime error popup could be drawn partially beyond the popup borders if the user's system has text scaling option enabled.

Script compiler:
- Support unicode character literals.
- Support using float literals when defining default values for function arguments.
- Support hexadecimal number literals (e.g. "0xABCDEF").
- Removed 500-characters line limit.

Script API:
- Expanded `on_key_press` callback, now supports two parameters: key code and key modifier flags.
- In the new key handling mode `on_key_press` is called for each actual key press;
  e.g. combinations like Ctrl+Z will result in two `on_key_press` calls, one with eKeyCtrlLeft and second with eKeyZ; added support for "NEW_KEYINPUT_API" macro in scripts.
- Implemented new `on_text_input(int ch)` callback which is called when the engine receives a printable character. This callback is essential for handling unicode chars in script.
- Similarily, expanded `dialog_options_key_press` with the third `mod` argument, and implemented `dialog_options_text_input` callback for receiving unicode chars during the custom dialog options state.
- Implemented `dialog_options_close` callback which is called when custom dialog options are removed from the screen. This allows to perform any required cleanup.
- Added eEventEnterRoomAfterFadein event for `on_event` callback, which corresponds to "enter after fade-in" room event.
- Added eKey constants for Shift, Control and Alt keys.
- Added eKeyMod enum for key modifiers constants.
- String.AppendChar(), ReplaceChar() functions and String.Chars[] property are now working with the unicode characters.
- String.Format("%c") specifier will now be able to print unicode characters.
- Extended Button.Animate() to have blocking style, direction and starting frame parameters, thus matching other Animate commands (of Character and Object).
- Extended all Animate() commands by adding "volume" parameter, that defines volume of the frame-linked sounds for the duration of this animation.
- Added Character.AnimationVolume, defining volume of the frame-linked sounds.
- Added Character.IdleAnimationDelay to let control idle view's animation speed.
- Character.Scaling is no longer limited by a range of 5-200 (now supports 1-32767).
- Hotspot.Name and Object.Name may now be set in script.
- Added Object.ManualScaling and Object.Scaling.
- Deprecated Object.IgnoreScaling (use Object.ManualScaling instead).
- Object.SetView default loop & frame values are now 0 (was -1 which retained loop and frame indexes from the previous view, often unexpected to the user).
- DrawingSurface.DrawImage() and DrawSurface() now support optional source rect coordinates.
- Added functions for getting DrawingSurface of room masks: GetDrawingSurfaceForWalkableArea(), GetDrawingSurfaceForWalkbehind(), Hotspot.GetDrawingSurface(), Region.GetDrawingSurface().
- Added new delay parameter to Mouse.ChangeModeView() to let control cursor's animation speed.
- Added Game.ChangeSpeechVox() and Game.SpeechVoxFilename, support switching the voice-over pack.
- Added Mouse.AutoLock property that toggles automatic mouse lock inside the game window.
- Added Room.Exists().
- Added System.Log().
- Added SkipWait() that skips any active Wait() function.
- Added WaitMouse() to complement existing Wait functions.
- Added InputType enum which defines input devices and lets create their sets as flags.
- Added WaitInput(), a more generic and extendable function that accepts a combination of flags telling which input types to wait for.
- All Wait* functions now may have infinite timeout if you pass a negative timeout parameter.
- All Wait* functions now return the reason they were skipped: a combination of InputType flag and a respective key or button code.
- Added GUIControl.Transparency property.
- Added Overlay.CreateRoomGraphical and CreateRoomTextual. Use these two functions to create "room overlays": that is - overlays that display a sprite inside the room, sorted among other room objects, characters and walk-behinds.
- Added readonly Overlay.InRoom property that tells if this is a room or screen overlay.
- Extended Overlay.CreateGraphical() with a new "clone" parameter that tells whether to assign a sprite index, or make a sprite's copy owned exclusively by this overlay.
  The former will save program memory but make overlay update if the sprite is edited later. The latter is meant primarily for backwards compatibility. Overlay.CreateRoomGraphical has the same param.
- Added Overlay.Graphic property that lets you change overlay's sprite after it's created.
- Added Overlay.Width and Height properties, that let you freely scale existing Overlay.
- Added readonly Overlay.GraphicWidth and GraphicHeight properties that let read original overlay's graphic size, as not all overlays hold a sprite reference (e.g. textual overlays).
- Added Overlay.Transparency property.
- Added Overlay.ZOrder property that lets you sort Overlays among themselves and other objects in the same "game layer": screen overlays are sorted among GUI, while room overlays are sorted among room objects, characters and walk-behinds.
- Added Speech.TextOverlay and Speech.PortraitOverlay for accessing blocking speech overlay and portrait overlay respectively.
- Added Game.BlockingWaitSkipped which tells the result of the last blocking wait skipping, also including result of the blocking speech skipping.
- SkipSpeechStyle now supports eSkipNone mode; when used it will disable any kind of skipping, such speech can be only skipped by a direct command from script.
- Extended Screen.ScreenToRoomPoint() with an optional "restrictToViewport" argument, which lets to choose whether tests over empty place result in conversion through the default viewport or a null pointer.
- Added AudioClip.PlayOnChannel().
- Added AudioChannel.Pause() and Resume() functions, and IsPaused property.
- Added AudioChannel.SeekMs(), complementing PositionMs (as the Seek() function interprets position differently depending on the audio format).
- PlayVideo() now supports an option to play both game's and video's audio track simultaneously.
- Added File.WriteRawInt() to complement ReadRawInt().
- File paths in script now support $DATA$ token, which tells to read files from the game package.
  This only works for read operations. Functions that support this token currently are: File.Open(), DynamicSprite.CreateFromFile(), ListBox.FillDirList().
- Debug(2, 0) command that displayed walkable areas is superceded by Debug(2, n), where "n" is a mask type: 0 - none, 1 - hotspots, 2 - walkbehinds, 3 - walkable areas, 4 - regions. This command also works as a toggle switch, calling it with the same mask index will turn it off.
- Debug(5, n) command that displayed character's walk paths now also works as a toggle switch.

Engine:
- New SDL2-based backend for graphics, audio and input.
- Hqx graphic filters discontinued (could be temporary).
- Windows-only DirectMedia video playback discontinued (could be temporary).
  Only OGG/OGV videos are kept supported at this point.
- Support resizing game window on desktop systems.
- Support "borderless full-screen window" mode in addition to the real (exclusive) fullscreen.
- Support for switching vertical sync at runtime with Direct3D/OpenGL renderers.
  Also enable vsync in windowed mode too.
- Unicode (UTF-8) text support: engine can now switch between ASCII and UTF-8 text mode.
  This is controlled by both game's OPT_GAMETEXTENCODING setting and translation's "Encoding" setting: they tells whether to interpret game texts as UTF-8 or ASCII/ANSI.
- Support optional translation's "GameEncoding" setting: it hints the original game's codepage to help with their conversion. This is mostly meant for translating existing older (ANSI) games.
- Engine now supports using real pixel height of the TTF fonts when arranging text and UI elements on screen; using nominal import size of the font is used as a compatible mode for the old games.
- Also supports separate "normal" and backward compatible "fixup" modes when initializing TTF fonts, letting to display both common TTFs and ones made specifically for AGS in the past to display as they were meant to be.
- Supports scripts using functions and variables from any other scripts, regardless of the script module order in the project.
- Removed limit of simultaneous Button animations.
- Removed limit of Character followers.
- Removed Overlay limit.
- Character.SetWalkSpeed() is no longer restricted by an arbitrary limit of 50.
- Process character's idle view based on real game speed, not hardcoded 40 fps.
- Improved file writing times (e.g. when doing a game save) by using buffered file stream. Initial tests showed 50% faster file writing.
- Engine now renders GUI controls as separate textures when using hardware accelerated renderers. This may significantly improve perfomance in the high-resolution games and games with large number of GUI elements on screen.
- Engine now shares the video texture data for all game objects on screen sharing same sprite. This improves performance in case there are multiple objects which use same image.
- Various performance optimizations for both raw drawing and texture updates (Direct3D/OpenGL).
- Engine now ensures that in threaded audio mode the AudioChannel's state only changes once the game is updated, and not while the game script is running. This prevents situations when the clip could begin playing before all properties are set in script, or when AudioChannel's properties' values (such as Position) could change while running a game script.
- 24-bit wav PCM support, comes with the new sound library.
- File.ReadRawLineBack() now always reads full line, and not limited to 200 characters anymore.
- Debug displays, such as showing room mask and character walk paths, are now implemented as non-blocking translucent overlays, allowing you to keep playing the game while they are on.
- Implemented debug key controls for calling a built-in save and restore game dialogs. These controls have to be set in user config as "save_game_key" and "restore_game_key" in "[override]" category. These may be used by testers if the game is missing a save function or one is bugged.
- Engine now supports loading compiled scripts as separate files packed along with the game, along with those embedded into the main game data or inside room files.
- Engine no longer bails out with error if the chosen translation cannot be loaded on startup.
- When reporting script errors, engine will print callstack for all the active script "threads": for example, if there's Wait() function called and error happened in repeatedly_execute_always, then it will print both actual error's location, and Wait() call's location.
- Engine config now has graphic modes defined as a simplier string options:
  "[graphics] fullscreen" for the fullscreen mode setup, and "[graphics] window" for the windowed.
  Fullscreen option can explicitly define a "borderless full-screen window" mode.
- Added "emul_mouse_mode" and "emul_mouse_relative" options to config in "[touch]" category.
- Added "cache_size" and "stream_threshold" options to config in "[sound]" category, they setup the rules for sound caching and choosing whether to load a clip fully into mem or stream one.
- Added "load_latest_save" and "show_fps" options to config in "[misc]" category.
- Added "background" option to config in "[misc]" category, that defines the starting run-in-background (aka multitasking) mode (may later be changed by SetMultitaskingMode()).
  Added "--background" command line option for the same purpose.
- Added "--sdl-log" command line option for setting up SDL2 library output verbosity. The engine log config now has a new "sdl" group meant for SDL2 messages.
- Support "--user-conf-dir" command-line arg (and "user_conf_dir" config option) superceding "--localuserconf"; the new option directly tells the location of user config file.
- Path related command-line and config options, - such as "shared_data_dir", "user_data_dir" and "user_conf_dir", now support $GAMENAME$ token in path which is resolved to the game's title.
- Added "--clear-cache-on-room-change" command-line arg (and similar config option).
- Don't error when DrawingSurface.DrawImage has bad transparency parameter (warning instead).
- Don't error when detecting bad format in File.Read* functions (warning instead).
- Added missing "DrawSprite" function for "agsblend" plugin stubs.
- Added stubs for agsshell plugin (a contemporary cross-platform variant of ags_shell).
- Added stubs for agsappopenurl plugin.
- Fixed loading pre-3.5.0 games on big endian systems.
- Fixed potential crashes if a room-related API function has been called in "game_start"; this is achieved by having a dummy room placeholder object. Still results of such calls are undefined and should not be relied upon.
- Fixed potential crash on room load if the walkable area mask contained color values above the supported range.
- Fixed dialog script's "goto-previous" command not working if used from the first sub-topic run using "goto-dialog" (a very-very old bug).
- Fixed AGS_EngineInitGfx plugin callback was not called during OpenGL renderer initialization.
- Fixed Direct3D/OpenGL renderers were displaying plugin's raw drawings in a wrong position in the scrolling rooms, if the drawing was done on AGSE_PRESCREENDRAW or AGSE_POSTROOMDRAW events.
- Fixed overlay may fail to be created sometimes, if previously another overlay had been forcefully removed when changing rooms (this is an ancient bug which existed for many years).
- Fixed ListBox.RowCount reporting 0 if called before the control was displayed once.
- Fixed GetTextWidth would still return a size of an outline for an empty text string.
- Fixed text may be misaligned in gui controls, as its outline thickness is not counted.
- Fixed some TTF fonts could be cut at the bottom when the speech is displayed.
- Fixed scheduled sound fadeout effect was not cancelled by skipping a cutscene.
- Fixed OGV Theora videos positioned incorrectly if they have certain sizes or aspect ratios.
- Fixed game fps sped up if SetGameSpeed() is called repeatedly in game script.
- Fixed game not reacting to system close commands when stuck in script, which made it impossible to close the "hanging" game by usual means (other than terminating the process).

Engine Plugin API:
- Added IAGSEngine::GetGameInfo() function which returns information about the game, such as its title and GUID.
- Added new render callback AGSE_POSTROOMDRAW, for handling drawing inside the room above all room objects.
- Added IAGSFontRenderer2 interface, expanding the original font renderer interface, improving font plugins support.
- Added ReplaceFontRenderer2() and NotifyFontUpdated() functions.

Compatibility:
- Fallback to the first loop with frames if current character's loop does not have any.
- Use the dummy frame if current character's speech view loop does not have any.
- Ignore character having view/loop with no frames while it's not in the current room.
- Legacy behavior of MoveCharacterBlocking's return value.
- Fixed walkable area's continuous scaling was broken for high-res rooms in old games.
- In pre-3.* games force player to walkable area after changing rooms, this is to emulate an unintentional effect created by the old engines.
- Fixed pre-3.4.1 anti-aliased TTF fonts display (their vertical position was broken).
- For pre-3.5.0 games support old behavior of coincidental dynamic sprite replacement on GUI backgrounds (and few other places) without explicit assignment; that is - when the new DynamicSprite is created right after deleting an old one.
- Support Label.TextAlignment with legacy alignment constants for pre-3.5.0 games made with the custom engine from "Clifftop Games".
- Support native resolution hack for games made with "Clifftop Games" custom engine, where 640x400 games are run as 640x360.

Android:
- Rewrote universal AGS game launcher/player using up-to-date Google guidelines. The former "launcher" is now called "AGS Player".
- Implemented single game project template meant for building your own signed APK.
- Implemented two touch-to-mouse control scheme (selectable in config), for one finger emulating LMB only, and for two fingers emulating LMB and RMB.
- Support relative motion speed setting for touch-to-mouse emulation.
- In AGS Player added "Browse" button to the game folder selection, which opens default system file picker.
- AGS Player now searches for games recursively, in all the subfolders.
- AGS Player now has preference button per each game, which opens individual game's settings.

OSX:
- OpenGL renderer is now supported on MacOS.

Web / Emscripten:
- Initial port release.

Windows:
- Installer will create program links with three-digit version in the name.

Plugins:
- Added SpriteFont plugin to the list of builtins, for ports that use ones. SpriteFont plugin is updated to support custom "Clifftop Games" font variants.

WinSetup:
- Added "Fullscreen as borderless window" checkbox.
- Remade sound options to reflect the move to the new audio system in the engine.



KNOWN ISSUES
* MIDI no longer plays on its own on Windows. For MIDI you (and your players) must install "sound banks" (also known as "sound font"). Please refer to this article: https://github.com/adventuregamestudio/ags-manual/wiki/MIDI-playback
* AudioChannel.Position and AudioChannel.Seek do not work for MIDI and MOD sounds. Try sticking to PositionMs and SeekMs for now.
* There are reports about Direct3D not being able to restore the fullscreen mode after alt+tabbing occasionaly.

eri0o


OneDollar

Awesome work dev team, well done! I've been following development on and off for a while and there's a lot of cool things being added to AGS.

One thing I've spotted - if I run a game in fullscreen using the Direct3D 9 driver and switch applications (either by alt+tabbing or by clicking on my second monitor) the game goes not responding and has to be forcibly closed through task manager. This doesn't happen with OpenGL or the SDL 2D Software renderer. It's also fine in windowed mode or when I use the 'Fullscreen as borderless window' option, so it seems specific to how Direct3D 9 is doing dedicated fullscreen. AGS 3.5.1 also doesn't do this, so I guess it's something to do with the move to SDL2?

I'm also seeing another bug where greyed out GUI controls (disabled during a blocking event) aren't being drawn as ungreyed until the mouse hovers over them... but only in one particular scene of my game. They work fine in similar sections and I can't reproduce in a new game file. I'll let you know if I figure out how to reliably trigger that.

AndreasBlack

I'm gonna be honest, there were so many changes that seemed awesome, that i had to end reading and just type it out! :-D  All the things i've been asking about lately seems to be in this version. Added AudioClip.PlayOnChannel() or the object.manualscaling! So great when trying to lineup pixel characters that are being scaled against room objects(workstation). The zoom function! Sound icons in the vieweditor, yes! Character.AnimationVolume, defining volume of the frame-linked sounds. finally! :-D  (nod) A lot of cool things added for sure! My favourite tho was being able to play the demo of my game on my phone (android). Epic work team!

eri0o

#4
Quote from: OneDollar on Fri 21/10/2022 21:47:42One thing I've spotted - if I run a game in fullscreen using the Direct3D 9 driver and switch applications (either by alt+tabbing or by clicking on my second monitor) the game goes not responding and has to be forcibly closed through task manager. This doesn't happen with OpenGL or the SDL 2D Software renderer. It's also fine in windowed mode or when I use the 'Fullscreen as borderless window' option, so it seems specific to how Direct3D 9 is doing dedicated fullscreen. AGS 3.5.1 also doesn't do this, so I guess it's something to do with the move to SDL2?

Hey, @OneDollar , this bug has been encountered and solved (?) a bunch of times, I thought it was gone, can you reliably trigger it in this version too? Also, if you hit it Fullscreen, Windows+Tab (Win10/11), create a new workspace, go there, and use the task manager in the new workspace to kill AGS. Edit: nevermind, I managed to reproduce, if I alt+tab a bunch of times, it eventually enters in a hanging state here too.

OneDollar

Interesting that it's intermittent for you, it seems to happen immediately on first alt+tab for me. I'm on Windows 10, haven't tried on 11 yet.

eri0o

#6
@OneDollar were you able to figure how to reproduce the grayed GUI thing you mentioned?

Edit: turns out I managed to reproduce it, opened an issue, thanks for reporting.

Crimson Wizard

Ok, I actually reproduced the Direct3D fullscreen problem on both Windows 7 and 10. For some reason this did not occur when running from MSVS, but only when running executable itself. Often it happens on the first time.

OneDollar

Quote from: eri0o on Sat 29/10/2022 00:40:37@OneDollar were you able to figure how to reproduce the grayed GUI thing you mentioned?

Edit: turns out I managed to reproduce it, opened an issue, thanks for reporting.

Thanks, I've been seeing it on some of my mini cutscenes and not on others so it was pretty odd. I had time for more testing today and I think it's caused by the Display() function being called as the last blocking function. I've added some examples to your issue.

Crimson Wizard

There's a build that seemingly fixes the fullscreen problem for me:
https://cirrus-ci.com/task/5990403286499328

But eri0o sais that it still happening for him if he "alt+tabs fast enough".

OneDollar

Before I could reliably crash the game on the first alt+tab. With this build it's much harder to trigger, but like eri0o I can still occasionally trigger it. I haven't been able to spot a pattern. I don't think it was speed, it just seemed like if I sat and alt+tabbed enough times eventually it would go not responding. One time took 40-ish attempts, another took 60-ish. I did also manage to recover the 'not responding' process a couple of times, again couldn't figure out a way of reliably doing that though. It might have happened after I alt+F4'd a couple of other open windows, or maybe just sometimes switching back to the process does recover it.

Had a quick test of the greyed out GUIs and that looks to be fixed in this build too.

Thanks for your hard work!

Pax Animo

#11
Heya,

I'm having issues with the pull down properties menu for rooms/gui's... and so forth. The pull down menu does not show or at least it simply shows a white box. This is how it looks:



If i double click the properties box to release it to a moveable box i get:



Now, if i double click the properties box again to re-join it back to the original layout, i get this:



Thanks in advance.


Misunderstood

Crimson Wizard

Quote from: Pax Animo on Fri 04/11/2022 00:59:39Heya,

I'm having issues with the pull down properties menu for rooms/gui's... and so forth. The pull down menu does not show or at least it simply shows a white box.


Are you using the latest version (RC1)? We had similar bug in the past, which happened only if you're using a custom color theme.

Pax Animo

Yes i'm using the (RC1), i'm using the VisualStudioDark colour theme.
Misunderstood

Alan v.Drake

@Crimson Wizard  It's probably a side-effect of the ugly hacks with the Padding. I have a fix in this experimental PR which should fix this case: https://github.com/adventuregamestudio/ags/pull/1806
Specifically, the commit: Editor: restore proper panel dock fill behavior (fixes dock fill and removes padding hacks)

- Alan

Crimson Wizard

Quote from: Alan v.Drake on Sat 05/11/2022 07:32:10@Crimson Wizard  It's probably a side-effect of the ugly hacks with the Padding. I have a fix in this experimental PR which should fix this case: https://github.com/adventuregamestudio/ags/pull/1806
Specifically, the commit: Editor: restore proper panel dock fill behavior (fixes dock fill and removes padding hacks)

Please, could you prepare a pr for 3.6.0 to let people test?

Personally, I was not able to reproduce this problem.

Crimson Wizard

#16
Updated to RC2 (3.6.0.37)
(use download links in the first post)

Editor:
 - Removed "Beta" flag.
 - Added "Touch to Mouse Emulation", "Touch to Mouse motion mode" and "Display FPS on Screen" to Default Setup pane.
 - Fixed open folders in the Project Tree were collapsing whenever you create a new subfolder.
 - Fixed Editor was always resetting android.cfg to certain hardcoded values (now will retain existing values unless they are taken from the Default Setup).

Engine:
 - Fixed File.Open and DynamicSprite.SaveToFile not creating subdirectories correctly if they are present in the provided path.
 - Fixed loading of dynamic sprite from a file.
 - Fixed mouse speed setting not applied on desktop systems.
 - Fixed gui controls not updated from "greyed" state right after interface is un-disabled.
 - Fixed Direct3D renderer in exclusive fullscreen mode always hanged up the program with 100% cpu core load when player alt+tabbed out of the game and then tried to switch back.



Reported issues remaining:
* The combo box color problem reported by Pax Animo above: https://www.adventuregamestudio.co.uk/forums/ags-engine-editor-releases/ags-3-6-0-release-candidate-rc1/msg636651111/#msg636651111
* Direct3D is said to still be not fully stable when alt+tabbing in exclusive fullscreen mode: https://www.adventuregamestudio.co.uk/forums/ags-engine-editor-releases/ags-3-6-0-release-candidate-rc1/msg636650995/#msg636650995

I was not able to reproduce either problem on my machine yet...

eri0o

Hey, I have no idea yet what it is, but today I cut a piece of code and then when I hit save, before pasting it back, I got the error below. I don't know yet what it means. Using the 3.6.0.37 version.

Code: ags
Error: InvalidArgument=Value of '21' is not valid for 'index'.
Parameter name: index
Version: AGS 3.6.0.37

System.ArgumentOutOfRangeException: InvalidArgument=Value of '21' is not valid for 'index'.
Parameter name: index
   at System.Windows.Forms.ComboBox.ObjectCollection.get_Item(Int32 index)
   at AGS.Editor.ComboBoxCustom.<OnCreateControl>b__4_2(Object s, DrawItemEventArgs a)
   at System.Windows.Forms.DrawItemEventHandler.Invoke(Object sender, DrawItemEventArgs e)
   at System.Windows.Forms.ComboBox.OnDrawItem(DrawItemEventArgs e)
   at System.Windows.Forms.ComboBox.WmReflectDrawItem(Message& m)
   at System.Windows.Forms.ComboBox.WndProc(Message& m)
   at AGS.Editor.ComboBoxCustom.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Alan v.Drake

Quote from: eri0o on Tue 22/11/2022 17:00:31Hey, I have no idea yet what it is, but today I cut a piece of code and then when I hit save, before pasting it back, I got the error below. I don't know yet what it means. Using the 3.6.0.37 version.

I guess you managed to find a case where the CustomCombobox has an invalid "a.Index" that doesn't exist in the "Items" array in the DrawItem event handler.
I expect the error is thrown from ComboBoxCustom.cs around line ~76 where "Items[a.Index]" is accessed.

I'm not sure exactly how to reproduce the issue, though.
A theme that colors the combobox certainly is a requisite, but removing and pasting a function didn't do much for me.

Maybe we can just add a guard in the event to make sure the index is within bound or return, then call it a day.


- Alan

eri0o

Hi @Alan v.Drake , unfortunately I did not manage to reproduce it yet. I tried a bunch of ideas and it did not happen again, I was hoping to figure how to reproduce before opening an issue.  :(

Crimson Wizard

Quote from: Pax Animo on Fri 04/11/2022 00:59:39I'm having issues with the pull down properties menu for rooms/gui's... and so forth. The pull down menu does not show or at least it simply shows a white box.

@Pax Animo, could you check out this temp build and see if it fixes the problem for you?
https://cirrus-ci.com/task/5409147177402368

Pax Animo

Quote from: Crimson Wizard on Wed 23/11/2022 19:16:41@Pax Animo, could you check out this temp build and see if it fixes the problem for you?
https://cirrus-ci.com/task/5409147177402368

This fixes my problem. Cheers
Misunderstood

Crimson Wizard

#22
Updated to RC3 (3.6.0.38)
(use download links in the first post)

Editor:
 - Fixed property grid's combo box not drawn correctly if a color theme is applied.
 - Fixed project tree's folders collapsing when renaming an item in its properties.

Engine:
 - Fixed WaitInput() incorrectly handled "input type" argument.
 - Fixed empty view loops (with no frames) unexpectedly playing a sound clip with id 0 when being switched to.
 - Fixed crash if slider's handle image was set to negative sprite id (this was possible to do in the older editors).

Compatibility:
 - Use the dummy frame if current character's speech view loop does not have any (happens in some old games).

Reported issues remaining:
* GUI controls incorrectly blend (mix colors) with the parent GUI if parent's transparency is anything but 0.
* Direct3D is said to still be not fully stable when alt+tabbing in exclusive fullscreen mode: https://www.adventuregamestudio.co.uk/forums/ags-engine-editor-releases/ags-3-6-0-release-candidate-rc1/msg636650995/#msg636650995



Unfortunately, I was only just now told by Alan Drake, that the GUI controls are drawn incorrectly if their parent GUI has non-zero Transparency. In short, they mix colors with the GUI's colors, as if they were translucent on their own relative to the parent. This is related to the recent change in 3.6.0 that makes these gui controls drawn as separate textures by Direct3D/OpenGL renderers (for perfomance purposes). This is a serious problem, and I will have to suspend the final release until the solution is found and implemented.

Snarky

I made a small project with 3.5.0 yesterday. When I tried upgrading, rebuilding and running it with this RC today, it crashes on launch. (Crash dump)

Crimson Wizard

Quote from: Snarky on Tue 29/11/2022 14:47:58I made a small project with 3.5.0 yesterday. When I tried upgrading, rebuilding and running it with this RC today, it crashes on launch. (Crash dump)

Would it be possible to get a 3.5.0 project itself (or at least one upgraded to 3.6.0, if 3.5.0 is not available)? If the crash is related to an incorrect upgrade, for example, then it will be easier to find out what went wrong.

Snarky

Here you have copies of the project both before and after the version upgrade.

Crimson Wizard

Quote from: Snarky on Tue 29/11/2022 16:30:49Here you have copies of the project both before and after the version upgrade.

Hm, I tried both 3.5.0 and 3.6.0 projects with the 3.6.0 RC3, and see no crash on game launch...

Snarky

Presumably there are some aspects of 3.6 builds that aren't supported on my environment. Did the crash dump tell you anything?

eri0o

It looks like it's failing at SDL_Init (sys_main.cpp line 42), but I don't have the kernelbase.dll file in my windows and I can't find it's symbols, so I don't know what the exception is - I think Snarky is in Windows 7?

Crimson Wizard

Quote from: Snarky on Tue 29/11/2022 19:42:18Presumably there are some aspects of 3.6 builds that aren't supported on my environment. Did the crash dump tell you anything?

Ah, unfortunately I did not download it earlier, and it's not available now.

I am also on Windows 7, by the way.

eri0o

#30
The crash dump is also in the Compiled/Windows dir of the attached project in the previous link!

I find the alternate data stream file there (the TestEdge.exe_Zone.Identifier_$DATA) suspicious, and the exe file URL in it doesn't match the exe file location in the crash dump.  :-\

(the ZoneId being 3 is even more curious, it means the file came from the internet)

Crimson Wizard

So, the crash happens inside SDL2.dll. Afaik we do not have debug symbols for this library? Unless we build it ourselves...

@Snarky, could you try using this SDL2.dll instead and repost the crash dump if crash happens again?
https://www.dropbox.com/s/ionvpr7nfla17zv/SDL2-2.24.1-Debug.zip?dl=1

Snarky

#32
I'm running Windows 10 in VirtualBox to build the project, and running the EXE in Wine, both on MacOS 10.13.6. (AGS games don't run for me in VirtualBox.) I know it's an unusual setup, but I don't have access to a native Windows box, and it works fine when built with 3.5.0.

The VM/Wine environments probably use different remappings of the AGS project folder, which may be why it doesn't match. The path in the exe_Zone.Identifier_$DATA file seems to refer to the download location of the AGS 3.5.0 editor before unzipping and installing. (I have installed it, and honestly don't know how it could even know the directory where the zip file was saved.) The $DATA file comes from building in 3.5.0; in the 3.6.0 project it's just a remnant of building the game before the update.

I'll try with the other SDL2 file. Where do I need to drop it, and do I need to recompile?

eri0o

Just remove the SDL2.dll in the Compiled/Windows directory and add this new one and double click the game exe to trigger the crash again. :)

Snarky

#34
With the replacement SDL2.dll it fails to crash. (laugh)
Thanks @Crimson Wizard! Though I don't suppose that is very helpful to isolate the problem.

Crimson Wizard

Quote from: Snarky on Tue 29/11/2022 22:08:55I'm running Windows 10 in VirtualBox to build the project, and running the EXE in Wine, both on MacOS 10.13.6.

So, to clarify that I understand right, you are launching the game in Wine under Mac?

Snarky


eri0o

Hey @Snarky , if you wish, this specific 3.6.0.38, the MacOS build for release of the engine is here https://cirrus-ci.com/task/5718421195718656 , under binaries/bin_12.3_release, there should be an ags artifact, it should be able to run from the command line.  :)


Snarky

Thanks. It's great to have a MacOS build of the engine, but there are a lot of situations where I prefer Wine, for various reasons:

1. I often need to use Windows-only plugins.
2. I sometimes specifically want to run/test the Windows version.
3. When developing and testing, with frequent recompiles, I find it more straightforward and convenient to launch a ready-made EXE.
4. When a game crashes on MacOS, it doesn't always provide the same reporting that the Windows build does.
5. Some Mac versions of games don't run correctly, in my experience.

Crimson Wizard

Quote from: Snarky on Tue 29/11/2022 23:09:09With the replacement SDL2.dll it fails to crash. (laugh)
Thanks @Crimson Wizard! Though I don't suppose that is very helpful to isolate the problem.

So, I guess we need to
1) find out what's the difference between SDL2.dll that I built and SDL2.dll that is supplied with the AGS.
2) report to SDL2 team, as this is a SDL2 error, not AGS error.

I built from a release-2.24.1 tag from their repository, and built using provided SDL.sln with MSVS 2015.

NeoDement

#40
Hi! I've noticed some dialogue timing issues when compiling my game in the latest build:

Built in 3.6.0.38:
https://cdn.discordapp.com/attachments/221048075207180288/1049333789693837332/Steamed_Hams_YpoQ56vlDg.mp4

Built in 3.5.1.15:
https://cdn.discordapp.com/attachments/221048075207180288/1049334294239264768/Steamed_Hams_m3tH5X918S.mp4

As you can hear, the audio has gone from being nearly seamless to cutting out the end of the first part of both of these two-part sentences:

"I'm from Utica and I've never heard" ... "anyone use the phrase 'steamed hams'."
"You know, these hamburgers are quite similar" ... "to the ones they have at Krusty Burger".

I've tried deleting my audio cache and vox files to completely force a rebuild, and it doesn't do anything to mitigate the problem. ???

Crimson Wizard

#41
Quote from: NeoDement on Mon 05/12/2022 14:51:41Hi! I've noticed some dialogue timing issues when compiling my game in the latest build:

This may be related to changes to the audio code in 3.6.0, where it actually starts the new clip playback only once the game frame updates (therefore related to fps).

Another possible cause (or maybe an additional one that sums with the first one), is that bufferization may work slightly differently.

eri0o

#42
@Crimson Wizard I wonder if it could be a problem in SDL2: https://github.com/libsdl-org/SDL/issues/6326#issuecomment-1267599472

Theoretically the resampling change could mean maybe it works when using the 2.26.1 SDL dll? (https://github.com/libsdl-org/SDL/releases/download/release-2.26.1/SDL2-2.26.1-win32-x86.zip)

Crimson Wizard

Quote from: eri0o on Mon 05/12/2022 15:10:34@Crimson Wizard I wonder if it could be a problem in SDL2: https://github.com/libsdl-org/SDL/issues/6326#issuecomment-1267599472

Are not they are talking about distortions there? Here the issue is in timing of a playback start.

eri0o

It appears the sample rate would be slightly wrong when using the Windows in some case and the distortion is almost imperceptible except by being slightly slower from icculus description above. I had not notice it in AGS before, but thought maybe it could be relevant.

Crimson Wizard

Quote from: eri0o on Mon 05/12/2022 15:18:56It appears the sample rate would be slightly wrong when using the Windows in some case and the distortion is almost imperceptible except by being slightly slower from icculus description above. I had not notice it in AGS before, but thought maybe it could be relevant.

I would expect that the whole clip would be slower then, but in above example the difference is in the moment when the second clip starts, relatively to the previous one's end.

NeoDement

Sorry, I had the clips labelled backwards. I've edited the original post. That probably made diagnosing the issue confusing.

Crimson Wizard

#47
Ok, so, after speaking with NeoDement a little more on Discord, it appeared that the clips were labeled wrong, the other way around, and that the problem is not what I thought at first.

The problem is that the endings of the clips are audibly cut off a bit, so that half of the last word is lost.

This is actually "opposite" (in a way) to the problem I was thinking about.

EDIT: more info: the voice clips are WAVs, and windows player also cuts them off (according to NeoDement), so this may be a WAV playback issue.

EDIT2: this sound also gets its end cut off when played as a regular sound clip, so this is not a dialog/speech problem, but a particular sound clip problem.

Snarky

Quote from: Crimson Wizard on Sun 04/12/2022 18:23:29
Quote from: Snarky on Tue 29/11/2022 23:09:09With the replacement SDL2.dll it fails to crash. (laugh)
Thanks @Crimson Wizard! Though I don't suppose that is very helpful to isolate the problem.

So, I guess we need to
1) find out what's the difference between SDL2.dll that I built and SDL2.dll that is supplied with the AGS.
2) report to SDL2 team, as this is a SDL2 error, not AGS error.

I built from a release-2.24.1 tag from their repository, and built using provided SDL.sln with MSVS 2015.

Sounds like a plan! Where does the standard SDL2.dll that comes with AGS come from? How about just using the one you built for this test?

eri0o

Our dll comes from SDL2 releases from their page here:

https://github.com/libsdl-org/SDL/releases

It's the asset that ends in VC.

vga256

First off - so glad to see how 3.6 has progressed. I took a few months away from AGS to work on other projects, and I'm glad to be back.

I'm running RC3 and I noticed a (new) bug with the SDL2 Software Renderer. There is a single line of missing pixels at the very bottom of each room. When I hover the mouse over the location, the immediate area surrounding the mouse renders properly. When the mouse leaves, the pixels return to black as shown in the link below:

Screencap of missing pixels

It seems to only affect the room background, as GUIs dragged down to this area render properly.

Let me know if you'd like me to upload a test project to demonstrate this. My project is running in 512x384, with room backgrounds of exactly 512x384.

When I switch to the OpenGL renderer, it renders properly. Testing all done in Windows 10.

eri0o

#51
I managed to reproduce the above (thanks @vga256 !), I opened an issue here:

https://github.com/adventuregamestudio/ags/issues/1847

eri0o

@Snarky , fun stuff, I went to look and the SDL release assets don't come from their (SDL project) CI system, so I have no idea how it's actually build and I can't seem to match it exactly when building locally! I asked them about it, I will update you once I have an idea.

vga256

Quote from: eri0o on Sat 10/12/2022 19:36:41I managed to reproduce the above (thanks @vga256 !), I opened an issue here:

https://github.com/adventuregamestudio/ags/issues/1847

many thanks to you and CW for the patch. Looking forward to testing it in the next RC.

Crimson Wizard

#54
There's a sudden problem found, that 3.6.0 seem to not able to load a Steam plugin correctly on Linux.
According to the log output, it finds and tries to load `libagsteam.so`, but then fails to load a `libsteam-api.so`, which is a dependency of `libagsteam.so`. The reported error is "No such file or directory", although the file is right there in the same dir.

Other plugins load fine, which makes me think this problem manifests when the plugin itself requires a second library.

I've been testing older builds of 3.6.0, but none work so far, including versions which are year and more old.

Have anyone else tried using 3.6.0 on linux with the steam plugin yet?


EDIT

So, this looks like not an engine's own problem, but the engine's build / setup issue. I still do not know what exactly did change in 3.6.0, but now it may require a different launch script on linux to make it work with the steam plugin. Namely add "LD_LIBRARY_PATH" option.

Something like:
Code: sh
if [ "$(uname -m)" = "x86_64" ]; then
    LD_LIBRARY_PATH="$scriptdir/data/lib64" "$scriptdir/data/ags64" "$@" "$scriptdir/data/"
else
    LD_LIBRARY_PATH="$scriptdir/data/lib32" "$scriptdir/data/ags32" "$@" "$scriptdir/data/"
fi

Alternatively:
Code: sh
if [ "$(uname -m)" = "x86_64" ]; then
    export LD_LIBRARY_PATH="$scriptdir/data/lib64":$LD_LIBRARY_PATH
    "$scriptdir/data/ags64" "$@" "$scriptdir/data/"
else
    export LD_LIBRARY_PATH="$scriptdir/data/lib32":$LD_LIBRARY_PATH
    "$scriptdir/data/ags32" "$@" "$scriptdir/data/"
fi

We'd need to adjust the Editor to generate a launch script with this addition.

Crimson Wizard

#55
Updated to RC4 (3.6.0.39)
(use download links in the first post)

Editor:
- Fixed project tree items not updated when changing item ID.

Engine:
- Various performance optimizations for both raw drawing and texture updates (Direct3D/OpenGL). (This will be mostly noticeable in high-resolution games.)
- Fixed software renderer may have an unpainted black line at the bottom, if there's a GUI or Overlay positioned partially offscreen.
- Fixed Parser.Said() could lead to a program crash in case there are space-separated words following the comma (e.g. "climb,get in bed").


Reported issues remaining:
* GUI controls incorrectly blend (mix colors) with the parent GUI if parent's transparency is anything but 0. Unfortunately this takes longer than expected to fix, because some of the new feature should be rewritten. This is related to the rendering performance optimization, which proved to be too significant to drop.
* Direct3D is said to still be not fully stable when alt+tabbing in exclusive fullscreen mode: https://www.adventuregamestudio.co.uk/forums/ags-engine-editor-releases/ags-3-6-0-release-candidate-rc1/msg636650995/#msg636650995
* Linux port cannot load a AGSSteam plugin. There's a workaround mentioned right above this post.

Crimson Wizard

#56
Updated to RC5 (3.6.0.40)
(use download links in the first post)

Editor
- Fixed games built for Linux cannot load AGSSteam plugin.

Engine:
- Fixed GUI controls incorrectly blended with gui background if GUI.Transparency is > 0.
- Optimized memory usage in Direct3D/OpenGL renderers related to plugin raw drawing.
- Fixed Direct3D/OpenGL renderers were displaying plugin's raw drawings in a wrong position in the scrolling rooms, if the drawing was done on AGSE_PRESCREENDRAW or AGSE_POSTROOMDRAW events.

Plugins:
- Fixed SnowRain plugin drawing particles only in 320x200 bounds.


Reported issues remaining:
* Direct3D is said to still be not fully stable when alt+tabbing in exclusive fullscreen mode: https://www.adventuregamestudio.co.uk/forums/ags-engine-editor-releases/ags-3-6-0-release-candidate-rc1/msg636650995/#msg636650995

Crimson Wizard

#57
EDIT: Had to reupload the RC5 update once more, with 1 extra bug fixed. (details under spoiler)

Spoiler
So, there's immediately a new bug that I did not notice in time: the GUIs have few pixels cut off from their top and right edge.
OpenGL has a slight difference: looks like it's cut from top and right edge.
EDIT: hmm, or rather gui elements are shifted up or down. Also, not sure why, but it looks like this only happens to buttons or backgrounds made of sprites.

Easily seen with the iconbar in Sierra template, where buttons are suddenly not centered in Direct3D, or cut from the top in OpenGL.

EDIT: I found an approximate reason, will need to make a quick fix and reupload a release.

EDIT: Ah, so this is a stupid rounding error, which creates a 1 px mistake if the GUI has non-even size.
[close]

rongel

#58
Thanks for the new Release Candidate version!

I noticed a possible issue, at least I'm not sure what else could have caused it other than updating to the new version. So here goes:

So earlier I used the version 3.6.0.37 and everything worked well. I have a GUI button that has a normal image, pushed image and a mouse over image. After I click the button, I make it invisible. Then, if I make it visible again, it will show the normal image (it's reseted to the default look). So all is well.

After updating to 3.6.0.40, the button behaviour changed. When I make the button visible again after clicking it and hiding it, it still displays the mouse over image (the button is highlighted). This happens even if the mouse isn't over the button. The only way to "reset" the button to the normal image, is to hover the mouse over it again, and then move the mouse away from it. This behaviour might have started already in the previous RC 4 version.

Hope this makes sense! It's a small issue, but seems very tricky to fix. Maybe someone else could test this? Not 100 % sure what could have caused this change, but updating the engine is my guess. Thanks!

EDIT: Found another instance of this bug: I have a map gui that has location buttons (with normal images, pushed images and a mouse over images). When I click a button, the map gui closes and player is teleported to the new room. When I enter the map again, the button I pressed still uses the mouse over image, even when to mouse is nowhere near it.
Dreams in the Witch House on Steam & GOG

Crimson Wizard

#59
Quote from: rongel on Wed 11/01/2023 10:48:25So earlier I used the version 3.6.0.37 and everything worked well. I have a GUI button that has a normal image, pushed image and a mouse over image. After I click the button, I make it invisible. Then, if I make it visible again, it will show the normal image (it's reseted to the default look). So all is well.

After updating to 3.6.0.40, the button behaviour changed. When I make the button visible again after clicking it and hiding it, it still displays the mouse over image (the button is highlighted). This happens even if the mouse isn't over the button. The only way to "reset" the button to the normal image, is to hover the mouse over it again, and then move the mouse away from it. This behaviour might have started already in the previous RC 4 version.

I cannot reproduce this, in a test game I made button acts properly when becoming visible again. I tried both making button invisible and whole gui invisible (and visible again).

I may mention that between 0.37 and 0.40 I did one fix related to button update after interface gets disabled and enabled (on game pause/unpause). Maybe this is connected somehow, but so far I cannot tell what went wrong.

Can I see your game somehow, is it available for download?

rongel

Looks like I managed to reproduce it in a new test game. I made a button with all the different graphics, then when I click it, it does this:

Code: ags
function btn1_OnClick(GUIControl *control, MouseButton button)
{
  btn1.Visible = false;
  Wait(40);
  btn1.Visible = true;
}

If I move the cursor from top of the button while the game is paused, it's still has the mouse over graphic when it becomes visible again. I tested it by hiding the GUI (instead of the button), and it works normally (the button has the default graphics). I can send my test game if you need it.

Dreams in the Witch House on Steam & GOG

Crimson Wizard

Quote from: rongel on Wed 11/01/2023 18:09:48Looks like I managed to reproduce it in a new test game. I made a button with all the different graphics, then when I click it, it does this:

Code: ags
function btn1_OnClick(GUIControl *control, MouseButton button)
{
  btn1.Visible = false;
  Wait(40);
  btn1.Visible = true;
}

Yes I see now; looks like I fixed one thing but broke another... This happens in both 3.5.1 and 3.6.0.

Crimson Wizard

#62
I seem to have fixed this, the temp build download will appear here, in about 1 hour:
https://cirrus-ci.com/task/6686114136719360

EDIT: should be available now.

rongel

#63
Quote from: Crimson Wizard on Wed 11/01/2023 21:17:58I seem to have fixed this, the temp build download will appear here, in about 1 hour:
https://cirrus-ci.com/task/6686114136719360

Thanks for the fix! I tested this and it works in my simple test game situation. Unfortunately, it didn't fix the button issues in my own game. I did more testing and it seems the issue is also connected to the Tween Module and fading in and out. I use a lot of quick fades, and my own fade gui. The problem remains when ever they are used with a button click. Some examples of the wrong button behaviour:

Code: ags
function btn1_OnClick(GUIControl *control, MouseButton button)
{
  gGUI1.TweenFadeOut(0.1); // gGUI1 has btn1 in it
  Wait(40); // Move mouse away from the button while game is paused
  gGUI1.TweenFadeIn(0.1);
}


Code: ags
function btn1_OnClick(GUIControl *control, MouseButton button)
{
  gFadeGui.TweenFadeIn(0.1); // My custom fade, black screen
  Wait(40); // Move mouse away from the button while game is paused
  gFadeGui.TweenFadeOut(0.1);
}

EDIT: Ok, even this causes the issue (I removed the Tween Module, so that doesn't cause it):

Code: ags
function btn1_OnClick(GUIControl *control, MouseButton button)
{
  gGUI2.Visible = true; // Opens another Gui
  Wait(40); // Move mouse away from the button while game is paused
}
Dreams in the Witch House on Steam & GOG

Crimson Wizard

As far as I know, TweenFadeOut calls Visible = false secretly when transparency reaches 100, so that's same case in practice.

So, you are making whole GUI invisible, not just the button?

rongel

Quote from: Crimson Wizard on Thu 12/01/2023 11:23:04So, you are making whole GUI invisible, not just the button?
Yes, I've tested that too. The results seem a bit weird and hard to explain, but here's what I've found out:

Things that work:
- Making the GUI (that has the button) invisible and visible
- Making the button invisible and visible (with the new fix)

Things that don't work:
- Fading out and fading back in the GUI (that has the button) with Tween Module
- Making another GUI visible after clicking the button (no Tween Module, no fades). This seems the most strange one to me.

I can send my test game if it's easier to see what I mean.
Dreams in the Witch House on Steam & GOG

Crimson Wizard

Quote from: rongel on Thu 12/01/2023 12:11:36Things that don't work:
- Fading out and fading back in the GUI (that has the button) with Tween Module
- Making another GUI visible after clicking the button (no Tween Module, no fades). This seems the most strange one to me.

I can send my test game if it's easier to see what I mean.

I could not reproduce this using the temp 3.6.0 build (which I linked above). I guess I will have to see this in your game...

Crimson Wizard

So, all of this is not related to fading, or making GUIs visible, even following triggers the problem:
Code: ags
function btn1_OnClick(GUIControl *control, MouseButton button)
{
  Wait(40); // Move mouse away from the button while game is paused
}

I noticed that you have a setting that when interface is disabled, GUI should "display normally". This may be an essential difference between yours and my test games.


rongel

Quote from: Crimson Wizard on Thu 12/01/2023 21:29:24@rongel
Another update: https://cirrus-ci.com/task/5986584122621952

Quick testing looks really promising, all of my buttons seem to be working properly now, and the map screen behaves like it used to. Thanks so much for these quick fixes CW!
Dreams in the Witch House on Steam & GOG

Crimson Wizard

Updated to RC6 (3.6.0.41)
(use download links in the first post)

Editor:
- Fixed syncdata.dat (lipsync) output file getting parsed like Papagayo source;
- Fixed GUI.Visible property was resetting to false when PopupStyle is switched to Modal;

Engine:
- Fixed GUI sorting for cases when ZOrder is equal (this could cause both regression in drawing order, and click detection mistakes);
- Fixed GUI buttons could retain mouse-over pic after interface is disabled then enabled (this is a regression since recent update).
- Fixed memory leak occuring when the TTF font is drawn partially outside the DrawingSurface.
- Fixed few mistakes occuring after restoring much older saves in a game that was upgraded to 3.6.0.
- Fixed crash occuring if a plugin tried to call SetVirtualScreen().



Reported issues remaining:
* Direct3D is said to still be not fully stable when alt+tabbing in exclusive fullscreen mode: https://www.adventuregamestudio.co.uk/forums/ags-engine-editor-releases/ags-3-6-0-release-candidate-rc1/msg636650995/#msg636650995

jumpjack

Sorry if it's a silly question, but why also in 3.6.0 there is no "New" button/menu to create a new game without exiting the editor?

Apart from this, I just opened an issue about a "text bug" I recently discovered in RC3 but still present:

https://github.com/adventuregamestudio/ags/issues/1900

Crimson Wizard

#72
Quote from: jumpjack on Thu 19/01/2023 07:51:29Sorry if it's a silly question, but why also in 3.6.0 there is no "New" button/menu to create a new game without exiting the editor?

It never existed in AGS Editor (at least since 3.0). This is one of those problems that never get addressed, mostly because people don't ask about them often (if ever).


Matti

I would also like to have a "new" button  :) More than that though I would really like to have a "save as" option to create a new/seperate project. But it's true, I never asked about that!


Manu

#75
Hello
I found this bug on my game compiled with AGS 3.6.0.41. It can be easily reproduced:
1) Play the game in full screen
2) Press Alt+Tab to switch to another program (the game gets minimized in the taskbar)
3) Click the game title in the taskbar to restart playing.

The game crashes badly. This is the error:
Code: ags
---------------------------
Illegal exception
---------------------------
An exception 0xC0000005 occurred in ACWIN.EXE at EIP = 0x0051578E; program pointer is +5, ACI version 3.6.0.41, gtags (7,8)

AGS cannot continue, this exception was fatal. Please note down the numbers above, remember what you were doing at the time and contact the game author for support or post these details on the AGS Technical Forum.



Most versions of Windows allow you to press Ctrl+C now to copy this entire message to the clipboard for easy reporting.

An error file CrashInfo.dmp has been created. You may be asked to upload this file when reporting this problem on the AGS Forums. (code 0)
---------------------------
OK  
---------------------------

dmp can be downloaded here

Is it just my game or it's a general problem?

EDIT: It doesn't happen if I use "driver=OGL" in the config

eri0o

@Manu can you share your crash dump again? The file disappeared from the host.

Crimson Wizard

#77
The crash is trivially reproduced in any game that has a GUI. It is related to gui textures getting disposed when the display mode changes. I'm not completely certain yet, but either something is not reinitialized correctly, or this may happen in the middle of the render pass (and then renderer happen to access a deleted texture).

eri0o

#78
It's probably something not reinitialized correct, if I remember the code display mode change should cause a device lost exception which then causes the reinitialization of the textures. Or in the middle of the render pass would not be trivial to reproduce - it doesn't take that long and alt+tabbing in it would be hard.

Edit: for some reason I can't reproduce this specific issue at all.

Edit2: ok, if I set the fullscreen = native in acsetup.cfg I don't get a crash but it hangs AGS, and because of the low resolution I can't figure a way to exit it. But I think this is the previously reported direct3d alt+tab issue.

lapsking

#79
First of all thanks for AGS 3.6, great job guys. I just have a suggestion or better to say request, is it possible after converting game to apk for Android and turning the phone screen into horizontal the game also becomes horizontal, like most Android apps. The screen will be much bigger and playing the game will be much more practical on phone, though it's fine on bigger tablets but still most of screen is wasted, texts are much smaller and some hard to read, more difficult to click on smaller objects and of course playing on a bigger screen is much more fun. Or if it's not possible for screen to turn with phone maybe just converting it horizontal by default since the games are made on PC for a horizontal screen, like other adventure games on Android which are horizontal by default. I don't know if that's possible.
the Thing is in the process, and mostly gone when it's done.

Manu

Quote from: eri0o on Thu 26/01/2023 23:28:53@Manu can you share your crash dump again? The file disappeared from the host.

Sorry for the delay. Here you go:

https://we.tl/t-GH1oNGhdKM

eri0o

@Manu thank you!

@lapsking you can set the rotation you want in the default setup, there's a setting for it. The default unlocked mode though was broken but it will be fixed in the next release.

lapsking


@lapsking you can set the rotation you want in the default setup, there's a setting for it. The default unlocked mode though was broken but it will be fixed in the next release.
[/quote]

Wow, great. Many thanks.
the Thing is in the process, and mostly gone when it's done.

Crimson Wizard

Quote from: Manu on Sun 22/01/2023 21:50:02Hello
I found this bug on my game compiled with AGS 3.6.0.41. It can be easily reproduced:
1) Play the game in full screen
2) Press Alt+Tab to switch to another program (the game gets minimized in the taskbar)
3) Click the game title in the taskbar to restart playing.

The game crashes badly.

Possibly fixed in this temp build:
https://cirrus-ci.com/task/5463418820362240

It does not fix the previously reported problem, where Direct3D full screen may "hang" randomly if you alt+tab multiple times.

rongel

I noticed a possible new issue with the latest RC version with the idle animation delay. I have set it to 2 in the editor, but when I start a new game, it's actually 7 for some reason. I can manually change it to 2 with the IdleAnimationDelay command, and the idle animation plays like it should.

I think this issue is with the new version, but I'm not 100 % sure about it. There's always a possibility that it's my doing. Can someone else confirm this?
Dreams in the Witch House on Steam & GOG

Crimson Wizard

#85
EDIT: 3.6.0.42 is re-released, to include one extra fix, please scroll few posts below for details.

Crimson Wizard

Quote from: rongel on Sat 04/02/2023 16:28:00I noticed a possible new issue with the latest RC version with the idle animation delay. I have set it to 2 in the editor, but when I start a new game, it's actually 7 for some reason. I can manually change it to 2 with the IdleAnimationDelay command, and the idle animation plays like it should.

I think this issue is with the new version, but I'm not 100 % sure about it. There's always a possibility that it's my doing. Can someone else confirm this?

This probably is related to the change in 3.6.0 where you can have an explicitly set idle delay. The old version was making idle delay equal to the animation delay + 5, and this is where 5 comes from, likely.

The question is, is your game built as 3.6.0 and run as a new game, or have you built it with 3.5.1 previously and restoring an older save made in 3.5.1?

rongel

Quote from: Crimson Wizard on Sat 04/02/2023 17:40:42The question is, is your game built as 3.6.0 and run as a new game, or have you built it with 3.5.1 previously and restoring an older save made in 3.5.1?
It happens with the RC 6 and RC 7 when starting a new game. Weird thing is that I think it has well worked before, like a month ago or something. Just now noticed this behaviour when testing my game.
Dreams in the Witch House on Steam & GOG

Crimson Wizard

Quote from: rongel on Sat 04/02/2023 18:43:58
Quote from: Crimson Wizard on Sat 04/02/2023 17:40:42The question is, is your game built as 3.6.0 and run as a new game, or have you built it with 3.5.1 previously and restoring an older save made in 3.5.1?
It happens with the RC 6 and RC 7 when starting a new game. Weird thing is that I think it has well worked before, like a month ago or something. Just now noticed this behaviour when testing my game.

This might fix it:
https://cirrus-ci.com/task/5515636294549504

lapsking

#89
Hi,

I had a problem with the letters of my fonts being cropped in AGS 3.5, so Crimson Wizard suggested using AGS 3.6. Thanks to all you guys working on new version, my issue is mainly fixed. But I have realized in one of my classic medieval fonts if I use a capital letter that stretches like capital K at the end of a sentence the right side still gets cropped, though top and bottom is fine. I might never need to use a capital letter at the end of a sentence in my game, I don't know yet, but I thought with all your hard work, it might be worthy to mention it, or maybe not. Thank you.

like this:


And I realized sometimes the capital K at the end of the sentence is written complete but the right side doesn't have an outlining.



Sorry if my OCD is bothering you, it hurts me the most, imagine how my wife is coping with that!
the Thing is in the process, and mostly gone when it's done.

Crimson Wizard

I re-released RC7 (3.6.0.42), including one extra fixed reported by @rongel yesterday. Please download again.
(use download links in the first post)

Editor:
- Allow to find Android's sdkmanager in alternative directories when building the game for Android.

Engine:
- Fixed GetTextWidth would still return a size of an outline for an empty text string.
- Fixed preload.pcx is not displayed properly.
- Fixed legacy letterbox mode in Direct3D/OpenGL renderers.
- Fixed idle animation speed is increased by 5 on game load (regression since one of the previous RCs).
- Fixed background speech and textual overlays could disable GUI if continuously created in repeatedly_execute.
- Fixed certain MPG videos will skip if played with audio disabled.
- Fixed crash when restoring a minimized Direct3D fullscreen mode.

Android:
- AGS Player now has preference button per each game, which opens individual game's settings.
- Fixed global settings not working correctly for AGS Player.
- Fixed screen rotation setting ("unlocked" option was not working).



Reported issues remaining:
* Direct3D is said to still be not fully stable when alt+tabbing in exclusive fullscreen mode: https://www.adventuregamestudio.co.uk/forums/ags-engine-editor-releases/ags-3-6-0-release-candidate-rc1/msg636650995/#msg636650995

lapsking

I saw this in RC7:

QuoteEngine:
- Fixed GetTextWidth would still return a size of an outline for an empty text string.

And thought might solve the issue I mentioned above too, but still the issue exists in RC(7) too. Just reporting.
the Thing is in the process, and mostly gone when it's done.

Crimson Wizard

Quote from: lapsking on Sun 05/02/2023 12:59:28But I have realized in one of my classic medieval fonts if I use a capital letter that stretches like capital K at the end of a sentence the right side still gets cropped, though top and bottom is fine. I might never need to use a capital letter at the end of a sentence in my game, I don't know yet, but I thought with all your hard work, it might be worthy to mention it, or maybe not.

Could you post a link to let us download your font?

lapsking

the Thing is in the process, and mostly gone when it's done.

Crimson Wizard

Updated to RC8 (3.6.0.43).
(use download links in the first post)

Editor:
- In sprite manager's context menu added (restored) command "Replace sprite using previous files". Also made "previous file" remembered consistently whenever a sprite is imported or replaced.
- In sprite manager's "export all" dialog added "reset tile settings" option.
- Fixed program crash occuring on sprite's import if failed to open a source file for any reason.
- Fixed crash occuring when user was trying to set breakpoint on the very last line in script.

Engine:
- Support for switching vertical sync at runtime with Direct3D/OpenGL renderers. Also enable vsync in windowed mode too.
- Restored vsync support in Software renderer (was temporarily disabled in 3.6.0 after porting the engine to SDL2).

Web/Emscripten:
- Support persistent game saves (will remain on disk after game is closed).
- Added a ui control for clearing persistent files.
- Added a ui control for switching to fullscreen. Properly support switch to fullscreen mode.
- Use consistent version of Freetype lib, so that the game fonts are displayed similarly to other ports.
- Show game alerts as message popups in browser.
- Fixed suspending the game when alt+tabbing from the browser.



Reported issues remaining:
* Direct3D is said to still be not fully stable when alt+tabbing in exclusive fullscreen mode: https://www.adventuregamestudio.co.uk/forums/ags-engine-editor-releases/ags-3-6-0-release-candidate-rc1/msg636650995/#msg636650995

Crimson Wizard

#95
I think, if nothing bad happens, we may announce a "stable" release on the 1st March (just to have some round date).

There may still be patches later, as usual, if some fixes are necessary.

Crimson Wizard

Quote from: Crimson Wizard on Tue 21/02/2023 20:30:59I think, if nothing bad happens, we may announce a "stable" release on the 1st March (just to have some round date).

Every time I say this...

There are couple of problems with the Web port which we are looking at currently, but hopefully they won't require alot of changes.

Crimson Wizard

Updated to RC9 (3.6.0.44).
(use download links in the first post)

Editor:
- Editor now copies a acsetup.cfg file from the project's root folder (if one is provided by a user) as a base for generating default config file. Settings from Default Setup will be written over, but other found options won't be removed.

Engine:
- Added "emul_mouse_mode" and "emul_mouse_relative" options to config in "[touch]" category. Touch-to-mouse emulation (mobile and Web ports) now uses distinct relative motion setting.
- Added stubs for agsappopenurl plugin.
- Fixed UTF-8 translations in ASCII-sourced games not correctly working on Unix systems (Linix, OSX, Android, etc).

Compatibility:
- For pre-3.5.0 games support old behavior of coincidental dynamic sprite replacement on GUI backgrounds (and few other places) without explicit assignment; that is - when the new DynamicSprite is created right after deleting an old one. (Yes, apparently there are few games that rely on that...)

Web/Emscripten:
- Few improvements for the overlay UI controls.
- Fixed few problems with the game focus and scaling when run in iframe.



Reported issues remaining:
* Direct3D is said to still be not fully stable when alt+tabbing in exclusive fullscreen mode: https://www.adventuregamestudio.co.uk/forums/ags-engine-editor-releases/ags-3-6-0-release-candidate-rc1/msg636650995/#msg636650995

Crimson Wizard

So, there was a small bug found, where Objects with ID >= 100 failed to Animate.
(Objects limit was increased 40 -> 256 in this version, and there was some weird legacy behavior that had conflicts with this.)
If anyone interested, here's a temp build with a fix:
https://cirrus-ci.com/task/4928866972598272

Another thing, we need to update Sierra template again, because it contains a small bug noticeable if you have translations and kept the default options Panel.
FYI the fix looks like this:
https://github.com/adventuregamestudio/ags-template-source/commit/dac12352fa0dc398c1e6db45a1d5a35c4ad06e5c

Crimson Wizard

#99
Updated to RC10 (3.6.0.45).
(use download links in the first post)

Editor:
- Fixed "export sprites" command run with an option to export sprites with absolute source paths.

Engine:
- Fixed that `Animate` command did not work for room objects with ID >= 100.
- Fixed `SimulateKeyPress` command could break some engine mod-key combinations (such as alt+ctrl for mouse lock, and so forth).
- Fixed initial positioning of a game window on desktop.
- Restored `--gfxfilter` command arg support for explicit scaling multipliers.

Templates:
- Updated to the latest project format.
- Fixed Sierra-style template relied on a human text on a button for switching voice modes (this could break if you change the text, or use a translation).

Crimson Wizard

#100
Currently there following known issues, counting the critical and regressions:

First priority to fix:
FIXED1. Touch controls on some iOS devices (for web port, but may relate to iOS port too); I believe eri0o is working on the fix now.
FIXED2. A potential crash when restoring a save, related to Crossfade transition; found in very particular scenario:
Quote* Game begins in room 1 with regular fadeout.
* Room 2 has crossfade fadeout set in "after fade in" event. (SetScreenTransition(eTransitionCrossfade))
* Player saves in room 2.
* Player quits the game, restarts, appearing in room 1
* Restores the save made in room 2, which leads to crash.

Not overly critical, but annoying:
FIXED3. PlayQueue not playing next clip seamless (ticket), there's a small random gap. This affects cases when one music track transitions into another (e.g. non-looping intro continues into the looping main track). There are "manual" workarounds though. The problem is due to the differences in audio "systems" in 3.6.0 and earlier ones. I postponed working on this, as was not completely certain how complicated that would be, and thinking that 3.6.0 will be released soon... I'd like to look into this again in the following days and see if there's a "quick" solution. If not, then I'd likely leave this for the next 3.6.* patches / minor updates.
EDIT: have an idea of a temporary "hack" in the engine...
4. AudioChannel.Position not working for MIDI and XM/MOD clips (ticket). PositionMs works though. Position property was returning "sample" index for MIDI/MOD, which is difficult to retrieve with the new sound decoder library we're using. So this is mostly a matter of updating the library , either doing that ourselves, or nagging library authors to do this. I am leaving this for the future 3.6.* updates.
5. Problems with MIDI, or rather with loading config and sound fonts. This is a long and complicated story, in brief, not all soundfont packs work as-is, and engine can only find them in a few preset locations, which may not be convenient for some users. Again, for the future updates (dealing with the decoder library).
6. It's been reported that Direct3D "real fullscreen" mode sometimes hangs when alt+tabbing. The behavior was improved, but according to reports it is still possible to make it hang if you alt+tab alot. The situation is not understood well, and personally I was not able to reproduce this on my machine.

Crimson Wizard

Updated to RC11 (3.6.0.46).
(use download links in the first post)

Engine:
- Fixed touch-to-mouse emulation not working at all on certain devices (for example:  iOS Safari).
- Fixed touch-to-mouse emulation had mistakes when interacting with the game GUI controls.
- Fixed D3D9/OGL renderers could crash during a crossfade transition (under certain circumstances).
- Fixed clips scheduled with `AudioClip.PlayQueued()` are started with a noticeable gap between clips.



Crimson Wizard

#102
Full version released: https://www.adventuregamestudio.co.uk/forums/ags-engine-editor-releases/ags-3-6-0/

FYI there was one extra fix compared to the latest RC11:

Engine
 - Fixed FadeIn/Out and ShakeScreen prevent audio from starting if you started it right prior to them (it was starting afterwards).



SMF spam blocked by CleanTalk