AGS 3.2 Final 5 - Recession-busting edition

Started by Pumaman, Sun 03/05/2009 15:34:47

Previous topic - Next topic

abstauber

hmm... send error doesn't seem to work either...



maybe that's an explaination why you haven't received any error reports lately ;)

Or it simply doesn't work with proxies...  ::)

Anyway: Here's what I did to make it crash.

Opening 4 script files + headers. Compiled -> success
Leaving the editor alone for some minutes and used photoshop
coming back added a blank line to a header file. Compiled -> crash

Pumaman

QuoteIt happens all the time - it's hardly possible to work with Beta4 at all.
And it's also not easy to tell, when this happens. It definately happens, after I've changed a header and AGS wants to compile all the files again (16 script pairs so far).

Ok thanks; I've been able to replicate it now so I'll get it fixed.

Quotehmm... send error doesn't seem to work either...

What happens when you try?

QuoteCJ I've taken the liberty to send you a pm, due to I' rather not have anyone to claim a copy of HHGTG

It seems like your game is set to 640x480, but most of your room backgrounds are 640x400.

Why isn't your game resolution set to 640x400 to match the size of the backgrounds?

abstauber

QuoteWhat happens when you try?

Nothing :)
The window hangs (that's why it say "Keine Rückmeldung" in the screenshot) and I've to quit AGS via taskmanager.
Maybe I'm not patient enough to wait for a timeout, since I'm behind a proxy.


QuoteOk thanks; I've been able to replicate it now so I'll get it fixed.
Yay! Thanks  ;D

Shane 'ProgZmax' Stevens

I haven't had enough animations going to notice this before, but I'm getting strange behavior with a running dialog and 'run game loops while dialog options are displayed' set to true.  For some reason, certain characters and objects animating will stop while others will continue, and it appears to be totally random.  I'll point out that these objects and characters are responding to a set of randomly generated numbers to dictate their behavior, and the action takes place in the room's RepExec function.  I have a bunch of objects (people) on animated barstools, and when a dialog starts some (or all) of these just stop animating.  Is it possible that RepExec is not working well with dialogs and the run game loops setting?  

Even if true, since the animations are non-block and repeat I'm confused as to why they stop completely!

If you still have the build of the game I sent you not long ago, you should be able to see this by pressing F1 and getting close and talking to the big green guy behind the bar repeatedly.  Like I said, it affects random animations each time the dialog starts, so sometimes they all work, sometimes they don't.  If not I can re-upload it.

Pumaman

Quote from: ProgZmax on Wed 09/09/2009 01:02:17
I haven't had enough animations going to notice this before, but I'm getting strange behavior with a running dialog and 'run game loops while dialog options are displayed' set to true.  For some reason, certain characters and objects animating will stop while others will continue, and it appears to be totally random.  I'll point out that these objects and characters are responding to a set of randomly generated numbers to dictate their behavior, and the action takes place in the room's RepExec function.  I have a bunch of objects (people) on animated barstools, and when a dialog starts some (or all) of these just stop animating.  Is it possible that RepExec is not working well with dialogs and the run game loops setting? 

RepExec doesn't run in this situation, only repeatedly_Execute_always runs while the dialog options are displayed.

Shane 'ProgZmax' Stevens

How come some of the repeating animations play and others stop when all of the animations in question are keyed to run from RepExec?  Also, is there any reason why you can't have RepExec loops running with 'run game loops while dialog options are displayed'?  Otherwise, the setting isn't really working as advertised if certain game loops are shut off and others are allowed to run ;\.

Pumaman

Looking at your room script, the RepExec function generates a random number and then plays the object animations with either the eOnce or eRepeat setting. Therefore if the animation happens to be running with eRepeat (which most of them are) when the dialog starts, it will continue animating through the dialog.
If the animation was started with eOnce it will complete while the dialog options are displayed, but then the RepExec code will not run to start it going again.

Quoteso, is there any reason why you can't have RepExec loops running with 'run game loops while dialog options are displayed'?

Well, this is standard AGS behaviour that RepExec doesn't run while the game is blocked (which it is while dialog options are displayed); just like while a blocking Walk or blocking Animate are in progress.

Pumaman

Quote from: ProgZmax on Mon 07/09/2009 04:51:30
I should have tried turning that off to further narrow down the problem but to be quite honest I didn't even remember I'd set Ignorewalkbehinds on the character (probably because it doesn't show up in the properties list).  Well, I'm glad you found the problem, at least.

I've looked into this further, and I'm not sure it's actually going to be possible to fix this situation in the D3D renderer. If you have Character 1 standing behind Character 2, and they are both behind a walk-behind; if Character 1 has Ignore Walkbehinds set, but Character 2 doesn't, it's not possible for the D3D renderer to draw Character 1 in front of the walkbehind but behind Character 2... because Character 1 needs to be drawn before Character 2,  the walk-behind is then drawn after Character 2, so it will get drawn on top of Character 1. Hmm...

Pumaman

Quote from: AGD2 on Thu 03/09/2009 17:41:28
Something else I noticed is that if you put code in the game_start function like:

Code: ags
if(IsSpeechVoxAvailable()==false) QuitGame();
if(IsMusicVoxAvailable()==false) QuitGame();


... and then use the test game feature, the game will quit because it doesn't find the .vox files in the "_Debug" folder. At present you need to copy them across manually for the test game feature to work.

The cause of this is probably that IsMusicVoxAvailable always returns 0 in AGS 3.2, because the MUSIC.VOX is no longer generated. For backwards compatibility, I'll change it to check for the new AUDIO.VOX instead.

Shane 'ProgZmax' Stevens

QuoteLooking at your room script, the RepExec function generates a random number and then plays the object animations with either the eOnce or eRepeat setting. Therefore if the animation happens to be running with eRepeat (which most of them are) when the dialog starts, it will continue animating through the dialog.

That would do it.

QuoteWell, this is standard AGS behaviour that RepExec doesn't run while the game is blocked (which it is while dialog options are displayed); just like while a blocking Walk or blocking Animate are in progress.

I understand what you're saying but it doesn't make sense to me to allow repeatedly_execute_always to run but not, say, RepExec when I could (with a lot of effort) dump all my code from all my RepExecs into repeatedly_execute_always and split them up by player.Room.  I mean, the room's repeating function is a pretty integral part of most peoples' rooms if they have animations and such going on.  Not allowing it to run during dialogs (when you have allow game loops on) just feels a bit self-defeating to me since one of the arguments that got the setting implemented was people wanting background animations running during dialogs (the second argument being people wanted weather effects to keep playing).  I'm not trying to be annoying about this, it just seems a bit odd?

QuoteI've looked into this further, and I'm not sure it's actually going to be possible to fix this situation in the D3D renderer.

That is strange, but I can't even remember why I set that character to ignore walkbehinds anyway, and disabling it doesn't seem to negatively impact anything so I'll just go that route!

NsMn

Quote from: ProgZmax on Sat 12/09/2009 18:12:12
...RepExec when I could (with a lot of effort) dump all my code from all my RepExecs into repeatedly_execute_always and split them up by player.Room.

Why? You can declare repeatedly_execute_always in the room script, so you don't have to put it all into the global function.

Pumaman

Yes, you can create a repeatedly_execute_always function in room scripts, you don't have to put it all in the global script.

The reason for this restriction is the same as for blocking walks, blocking animations, etc -- ie. that it's not possible to get into a state of nested blocking calls. Because blocking calls are banned from rep_exec_always, it prevents you from calling a blocking Walk inside a blocking Walk inside a blocking Walk, because doing so could end up with some very obscure and hard to track down bugs.

Shane 'ProgZmax' Stevens

#172
I wasn't aware that room scripts would actually handle a repeatedly_execute_always function.  That resolves the problem nicely!  If I'd known about this earlier it would have saved a lot of wasted comments :).  Perhaps you could add a Repeatedly_Execute_Always event to the room event list so everyone else knows it, too?

Dualnames

Even if I set the resolution to 640x400 , i still can't import a background.
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Crimson Wizard

I have this question, is it possible to make AGS script allow hexadecimal constants? Maybe I am wrong, but current AGS version I am using (v3.1.2 SP1) does not understand them. It may be more convenient to write
Code: ags
value1 = value2 & 0xFFFF

and not
Code: ags
value1 = value2 & 0x65535

Gord10

#175
I guess you meant

Code: ags
value1 = value2 & 65535


in the second code?


I have come up with the solution of creating an in-game function that reads our hexadecimal string and returns the integer value.

Like

Code: ags
value1 = value2 & func("FFFF")


Games are art!
My horror game, Self

Crimson Wizard

Quote from: Gord10 on Wed 16/09/2009 19:22:18
I guess you meant

Code: ags
value1 = value2 & 65535


in the second code?
Right. Silly typo.


Quote from: Gord10 on Wed 16/09/2009 19:22:18
I have come up with the solution of creating an in-game function that reads our hexadecimal string and returns the integer value.

Like

Code: ags
value1 = value2 & func("FFFF")


uuuhhh... I'm afraid that's too... evil  :). I mean, there wouldn't be much sense in this. It may be useful for parsing purposes, but not in the case I mentioned.

