Author Topic: AGS 3.5.1 - Beta 4  (Read 1001 times)

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
AGS 3.5.1 - Beta 4
« on: 22 Mar 2021, 18:19 »
AGS 3.5.1 - Beta 4
Full release number: 3.5.1.3

ACHTUNG!
This is a BETA version of AGS 3.5.1.
It's considered relatively stable but is not thoroughly tested yet and also may have planned additions.
Use at your own risk. Please back up any games before opening them in this version of AGS.
New settings in this version may make your project files unusable in previous versions after saving with this version.


For Android


For Engine/Editor developers


Last update: 17th April 2021


Current stable version: AGS 3.5.0 P9 forum thread



This release is brought to you by:

- Alan v. Drake
- Crimson Wizard
- eri0o
- James Duong (implemented "--console-attach" option for Windows)
- Morgan Willcock
- Nick Sonneveld
- rofl0r
- Thierry Crozat (bug fixing)


Summary

3.5.1 is a minor update after 3.5.0, which contains mostly utility additions, fixes and perfomance improvements.
There's one minor change to game project, and one change to savegame format which had to be made to fix one old issue with overlays. This means that you will likely be able to downgrade your project from 3.5.1 to 3.5.0 with a simple manual edit in Game.agf, but saves made with 3.5.1 engine will not be compatible with 3.5.0. (You can still use old saves with 3.5.1 engine of course)

This is likely to be the last full version before transition to SDL2-based engine, which is currently in works and is planned to be released as 3.6.0.


What is new in 3.5.1

Editor:
 - Added "Attach game data to exe" option to General Settings. This lets you to package game data separately from the game.exe (only important on Windows at the moment).
 - Display aspect ratio in game resolution dialog.
 - Improved tab switching performance for script windows.
 - Deprecated "Limit display mode to 16-bit" property in Runtime Setup as it's no longer used by the engine.
 - Editor will now enforce full game rebuild after upgrading an older project, this ensures that all scripts are recompiled with the new version rules.
 - Fixed room lists in property editor were not updated after room number is changed.
 - Fixed importing pre-3.* projects broken by incorrect assignment of "Game file name" property.
 - Fixed importing Characters and GUI without sprites still created empty sprite folders.
 - Fixed crash when exporting/importing Characters with no Normal View.

Scripting:
 - Implemented correct parsing of a "const string" function return type.
 - Fixed implementing imported functions was forbidden in the room scripts.

Script API:
 - Added GUI.Shown readonly property that tells whether GUI is active on screen. This is primarily for GUIs with "Popup At Y" style, because they hide themselves regardless of Visible property. Note that since 3.5.0 GUI.Visible only tells a script-set value.
 - GetTranslation() now returns "const string" (was "string"). This is to prevent modifying returned string using old-style string functions, such as StrCat(), as this string may be allocated in the internal engine memory for its own use.

Engine:
 - Support loading audio and video from data packages larger than 2 GB.
 - Improved game data loading times by introducing buffered file stream. Initial tests showed 3-4 times faster file reading.
 - Improved game perfomance by not reupdating all of the GUIs each time anything changes, instead only affected GUI will be updated each time.
 - Some improvement to general script perfomance.
 - Some improvement to script Dictionary and Set types perfomance.
 - Room Object's Graphic property now can be assigned a sprite with index over 32767 and up to 65535. This restriction is due to internal data format, which cannot be fully fixed without breaking compatibility with plugin API. This may still be worked around by assigning a View, as View's frames may contain sprites of any index available.
 - Similarily, Object's View, Loop and Frame can now be assigned a value over 32767 and up to 65535; not that this was ever an issue...
 - Removed arbitrary limit of 1000000 dynamic array elements (now supports over 2 billion).
 - Dialogs with no enabled options left will be now stopped, instead of raising script error.
 - Engine will not longer quit the game when failing to write a save, but simply display an error on screen (...why this was a thing in the first place?!).
 - When restoring a save engine will now try to match game pack by GUID rather than using exe/pack name. This resolves potential problems when game package may have different name in distribution to another system. Also makes saves in multi-game collections more reliable.
 - In Debug game mode allow to toggle infinite FPS mode (prior it could not be turned off).
 - Expanded text parser error messages for easier debugging.
 - Adjusted all the command-line options to have consistent prefix convention, where all full-name options must be preceded by double-dash, and one-letter options by single dash.
 - Added "--localuserconf" command and similar global config option which tells engine to read and write user config in the game's directory rather than using standard platform path. Game dir must be writeable for this to work.
 - Added "--conf" command which forces engine to read only explicit config file on startup.
 - Added "--user-data-dir" and "--shared-data-dir" commands for setting save game directory and shared app data directory from command line (this corresponds to existing options in config).
 - Fully configurable log output (in both game config and command line) allows to set up which message types and groups are printed by which output methods (sinks), including: file, system console, in-game console. "warnings.log" is now created only if file log was not requested by user.
 - Added "--log-" set of command line options for setting up log output.
 - Added "--tell-filepath" option for printing known engine's and game's file locations.
 - Added "--tell-gameproperties" option for printing some of the game's general settings.
