AGS 3.4.0 - Patch 4

Started by Crimson Wizard, Mon 27/03/2017 22:15:22

Previous topic - Next topic

Crimson Wizard

AGS 3.4.0 - Patch 4 released
Current release number: 3.4.0.16








Released: 28th March 2017

Previous stable version: AGS 3.3.5 forum thread


A minute of attention for those who are new for 3.4.0 version:
AGS 3.4.0 contains a big load of changes, which may take a while to explore. The following (read-only) topic is created to make getting used to it easier:
http://www.adventuregamestudio.co.uk/forums/index.php?topic=52499.0

Also, please, read "Upgrading to AGS 3.4" topic in the manual that comes with this version. It contains important information on most notable new features and few potential problems you may encounter when upgrading older projects.

Another important note on upgrading your older projects to latest 3.4.0 (read under spoiler):
Spoiler

AGS 3.4.0 now has a "Script API version" and "Script compatibility level" switches, which determine a range of built-in script functions you may use in your game (also called Script API).
"Script API Version" defines the TOP limit, or the latest version of scripting your game uses.
"Script compatibility level" defines the BOTTOM limit, or which OLD functions should still be available.

When you upgrade your game project from the older versions (3.3.* and lower), the Editor automatically sets "Script compatibility level" corresponding to the version of AGS this project was last saved in. This is done for backward compatibility. But you can change that anytime. Be prepared, however, that you may have to fix certain parts of your script. Usually necessary fixes are limited to renaming functions. Also, it is suggested to do "Rebuild all files" after you change any of those two switches.
[close]


KNOWN ISSUES:
- Strings do not work with switch/case script commands as intended. They were supposed to be compared by value, but are instead compared as pointers.
- Local variables do not work as switch's "case" expression.
This worked in some early BETA versions, but was broken at some point. We plan to fix this in the future updates.



Changes in the Patch 4:

Editor:
- Improved Font preview, now it displays all 256 supported characters and resizes itself to accomodate these on the grid properly.
- Fixed game compilation on systems which have Japanese ANSI or similar locale as default locale for non-Unicode applications.
- Fixed Linux binaries were not copied to the Compiled folder if AGS Editor is installed to "C:/Program Files" and run in a non-administrator mode.
 
Engine:
- Fixed toggling mouse lock in window with Ctrl+Alt did not work all the time.



Changes in the Patch 3:

Common bug fixes:
- Fixed program crash in Engine and Editor when loading/importing a game that contains file with name longer than 50 characters.

Editor bug fixes:
- Do not copy hidden and system files into final directories when building the game.



Changes in the Patch 2:

Script API:
- Extended the list of System.OperatingSystem possible return values; now supports eOSAndroid, eOSiOS, eOSPSP

Editor bug fixes:
- Fixed incorrect Unicode-to-ANSI string conversion during game compilation which caused text containing non-latin characters become random mess in game, even if game fonts complied to the proper ANSI codepage.

Engine bug fixes:
- Fixed mouse cursor stuck at the left border of the screen when using OpenGL renderer (Android & iOS ports).
- Fixed InventoryScreen() script function caused game to crash if particular resources are not available.
- Fixed built-in inventory screen not working with Direct3D and OpenGL renderers.
- Fixed obsolete gfxfilter names are printed when using --help argument.

Cosmetics & convenience:
- Corrected error message displayed when engine cannot get write access to the disk (e.g. no more telling to not run from CD on Android).
 
Manual:
- Added information on static extenders.



Changes in the Patch 1:

Editor:
- Fixed #if(n)ver preprocessor directive failed to properly compare versions if the current and required versions have different number of digits.

Engine:
- Returned support for some older config options related to graphics mode, so that the engine would be able to use old config files.
- Fixed graphics mode initialization failure in certain less common setup cases, such as when requested window size was larger than current desktop resolution, or when the final mode appeared smaller than the precalculated one.
- Fixed couple of memory leaks occuring when saved game is restored.
- Fixed rare crash when restoring a game while having unreleased DrawingSurface pointers.
- Fixed compilation in C++11 mode.

WinSetup:
- Fixed "native game resolution" mode choice was not properly restored when loading config file.



What is new in 3.4.0

Common features:
- Added support for building game for multiple platforms (Windows and Linux options are maintained now).
- Added custom game resolutions.
- Added extended WFN font support (up to 256 characters).
- Made custom property values modifiable at runtime.
- Removed limit on custom properties number (was 30 properties per project), increased maximal property name and value length.
- Removed limit on GUI Control number (was 30 per GUI), increased maximal control name length.
- Removed limit on script modules number (was 50).
- Added Locked property to room Objects.
- Added Padding property for TextWindow GUI.