Pumaman

QuotePerhaps you could add a Repeatedly_Execute_Always event to the room event list so everyone else knows it, too?

Yeah, I appreciate that this is a bit obscurely documented. I'll have a think about how to improve it.

QuoteEven if I set the resolution to 640x400 , i still can't import a background.

Taking another look at your game, it looks like a lot of the backgrounds were imported with your game resolution set to 320x200, therefore they have been imported as large 640x400-sized scrolling backgrounds for a 320x200 game, rather than 640x400-sized backgrounds for a 640x400 game.

If this is somehow working at run-time, and you want to replace one of these backgrounds without losing the room areas, temporarily change your game resolution back to 320x200 and you should be able to do so. Going forward make sure the game resolution is correctly set!

QuoteI have this question, is it possible to make AGS script allow hexadecimal constants? Maybe I am wrong, but current AGS version I am using (v3.1.2 SP1) does not understand them.

That's certainly a possibility for a future verison, but it's relatively obscure for AGS scripting so it won't be a priority I'm afraid :)



Anyway, beta 5 is now up. It's quite a minor release but due to beta 4 having some instability problems, it seemed like a good idea to get a more stable beta released.

Crimson Wizard

QuoteFirst Michael Jackson, now Patrick Swayze... who will it be next?!?
Die now and get next AGS 3.2 beta named in your memory  

TerranRich

I predict AGS 5.0 Beta will be the "TerranRich" Edition.

That sounded more morbid than I intended. :P
Status: Trying to come up with some ideas...

SMF spam blocked by CleanTalk