AGS 3.3.0 Release Candidate

Started by Crimson Wizard, Thu 04/04/2013 19:16:28

Previous topic - Next topic

Radiant

#440
It started happening with the most recent update. Something that might be relevant is that I changed sprite cache from 20 Mb to 100 Mb in the setup? (edit: no, it's not that)  I'll see if I can obtain a dump file.

Radiant

Can you tell us what a crash dump file is called and where it would be located? Or it might be the case that this kind of crash doesn't generate any? I'm asking because we can't find it.

We're also getting these "Warning: ChangeCharacterView was used while the view was fixed". Yes, that's a bug in my code; but if it's not too much trouble, it would really help if this message would specify a line number (or, I suppose, which character it applies to).

Crimson Wizard

Hmm, I just found that crash dump is not written on "out of memory" error. :(
Is there any pattern for when and/or where this happens?

Radiant

After playing for awhile. No, we can't consistently reproduce it. It appears memory slowly fills up until it crashes, and starting the game again and restoring solves the issue for awhile.

Radiant

If the game is set up for DirectX9, then running it on an (admittedly old) system without a 3D card present causes it to abort with the message "The requested adapter mode is not supported". I would expect the engine to try for DX5 if DX9 doesn't work.

AGD2

Awesome job on getting beta 9 out and thanks for the new fixes and improvements!

CW, do you think it may be possible to look into the issue I mentioned earlier where multi-threaded audio throws off the timing of Pamela lip-syncing audio? I'm planning a major release with this newest 3.3.0 build (which should be a good public stress test for it), but at the moment I'm forced to trade-off between non-skipping music with inaccurate lip-syncing and skipping music with perfect lip-syncing. It would be ideal to have non-skipping music and perfect lip-syncing.

Might it be possible to implement a simple variable timer that runs alongside playing speech audio (i.e. have the .pam file take its timing cues from this timer, rather than directly from the audio file) as I talked about in more detail here: http://www.adventuregamestudio.co.uk/forums/index.php?topic=47966.msg636469876#msg636469876

Otherwise, as an alternate solution, how about enabling multi-threaded audio, but excluding all speech audio so that it's not affected by mult-threading?

AGD2

Hmmm and another fatal editor crash to report. This happened when I tried to copy and paste some text from the forum here into an AGS room script.

The Editor panes jittered around for a bit while it was attempting the to paste the text, and then the following crash error message appeared. At the time, my Windows clipboard was locked and I couldn't PrintScreen any screenshots or text so I had to take a couple of photos of the error message with my phone and stitch them together.



After I clicked the error message away, the editor remained open (gave me the warning that I should close it or risk corrupted files), and at that point the text I'd pasted appeared in the room script.

Crimson Wizard

#447
Sorry, I was busy lately...

@Radiant: I made another build which writes dumps when "out of memory" error occurs, please use it.
The dump will be written in the folder with game exe (or maybe your project folder, if you run from editor):
http://www.mediafire.com/download/930wuikbjj8zzh5/acwin.exe
I should also note that I am not sure this is because of "slowly filling memory". The large number you posted (903224498 bytes) is not total bytes the program allocated, it is the one-time growth it tried to get. Meaning, there was something that occasionally requested about 1 GB of mem. I suspect this is simply some arithmetic error or memory corruption, like buffer overflow, that caused this number to be used.


Regarding threaded audio and proper scaled display issues. Both will require more work. Custom resolutions are WIP, and not tested with ports yet, and will probably require updating OpenGL driver for consistency (which seem to be WIP on its own), and rewriting winsetup.
Don't know much about threaded audio, that might be not difficult, but still require rewriting parts of logic, and threading is a pretty delicate area.
We need to have some decision on whether to delay 3.3.0 until these are done, or wait until future update, like 3.3.1 (which may be commenced being developed before final 3.3.0 release in a parallel branch). In any case I strongly reject idea to put any more "quick fixes" in the code, not only because it's generally bad, but also because this becomes annoying: for all these will be substituted in the not so far future anyway, and it feels like plugging holes in the ship while there's definitely a new ship planned to be built soon (lol, I guess you can get what I mean).

Radiant

Thank you, we'll get you a log file.

As discussed earlier in this forum, I feel it is time for a new stable AGS build, so new feature requests (including mine, of course) should be moved to a future build like 3.4.0 instead. After all, AGS3.3 has been in beta since April, and the current stable version (3.2.1) dates from 2011. Time to go fully live with all the new features of the last two-and-a-half years!

Crimson Wizard

Maybe, I am just getting bit worried when people have problems like that when finishing their games.

BTW, dump file will be called "CrashInfo.3.3.0.1146.dmp" (even though there's no crash, AGS just uses that name by default).

AGD2

Yeah, if it's a significant amount of work, then I'd agree with Radiant and say it's probably best to release 3.3.0 first. While it would be handy, it's not the end of the world, and I suppose I can release another updated version once multi-threading is addressed.

One question, though. If I compile and released the game with 3.3.0, and then later put out an updated version compiled with 3.3.1 (or whatever the number will be), if multi-threading is addressed between these versions, is that likely to invalidate players' savegames from 3.3.0?

Crimson Wizard

Quote from: AGD2 on Wed 06/11/2013 06:57:46
One question, though. If I compile and released the game with 3.3.0, and then later put out an updated version compiled with 3.3.1 (or whatever the number will be), if multi-threading is addressed between these versions, is that likely to invalidate players' savegames from 3.3.0?
As of current state there's no difference in how game is saved. There could be other reasons why savedgame format may change, but there's always a way to convert saves either at runtime or with a stand-alone utility.

Radiant


Radiant

Here's a weird little bug: if you create a 320x200 room, then create an object with a sprite set for 640x400 resolution and is 210 pixels high, and place it at Y=200; then the vertical middle of the sprite will align to Y=200, whereas normally, the object's bottom aligns to Y=200. So the object is shown too low on screen, both in the editor and in the runtime. Apparently object Y placement doesn't account for the fact that it's made for 640x400 rather than 320x200. Of course, people shouldn't be doing that in the first place (I only did it because I clicked the wrong resolution setting by accident).

Crimson Wizard

Quote from: AGD2 on Mon 04/11/2013 08:43:40at the moment I'm forced to trade-off between non-skipping music with inaccurate lip-syncing and skipping music with perfect lip-syncing. It would be ideal to have non-skipping music and perfect lip-syncing.
I might be forgetting something, what is this "skipping music" problem, when does it happen? I was thinking that maybe there's just not enough music polls during some lengthy processes. In which case all we need to do is to update music more frequently.

Crimson Wizard

#455
Omg, omg, omg, I made such a stupid and terrible mistake. This is almost a miracle that it did not screw anything earlier.
That memory allocation problem was caused by the string buffers growing endlessly on some occasions.

Fixed engine: http://www.mediafire.com/download/9moabyjfp8mjdp0/acwin.exe


E: The error can be reproduced very easily with Heroine Quest: start dialog with Hervor, choose any option, then concede talking, then repeat. After about 3-4 minutes of repeating this your computer memory will become eaten.

AGD2

#456
QuoteI might be forgetting something, what is this "skipping music" problem, when does it happen? I was thinking that maybe there's just not enough music polls during some lengthy processes. In which case all we need to do is to update music more frequently.

By "skipping music" I just meant the way that the music stutters for a few moments sometimes when you change rooms or play an intensive animation etc. I should have said "stuttering music", which is a more accurate description.

--EDIT--
After putting the new acwin.exe into my AGS folder and using CTRL+F5 to test the game, I get a pop-up box saying, "The publisher could not be verified Are you sure you want to run this software?" before the game will run, which applies to the game exe file in the games "_Debug" sub-folder. It doesn't seem to happen if I compile normally with F7 and run the exe from the "Compiled" folder, though.

Knox

Quote from: AGD2 on Thu 07/11/2013 04:02:03
I get a pop-up box saying, "The publisher could not be verified Are you sure you want to run this software?"

I'm pretty sure all you have to do is right-click properties for acwin.exe and in the compatibility tab select "run as administrator"
--All that is necessary for evil to triumph is for good men to do nothing.

Crimson Wizard

#458
IIRC AGS should not require administrative rights to run?


UPD: I think this is just Windows protecting us from exes downloaded from the web.
Try downloading in archive: http://www.mediafire.com/download/wijq93b19e431vv/acwin.7z


UPD2: I found out that Win detects exes in zip archive too, but not in 7z. Either it can scan zips but not 7zs, or has list of "dangeorous" extensions.

AGD2

#459
Yeah, I just found it odd that it only started popping up this error message after I put this newest acwin.exe in my AGS directory. I don't recall Windows ever complaining like this about previous versions that I downloaded separately from the web.

SMF spam blocked by CleanTalk