Editor features:
- New splash screen.
- Exposed Clickable property for room Objects in the Editor.
- Exposed TintLuminance property for room Regions in the Editor.
- Added "Close all tabs" command for the pane's context menu.
- Added Preferences option "Prompt dialog on closing multiple tabs".
- The sprite editor now highlights drop targets when you drag sprites around.

Editor Plugin API:
- Exposed GUI Panes to plugin API.

Engine features:
- Added support for any runtime display resolution (now restricted only by your system specifics).
- Added support for vertical sync in Direct3D rendering mode.
- Made engine try to use all implemented graphic renderers in the order of priority, if user selection failed to initialize.
- Rised default sprite cache limit for desktop platforms to 100 MB (was 20).
- Game writes latest translation and mouse speed setting to config file on exit.

Scripting features:
- Added managed user structs; although currently limited to containing only non-pointer variables in them.
- Added support for dynamic arrays in non-managed structs.
THERE ARE KNOWN ISSUES:
Spoiler

It was found that dynamic arrays in struct do not work when you make an array of those struct, for example:
Code: ags

struct MyStruct
{
    int dynamic_array[];
};

MyStruct single_object; // <--- this will work
MyStruct arr_of_structs[10]; // <--- this won't work

Such array caused troubles which were too complicated to fix in time, and require more time to investigate. A decision was made to block creation of arrays of structs, containing dynamic arrays. If you try to declare one in your script you will get an error. Hopefully this restriction will be raised in the future updates.
[close]
- Added support for dynamic array as return value of the struct's member function.
- Added support for static extender functions.
- Added "do..while" kind of loop, in addition to previously existing "while".
- Added "for" operator and related loop construct.
- Added "switch" and "case" operators and related branching construct.
- Added "break" and "continue" operators working in any loop or switch.
- Added missing compound assignment operators (*=, /=, and so on).
- Made preprocessor macros usable in definition of another macro.
- Added "#region" and "#endregion" preprocessor commands.

Script API:
- Added Script API version switch to the project's General Settings. For every supported API version a "SCRIPT_API_vXXX" macro is introduced, where XXX are version numbers.
- Added Script Compatibility Level switch to General Settings. For every compatible version a "SCRIPT_COMPAT_vXXX" macro is introduced.
- Added AudioChannel.Speed property.
- Added CharacterDirection enum and optional "direction" parameter for Character.ChangeRoom().
- Added Character.FaceDirection().
- Added Character.DestinationX and Character.DestinationY properties.
- Added RunActiveOption() and Update() member functions to the DialogOptionsRenderingInfo type.
- Extended Dialog Options API: added support for dialog_options_repexec() and dialog_options_key_press() functions to improve handling of the custom dialog options; added related compatibility project option and support for "NEW_DIALOGOPTS_API" macro in scripts.
- Added game.dialog_options_highlight_color variable.
- Added File.Seek() function and File.Position property.
- Added IsInteractionAvailable() method to Hotspot, Object and Character types.
- Added Game.AudioClipCount property and Game.AudioClips[n] array.
- Added Game.IsPluginLoaded().
- Added GUIControl.ZOrder property.
- Added GUI.Click() and Button.Click() functions which call OnClick event handler of corresponding GUI or button.
- Added GUI.ProcessClick() function that processes click on GUI only, similarily to how old ProcessClick processed click on room objects only.
- Added Mouse.Click() function to simulate mouse click on screen.
- Added Room.GetProperty() to substitute global GetRoomProperty().
- Added Room.ProcessClick() to substitute global ProcessClick().
- Added SetProperty() and SetTextProperty() functions to Room, InventoryItem, Hotspot, Object and Character types.
- Added optional "luminance" parameter to Region.Tint() and Region.TintLuminance readonly property.
- Added SetAmbientLightLevel() to set global light level for anything in the room.
- Added Character.SetLightLevel() and Object.SetLightLevel() functions to set individual light levels. Negative light levels can be used in 8-bit games to produce darkening effect.
- Added System.RuntimeInfo property which returns a short description of current graphics mode, scaling filter and enabled game resources.