More information on log config and --tell commands currently may be found in following text file: OPTIONS.md
This has to be added to the manual eventually.
 - Support proper lookup for Allegro 4 library resources (such as its own config and digital MIDI patches) in the game directory.
 - Engine will no longer precreate directories for common files: saves, user config, shared files and so forth, - before actually having to write these. This ensures that no new directories are created on your disk without actual need. Also this fixed a problem that could happen if someone deleted e.g. a game's save directory while game was running.
 - Fixed running game from another directory by passing its relative filename as command-line argument: in this case engine was incorrectly using its own directory to search for external game data, opening files for reading by script command, and so on.
 - Fixed some of the engine's own hotkeys (such windowed/fullscreen mode toggle) not working during certain skippable game states.
 - Fixed overlay was set to wrong position if it were using TextWindow gui and either its text or X, Y properties got changed.
 - Fixed characters and room objects were not updating their looks if their current graphic was a Dynamic Sprite, and that sprite was modified with ChangeCanvasSize, CopyTransparencyMask, Crop, Flip, Resize, Rotate or Tint function.
 - Fixed Views' frames keeping reference to deleted Dynamic Sprites causing crashes. Now they will be reset to dummy sprite 0 for safety.
 - Fixed engine crash when button's graphic is set to sprite out of range.
 - Fixed animated cursor's normal graphic reappearing in between animation frames if mouse mode is being repeatedly reassigned, for example in rep-exec script.
 - Fixed certain interactions did not work with GUI if it was made fully transparent.
 - Fixed ListBox.FillSaveGameList() search pattern, it included files which contain save filename pattern but do not exactly match; for example: "agssave.001_".
 - Fixed engine was ignoring audio files in game directory when running games which use old audio system.
 - Fixed Direct3D was assigning wrong fullscreen refresh rate sometimes, slowing alt-tabbing.

Engine Plugin API:
 - Added IAGSEngine::GetRenderStageDesc() function which returns current render stage parameters. As of this version these parameters include 3 transformation matrixes, allowing any 3D render plugin to stay compliant to engine's scene rendering.

Compatibility:
 - Fixed engine was trying to read unnecessary data when loading pre-2.72 games.
 - Fixed "upscale" mode for old games (was broken in 3.5.0). Also engine will now try to detect if "upscale" mode wanted by reading old config options (if they are present).
 - Fixed GUI.Visible not returning expected values for GUIs with "Popup At Y" style in pre-3.5.0 games, breaking some older games logic.
 - Fixed potential buffer overflow when reading pre-3.1.0 games with old dialog script texts.

OSX:
 - When looking for game files engine will no longer use hardcoded filename, will search for any compatible pack file instead.

Windows:
 - Windows version of the engine now reads global configuration file. It is looked up in "%USERPROFILE%/Saved Games/Adventure Game Studio/acsetup.cfg"
 - Default log file location is now also in "%USERPROFILE%/Saved Games/Adventure Game Studio".
 - Added "--no-message-box" command line option to hide message boxes when alerts are raised. These messages will be still printed to log (if one is enabled).
 - Added "--console-attach" command line option to try attach to the parent process's console. This is useful if you run game from command line and want to see engine's log in the console.

WinSetup:
 - Fixed changing fullscreen mode from "use current desktop" to explicit resolution on save.



More info...

New config and command-line options are documented in OPTIONS.md. They have to be added to manual eventually.

« Last Edit: 17 Apr 2021, 20:49 by Crimson Wizard »

Re: AGS 3.5.1 - Beta 1
« Reply #1 on: 23 Mar 2021, 05:16 »
Awesome, Thanks for the update CW and others. Nice job!
My official site: http://www.pershaland.ir/

Re: AGS 3.5.1 - Beta 1
« Reply #2 on: 27 Mar 2021, 10:14 »
It's amazing how much hard work you put into this...

I can launch my game but when I run a test I get the following error message:

Quote
ERROR: Unable to determine game data.
Engine was not able to find any compatible game data.
Searched in: d:/Marc/ Brothers & Wreckers/Speech

There's no speech in the game so this folder is empty.
« Last Edit: 27 Mar 2021, 10:24 by Creamy »
 

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 1
« Reply #3 on: 27 Mar 2021, 10:20 »
Creamy, have you installed in a separate folder on top of existing editor?

Re: AGS 3.5.1 - Beta 1
« Reply #4 on: 27 Mar 2021, 10:22 »
I have AGS 3.5.0 installed yes. And the game works fine with it.
 

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 1
« Reply #5 on: 27 Mar 2021, 10:26 »
I have AGS 3.5.0 installed yes. And the game works fine with it.

No, I mean, have you installed new editor into a new folder, or on top of previously existing editor's installation?

Privateer Puddin'

  • Mittens Viscount
  • bob
    • Privateer Puddin' worked on one or more games that won an AGS Award!
    •  
    • Privateer Puddin' worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 1
