AGS 3.5.0 - Patch 1

Started by Crimson Wizard, Mon 30/12/2019 21:05:07

Previous topic - Next topic

Cassiebsg

Can it be the usual anti-virus protection shutting down the game? Avast is notorious for hating AGS games.  :(
There are those who believe that life here began out there...

Snarky

Has it already been reported or discussed that the .chm help file (what you get when pressing F1) no longer lists the entries for the various API classes under Scripting in the Table of Contents? They're only available through a separate "Scripting API" page, and there's no listing: you have to scroll through the whole documentation for each class to find the function/property you're looking for, and there's absolutely no way to see the APIs for different classes at the same time.

I use this reference constantly (as I'm sure most who code in AGS do), and have relied on being able to quickly navigate, glance through and rapidly examine multiple functions in different classes (quickly enough that I can have several of them in working memory at the same time), so to me this change is a pretty big deal that seriously degrades my workflow.

Crimson Wizard

#22
Quote from: Snarky on Sun 19/01/2020 20:58:58
Has it already been reported or discussed that the .chm help file (what you get when pressing F1) no longer lists the entries for the various API classes under Scripting in the Table of Contents? They're only available through a separate "Scripting API" page, and there's no listing: you have to scroll through the whole documentation for each class to find the function/property you're looking for, and there's absolutely no way to see the APIs for different classes at the same time.

I use this reference constantly (as I'm sure most who code in AGS do), and have relied on being able to quickly navigate, glance through and rapidly examine multiple functions in different classes (quickly enough that I can have several of them in working memory at the same time), so to me this change is a pretty big deal that seriously degrades my workflow.

There's a number of things that changed since we moved to different help source format, and some were not fixed yet, others are a matter of discussion and remain under question.

For example, I was asking to return index entries for separate function/property names, e.g. "Walk", "Move", "Font property". In the old manual, there were index entries both with type name prefixed, like "Character.Walk", and without it, just "Walk"; also in case of shared function names - "Move (character)", "Move (object)" and so on. I found it simplier to search for the name of the function in the index's input box to get there faster, but now one has to search for full Type.Function entry, or type full function name, with type prefix, in the input field.

Morganw, on other hand, argues that these shorter names clobbered the index and made it harder to read. So, I don't know, if my way of using index was only my subjective way of using it.

I guess we may need to gather some kind of a style guidelines for the manual again, define how to organize it correctly.

If you have any suggestions, here's the separate tracker for the manual issues: https://github.com/adventuregamestudio/ags-manual/issues

eri0o

The audio substitution, was it done in which specific version  of the editor?

Crimson Wizard

Quote from: eri0o on Sun 19/01/2020 23:25:47
The audio substitution, was it done in which specific version  of the editor?

What is audio substitution?

Crimson Wizard

#25
Quote from: greg on Sun 19/01/2020 20:39:23
Quote from: Crimson Wizard on Sun 19/01/2020 20:36:53
Would it be possible to test your compiled game somehow?

Sure, I'll upload it to Dropbox and PM you the link.


I can confirm that the game crashes, and there's also a standard Windows "Program stopped responding" message appearing.

UPDATE: There's some serious memory issue in the engine, this needs additional research, but I can tell it is somehow relevant to dynamic objects, and happens when game is saved (probably a restore point made at startup).

I can also mention, that the game data in the Compiled/Windows folder seem corrupted somehow, because when I try to run it under debugger (MSVS), engine reports that the room has bad format. OTOH that room opens well in the editor, and it's strange because existing exe can run. Maybe this is not a room error, but something also related to same memory bug.

UPDATE2:  It looks like script Dictionary does not calculate the size of data correctly, and can overwrite allocated buffer when saving the game.

eri0o

#26
@Snarky, we used to have the table of content on per topic but somewhere someone thought it was too much given there's a table of content at the side, so we removed it.

https://adventuregamestudio.github.io/ags-manual/

Maybe the chm build could have the table of content that exists at the side (top on mobile) in the webview rendered at the top? Can you check the web version and confirm this would suffice?

@Crimson Wizard, greg reported he had errors after deleting and reimporting audio and I remembered on the previous version there was a post in the forums saying if you deleted and reimported an audio it could mess the indexes used with the audio in a View - which may not be relevant.

Crimson Wizard

#27
@greg Alright, so this is my mistake, the script Dictionary and Set classes save incorrectly and can crash the game when saving randomly.

Here's the patched acwin.exe that you may replace yours in the Editor program folder. We will have to release an official patch for this soon.
https://www.dropbox.com/s/wxij0bx9w82q3da/acwin-3.5.0-p2--fix-dict-set.zip?dl=0

I must also mention, that there's an unnecessary file made in 2017 called "quintus.ags" in the Compiled/Windows folder, and it contains either some corrupted data or data made by a custom version of AGS. The standalone engine detected it and tried to get some rooms from there but failed, this is how I found out.


PS. Also, I recognize "greGames" splash, are you the one who made "Jessica Plunkenstain and the Dusseldorf Conspiracy"? :)

greg

Quote from: Crimson Wizard on Mon 20/01/2020 00:28:55
Here's the patched acwin.exe that you may replace yours in the Editor program folder.

@Crimson Wizard Thank you very much for tracking down this issue and for the updated exe!  I replaced my acwin.exe and no longer get the crash.

Quote from: Crimson Wizard on Mon 20/01/2020 00:28:55
the script Dictionary and Set classes save incorrectly and can crash the game when saving randomly.

Ah, I'm using a Dictionary as a string table with over 10k strings, so I suspect that forced memory issues that more standard usage would not.  (Incidentally, the Dictionary data structure is awesome.  With AGS 3.4, I was using an array of strings + binary search as my string table.  Switching to a Dictionary greatly reduced the size of the string table and, by extension, the time required to save.)

Quote from: Crimson Wizard on Mon 20/01/2020 00:28:55
I must also mention, that there's an unnecessary file made in 2017 called "quintus.ags" in the Compiled/Windows folder, and it contains either some corrupted data or data made by a custom version of AGS.

Ack, thanks.  I've deleted this.

Quote from: Crimson Wizard on Mon 20/01/2020 00:28:55
PS. Also, I recognize "greGames" splash, are you the one who made "Jessica Plunkenstain and the Dusseldorf Conspiracy"? :)

Ha, great memory!  Yep, that was my first game back in 2005.  Quintus is my follow-up, and I've been working on it for 14 years. 8-0

Snarky

Quote from: eri0o on Sun 19/01/2020 23:58:01
@Snarky, we used to have the table of content on per topic but somewhere someone thought it was too much given there's a table of content at the side, so we removed it.

https://adventuregamestudio.github.io/ags-manual/

Maybe the chm build could have the table of content that exists at the side (top on mobile) in the webview rendered at the top? Can you check the web version and confirm this would suffice?

If I understand you correctly, no. To be clear, this is what I'm missing:



Key features:

-The sidebar lists all the different AGS classes (in some cases groups of functions)
-Each class can be expanded to see a concise quick-access list of its functions and properties
-Clicking on that function or property brings you directly to its manual entry
-You can expand multiple classes simultaneously, and scan through the sidebar list without affecting the manual entry in the main window

Yesterday I was working on something that involved speech functions and animation functions, and using these sidebar features (in 3.4, after realizing they were missing in 3.5) I could quickly navigate to the functions I needed, go back and forth between them rapidly, and compare the animation API for objects and characters (noting e.g. that there's an Object.StopAnimating() but no corresponding function for Character) without losing my place in the main window.

eri0o

#30
@Snarky, I see what you are saying and I can explain the source of the problem the best I understand, but I can't fix it - not easily. Here is a small explanation of how it works for the chm Content generation:

github.com/adventuregamestudio/ags-manual/blob/master/CONTRIBUTING.md#write-an-hhc-file

The part it is hard: Because of how the links work in Markdown format, there's no standard way to add special attributes to them, it's not trivial to derive the document structure from them - we have a web, not a tree.

As CW points, the possible solution would be to add some guidelines on how to write the documentation. We could figure something like a way to mark that a link is "primary and unique" and use this mark to give a special meaning to it in the meta yaml file and later picking it to recognize the tree structure. Of course, a better way would be a way that would not require people to read contribution guidelines for how to make links. Anyway, not sure if the explanation of the problem makes sense - I know you expect a solution...

The best I can offer right now is use of the web version with multiple tabs open. This version also has an index that is really human readable - have all entries for all things at a ctrl+f reach.

Snarky

Quote from: eri0o on Mon 20/01/2020 11:57:41
The best I can offer right now is use of the web version with multiple tabs open. This version also has an index that is really human readable - have all entries for all things at a ctrl+f reach.

To be honest, I will not be using 3.5 in its current state. This issue is a big deal to me, and along with the problem running games in Wine, it's a dealbreaker.

Quote from: eri0o on Mon 20/01/2020 11:57:41
We could figure something like a way to mark that a link is "primary and unique" and use this mark to give a special meaning to it in the meta yaml file and later picking it to recognize the tree structure. Of course, a better way would be a way that would not require people to read contribution guidelines for how to make links. Anyway, not sure if the explanation of the problem makes sense - I know you expect a solution...

I don't quite follow as I don't really know all the ins and outs of how you edit and generate the help file (not sure where in the process the yaml file comes in, for example), but… this sounds like a solution? If each entry in the scripting API is formatted a particular way, it doesn't seem that high a bar for people to follow the same format when they add something to it, which will probably be pretty rare anyway.

Crimson Wizard

Quote from: Snarky on Wed 22/01/2020 08:52:00
To be honest, I will not be using 3.5 in its current state. This issue is a big deal to me, and along with the problem running games in Wine, it's a dealbreaker.

Was the problem on Wine fixed with the version based on Allegro 4.4.2, or there was something else?

Is it related to any version of Wine or particular ones?

Snarky

The same problem is seen in multiple versions of Wine.

It seemed to work with the alternate Allegro build, but that didn't have the latest patch, did it? And I'm not entirely comfortable relying on unofficial builds. In any case, it doesn't solve the manual issue.

Crimson Wizard

#34
Quote from: Snarky on Thu 23/01/2020 13:12:42
It seemed to work with the alternate Allegro build, but that didn't have the latest patch, did it? And I'm not entirely comfortable relying on unofficial builds. In any case, it doesn't solve the manual issue.

It did not include latest patch, because I built that test earlier than the patch was released.
I am asking because I need a confirmation, to know what differences to look for.

AGD2

#35
I noticed that when using Game.IgnoreUserInputAfterTextTimeoutMs (with a setting like 1000 Ms), it works as intended and prevents the player from accidentally clicking away a new speech audio/text message if they clicked a few moments after the previous speech message disappeared.

But this also creates an unintended problem if using the player character to narrate background comments to click on things. For example, if you click the Mouth icon on a rock, the player will say the corresponding message. When said message disappears automatically - not by clicking it away (and there's no subsequent message following it), you cannot click the mouth icon on anything else until the 1000 Ms have elapsed. Can the engine be made to disregard IgnoreUserInputAfterTextTimeoutMs setting if there's no new speech message currently on-screen?

This happens with all icons. And it also affects right-clicking, meaning that when using the Sierra-style icon interface, you can't right-click to cycle through icons until the 1000 Ms have elapsed either.

AGD2

#36
I'm also getting quite frequent sprite edge artifacts in 3.5.0 when using the Open GL driver in full-screen mode. They occasionally occur in Open GL/Windowed mode as well, but are nowhere near as severe. 

Here's a comparison of the screen in both modes. The image on the left is full-screen mode with the artifact visible along the bottom edge of the dead goblin sprite. The right image is a few moments later in windowed mode. The artifacts appear and disappear consistently when Alt-Tabbing back and forth between full-screen and windowed modes. They remain in exactly the same position and retain their shape and colors when re-appearing.



--EDIT--

I just tested in an older build of the game, compiled with AGS v3.4.3.1, using the same OpenGL settings and the issue didn't occur in that older build. Perhaps the Allegero upgrade in v3.5.0 reverted a previous artifact fix?


Crimson Wizard

#37
Quote from: AGD2 on Wed 19/02/2020 11:52:12
I just tested in an older build of the game, compiled with AGS v3.4.3.1, using the same OpenGL settings and the issue didn't occur in that older build. Perhaps the Allegero upgrade in v3.5.0 reverted a previous artifact fix?

OpenGL is not handled by Allegro, but by our own code. There were some changes made for OpenGL in attempt to prevent these artifacts, but I believed they were copied same in both 3.4.3 and 3.5.0.
Are you running this game on Windows or Linux (or else)?
Could you send me a game, or particular scene, for a test? (or maybe it's one of your released games?)

AGD2

I have only tested it under Windows, which is where I noticed it.  It happens in Mages Initiation. Would you need me to compile a new version for you in AGS 3.5.0 or can you test with the older version you have?

Crimson Wizard

#39
Quote from: AGD2 on Wed 19/02/2020 16:50:22
I have only tested it under Windows, which is where I noticed it.  It happens in Mages Initiation. Would you need me to compile a new version for you in AGS 3.5.0 or can you test with the older version you have?

Are there other settings that make difference? Like graphics filter, and "render sprites at screen resolution"?

UPDATE: after some tests I noticed that this happens with nearest-neighbour filter only, is this correct?

UPDATE2: I found the obvious mistake in the code, but need some time to remember the logic behind the change. I'll try to make a test build tomorrow.

SMF spam blocked by CleanTalk