Editor bug fixes:
- Fixed Undo history was deleted when an Editor panel changes its docked state.
- Fixed crashes under certain circumstances when a script editor is closed.
- Fixed crash if selecting a character without a normal view in the room editor.
- Fixed Ctrl+Tab did not work for the first time when cycling through opened editor tabs.
- Fixed "Go to Line..." command did not always move cursor to correct line. Also, do not select that line.
- Made the project completely rebuild itself whenever "Enable Debug Mode" value in the General Settings differs from the setting used for the last build, to prevent inconsistency in compiled scripts.
- Fixed a crash when trying to run game setup from the Editor while "Compiled" folder does not exist.
- Fixed project items could sometimes get incorrectly arranged inside the folder.
- Fixed writing faulty timestamps in project file on some occasions that could spoil usage of file versioning control.
- Fixed Help window positioning on multi-monitor desktop.
- Fixed error in autocomplete occuring when there is a single-line comment in the end of the script.
- Fixed incorrect compiler parsing of a static function call inside array index brackets.
- Fixed compilation of struct member functions having name identical to existing global function.
- Fixed compilation of structs having members with names identical to non-basic types, global variables and game entities (such as characters, GUI, etc).
- Corrected few error messages related to struct's function declaration.
- Fixed compiler reporting errors as "runtime errors" under certain circumstances.