« Reply #6 on: 27 Mar 2021, 14:35 »
I see the same error when Running (F5) the game. If I rebuild all files, it seems to be ok.

- Beta downloaded as zip archive into a new folder (not on top of previously existing editor installation)
- Copy of game last compiled with 3.4.1
- I do have speech in the folder

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 1
« Reply #7 on: 27 Mar 2021, 17:13 »
This happens when there are spaces in the path to game. I'll fix it.

Re: AGS 3.5.1 - Beta 1
« Reply #8 on: 27 Mar 2021, 18:22 »
Quote
No, I mean, have you installed new editor into a new folder, or on top of previously existing editor's installation?
I don't know if it's still relevant but the new editor is into a new folder.

Quote
If I rebuild all files, it seems to be ok.
I can compile the game just fine but it doesn't solve the problem for me.
 

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 1
« Reply #9 on: 29 Mar 2021, 02:32 »
So, there are two new known problems:

1) Running games in test mode from editor does not work if you have spaces in the path.
2) Custom dialog option rendering has a mistake that literally halves FPS. This is just a timing mistake in the engine, not a perfomance issue.

Soon will be updating 3.5.1 and 3.6.0 with fixes.

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 2
« Reply #10 on: 30 Mar 2021, 10:17 »
Updated to Beta 2
(use download links in the first post)

Editor:
 - Fixed Editor could not run game for test if there were spaces in path (regression in 3.5.1).
 - Fixed importing Characters and GUI without sprites still created empty sprite folders.
 - Fixed crash when exporting/importing Characters with no Normal View.

Engine:
 - Fixed game update speed was halved during dialog options (regression in 3.5.1).

WinSetup:
 - Fixed changing fullscreen mode from "use current desktop" to explicit resolution on save.

Re: AGS 3.5.1 - Beta 2
« Reply #11 on: 01 Apr 2021, 22:44 »
Great! Thank you

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 3
« Reply #12 on: 06 Apr 2021, 03:04 »
Updated to Beta 3
(use download links in the first post)

Engine:
 - Improved game perfomance by not reupdating all of the GUIs each time anything changes, instead only affected GUI will be updated.

(This changes how GUI image is updated, please report any related glitches if you notice some)

OSX (Mac port):
 - When looking for game files engine will no longer use hardcoded filename, will search for any compatible pack file instead.
« Last Edit: 06 Apr 2021, 03:06 by Crimson Wizard »

cat

  • Mittens Baronet
  • AGS Baker
    • cat worked on one or more games that won an AGS Award!
    •  
    • cat worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 2
« Reply #13 on: 07 Apr 2021, 20:51 »
Would it be possible to add

/?

as command line parameter to acwin.exe?

I didn't think of trying -? and couldn't find anything in the help or forum.

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 2
« Reply #14 on: 07 Apr 2021, 21:02 »
Would it be possible to add

/?

as command line parameter to acwin.exe?

I didn't think of trying -? and couldn't find anything in the help or forum.

I think it already should work. The problem is that engine is a graphical application and on Windows these do not print to console by default. You have to pass "--console-attach" parameter to make it do that.


EDIT: oh, btw I found a mistake, it only works if you put "/?" after "--console-attach".
« Last Edit: 07 Apr 2021, 21:06 by Crimson Wizard »

cat

  • Mittens Baronet
  • AGS Baker
    • cat worked on one or more games that won an AGS Award!
    •  
    • cat worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 2
« Reply #15 on: 07 Apr 2021, 21:20 »
Ah, my bad. Then would it be possible to add the info you gave me in the other thread about how to use acwin.exe in the help.chm or somewhere else?

Variant 1. Place acwin.exe into game folder and simply run it. You may need to do "acwin.exe --setup" from command line to run newest winsetup if the game is too old.
Variant 2. Run acwin.exe from any folder, but pass path to game folder as an argument in command line.
More info on command line here: https://github.com/adventuregamestudio/ags/blob/master/OPTIONS.md#command-line

eri0o

Re: AGS 3.5.1 - Beta 2
« Reply #16 on: 08 Apr 2021, 12:59 »
I had an idea that don't know if it makes sense or not, but maybe on windows, after explicitly passing a help command (like /? or --help, but not in the case one of these is not passed), when console attach is not set, could instead show the help in a message box.

Edit: or maybe not, the help is really long.
« Last Edit: 08 Apr 2021, 13:03 by eri0o »

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 2
« Reply #17 on: 08 Apr 2021, 13:05 »
Edit: or maybe not, the help is really long.

That's the biggest reason I was reluctant to do this... But this gives and idea, maybe display message about using "console-attach" instead?

eri0o

Re: AGS 3.5.1 - Beta 2
« Reply #18 on: 08 Apr 2021, 13:06 »
Ah, yeah! That would work!

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS 3.5.1 - Beta 2
« Reply #19 on: 08 Apr 2021, 13:25 »
Actually... need to think this over, because user may be rerouting output to a file like "acwin.exe --help > 1.txt" in which case message will be unnecessary. There may be other cases too.