Engine bug fixes:
- Fixed result of using transparency parameter of the DrawingSurface.DrawImage() in 32-bit games when drawing opaque sprites over surfaces with alpha channel.
- Fixed DynamicSprite.CopyTransparencyMask() was overwriting magic transparent pixels on destination with alpha values from mask.
- Fixed the speech portrait position was not adjusted for character walking between its lines, when BasedOnCharacterPosition portrait placement is used.
- Fixed occasional pathfinding failure on straight lines with complex walkable areas.
- Fixed using '[' special character in Display-like commands discarded all of the backslashes before it (e.g. "\\[" should now print \[ as expected).
- Fixed WAVE audio not looping after restoring a game
- Fixed a bug that caused MP3 clip continuously increase its base volume if the directional volume modifier was applied.
- Fixed queued audio clips did not update their volume when default audio type volume changes.

WinSetup:
- Added support for "default_translation_name" option in the "[language]" section of the config file.





Thanks to everyone who contributed to and tested this version!




Mehrdad

Great update . Nice job!! . Farsi type complete solved . Thanks for new Font preview and your helps . 
Is Android version same previous version?
My official site: http://www.pershaland.com/

Crimson Wizard

#2
Quote from: Mehrdad on Tue 28/03/2017 17:06:57
Is Android version same previous version?

In theory you can use previous Android version, because nothing significant changed in the engine.

It appeared that AGS server was moved by admins recently; I will upload proper packages as soon as I manage to connect to the new one.
EDIT: Ok, done.

Mehrdad

My official site: http://www.pershaland.com/

lo_res_man

Greetings. I am not sure if this is a relevant section, but has anyone else had problems running this with Wine on Ubuntu, 32 bit?
It goes to the loading splash screen, loads and loads, and then Wine crashes without the level editor proper loading. It's been a damn looong time since I did anything in AGS, and I had an itch to do so, one I can't seem to scratch . . .
Help me, AGS forum, you are my only hope.
†Å"There is much pleasure to be gained from useless knowledge.†
The Restroom Wall

Crimson Wizard

Quote from: lo_res_man on Wed 12/04/2017 17:36:33
Greetings. I am not sure if this is a relevant section, but has anyone else had problems running this with Wine on Ubuntu, 32 bit?
It goes to the loading splash screen, loads and loads, and then Wine crashes without the level editor proper loading. It's been a damn looong time since I did anything in AGS, and I had an itch to do so, one I can't seem to scratch . . .
Help me, AGS forum, you are my only hope.

Have you installed all the prereqesuites? Download page has a list of stuff you need to also have installed (on Windows, and Wine too I believe):
https://www.adventuregamestudio.co.uk/site/ags/

lo_res_man

Yes, indeed I have checked and downloaded the service packs. It did not help, I am afraid.:undecided:
†Å"There is much pleasure to be gained from useless knowledge.†
The Restroom Wall

Crimson Wizard

I am afraid I do not know much about Wine. There was a thread on this earlier this year, maybe OP's solution would help you?:
http://www.adventuregamestudio.co.uk/forums/index.php?topic=54390.0

lo_res_man

#8
Haha! It seems to have worked! The editor runs at least! Thank you muchly! :grin:
†Å"There is much pleasure to be gained from useless knowledge.†
The Restroom Wall

mikosworld

Hi, I just downloaded and installed AGS 3.4.0 patch 4, but unfortunately when I start a project via a template "9-verbs system" and change screen resolution 320x200 => 1280x720 and build it! I get a crash! :(

Crimson Wizard

Quote from: mikosworld on Fri 19/05/2017 18:28:02
Hi, I just downloaded and installed AGS 3.4.0 patch 4, but unfortunately when I start a project via a template "9-verbs system" and change screen resolution 320x200 => 1280x720 and build it! I get a crash! :(

What kind of crash, is there an error message?
Do you get it when you are building the game, or running the game?

mikosworld

QuoteWhat kind of crash, is there an error message?
Do you get it when you are building the game, or running the game?

"Adventure Game Studio run-tin engine has stopped working" with a close program button, after I get another dialogbox "The game engine does not appear to have shut down properly. If the problem persists, post the problem on the Tech Forum" what I did :)
I get that when I run...

I just tested again with "Run without debugger" and I think that the room image (built-in in template) is too smaller. As I set in HD 720p in settings program... it's perhaps that the problem of crash...

Crimson Wizard

The room backgrounds do not resize when you change game resolution, so that might cause problems, although it is strange that it did not post proper error message.

Alan v.Drake

Quote from: Crimson Wizard on Sat 20/05/2017 17:55:02
The room backgrounds do not resize when you change game resolution, so that might cause problems, although it is strange that it did not post proper error message.
Hmm, does the error actually exist in the engine, or is it ignored somwhoe if the room background is flagged as "low resolution" ? I too encountered that issue, but I did not look into it yet.

- Alan

Crimson Wizard

#14
The engine is supposed to report following error:
QuoteThe background scene for this room is smaller than the game resolution. If you have recently changed the game resolution, you will need to re-import the background for this room.

There is an implicit background stretch if resolution type does not match (room was created for 320x200 game but used in hires game) but in practice it works only if "use lo-res coordinates in script" is ENABLED. Latter suggests it was only useful in very old versions of AGS. This would have little sense now anyway, because the stretch is only done from 320x200 to double size, which won't cover all situations.

The proper way of handling this is probably support for any room size (this was requested before).

Anyway, this stretch is normally skipped, and engine shuts down with error message. I tried to repeat same thing as mikosworld described above (with making a game of 9-verb template and changing resolution to 720p), but I do not see crash as in "has stopped working". Some other reasons might have been invloved there.

Providing exact steps to get this problem, or a compiled game (or even game project) that causes the crash could help.

Arlann

Hi, for some days the graphics setting of my project no longer offers me the Direct3D driver and only "Desktop resolution" and "Native resolution" in the mode setting.
I've tested with an older backup of my project and I do not have this problem. I don't think I've changed the project settings so I don't see where the problem comes from. Any idea ?

Crimson Wizard

Quote from: Arlann on Tue 01/08/2017 19:42:29
Hi, for some days the graphics setting of my project no longer offers me the Direct3D driver and only "Desktop resolution" and "Native resolution" in the mode setting.
I've tested with an older backup of my project and I do not have this problem. I don't think I've changed the project settings so I don't see where the problem comes from. Any idea ?


Are you speaking of project settings, or winsetup? Also, what version of AGS exactly are you using?

Arlann

I'm talking about the winsetup and I'm using version 3.4.0.16
I answered the problem by changing the windows properties of AGSEditor in compatibility mode "compatibility mode Windows 7" (I work on a windows 10).
All WinSetUp settings are available again.

Crimson Wizard

Quote from: Arlann on Tue 01/08/2017 21:06:59
I'm talking about the winsetup and I'm using version 3.4.0.16
I answered the problem by changing the windows properties of AGSEditor in compatibility mode "compatibility mode Windows 7" (I work on a windows 10).
All WinSetUp settings are available again.

Oh, there were reports about Windows 10 having issues with Direct3D. This might be related.

Winsetup tries to detect whether Direct3D is supported when it starts, so if operating system does not let it do that, it won't show in the list.

Arlann

Quote from: Crimson Wizard on Tue 01/08/2017 21:28:13
Oh, there were reports about Windows 10 having issues with Direct3D. This might be related.

Winsetup tries to detect whether Direct3D is supported when it starts, so if operating system does not let it do that, it won't show in the list.

I think my problem appeared by doing "rebuild all files", I do not know if it is related, but I've been working with windows 10 for a year and I had not had this problem before. The resolutions predefined in the WinsetUp mode had also disappeared, only native resolution and desktop resolution remained. By changing the Windows compatibility property (right click on the exe file) of the AGS Editor or the build of the game, all parameters return.
Thanks!

SMF spam blocked by CleanTalk