With the world mired in recession, the only way out must surely be to make games!
Changes in 3.2 Final 5:
* Fixed memory leak with sound playing
* Fixed editor crash XmlException: An error occurred while parsing EntityName.
* Fixed GUI anti-aliasing not working if it had no background color or image
Changes in 3.2 Final 4:
* Added $APPDATADIR$ support to File.Open to allow you to write files to an accessible folder that is not the Save Games folder
* Fixed AudioClip.Play crash if No Digital Sound was selected
* Fixed Game.StopAudio() crashing
* Fixed DX5 driver not always clearing side borders correctly when returning from alt+tab
* Fixed legacy SetSoundVolume command not affecting viewframe-linked sounds or score sound
* Fixed GUI button clicks not working until you move the mouse if a GUI appeared just under the mouse and there was a Wait() just before the code that made the GUI visible
* Fixed editor crash if you set an object's image to -1
Changes in 3.2 Final 3:
* Fixed legacy SetSoundVolume command changing the music as well as the sound volume
* Fixed anti-aliased TTF rendering giving pink edges in 16-bit games (though it is recommended that you only use anti-aliased TTFs in 32-bit games, they don't look very good in 16-bit).
Changes in 3.2 Final 2:
* Added support for anti-aliased TTF fonts in all situations where they weren't previously supported.
* Updated 9-verb template from Abstauber
* Improved widescreen side border detection with 320x200 games
* Legacy compatibility: updated SetGameOption(OPT_CROSSFADE) to also update the new-style Music audio clip crossfade setting
* Fixed mouse not detecting GUI controls if one became visible just under where the mouse was
* Fixed Game.StopAudio stopping rather than fading out track if crossfade was enabled for one of the playing audio clips
Changes in 3.2 Final:
* Added Game.SetAudioTypeSpeechVolumeDrop to provide a new-style equivalent to game.speech_music_drop
* Improved editor robustness to recover if the Game.agf.user file was corrupt
* "Export all sprites in folder" command now exports 32-bit sprites as PNGs to prevent losing alpha channel
* Updated to latest 9-verb template (thanks Abstauber!)
* Fixed GUI controls not updating properly if the control moved under the mouse, but the mouse didn't move
* Fixed problem restoring a game if the music was crossfading when the game was saved
* Fixed offset of currently playing audio not always being restored correctly when restoring a game with OGG audio clips
* Fixed "Close all other tabs" crashing if a room editor with unsaved changes was one of the other tabs
* Fixed the editor Preferences window only allowing you to type 5 characters in if you wanted to manually enter a path for the New Game Directory or Import Directory
* Fixed changing a walk-behind baseline not marking the room as modified
* Fixed compilation errors if you named a character with only numeric digits, eg "c500"
Changes in 3.2 RC 3:
* Added Game.SetAudioTypeVolume command
* When upgrading a game from a previous version, fixed a problem if sound/music files had upper case letters in their file names (eg. MUSIC5.OGG)
* Mouse.IsButtonDown now works with eMouseMiddle
* Importing a 2.72 game now sets Enforce New Audio Scripting to false by default
* Fixed crash with AudioClip.Play if the AUDIO.VOX file was missing
* Fixed crash restoring a game if you saved the game while music was crossfading
* Fixed SetSoundVolume not affecting frame-linked or score sound
* Fixed IsSoundPlaying not working properly if sound was disabled in setup
* Fixed issues with audio when skipping a cutscene
* Fixed music position not being restored properly when you restored a save game
* Fixed problem with characters getting stuck when colliding, introduced by RC2
* Fixed widescreen borders not working with 800x600 games
* Fixed old-style SetFrameSound command not working properly
* Fixed Character.PlaceOnWalkableArea crash if called from game_start
Changes in 3.2 RC 2:
* Updated 9-verb template to include the documentation PDF file (thanks abstauber!)
* Added manual page describing rep_exec and rep_exec_always, since these were not really properly documented
* Moved "Developer Name" into the main top section of General Settings now that it is displayed on the game exe
* Global Variables editor now allows you to create AudioChannel* variables
* Changed D3D LightLevel rendering to properly match DX5
* Fixed D3D Tint with luminance of 0 rendering as luminance of 100%
* Fixed bug with script dirty flags not being updated properly, introduced in RC1
* Fixed some compatibility issues with old-style PlayMusic/GetCurrentMusic and save games
* Fixed score sound and frame-linked sounds sometimes playing instead of the sound you wanted, when using old-style PlaySound command
* Fixed screenshots not working properly if widescreen side borders were enabled
* Fixed IsKeyPressed not working with the following keys: [ ] ; ' , . /
* Fixed character gliding if he bumped into another solid character and MovementLinkedToAnimation was false
* Fixed script editor crash if you saved the script while the final function was missing its closing brace
* Fixed editor crash creating new game if the template was from a previous version with Sound/Music folders
* Fixed editor crash if you tried to preview an audio clip but had deleted the file
* Fixed GUI label text not being anti-aliased if there was a background image but the BGColor was set to 0
* Fixed old-style ViewFrame.Sound property throwing error if you tried to set it to 0
Changes in 3.2 RC 1:
* Added abstauber's LEC-style template
* Updated demo game to use new audio commands
* Added plugin API event IRoomController.PreSaveRoom; events AGSE_PRESAVEGAME and AGSE_POSTRESTOREGAME
* Wrote the "Upgrading to AGS 3.2" page in the manual. Please let me know if this answers initial questions about the new audio system, or if there's anything else it should cover
* The Restart Point save file (AGSSAVE.999) is no longer deleted when you quit the game, to fix a problem where RestartGame didn't work if you started the game by double-clicking an Enhanced Save Game file in explorer
* Winsetup now displays the game name in the title bar instead of "Adventure Game Studio"
* Fixed character/object tints in D3D not matching DX5
* Fixed TintScreen in D3D so that it looks the same as DX5
* Fixed GUI AdditiveOpacity mode not working properly if you tried to have a non-alpha sprite on an alpha GUI (eg. a save game screenshot)
* Fixed SetBackgroundFrame in Player Enters Screen event causing old frame to flash up briefly with D3D driver
Changes in 3.2 beta 5:
* AudioClip.Play now removes any queued audio clips of that type, like PlayMusic used to do
* Added editor plugin API method IGUIController.ActivePane
* Fixed beta 4 crash the second time you compiled the game
* Fixed DynamicSprite.Rotate cropping 1 pixel off the left side when rotating an image with an odd width/height
* Fixed Game.SpriteWidth/SpriteHeight returning the size of the blue cup instead of 0 if you supplied an invalid sprite number
* Fixed script editor issue if you typed some text, switched to another tab, then came back and did Undo
* Fixed crossfade problem with old-style PlayMusic commands, introduced by beta 3
* Fixed editor crash if you tried to use a non-icon file as TEMPLATE.ICO
* Fixed mouse cursor being drawn in dialog options in DX5 mode even when Mouse.Visible was set to false
* Fixed IsMusicVoxAvailable always returning 0 with 3.2 betas
Changes in 3.2 beta 4:
* Added option to automatically add side borders when running 4:3 games on widescreen monitors
* The generated EXE version information is now set to your Game Name and Developer Name instead of "Adventure Game Studio" and "Chris Jones"
* Improved graphics mode detection so that the screen doesn't keep flickering when trying to start up a low-res game full screen
* Changed the pathfinder so that the character cannot get stuck if he ends up outside one of the room edges
* Improved error handling if you passed an int to a string argument in String.Format
* Fixed light levels >100% not working with Direct3D driver
* Fixed theora video being permanently muted after you played one video with muted audio
* Fixed Object.MergeIntoBackground not working with Direct3D driver
* Fixed String.Format to give error instead of crash if you try to format a string longer than 3000 chars
* Fixed Room.GetDrawingSurfaceForBackground to give error instead of crash if you call it from game_Start
Changes in 3.2 beta 3:
* Added crossfading support to new audio system.
* Added eMouseMiddleInv support to on_mouse_click
* Editor now automatically converts any old Play Music On Room Load setting into a line of script in the room's Player Enters Screen event
* Editor property grid now displays a drop-down list instead of a text box when selecting a font or room
* Removed limit on number of text parser words
* Updated Default Game template to use new audio system
* New menu option to remove old Global Messages from the game, to stop them coming out in translation sources
* Disallowed accented characters like é in script names in the editor, because they wouldn't compile
* Fixed Seek for OGG audio clips to have the same accuracy as PlayFrom
* Fixed error running game and problems with save games if there were unicode characters in the folder path
* Fixed error compiling the game if the game had no Music folder
* Fixed ShakeScreenBackground not clearing letterbox borders properly if you switched from a large to a small shake
* Fixed "Internal compiler error: table overflow" if there were a lot of imported functions/variables
* Fixed compiler crash if a dialog script just had a @ on a line on its own
* Fixed autocomplete editor crash if there was a line break inside an array indexer
* Fixed sprite import window crash if you right-clicked in the second stage of tiled import
Changes in 3.2 beta 2:
* Implemented Audio Types editor
* Score Sound and ViewFrame-linked sound updated to work with Audio Clips; script ViewFrame.Sound property replaced with new ViewFrame.LinkedAudio property
* Added AudioChannel.SetRoomLocation function to emulate the facility provided by directional ambient sounds
* Added AudioChannel.LengthMs property
* Implemented the speech volume drop setting for Audio Types
* Improved accuracy of Position property with OGG audio
* Removed room properties Play Music On Load, Music Volume and Save/Load Enabled since they are now obsolete
* Dynamic sprite deletion warning is now only displayed on exit if Debug Mode is turned on
* Changes to improve music glitching when changing rooms in D3D mode
* Fixed editor crash if you tried to delete an audio clip when a preview of it was playing
* Fixed Sierra-style speech box moving if the room was scrolled around while it was displayed
* Fixed Dynamic Sprites causing memory corruption if a mouse cursor was set to sprite 0
* Fixed Make Default Language command crashing if two different source lines mapped to the same translated line
* Fixed crash importing old game if there was no Sound or Music folder
* Fixed intermittent crash when playing WAV/MOD in beta 1
* Fixed keypresses and mouse clicks being ignored after restoring a save game in beta 1
Changes in 3.2 beta 1:
* Rewrote audio system. The old number-based sound and music are gone, replaced with new named audio clips. Added AudioClip.*, AudioChannel.*, Game.IsAudioPlaying, Game.StopAudio, System.AudioChannels, System.AudioChannelCount, System.Volume script commands.
* Added Game.IgnoreUserInputAfterTextTimeoutMs, Maths.Exp, Maths.Log, Maths.Log10, Maths.Cosh, Maths.Sinh, Maths.Tanh
* Added Applies To feature to custom properties, so that you can have properties that only apply to Rooms or Characters, for example
* Improved colour quality of mini-sprites displayed in sprite manager
* Improved the user-friendliness of some error messages, thanks to Error Reporting
* Disabled editor option to save changes whilst the game was running, since doing so could cause sprite file corruption
* Renamed the "handle inventory clicks in script" general setting to better reflect what it does
* Fixed sprite entry getting duplicated if you dragged a sprite to the end of the list
* Fixed crash with Hq2x and Hq3x graphics filters (3.1.2 regression)
* Fixed Compress Sprites setting not taking effect until you next edited some sprites
* Fixed struct member functions with more than 9 parameters giving run-time error
* Fixed File commands looking in the wrong directory if you launched the game by double-clicking a save game in explorer
* Fixed run-time error if you returned a string from a function that was a member of a local dynamic array
* Fixed sprite cache corruption if you had a single sprite larger than 20 MB
* Fixed editor crash creating new game if your Windows username had unicode characters in it
* Fixed Views tree collapsing after renaming or drag-dropping a view
* Fixed editor crash on startup if you made the editor window very small before closing it down last time
* Fixed when importing an 8-bit image, if there was another palette slot in the image with the same colour as the transparent slot it got changed to black
* Fixed no line number provided when DynamicSprite.CreateFromDrawingSurface threw an error
New Audio System
The main change in this release is the re-written audio system.
It is still a bit rough round the edges and is not claiming to be complete, but I thought it was a good time to get some feedback on it from you guys.
When you load (A BACKUP COPY!!!!) of your game into this beta editor, you'll notice that you now see all the sound and music imported into the project tree. They will initially be given names like aMusic50 and aSound16. If you want the old commands like PlaySound and PlayMusic to continue working, you must leave them with these names.
To play an audio clip, just do:
aAudioName.Play();
If you want to be able to fiddle with the audio once it is playing, you can do this:
AudioChannel *channel = aAudioName.Play();
and then later:
channel.Volume = 60; (for example)
The new audio system has a concept called audio types, which are the way that sound and music are split up.
The only difference between them is that the Music audio type is limited to 1 audio channel, whereas the Sound audio type is unlimited (within the overall 8 channels that is). This is for ease-of-use, so that when you play a new Music it will automatically stop any existing one that is playing; whereas this won't be the case with sounds.
http://www.adventuregamestudio.co.uk/AGS-3.2-Final5.exe
Sweet. I don't have many sounds in my game yet, but I'll definitely take the new audio functions for a spin.
Quote* Added Applies To feature to custom properties, so that you can have properties that only apply to Rooms or Characters, for example
Sounds very practical, I was actually thinking about the problem with the properties window becoming cluttered just the other day.
Quote* Fixed no line number provided when DynamicSprite.CreateFromDrawingSurface threw an error
Thanks, now I can start troubleshooting that code.
Great work as always, CJ!
Edit: Perhaps this has been reported before, but if you try to "Open" the game you're currently editing (a save/reload is apparently necessary for changes to the "applies to" value of custom property to register in the editor), you get the message "Cannot load the game, because it is already open in another copy of the AGS Editor".
Edit 2: Fixed the scripting problem that I couldn't locate in previous version because DynamicSprite.CreateFromDrawingSurface didn't return a line number. Good thing I waited, because it turned out it was somewhere else entirely than I suspected. Many thanks!
Amazing I look forward to trying it out.
EDIT:
I thought I would just bring up two different bugs.
1. Light levels between DD5 and DX9 where light tinting doesn't work correctly when using DX9 mode. The thread is here: http://www.adventuregamestudio.co.uk/yabb/index.php?topic=37672.0 (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=37672.0)
2. The issue when playing OGG Theora video files where if you play a video with audio bypassed then play a video with audio it won't play the audio of video file that is required. Thread is here: http://www.adventuregamestudio.co.uk/yabb/index.php?topic=37610.0 (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=37610.0)
WOW, GREAT!!!
NowI'm doing and testing a IMuse module
I'll informate any bug I find
EDIT:
the simultaneous reproduction works fine with ogg, but its not suported by midi, will you implement this feature in some future releases?
thanks
I think simultaneous playing of MIDI is very difficult (if it is ever possible at all) to do. To reliably implement it you must make sure that the side playing the musics has two MIDI playback devices (which theoretically shouldn't be hard as modern systems usually only use soft-synths as oppose to hardware, but unfortunately AFAIK few soft-synth drivers would emulate two devices at the same time).
QuoteEdit: Perhaps this has been reported before, but if you try to "Open" the game you're currently editing you get the message "Cannot load the game, because it is already open in another copy of the AGS Editor".
Well, you should never need to Open the game that is already open...
Quote(a save/reload is apparently necessary for changes to the "applies to" value of custom property to register in the editor)
I can't replicate this, can you provide step-by-step instructions for how to see this problem?
Quote1. Light levels between DD5 and DX9 where light tinting doesn't work correctly when using DX9 mode. The thread is here: http://www.adventuregamestudio.co.uk/yabb/index.php?topic=37672.0
2. The issue when playing OGG Theora video files where if you play a video with audio bypassed then play a video with audio it won't play the audio of video file that is required. Thread is here: http://www.adventuregamestudio.co.uk/yabb/index.php?topic=37610.0
Ok thanks, I will look into these once I have finished with the audio system changes.
Quotethe simultaneous reproduction works fine with ogg, but its not suported by midi, will you implement this feature in some future releases?
The audio library that AGS uses only supports one MIDI at a time, and due to the fact that most people have moved away from MIDI and into digital music nowadays I don't think I can justify investing the large amount of time that would be necessary to get multiple playback working.
I will however update the manual page to clarify this limitation.
Quote from: Pumaman on Mon 04/05/2009 15:58:36Quote(a save/reload is apparently necessary for changes to the "applies to" value of custom property to register in the editor)
I can't replicate this, can you provide step-by-step instructions for how to see this problem?
Never mind, I can't replicate it either. I could swear that this happened when I imported my game into 3.2 BETA 1, but doing it again everything seems to work fine. Must have confused some similarly named properties. Sorry 'bout that.
Woot, downloading and will test my game.
QuoteEdit: Perhaps this has been reported before, but if you try to "Open" the game you're currently editing you get the message "Cannot load the game, because it is already open in another copy of the AGS Editor".
Well, you should never need to Open the game that is already open...
I think he means that the error message is counter-intuitive, Chris. I don't think any of us are THAT stupid lol. :P
Nice work with the new version too! Great to see new systems coming into AGS mate. Well done!
Cheers,
Sparky.
Quote from: Pumaman on Sun 03/05/2009 15:34:47
* Added Applies To feature to custom properties, so that you can have properties that only apply to Rooms or Characters, for example
Finally, thank you! :) I've been waiting for this since the dawn of properties or so.
And the new audio system seems very spiffy. A thought that crossed my mind on handling places that want a number, score sound etc.: Have a pre-set audio file name that you set the desired audio file to, and it's automatically used? Like you set aScoreSound on some clip and you're all set. Ofcource this wouldn't work just like that for everything, but I don't see why it wouldn't work. But it might need a good reference on the manual, unless the editor provides one on the fly for the more complex currently number-based sound bits.
My compiled game crashed and it generated a "CrashInfo.3.20.1080.dmp" file but i don't know how to open it. I don't think is't because of scripting since It never happened to me when I compile the same version of my game using the previous version of AGS.
How do I open the "CrashInfo.3.20.1080.dmp" file?
This looks great! DLing right now, and I'll toss my projects into it tonight.
Quote from: Joe Carl on Thu 07/05/2009 19:05:06
How do I open the "CrashInfo.3.20.1080.dmp" file?
You don't. Upload it to a space and send it to CJ.
~Trent
We are trying to make an imuse system where the instruments load in different ogg files (with the same length) and reproduce at the same time, so when you move from one region of the room to another some instruments will start playing while other may stop or the other way around. What should happen is that the new sounds should start looping following the reproduction time of the ones that are already playing while that isn't what's happening. Instead of that , they start with a little random lag, for example:
We have 2 oggs with 30 sec duration, battery and guitar. In region 1, battery is playing and in region 2 while battery is still playing the guitar starts playing too. Lets say that on sec 17 i move from region 1 to 2. What should happen is that the guitar file should start playing its 17th sec and on, but what actually happens is that it may start between sec 17-19 randomly thus changing the global rythm of the music.
This is the code where I add the differents instruments:
//Im combining a struct with array to store the imuse instruments
#define MAXINSTR 10
struct type_instrument{
AudioClip* Clip;
AudioChannel* Channel;
bool waittoplay;
};
type_instrument instrument[MAXINSTR];
//To add and instrument, i change waittoplay to true (and change other less important stuff too), then i do this in repeatedly execute:
function repeatedly_execute()
{
int NewClip = 0;
while(NewClip < MAXINSTR){
if(instrument[NewClip].waittoplay){
//search a Clip Playing and store the position
int position = 0;
int counter = 0;
int clipplaying = 0;
while(counter < MAXINSTR){
if(instrument[counter].Channel)
clipplaying = counter;
counter++;}
position = instrument[clipplaying].Canal.Position;
//then, play the clip in that position
instrument[NewClip].Channel= instrument[NewClip].Clip.PlayFrom(position, eAudioPriorityNormal, eRepeat);
Here is a sample, using the same instrument 2 times:
http://www.mediafire.com/?lzimgw33ozw
(In this demo i use position-300 in playfrom, for a minor lag time)
Try walking to the green region, that lag is not always equal.
Thanks for your time
Nahuel36
QuoteA thought that crossed my mind on handling places that want a number, score sound etc.: Have a pre-set audio file name that you set the desired audio file to, and it's automatically used? Like you set aScoreSound on some clip and you're all set
Yes, this is one of the things I still need to sort out. I'm currently thinking about different ways to do this.
QuoteMy compiled game crashed and it generated a "CrashInfo.3.20.1080.dmp" file but i don't know how to open it. I don't think is't because of scripting since It never happened to me when I compile the same version of my game using the previous version of AGS.
How do I open the "CrashInfo.3.20.1080.dmp" file?
As Trent says, you don't open it. It contains information for me that will help me track down what caused the crash, so if you could upload it and post the link to the file for me to investigate, that would be great.
QuoteWhat should happen is that the new sounds should start looping following the reproduction time of the ones that are already playing while that isn't what's happening. Instead of that , they start with a little random lag, for example:
The OGG decoder does some buffering which means it decodes the audio in blocks; the Position is only accurate to the nearest block (however it should be the same as what GetMP3PosMillis used to return). I did some investigation about this a while back, I'll look into it further as it might be easy to fix.
Ok here you are: http://joecarlhr.googlepages.com/CrashInfo.3.20.1080.dmp
CJ, I found a glitch but not 100% sure it's with AGS 3.2.1 bu I managed to reproduce it twice on it.
Well, to start things properly, I loaded my game from 3.1.2 to 3.2.1 everything seemed fine, so I started testing the game to see if indeed it is. At some point I saved the game, and when I loaded it mouse clicks and keypresses didn't work, when however the game changed room everything was cool, and mouse clicks worked properly and keypresses too. I tried to reproduce it on 3.1.2 but didn't,but I could easily reproduce it with 3.2.1, probably this doesn;t help at all.. but there's something having to do when loading a game. For when I save it everything works fine. I've been trying to reproduce it on 3.1.2 till last night, but I've yet to manage. Does anything have to do with savegames appearing on the savelist gui from two different interpeters?
EDIT: Oh, and with the new system and all, what's the equivalent of PlayAmbientSound?, I know its aSoundClip42.Play, but is there a way to create the same effect that ambient sound did with the new system? Perhaps panning?
Thanks for pointing out the Panning property, Dualnames, I had missed that - excellent addition CJ, many thanks! I look forward to playing around with that for my footstep sounds script.
I love the new audio system, seems to work great. But would it be possible to add an AudioClip.Length property? Perhaps it makes more sense with an AudioChannel.Length (since all the get/set position functions are called on channels), but I would find it quite practical to be able to retrieve the length of each clip without actually playing them.
Edit: Also, are there any plans for allowing us to play back Speech audio through regular AudioClip functions - something like aSpeechEgo1.Play()? Currently there seems to be no way of accessing those lines short of the normal Dialog/Say functions.
QuoteOk here you are: http://joecarlhr.googlepages.com/CrashInfo.3.20.1080.dmp
Thanks. Did you notice if the game was playing or was about to play any sound/music when the crash happened?
Is the game small enough to be uploaded for me to investigate?
QuoteAt some point I saved the game, and when I loaded it mouse clicks and keypresses didn't work
Thanks for this, I think there's a problem related to the new Game.IgnoreUserInputAfterTextTimeoutMs property and loading save games; I'll look into it.
QuoteOh, and with the new system and all, what's the equivalent of PlayAmbientSound?, I know its aSoundClip42.Play, but is there a way to create the same effect that ambient sound did with the new system? Perhaps panning?
If you're referring to the (X,Y) location that you used to be able to pass to PlayAmbientSound, then that is no longer supported. I wasn't sure whether anybody was actually using it; if so, it can make a comeback.
QuoteBut would it be possible to add an AudioClip.Length property? Perhaps it makes more sense with an AudioChannel.Length (since all the get/set position functions are called on channels), but I would find it quite practical to be able to retrieve the length of each clip without actually playing them.
I'll see if it's possible to add this for the various audio types.
QuoteEdit: Also, are there any plans for allowing us to play back Speech audio through regular AudioClip functions - something like aSpeechEgo1.Play()? Currently there seems to be no way of accessing those lines short of the normal Dialog/Say functions.
Speech has deliberately been kept separate from these audio changes, however some sort of PlaySpeech command may well be added later.
Quote from: Pumaman on Sun 10/05/2009 23:03:08
QuoteOk here you are: http://joecarlhr.googlepages.com/CrashInfo.3.20.1080.dmp
Thanks. Did you notice if the game was playing or was about to play any sound/music when the crash happened?
Is the game small enough to be uploaded for me to investigate?
Yes it should play a sound just when the game crashes. And compiled the game without modifiyng the code I used in AGS 3.1.2
Hmm the game source is 14mb and I don't know where to upload that size since google pages just let me uploading files smaller than 10mb
I'm sure lots of people use fixed locations for sound playback; I know I do. Also, I was wondering if there's a flag in the audio settings to enable/disable looping so you can easily have a sound or music file repeat (I can't seem to find any info on it)?
@Joe Carl http://www.wikisend.com/
Temporary upload space (up to 90 days) for up to 100 MB.
~Trent
Quote from: Pumaman on Sun 10/05/2009 23:03:08
If you're referring to the (X,Y) location that you used to be able to pass to PlayAmbientSound, then that is no longer supported. I wasn't sure whether anybody was actually using it; if so, it can make a comeback.
Please, do. I'm using a lot of ambient sounds with that, of course we can still use the old style speech for it. I'm not sure but perhaps a workaround with panning and volume might do it?
Quote from: Dualnames on Mon 11/05/2009 13:51:30
Quote from: Pumaman on Sun 10/05/2009 23:03:08
If you're referring to the (X,Y) location that you used to be able to pass to PlayAmbientSound, then that is no longer supported. I wasn't sure whether anybody was actually using it; if so, it can make a comeback.
Please, do. I'm using a lot of ambient sounds with that, of course we can still use the old style speech for it. I'm not sure but perhaps a workaround with panning and volume might do it?
I'd like to see the (X,Y) location for ambient sounds supported too if it's not too much trouble :).
Quote from: Pumaman on Sun 10/05/2009 23:03:08QuoteEdit: Also, are there any plans for allowing us to play back Speech audio through regular AudioClip functions - something like aSpeechEgo1.Play()? Currently there seems to be no way of accessing those lines short of the normal Dialog/Say functions.
Speech has deliberately been kept separate from these audio changes, however some sort of PlaySpeech command may well be added later.
I'm crossing my fingers that this will be implemented eventually. It would be super neat to use the Panning feature to distinguish speaking characters by their position in the room, and direct access to voice files (instead of workarounds like temporarily moving the character to the current room and turning him invisible) would make it much cleaner to script for instance a dictaphone interface like the one in GK1. Not to mention that it would allow us to script background speech with voice without having to store the voice audio as sound effects.
Here is the link: DOWNLOAD (http://wikisend.com/download/518068/KillJD%20BAK.rar)
Thanks Trent.
QuoteYes it should play a sound just when the game crashes. And compiled the game without modifiyng the code I used in AGS 3.1.2
Hmm interesting, maybe you could just upload the sound file that it was about to play? Is it just using a PlaySound command?
QuoteI'm sure lots of people use fixed locations for sound playback; I know I do.
Hmm ok, in that case it can make a comeback. Not sure why I'd got the idea that nobody was using it.
QuoteAlso, I was wondering if there's a flag in the audio settings to enable/disable looping so you can easily have a sound or music file repeat (I can't seem to find any info on it)?
Well, you can set the Repeat property on the audio clip in the editor, or specify it as one of the parameters to the Play command in the script. I'm not sure what else you might have in mind?
CJ, could you please explain how the new AudioCache folder works? It seems that it stores all imported audio files so that the Sound and Music folders are obsolete once the game has been converted to 3.2? If this is the case, perhaps some kind of "Update from source" feature would be appreciated since the internal naming convention is far from transparent (e.g. au00000B.ogg).
Quote from: Pumaman on Mon 11/05/2009 18:05:21
QuoteYes it should play a sound just when the game crashes. And compiled the game without modifiyng the code I used in AGS 3.1.2
Hmm interesting, maybe you could just upload the sound file that it was about to play? Is it just using a PlaySound command?
Never mind, I EDITED my last post and uploaded the full game source. And I dont know exactly which sound should be played when the game crashes since It should play more than one sound.
EDIT: Yes, I used PlaySound command, but now I've just realized the game crashes only some times, other times it does play the sound.
QuoteCJ, could you please explain how the new AudioCache folder works? It seems that it stores all imported audio files so that the Sound and Music folders are obsolete once the game has been converted to 3.2? If this is the case, perhaps some kind of "Update from source" feature would be appreciated since the internal naming convention is far from transparent (e.g. au00000B.ogg).
When you add audio files, AGS makes a copy of them into the AudioCache folder. This is so that if you delete or move the originals, they will still be available in the game.
When you compile the game, AGS should automatically check the source audio files, and if they have changed it will automatically copy the new version into the AudioCache folder. So you should just be able to update your source sound files and they should automatically get pulled in next time you Run the game.
QuoteNever mind, I EDITED my last post and uploaded the full game source. And I dont know exactly which sound should be played when the game crashes since It should play more than one sound.
Thanks. What point in the game is it where it crashes? Is there any particular sequence of steps that I should take to reproduce the crash?
Oh, excellent. I hadn't tried compiling, I just noticed that changed source files weren't updated in the cache after closing/restarting the editor. Thanks for the explanation.
QuoteThanks. What point in the game is it where it crashes? Is there any particular sequence of steps that I should take to reproduce the crash?
New game and start shooting faces, It should crash soon.
QuoteWell, you can set the Repeat property on the audio clip in the editor, or specify it as one of the parameters to the Play command in the script. I'm not sure what else you might have in mind?
A setting in the Play command works for me, I just couldn't find any reference to looping in the list of changes and haven't had time to download it yet :).
Quote from: Joe Carl on Mon 11/05/2009 23:44:16
New game and start shooting faces, It should crash soon.
Ok thanks, I think I know what might be causing this, I'll fix it for the next beta.
Perfect! Good luck ;)
Btw, I have this issue, that keeps bugging me, without having any speech files, a speech vox (1kb) is created and thus game considers speech is available. Is there a way to get rid of it from appearing every time I compile the game?
I threw one of my projects in there and it compiled and played fine. But since I don't have any speech or sound files, I couldn't exactly play with the new functionality. Though I did read the manual entries on AudioClip and AudioChannel and I am excited. (those were the only new additions to the manual, right?)
~Trent
Quote* handle other places that expect a sound number, eg. Score Sound, View Frame Sound
I met this situation. Indeed. I have assigned step sound on walk animations in the editor and the game crashes at that point. So I can't test the engine further for the moment. =P
I found two non-critical little bugs (and I noticed they were in the previous version of AGS too) :
Custom Proprieties Stop Character Editor Bug:
I created a Custom Propriety (for a Character) and the title string (called for Character.GetPropriety()) was too long. It was notified when compiling. Due to a stupid reflex I double-clicked on the error line to get automatically at the faulty line in the script. Of course there's isn't one, since it's in the editor API, thus nothing happened, visually. But... I couldn't open the Character Editor anymore to correct it in the Custom Propriety window.
I needed to re-start the AGS editor.
The Undo Bug:
In the GlobalScript, I wrote a null global String variable (let's call it 'htspt' - and without 'export' yet) outside any function; that is called/written in the on_mouse_click() and called/read in a function below. Compiled, tested. It was fine.
Then I considered it was maybe better to put that global String in another Script Module (let's call it sGamePlay) that was before the GlobalScript. So I cut (with Ctrl+X) the line containing the global String 'String htspt;' and pasted (Ctrl+V) into sGamePlay.
Then I reconsidered that it was maybe not a good idea and it was better leaving it in the GlobalScript; until that thought, I didn't do anything yet: no saving, no compiling, no adding 'export', no typing - excepting the Ctrl+V.
So instead of cut and pasting back again, I just undid (Ctrl+Z) what I did in both Scripts so that they were like they were before the change; the '*' disappeared in the tab. And I just pressed F5 to check.
The compiler returned me the error that the String 'htspt' token wasn't defined, although it was.
I needed to retype the line - not necessary the whole line, just partially; I had, for instance, to erase a character like the ';' and put it back. Then it worked fine.
QuoteOf course there's isn't one, since it's in the editor API, thus nothing happened, visually.
IIRC, this should jump to other areas in the editor too, not just script lines. But of course, your case is an apparent bug, probably due to the fact that custom Properties pop up in an extra window.
~Trent
QuoteBtw, I have this issue, that keeps bugging me, without having any speech files, a speech vox (1kb) is created and thus game considers speech is available. Is there a way to get rid of it from appearing every time I compile the game?
You might have a .PAM file, or a syncdata.dat file in the game folder. If so, delete them and it should stop generating the VOX
QuoteI created a Custom Propriety (for a Character) and the title string (called for Character.GetPropriety()) was too long. It was notified when compiling. Due to a stupid reflex I double-clicked on the error line to get automatically at the faulty line in the script. Of course there's isn't one, since it's in the editor API, thus nothing happened, visually. But... I couldn't open the Character Editor anymore to correct it in the Custom Propriety window.
Hmm I couldn't replicate this problem. I created a custom property with a long name, got the error when compiling, double-clicked it and nothing happened. But then I could still carry on and open the Character Editor as normal...
QuoteThe Undo Bug:
Thanks for reporting this, I can replicate this and will look into it.
There's bug with line numbering (which is present in 3.1.2 as well).
When using line-numbering in a custom dialog gui, the line numbers a being rendered as well.
When processing strings with
DialogToRender.GetOptionText();
it doesn't return line numbers (which is good), but
Surface.DrawStringWrapped()
displays the line number.
There's another one (or is it a feature request ;) )
The surface in a custom dialog doesn't support partial transparency.
So using the transparency parameter in Surface.DrawImage results in a partially pink surface.
Quote from: abstauber on Tue 19/05/2009 12:17:47
When using line-numbering in a custom dialog gui, the line numbers a being rendered as well.
When processing strings with
DialogToRender.GetOptionText();
it doesn't return line numbers (which is good), but
Surface.DrawStringWrapped()
displays the line number.
I don't really understand what you mean here. Are you using custom dialog options scripting, eg. dialog_options_render? Are you saying that Surface.DrawStringWrapped is adding a number to the text it is writing? Can you post an example?
QuoteThe surface in a custom dialog doesn't support partial transparency.
So using the transparency parameter in Surface.DrawImage results in a partially pink surface.
Yes, this has already been mentioned. It'll get done at some point!
A non-critical editor bug: If you try to import an old game that doesn't have a Music folder, you'll get an elaborate System.IO error message. The editor doesn't crash but the game cannot be imported until you create the folder.
Quote from: Pumaman on Tue 19/05/2009 19:18:19
I don't really understand what you mean here. Are you using custom dialog options scripting, eg. dialog_options_render? Are you saying that Surface.DrawStringWrapped is adding a number to the text it is writing? Can you post an example?
Sorry if I expressed myself unclear. Yes I use custom dialog rendering and when there's line numbering in the option text, it's getting displayed.
Here's an example for the option text in the dialog editor
&1 How are you ?
Quote from: Pumaman on Tue 19/05/2009 19:18:19
Yes, this has already been mentioned. It'll get done at some point!
I though you've meant images with semi-transparent pixels there, sorry for double reporting then :)
Quote from: GarageGothic on Wed 20/05/2009 02:12:43
A non-critical editor bug: If you try to import an old game that doesn't have a Music folder, you'll get an elaborate System.IO error message. The editor doesn't crash but the game cannot be imported until you create the folder.
Interesting, I'll look into it.
QuoteSorry if I expressed myself unclear. Yes I use custom dialog rendering and when there's line numbering in the option text, it's getting displayed.
Here's an example for the option text in the dialog editor
&1 How are you ?
Oh I see, I thought you meant Auto-Number Dialog Options, not voice speech numbering :)
Hmm, I'm not sure how to tackle this. In some situations you might want GetOptionText to retain the &1-style numbers, so that should probably stay ... but would it be safe for Surface.DrawString to always strip them out? I'll have a think about it.
QuoteI though you've meant images with semi-transparent pixels there, sorry for double reporting then
Oh sorry, maybe I've misunderstood. Well, if you have a transparent surface and you semi-transparently draw onto it, then it will have nothing to draw against except the transparent background, so you'll get a pink effect. You would need an opaque image to already be on the surface in order to DrawImage semi-transparently onto it.
Quote from: Pumaman on Thu 21/05/2009 22:43:42Hmm, I'm not sure how to tackle this.
Perhaps the best method would be an optional bool for Dialog.GetOptionText (default true) to
includeSpeechNumber?
It seems better IMO than an arbitrary decision regarding the DrawingSurface functions...
Oh I see... well if it's not a bug, I guess, I could filter them out myself ;)
Btw. why should I want them to be displayed? For the ease of translation?
Finally trying to get caught up with the latest -- yes, please do put the playambientsound with locations back! I just spent a whole bunch of time modifying a room to use this feature (kind of like an audio maze).
Assuming the weather doesn't turn lovely again, will try to test Pig Flu with my neverending Darkdevil game this week.
Quote from: Pumaman on Mon 18/05/2009 20:02:27
QuoteI created a Custom Propriety (for a Character) and the title string (called for Character.GetPropriety()) was too long. It was notified when compiling. Due to a stupid reflex I double-clicked on the error line to get automatically at the faulty line in the script. Of course there's isn't one, since it's in the editor API, thus nothing happened, visually. But... I couldn't open the Character Editor anymore to correct it in the Custom Propriety window.
Hmm I couldn't replicate this problem. I created a custom property with a long name, got the error when compiling, double-clicked it and nothing happened. But then I could still carry on and open the Character Editor as normal...
For some unknown reasons I can't replicate it either. I can't remember if there might have been something I missed.
I finally found some time to play with AGS 3.2 some more.
Here are some things I've been stumbling upon.
No. 1
This is more odd behaviour, than a bug ;)
My computer is a little slow and when I launch AGS games, it gets some kind of hiccup. The game window freezes for a split seconds while the audio hangs.
Sound comes out of the speaker, it repeats the last fraction of what should have been played... e.g. if a word like "Jones" is played, I get Jo.o.o.o.o.o.o.o.nes.
This happens randomly after starting the game and I think it even isn't AGS' fault.
But when I play two sound files simultaneously like this
cSong = aSongTrack.Play(eAudioPriorityVeryHigh);
cInstrument = aInstrument.Play(eAudioPriorityVeryHigh);
They are totally out of sync after my hiccup.
No. 2
Is it possible to add the audioclip pointer to the manual and the auto-complete?
Except this isn't valid code (it compiles fine though)
AudioClip *aSongTrack;
AudioClip *aInstrument;
aSongTrack = aBangSong;
aInstrument = aBangInstr;
No. 3
An unhandled error occurs when you try to remove an audio file which on 'pause' in the audio-tab.
Error: Unable to delete the file 'D:\Eigene Dateien\RythmGame\AudioCache\au00000B.ogg'.
Der Prozess kann nicht auf die Datei "D:\Eigene Dateien\RythmGame\AudioCache\au00000B.ogg" zugreifen,
da sie von einem anderen Prozess verwendet wird.
Version: AGS 3.2.0.86
AGS.Types.CannotDeleteFileException: Unable to delete the file 'D:\Eigene Dateien\RythmGame\AudioCache\au00000B.ogg'.
Der Prozess kann nicht auf die Datei "D:\Eigene Dateien\RythmGame\AudioCache\au00000B.ogg" zugreifen,
da sie von einem anderen Prozess verwendet wird. ---> System.IO.IOException:
Der Prozess kann nicht auf die Datei "D:\Eigene Dateien\RythmGame\AudioCache\au00000B.ogg"
zugreifen, da sie von einem anderen Prozess verwendet wird.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.File.Delete(String path)
bei AGS.Editor.AGSEditor.AttemptToDeleteFileFromDisk(String fileName)
--- Ende der internen Ausnahmestapelüberwachung ---
bei AGS.Editor.AGSEditor.AttemptToDeleteFileFromDisk(String fileName)
bei AGS.Editor.AGSEditor.DeleteFileOnDiskAndSourceControl(String[] fileNames)
bei AGS.Editor.Components.AudioComponent.DeleteResourcesForAudioClips(IList`1 clipsToDelete)
bei AGS.Editor.Components.AudioComponent.DeleteResourcesForAudioClip(AudioClip clipToDelete)
bei AGS.Editor.Components.AudioComponent.ItemCommandClick(String controlID)
bei AGS.Editor.Components.BaseComponentWithFolders`2.CommandClick(String controlID)
bei AGS.Editor.GUIController._mainForm_OnMenuClick(String menuItemID)
bei AGS.Editor.ProjectTree.ContextMenuEventHandler(Object sender, EventArgs e)
bei System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
bei System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
bei System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
bei System.Windows.Forms.ToolStrip.WndProc(Message& m)
bei System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
If you then stop the audio-clip and try to remove it again, the following happens:
(I guess it means, that a object pointer does not point to an instance ??? )
Error: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Version: AGS 3.2.0.86
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei AGS.Editor.Components.AudioComponent.ItemCommandClick(String controlID)
bei AGS.Editor.Components.BaseComponentWithFolders`2.CommandClick(String controlID)
bei AGS.Editor.GUIController._mainForm_OnMenuClick(String menuItemID)
bei AGS.Editor.ProjectTree.ContextMenuEventHandler(Object sender, EventArgs e)
bei System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
bei System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
bei System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
bei System.Windows.Forms.ToolStrip.WndProc(Message& m)
bei System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
After I restart AGS, the music files are gone.
Quote from: abstauber on Sun 07/06/2009 10:35:48
My computer is a little slow and when I launch AGS games, it gets some kind of hiccup. The game window freezes for a split seconds while the audio hangs.
Hmm, does anyone else get this problem? Does it happen only full-screen or windowed, or both?
QuoteIs it possible to add the audioclip pointer to the manual and the auto-complete?
Except this isn't valid code (it compiles fine though)
AudioClip *aSongTrack;
AudioClip *aInstrument;
aSongTrack = aBangSong;
aInstrument = aBangInstr;
I'm not sure what you mean by this, the autocomplete and manual do include the AudioClip commands?
QuoteAn unhandled error occurs when you try to remove an audio file which on 'pause' in the audio-tab.
Thanks for spotting this, I'll get it fixed.
Quote
AudioClip *aSongTrack;
AudioClip *aInstrument;
aSongTrack = aBangSong;
aInstrument = aBangInstr;
I'm not sure what you mean by this, the autocomplete and manual do include the AudioClip commands?
Oh, sorry... I should have waited a little more to post this..
I somehow was expecting an example like
AudioClip *aSongTrack = aBangSong.Create(); ... which is bogus of course ;)
Also after a restart of AGS, the autocomplete now shows me those pointers, it just wasn't shown after I declared them.
About my computer's hiccup:
I usually play games in windowed mode, direct 5 and 3x filter - but I haven't tested fullscreen yet. But it also happens with other games, so I guess this is only my machine or some evil process in the background which pushs the CPU load to 100% for short while.
But there's also another strange behaviour on those hiccups: the gameloops seem to stop, but the audioposition moves on.
Here's my test setting.
In the room load, I add:
AudioChannel *channel = aSong.Play();
And in the repeatly_execute I also start a timer.
timer += 25;
(the gamespeed is set to 40, which should mean: about 1 loop per 25 msec.)
When I now start the testgame, this timer and the result of aSong.PositionMs are in the same region. Of course the timer only "jumps" into 25 msec steps.
But after the hiccup, there's a huge gap. So I assume, the engine paused, while the sound kept on going somehow. Is that possible?
(and sorry for this extensive post ;) )
QuoteAlso after a restart of AGS, the autocomplete now shows me those pointers, it just wasn't shown after I declared them.
Ah ok, it could just be that the autocomplete needs to update more often, I'll take a look.
QuoteWhen I now start the testgame, this timer and the result of aSong.PositionMs are in the same region. Of course the timer only "jumps" into 25 msec steps.
But after the hiccup, there's a huge gap. So I assume, the engine paused, while the sound kept on going somehow. Is that possible?
Yeah, because the audio is sent into a buffer on your sound card, it will continue to play even when the CPU is locked up with other things. When that buffer runs out and is not filled with new data by the CPU, it just plays the contents of the buffer over again, which is why you get the stuttering effect.
Anyway, Beta 2 is now up. You
cannot load in games from Beta 1 -- any test games you made with beta 1 need to be thrown away. However, from this point on, games saved with Beta 2
will be supported by future versions.
This basically completes the new audio system now. There are a couple of remaining missing bits listed in the first post -- crossfading being the main one. Your feedback is welcome.
Woohoo you fixed the translation thingy. Downloading..
Will you be making it so that when the final version is released it will automatically convert the obselete lines of code in the audio system to the new. This would make life a lot easier.
I agree that some conversions/tweaks would help, even if it means checking to see if the room has a music file set to play on load and changes that out for an audio call to the music file in the room load script. It would streamline the importing of old games greatly. It's looking good, in any event!
Quote
Yeah, because the audio is sent into a buffer on your sound card, it will continue to play even when the CPU is locked up with other things. When that buffer runs out and is not filled with new data by the CPU, it just plays the contents of the buffer over again, which is why you get the stuttering effect.
Oh I see, thanks for this info. Then I'd better play a silent ogg and use it as a timer :)
And yay... curry ;D
Quote from: Dualnames on Mon 08/06/2009 23:53:34
Woohoo you fixed the translation thingy. Downloading..
Does that mean that I can stop digging for this bizarre bug?
Oh, what a mistake! :o I saved my piece of adv. in the version 3.2 beta 1 with no copies and now I won't open in the 3.2 beta 2. :P
Is there any way back? :'(
Thank you
Excuse my English
Does Beta 2 remove the 1 music channel limit from Beta 1? Lots of music channels would be extremely useful!
When switching quickly through different ogg music tunes in the properties pane AGS crashed. I was basically playing one and then switching to the next on the list, etc. It might have something to do with trying to play one music track over the other.
Quote from: Leon on Tue 09/06/2009 08:35:15
Quote from: Dualnames on Mon 08/06/2009 23:53:34
Woohoo you fixed the translation thingy. Downloading..
Does that mean that I can stop digging for this bizarre bug?
Yep. For now. I'll test and tell ya.
I've been playing around with the new audio functions in my lunchbreak and the possibilities are very exciting. I'll have a play around further in the evening but I think it'll be possible to have transition cues and crossfading that's synced to the tempo of your music, so you could actually do something as complex as Woodtick from Monkey Island 2 but with streamed audio!
One question though Ceej, how large is the buffer in samples for music and streamed audio? There's going to be some lag compensation necessary I think on the scripting side, and if the time it takes to buffer music tracks is known then it'll make this a lot easier!
Cheers,
Adam
Quote from: DavidCB on Tue 09/06/2009 09:10:09Oh, what a mistake! :o I saved my piece of adv. in the version 3.2 beta 1 with no copies and now I won't open in the 3.2 beta 2. :P
Is there any way back? :'(
Well David, your best bet is to export things that can be (Guis, Chars, Sprites, etc) and copy-pasting scripts. Note also that you directly import the rooms from the old game (just find the .crm files)
Another way, would
possibly be to text-edit the .agf file, but this could turn out buggy so I'd suggest just building it up like above.
~Trent
QuoteWill you be making it so that when the final version is released it will automatically convert the obselete lines of code in the audio system to the new. This would make life a lot easier.
This isn't something I had planned on doing. The old lines of code like PlaySound should still continue to work as long as you leave the sound and music audio clips with their default names like "aMusic1" and "aSound5", and don't change the configuration of the Audio Types.
Quoteeven if it means checking to see if the room has a music file set to play on load and changes that out for an audio call to the music file in the room load script
This is probably worth doing, especially as the Play Music On Load number is no longer visible -- it should at least pop up a warning and tell you.
QuoteOh I see, thanks for this info. Then I'd better play a silent ogg and use it as a timer
Well, if you have this problem when the game starts up maybe you could just use a Wait(100) at the start of the game before playing any audio, to let your PC catch up with whatever it's doing?
QuoteOh, what a mistake! I saved my piece of adv. in the version 3.2 beta 1 with no copies and now I won't open in the 3.2 beta 2.
Is there any way back?
It is possible for me to revert this, if you upload the Game.agf file and send me a link to it I can repair it for you.
Or if you want to try and fix it yourself, MAKE A BACKUP COPY OF IT, then open the Game.agf in Notepad and:
Find the <AudioClips> section and delete everything between <AudioClips> and </AudioClips> including those two lines themselves.
Then, go back to the top of the file, find this:
VersionIndex="5" and change the 5 to 4.
Be very careful if you do that though, you can easily accidentally corrupt your game by editing the file manually.
QuoteDoes Beta 2 remove the 1 music channel limit from Beta 1? Lots of music channels would be extremely useful!
Yes, the limit is now configurable in the Audio Types section. It is still 1 for Music by default, because most people will expect a PlayMusic command to change the playing music rather than starting a second simultaneous one.
QuoteWhen switching quickly through different ogg music tunes in the properties pane AGS crashed. I was basically playing one and then switching to the next on the list, etc. It might have something to do with trying to play one music track over the other.
What was the error message? Did you Send Error Report? The server isn't showing any error reports submitted with this beta...
QuoteOne question though Ceej, how large is the buffer in samples for music and streamed audio? There's going to be some lag compensation necessary I think on the scripting side, and if the time it takes to buffer music tracks is known then it'll make this a lot easier!
The buffer size depends on the audio type (I think it's 16 KB for OGG, for example) so it depends on the frequency of the audio file as to how many milliseconds of sound is buffered. For beta 2, I updated the PositionMs property on OGG audio to interrogate the buffer and return a more accurate position, whereas in beta 1 it was returning a position rounded to the nearest buffer size.
Now, one thing I'm not sure how to implement with the new audio system is crossfading. In previous versions of AGS, there was a special hidden audio channel (channel -1) that was used to play the track that was fading out. However, with the new multi-channel system you might have any number of audio clips crossfading across each other (which you could of course now implement manually) so I need to think further about how to provide an easy-to-use default implementation like the one in previous versions.
AGS just stopped responding or I would have given you an error message. I had to end the process because it stalled.
Something else: I can't seem to figure this out, but all my old songs that were set to play in specific rooms still play but there is no script in the room file (whatever.Play) and of course the room music setting is now gone. Even more interesting, when I try playing a new song with MaxChannels set to 1 it plays over the existing room music rather than stopping it, so I'm guessing there's some Legacy PlayMusic code still running?
To fix this I might just recopy the game again, go through the rooms and set the music property in each one to 0 before importing, but I thought it was worth mentioning.
Edit: There's a small issue with the Speech/Audio/Sound folder file numbering. Instead of going from 1-10 and up it goes 0,1,10-19,2,20-29,3 and so on. Not a big deal, really.
Edit2: I think the problem with the music playing wasn't a result of the room music setting but the PlayMusic funtion. It seems to play on a separate channel from the new music.Play command so all my old calls to it still work (but playing a new tune just plays over the old). Perhaps you could do a a quick code update for the PlayMusic(x) calls to amusicx.Play() (as well as room music calls)?
Edit3: When you do implement crossfading, could it be a a pull-down property option under the Music/Sound setting and each individual music/sound file? That would allow people to quickly set crossfade for all music as well as tweak individual tunes that they might not want handled in that way or at a certain crossfade speed.
QuoteThe buffer size depends on the audio type (I think it's 16 KB for OGG, for example) so it depends on the frequency of the audio file as to how many milliseconds of sound is buffered. For beta 2, I updated the PositionMs property on OGG audio to interrogate the buffer and return a more accurate position, whereas in beta 1 it was returning a position rounded to the nearest buffer size.
Aha, this would explain a lot!
There still seems to be a large amount of inaccuracy when seeking in a streaming channel that's currently playing. If I do the following:
track1 = aMusic1.Play();
...and then any time later in the script/game:
track2 = aMusic2.PlayFrom(track1.PositionMs);
...then track2 will sync to track1's position
exactly (which is what we want!). However if do the following.
track1 = aMusic1.Play();
track2 = aMusic2.Play();
...and then any time later in the script/game:
track2.Seek(track1.PositionMs)
...track2 is out of sync with track 1 by a very large number of milliseconds (250 at the very least!).
I'm not sure if this is a bug or something else, but it's not a HUGE problem as I think that every case where I'll need to sync tracks together I'll always use the PlayFrom command... but it's there for your information anyway :)
Here's a minor one. Just downloaded 3.2 for the first time since I don't really have any projects going on with the audio functions right now, so I started up a new project. On compilation I got an error that:
Quote from: The error messageUnexpected error: Could not find a part of the path 'F:\AGS\Projects\AudioTest\Music'.
I actually had to create this folder manually in Windows to compile my new project (Default Template). If the folder doesn't exist...wouldn't it be more logical just to create it?
Especially considering this is a new project! 8)
Other than that, took a look through the manual at the new audio script functions. Looks good so far...
Edit: Also, forgive me if I'm being daft here but where is
System.AudioChannelCount set at? I double checked and it's not in the System Limits page so I assume it's set somewhere in the editor? But I can't seem to find it....
I do now see that each of the audio types has a
MaxChannels setting in their respective properties pane, so would System.AudioChannelCount be the summation of those? How then would it total "unlimited" channels? Further, is there a way to check the maximum channels available to a specific audio type?
Thank you very much, Trent R
QuoteOh I see, thanks for this info. Then I'd better play a silent ogg and use it as a timer
Well, if you have this problem when the game starts up maybe you could just use a Wait(100) at the start of the game before playing any audio, to let your PC catch up with whatever it's doing?
I'm afraid, my cheesy celeron does its workout (or whatever) on an irregular base.
But my main issue is, that during the stuttering, my manual counter of msecs stops, whereas audioChannel.PositionMs advances.
Here's apost, where I've tried to describe my problem:
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=37985.msg499409#msg499409
First of all with the translation all done and set. Thanks a lot :D
Secondly a small problem..:
I don't really mind about it, (meaning its not vital), but well, there's a 1kb speech vox file being created every time I compile the game.
1. I have no files in my speech folder
2. I used auto-remove all number lines from speech lines. But the 1kb vox was still there.
3. I'm using the latest STABLE AGS Version (3.1.2)
4. I created a translation so I could search what lines have '&' to them.
And those are:
&5 Sorry, not now.
&6 Restore
&7 Cancel
&8 Select a game to restore:
&9 Save
&10 Type a name to save as:
&11 Replace
&12 The save directory is full. You must replace an existing game:
&13 Replace:
&14 With:
&15 Quit
&16 Play
&17 Are you sure you want to quit?
&18 You are carrying nothing.
&19 Talking to yourself is a sign of madness!
&20 You rub your hands up and down your clothes.
&21 Damn, I'm looking good!
Those lines are AGS default things..So I can't edit them.
Sorry if I'm being too picky about this..
You have the solution here
(http://www.adventuregamestudio.co.uk/yabb/index.php?topic=37868.0)
I had this same trouble and i solved it.
Jp
@Jp: Hahaha, you linked a thread where I quoted Dualnames from this very thread!
@CJ: Woohoo-Curry! DLing now.
@Dave: Glad to help, but did you see Pumaman's reply to your question? It's smack in the middle of his big post above.
~Trent
QuoteAGS just stopped responding or I would have given you an error message. I had to end the process because it stalled.
Hmm, that's a bit worrying. Let me know if it happens again.
QuoteI can't seem to figure this out, but all my old songs that were set to play in specific rooms still play but there is no script in the room file (whatever.Play) and of course the room music setting is now gone. Even more interesting, when I try playing a new song with MaxChannels set to 1 it plays over the existing room music rather than stopping it, so I'm guessing there's some Legacy PlayMusic code still running?
Yes, the old "Play Music On Room Load" setting is still there, it's just hidden. This is why I was saying I really need to add something to the editor to automatically convert this into a script line when you load the room.
QuoteThere's a small issue with the Speech/Audio/Sound folder file numbering. Instead of going from 1-10 and up it goes 0,1,10-19,2,20-29,3 and so on. Not a big deal, really.
Well, these are only default names for the files that have been imported from the old version. Ideally you'll rename them to have proper names like "aExplosion" so there won't be a huge list of numbered names.
QuoteEdit2: I think the problem with the music playing wasn't a result of the room music setting but the PlayMusic funtion. It seems to play on a separate channel from the new music.Play command so all my old calls to it still work (but playing a new tune just plays over the old). Perhaps you could do a a quick code update for the PlayMusic(x) calls to amusicx.Play() (as well as room music calls)?
Are you saying that a tune played with aMusic5.Play() plays simultaneously with a PlayMusic(5) command? Have you changed any of the default Audio Types?
QuoteEdit3: When you do implement crossfading, could it be a a pull-down property option under the Music/Sound setting and each individual music/sound file? That would allow people to quickly set crossfade for all music as well as tweak individual tunes that they might not want handled in that way or at a certain crossfade speed.
Well the problem is that cross-fading requires an extra audio channel (since it is basically just playing two sounds at the same time), so if cross-fading was allowed for everything, it would mean you could only have 4 audio channels since the other 4 might be needed to crossfade them ... this is where the difficulty lies.
Quote
track2 = aMusic2.PlayFrom(track1.PositionMs);
...then track2 will sync to track1's position exactly (which is what we want!). However if do the following.
track2.Seek(track1.PositionMs)
...track2 is out of sync with track 1 by a very large number of milliseconds (250 at the very least!).
Interesting thanks, I'll look into it. It's probably finishing playing the current buffered data before seeking to the new position, I'll see if I can fix it.
QuoteOn compilation I got an error that:
Unexpected error: Could not find a part of the path 'F:\AGS\Projects\AudioTest\Music'.
Thanks for reporting this. You shouldn't need to have a Music folder any more, so I'll get that fixed.
QuoteEdit: Also, forgive me if I'm being daft here but where is System.AudioChannelCount set at?
Currently it is always 8. The "unlimited" channels with the audio types simply means that there is no specific limit on the number of channels that audio type can use, and it can use any remaining ones available within the overall 8.
QuoteFurther, is there a way to check the maximum channels available to a specific audio type?
In the editor, this is set on the Audio Type. There's currently no script method to access the setting, if that's what you mean?
QuoteI'm afraid, my cheesy celeron does its workout (or whatever) on an irregular base.
But my main issue is, that during the stuttering, my manual counter of msecs stops, whereas audioChannel.PositionMs advances.
Yes, as I said, this is to be expected because the sound card has its own buffer which will continue to play if your CPU is locked up. Unfortunately there's not much that can be done about it (other than figuring out why your PC keeps locking up!)
QuoteSecondly a small problem..:
I don't really mind about it, (meaning its not vital), but well, there's a 1kb speech vox file being created every time I compile the game.
Are you sure you don't have a syncdata.dat file lying around in the game folder?
QuoteThose lines are AGS default things..So I can't edit them.
Yeah those are the old Global Messages from 2.72. I need to add an option to get rid of them to a future version.
Quote from: Pumaman on Wed 10/06/2009 19:04:29QuoteAlso, forgive me if I'm being daft here but where is System.AudioChannelCount set at?
Currently it is always 8. The "unlimited" channels with the audio types simply means that there is no specific limit on the number of channels that audio type can use, and it can use any remaining ones available within the overall 8.
Okay thanks! That was driving me batty trying to find that...is it in the manual somewhere? And is this a limit that you are planning on changing? I was just wondering why it's a property instead of, for example, a macro (like all the AGS_MAX_* ones).
Quote from: Pumaman on Wed 10/06/2009 19:04:29QuoteFurther, is there a way to check the maximum channels available to a specific audio type?
In the editor, this is set on the Audio Type. There's currently no script method to access the setting, if that's what you mean?
That's precisely what I was asking. Would it be difficult to have a something like System.AudioChannelLimitForType(AudioType)? I can't think of any specific examples, but I think that if it's something that can be set in the editor, it might be reasonable to want this information in the script at some point.
QuoteAre you saying that a tune played with aMusic5.Play() plays simultaneously with a PlayMusic(5) command?
I tried a different song from the one playing, but that shouldn't make any difference with 1 music channel, right? Other than that, yeah, I get two songs playing simultaneously.
Quote from: Pumaman on Sun 03/05/2009 15:34:47* Added AudioChannel.LengthMs property
Brilliant! Thank you very much!
Okay removed the syncdata thingy and that speech vox file went on holidays!! Ty CJ. AGAIN. ;)
Quoteis it in the manual somewhere? And is this a limit that you are planning on changing? I was just wondering why it's a property instead of, for example, a macro (like all the AGS_MAX_* ones).
Good point, I'll add it to the manual for the next beta.
It's not an AGS_MAX_* constant because if it changes you don't need to rebuild your game. It's a limitation of the currently running AGS Engine and not a limitation of the game file format like the Max Inv Items is.
QuoteWould it be difficult to have a something like System.AudioChannelLimitForType(AudioType)? I can't think of any specific examples, but I think that if it's something that can be set in the editor, it might be reasonable to want this information in the script at some point.
If there is a scenario where this would be useful I can look into adding it. However at the moment there's a lot of other stuff I need to sort out so without a good reason to do this I'm not planning on it.
QuoteI tried a different song from the one playing, but that shouldn't make any difference with 1 music channel, right? Other than that, yeah, I get two songs playing simultaneously.
Ok thanks, I'll look into it.
Quote from: ProgZmax on Wed 10/06/2009 21:18:19
I tried a different song from the one playing, but that shouldn't make any difference with 1 music channel, right? Other than that, yeah, I get two songs playing simultaneously.
I can't replicate this. Have you got crossfading enabled (if so does turning it off stop the problem?) and have you changed any of the default Audio Types in any way?
I had crossfading on from before I imported it, yes. I changed none of the default settings; all I did was do aMusic2.Play() in the room's load script and it played over a PlayMusic call from before.
Can you upload something that demonstrates this problem, because I still can't replicate it myself?
Sorry, but after I went through and removed all the PlayMusic calls in the game it stopped happening and I can't seem to get it to happen by adding new ones, now. It might just have been a glitch with the intial importing of the game. Also, so far I have not been able to make AGS stop responding again by switching songs quickly in the editor, so maybe that was tied to the same problem (songs playing over each other) and saving and re-opening the game fixed it?
Well, i've been testing my Imuse sistem. This time, to improve the synchronization i tried putting all instruments from the beginning and leaving a high volume only to the ones that have to be played.
However, with both methods (this one and the last one) the synchronization of the instruments has improved with the new beta, but it still needs to improve a bit more.
I ran the demo on a pentium 4 of 3.3 ghz and about 90% of the times they were synchronized but i also ran it on a pentium 4 of 1.8 ghz and the result is different. In this case, in most of the times they weren't synchronized.
I'm sending you this game as a demonstration, I used the new sistem I told you about on it. Because of being only 2 instruments there shouldn't be any problem. Just like the last time I repeated the same instrument to notice if they are synchronized. If you press F9 you'll notice that sometimes it loads more synchronized and other times less.
Demo:
http://www.mediafire.com/file/zmjwm2jmrg2/imuse bug new.rar
Well, I hope you can fix it, greetings and thank you very much.
Nahuel 36
I have exactly the same problem. I thought it was because of my crappy
Celeron-M 1000 MHz :)
So yes, nearly every 5th time, my two soundfiles start out of sync.
I DO know this thread isn't for feature requests, and that audio is your main concern for the current beta version. But now that the "additive opacity" render mode was introduced for GUIs in version 3.1.2 (and GUIs afaik use temporary DynamicSprites for rendering) I was wondering if there's even a tiny little chance that this functionality might be extended to ordinary DrawingSurface functions?
For the record I would still find it useful for something like this (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=37447.msg492361#msg492361) to be implemented. As has been noted this version is leaning more toward revamping the audio system (which is great) of course a gentle reminder of "CJ we'd reaaawwy reaawwy reaawwy wike to see this....pweeease?" can't do too much harm... ::)
Hell, I'd rather have dynamic sprites support a z-order option so they can draw behind characters/objects instead of always being drawn last (on top of everything else). To me that would be far more useful at the moment.
Not sure what you mean, ProgZ. Can't you just assign your DynamicSprite to the Graphic/ViewFrame of an Object or Character positioned behind the others, or even draw it straight to the background? Are you talking about z-order for Overlays?
As GG mentioned, there should not be z-order associated with any sprites. Their priorities depends on how you use them, be they images for GUI buttons, overlays, characters, objects or drawn onto background. For them to be placed more freely you may just assign dynamic sprites to objects or characters and mess with their baselines appropriately.
Quote from: GrogGames on Thu 02/07/2009 23:15:48
I ran the demo on a pentium 4 of 3.3 ghz and about 90% of the times they were synchronized but i also ran it on a pentium 4 of 1.8 ghz and the result is different. In this case, in most of the times they weren't synchronized.
I'm sending you this game as a demonstration, I used the new sistem I told you about on it. Because of being only 2 instruments there shouldn't be any problem. Just like the last time I repeated the same instrument to notice if they are synchronized. If you press F9 you'll notice that sometimes it loads more synchronized and other times less.
I downloaded and ran your demo but I'm not really sure what the problem is.
Can you post what lines of script you're using, and what you're trying to accomplish? As it is I'm not really sure what I'm supposed to be listening out for.
*cough* as I might have the same problem, you could also take a look at my sources :D
I also try to play 2 OGGs simultaneously - if you comment out the Wait(1) in line 183 (room1 script), the chances are high, that they start to play out off sync.
It's also possible that they loose sync during the game.
(I've send you a PM with the url)
The Play() command has to load the audio file from the disk and then start playing it, which takes a bit of time.
Have you tried Seeking both the tracks to 0 after loading them, eg:
chanSync1 = aSynctrack1.Play();
chanSync2 = aSynctrack2.Play();
chanSync1.Seek(0);
chanSync2.Seek(0);
that should ensure that the first track gets rewound to start again once the second track has loaded.
Well, I've tried after I've read it :)
Unfortunately Wait(1) after the play commands is still much more reliable.
If you've downloaded my code, there's also an autoplay option so it's easier for you to see the problem.
It's in line 102 in the roomscript. You just have to set it to true.
Hmm, I still don't see the problem. I put in two Seek calls after the two Play lines and the tracks seemed to be synced fine... with autoplay enabled it sounded fine to me.
Can you describe exactly what the problem is?
It does :o ?
Wow.. you own a well configured computer ;) Kaputtnik's, Ben's and my own machine had syncing troubles nearly every second game start. The only thing that helped so far, is the Wait(1).
Have you tried it a couple of times? E.g please try Song 4 on the hardest level and test it 4 times. And maybe you could keep some programs open in the background. If you don't lose the sync then... well, then this problem stays mysterious :)
btw. thanks for downloading and crawling through my code ;)
Ahh, I think I might know why I wasn't seeing the problem.
I wasn't actually testing against Beta 2, I was testing with my latest work-in-progress build which already includes some fixes to the Seek command.
Here's the latest version of the engine (let's call it Beta 2.5!), try this out and see if it helps:
http://www.adventuregamestudio.co.uk/acwin.zip
Hey... .seek is suddently accurate as hell :) Overall it seems like there've been some improvements on the sound part, since the OGGs doesn't seem to loose sync anymore at all.
Thanks a lot :D
Marvelous work CJ. You impress us with just 1% of your new WIP. ;D
Sparky.
Haven't checked the new version but the old if you use Run-AGS Game command and have a loading pcx and have a video playing on game start it won't show.
http://ledzepforever.googlepages.com/SecureFileTestV1_2.rar
Download this and use serial 4556-5555-6666-6666 to see what I'm talking about. Execute SecureFile and not copy of HHGTG. If you hear a sound while you see the loading screen it means that an .ogv intro movie is playing whilst the loading screen appears.
This only happens via the RunAGSGame command.
Okay how on earth did you create a secure AGS environment? I've thought about copy protection, but this is elaborate!
Just one question, wouldn't all this be feasible in the game exe? And if not, how did you get AGS to read/write to those three strange files?
In any case, I've never been this impressed with an AGS game before and I haven't even played the damn thing!
Bravo. :D
For that, talk about it in the appropriate thread (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=38367.0). :P
Thanks Gilbet. I never realized there was a thread for this! Fantastic!
Big Cheers,
Sparky.
Quote from: abstauber on Thu 30/07/2009 14:01:33
Hey... .seek is suddently accurate as hell :) Overall it seems like there've been some improvements on the sound part, since the OGGs doesn't seem to loose sync anymore at all.
Thanks a lot :D
Glad to hear it, that is now included in beta 3.
QuoteHaven't checked the new version but the old if you use Run-AGS Game command and have a loading pcx and have a video playing on game start it won't show.
I'll look into this.
Anyway, beta 3 is now up. With this release, I now declare the new audio system complete (save for a few icons in the audio preview pane), so please do try it out and give me your feedback.
Also, this release includes a fix for the Unicode paths problem some people were having with Russian versions of Windows. Can somebody who had that problem please try out this version and see if it fixes the issue?
Hmm, after copying the new files accross to my installation directory, I get the following error:
(http://www.shuugouteki.net/paul/Images/AGS_3.2.3_error.gif)
The windows event view threw this at me:
QuoteActivation context generation failed for "C:\Program Files (x86)\Adventure Game Studio\AGS.Native.dll".Error in manifest or policy file "" on line . A component version required by the application conflicts with another component version already active. Conflicting components are:. Component 1: C:\Windows\WinSxS\manifests\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.1_none_e163563597edeada.manifest. Component 2: C:\Program Files (x86)\Adventure Game Studio\Microsoft.VC90.CRT.MANIFEST.
Cheers,
Sparky.
* Editor now automatically converts any old Play Music On Room Load setting into a line of script in the room's Player Enters Screen event
Bill and Ted: TOTALLY AWESOME!!
Also, I get the very same error as subspark and I placed this build in its own folder, so no threat of file contamination. This was with XP.
I can't launch it too :(
(http://www.2dadventure.com/ags/ags_error.png)
Same error as us it seems, abstauber.
Its probably just a file CJ forgot to check in the last minutes of his compile. Hey, it happens!! :P
Sparky.
but but but.... I'm on XP, not on Vista ;D
... oh well - yeah sorry for double posting. I still second the crash :)
Yeah same bug on both OS's. Man this is odd.
Nice interface btw, abstauber!
Sparky.
Oh great, looks like Windows Update has installed a newer version of the Visual Studio files on my PC, so the DLL's I was including don't work any more.
Ok, I've uploaded a beta 3a which is rebuilt and should now work. Please let me know if this isn't the case (since it all works anyway on my machine!!).
One thing that really stands out to me about the new audio stuff going on in the editor is that you can only ever have one "Audio" tab open and it updates to show the last selected type or folder. This is completely opposite to everything else (GUIs, Characters, Scripts, etc.) which opens in its own tab.
Perhaps the audio doesn't have as much to be modified in the editor, but it did strike me as unusual that the audio system is the only thing that takes this approach on the tabs.
I just noticed that when you select the D3D9 graphic drivers and also set the runtime from retail to debug in your directx9 control panel (also select the most debug info you can get, ie. slider all the way to the right), AGS always crashes with this error:
---------------------------
Adventure Game Studio
---------------------------
An internal error has occurred. Please note down the following information.
If the problem persists, post the details on the AGS Technical Forum.
(ACI version 3.20.1083)
Error: Unable to lock texture
---------------------------
OK
---------------------------
This should definitely be fixed, I think!
Please permit this particularly gratitudinal post, which is especially praisetacular for the following update:
Quote from: Pumaman on Sun 03/05/2009 15:34:47
* Fixed "Internal compiler error: table overflow" if there were a lot of imported functions/variables
What speed! What precise efficiency! CJ, you're such a giver. You have my profound and numerous thanks - this little hiccup was ruining my life. (Also, my GF says thanks, because I was being a furious grouch while dealing with tabular overflowery).
Dang, some real fine games will be made with this thing. Ain't nothing can stop us, now!
I'm not sure if it's specifically related, but I was using this beta when it happened so I'll post here.
I was taking a look at implementing some functions into my Stack module (perhaps a separate module) for supporting multidimensional array functionality. I now am getting the following run-time crash:
Quote---------------------------
Illegal exception
---------------------------
An exception 0xC0000005 occurred in ACWIN.EXE at EIP = 0x0048FA91 ; program pointer is -42, ACI version 3.20.1085, gtags (2039,18)
AGS cannot continue, this exception was fatal. Please note down the numbers above, remember what you were doing at the time and post the details on the AGS Technical Forum.
in "Stack.asc", line 263
from "Array.asc", line 27
from "Array.asc", line 67
Most versions of Windows allow you to press Ctrl+C now to copy this entire message to the clipboard for easy reporting.
An error file CrashInfo.dmp has been created. You may be asked to upload this file when reporting this problem on the AGS Forums. (code 0)
---------------------------
OK
---------------------------
The CrashInfo file can be found here (http://monkey.05.06.googlepages.com/CrashInfo.3.20.1085.rar).
The line specifically it references as causing the crash is this:
return StackData.Format("%s%s%d,%d,%s%s", type, stamp, this.ItemCount, this.PopType, data, stamp);
StackData is #define-d as
String. If needed I can post the full function(s).
Quote from: monkey_05_06 on Wed 05/08/2009 23:56:08
One thing that really stands out to me about the new audio stuff going on in the editor is that you can only ever have one "Audio" tab open and it updates to show the last selected type or folder. This is completely opposite to everything else (GUIs, Characters, Scripts, etc.) which opens in its own tab.
Yeah, originally I had it opening new tabs but during my testing I was getting annoyed with all the tabs all over the place, and I thought you guys would probably get annoyed with it too. This new behaviour of the audio pane is something that has been requested for Views and Dialogs in the past, so maybe this should become a Preferences option...
QuoteI just noticed that when you select the D3D9 graphic drivers and also set the runtime from retail to debug in your directx9 control panel (also select the most debug info you can get, ie. slider all the way to the right), AGS always crashes with this error:
Error: Unable to lock texture
This should definitely be fixed, I think!
That error happens if AGS can't lock one of the textures. It can't really be "fixed" in AGS since AGS needs to lock the texture in order to work. Therefore, this looks like a D3D problem if you change those settings. Do you also get errors in other D3D games if you change those settings?
QuoteWhat speed! What precise efficiency! CJ, you're such a giver. You have my profound and numerous thanks - this little hiccup was ruining my life. (Also, my GF says thanks, because I was being a furious grouch while dealing with tabular overflowery).
Hehe, enjoy!
QuoteAn exception 0xC0000005 occurred in ACWIN.EXE at EIP = 0x0048FA91 ; program pointer is -42, ACI version 3.20.1085, gtags (2039,18)
return StackData.Format("%s%s%d,%d,%s%s", type, stamp, this.ItemCount, this.PopType, data, stamp);
Are you sure that "type", "stamp" and "data" are all String variables?
Yes I'm sure:
StackData type = StackData.Format(StackDataFormat, eStackDataStack);
StackData key = this.BuildKey();
StackData stamp = StackData.Format(StackDataCopyFormat, key);
StackData data = this.Data;
if (data == null) data = "";
As I mentioned StackData is String (#defined). StackDataCopyFormat is a String, Stack.BuildKey returns StackData. And no, there's no real reason why internally I'm typing StackData as opposed to just typing String.
Stack.ItemCount is an int, Stack.PopType is an enum, and Stack.Data is StackData (String).
The thing that's bothering me about it is the fact that I'm calling Stack::Copy (the function it's crashing in) several times before it crashes there. I did realize that I am being a bit daft in the way I'm initializing the arrays.
If you haven't looked at the module (I'll assume you haven't) then I'm just storing all the data in a single String (for the vectorization capabilities). I also allow for entire Stack objects to be converted to StackData so it can be pushed onto another Stack (that's what Stack::Copy is for). To try and make sure I preserve the integrity of the data when you have multiple stacks pushed into a single object I assign them a key. That's what Stack.BuildKey does, it returns a 128-bit randomized key.
The point at which I'm being daft initializing the (multidimensional) arrays is that I'm copying these "unique" keys multiple times into the same Stack...which could potentially cause issues trying to recover the data.
However I don't see how it would be related to this crash as Stack::Copy doesn't attempt to do anything with the existing data except pre-pend some markers to the front of it.
Ok, well from the crash dump I can see where it crashed but not why, so would you be able to upload a game that demonstrates the problem?
Sure thing Chris...and here it is (http://monkey.05.06.googlepages.com/Stack_CRASH.rar).
All you need to do to get the crash is run it.
This was still in very preliminary stages so there was a lot of conceptual things and debugging going on. I'm doing a lot of things the wrong way (as far as the way the module stores the data) as I noticed, but I can't see how it would cause the error that it is.
Thanks for looking into it Chris.
One last thing that might be related, in trying to verify the structure of the data I exported a raw file which shows that the length of the String would have been 3092 bytes prior to calling Stack::Copy.
Given these definitions:
StackDataFormat = "**STACKDATA:%c**";
StackDataCopyFormat = "**STACKDATA STACK:%s**";
StackDataFormat results in a 15 byte String. The "%s" is replaced by Stack.BuildKey (128-bit = 16 bytes) so that's an additional 36 bytes (twice). At the time of crash this.ItemCount is 3 and this.PopType is 0. That's gives a total 91 bytes in addition to the existing 3092 for a resulting formatted String length (where it crashes at) of 3183 bytes. If that's relevant.
Ah ... while Strings themselves have no length limit, various internal AGS functions assume a maximum length of 2500 chars, and String.Format is one of them.
I'll see if I can improve this, but in the meantime the best thing to do is use String.Append when you're creating very long strings like this, which doesn't have any length limits.
Interesting...so it would be safe to use String.Format to create the flags with the variable values, but then I should use String.Append to put it all together...got it!
Thanks for the info Chris.
Ok, beta 4 is now up. This includes a couple of things that people have been asking for for a while, so I'd appreciate any feedback on whether everything works as expected.
Quote from: Pumaman on Sun 03/05/2009 15:34:47* The generated EXE version information is now set to your Game Name and Developer Name instead of "Adventure Game Studio" and "Chris Jones"
But Chris...wasn't this the only indication (unless the author discloses the information) that the game was made with AGS? :o
Quote from: Pumaman on Sun 03/05/2009 15:34:47* Improved graphics mode detection so that the screen doesn't keep flickering when trying to start up a low-res game full screen
Cool beans. Never bothered me too much but still cool that you "fixed" it.
Quote from: Pumaman on Sun 03/05/2009 15:34:47* Fixed String.Format to give error instead of crash if you try to format a string longer than 3000 chars
Does this mean the limit was increased to 3000 characters for String.Format? Either way I understand that to build it longer I can use String.Append, just want to clarify has that internal limit been moved up?
I sat out on the beta until now... and now I see you're using IrrKlang! There's now offically GERMAN stuff in AGS- and everyone knows that this makes it immune to gremlin attacks!
;D
[edit]
Imported two WIPs without anything really going wrong. I've yet to try out the whole audio system advantages though.
Quote from: monkey_05_06 on Sun 09/08/2009 01:45:25
But Chris...wasn't this the only indication (unless the author discloses the information) that the game was made with AGS? :o
Not really -- if you right-click on the EXE and do Properties, you'll still find a couple of things telling you it was made with AGS.
Originally when AGS was written, Windows 98 and 2000 didn't display the version info in the main explorer window so it was fine, but since XP came along and started showing the Company Name and Program Name in explorer, it has looked a bit silly having all AGS games claim to be made by me.
I've been meaning to fix it for a long time but only now finally had some time to do it.
QuoteDoes this mean the limit was increased to 3000 characters for String.Format? Either way I understand that to build it longer I can use String.Append, just want to clarify has that internal limit been moved up?
Correct, I also used this opportunity to increase it to 3000. The only time you'll ever get near that will be if you're using Strings for something non-standard such as data storage, like you're doing :)
QuoteI sat out on the beta until now... and now I see you're using IrrKlang! There's now offically GERMAN stuff in AGS- and everyone knows that this makes it immune to gremlin attacks!
I'm sure that German efficiency will make AGS run twice as fast!!
It would be very nice the possibility of changing Objects/Hotspots name at run-time. :)
I'm sorry to say but the music playback in both of the latest betas is seriously messed up. I imported one of my games from 3.2 beta 2 and the audio playback starts looping constantly at the beginning of songs. I also tried importing the game from 3.1.2 sp 2 into the latest beta and it was even worse -- constant audio looping, songs that would start playing when performing routine actions in the game and fade out again. I'm going to upload the pre-audio revamp copy of my game and send you a link so you can see for yourself.
Thanks for uploading. I imported your game into Beta 4 and ran it, and it seemed fine. The intro played through and then the game started and I didn't hear anything strange.
Can you be more specific about exactly when the problem happens?
Play it until you get the bottle from underneath his bunk (turn on the nightlight first). The music will start looping at the beginning erratically and will turn off and on when you perform actions like turning on/off the light. It's really weird and has only been introduced in the last 2 betas and occurs when songs switch. Also, it might not be obvious to you if you haven't heard the music before that it's repeating, but take my word for it that it is repeating after about 5 seconds of playback. I suppose it's possible that it may not happen every time, but it's happened every time I've run it.
Ah ok, yes I think I hear it now. I'll look into it.
If you disable crossfading (which is now in the Music Audio Type properties) does the problem go away?
Nope :(. The first tune kept repeating over and over during the initial blocking dialog and then kept coming on briefly whenever I performed an action/dialog.
Ah ok, I think I see what has happened. There's a bug with the support for crossfading with old-style PlayMusic commands -- and as the crossfading was updated to the new audio system in beta 3, that explains why it broke at that point.
Please try this engine:
http://www.adventuregamestudio.co.uk/acwin.zip
and let me know if it fixes the problem.
So far that seems to have done the trick!
I tried two times, and for two times it crashed, in two different ways, this is the second one:
Quote
Error: *Tentativo di lettura o scrittura della memoria protetta. Spesso questa condizione indica che altre parti della memoria sono danneggiate.
*Attempt of reading or writing of the protected memory. Often this condition indicates that other parts of the memory are damaged.
Version: AGS 3.2.0.93
System.AccessViolationException: **Tentativo di lettura o scrittura della memoria protetta. Spesso questa condizione indica che altre parti della memoria sono danneggiate.
**Attempt of reading or writing of the protected memory. Often this condition indicates that other parts of the memory are damaged.
in cmpString(Void* a1, Void* a2)
in qsort(Void* , UInt32 , UInt32 , IntPtr )
in WordList.InList(WordList* , SByte* s)
in ?A0x4d1fa0f1.ColouriseCppDoc(UInt32 startPos, Int32 length, Int32 initStyle, WordList** keywordlists, Accessor* styler, Boolean caseSensitive)
in ?A0x4d1fa0f1.ColouriseCppDocSensitive(UInt32 startPos, Int32 length, Int32 initStyle, WordList** keywordlists, Accessor* styler)
in LexerModule.Lex(LexerModule* , UInt32 startPos, Int32 lengthDoc, Int32 initStyle, WordList** keywordlists, Accessor* styler)
in ScintillaBase.Colourise(ScintillaBase* , Int32 start, Int32 end)
in ScintillaBase.NotifyStyleToNeeded(ScintillaBase* , Int32 endStyleNeeded)
in Editor.NotifyStyleNeeded(Editor* , Document* doc, Void* userData, Int32 endPos)
in Document.EnsureStyledTo(Document* , Int32 pos)
in Editor.Paint(Editor* , Surface* surfaceWindow, PRectangle rcArea)
in ScintillaWin.WndPaint(ScintillaWin* , UInt32 wParam)
in ScintillaWin.WndProc(ScintillaWin* , UInt32 iMessage, UInt32 wParam, Int32 lParam)
in ScintillaWin.SWndProc(HWND__* hWnd, UInt32 iMessage, UInt32 wParam, Int32 lParam)
in System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
in System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
in System.Windows.Forms.Control.DefWndProc(Message& m)
in System.Windows.Forms.Control.WndProc(Message& m)
in Scintilla.ScintillaControl.WndProc(Message& m)
in System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
in System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
I'm on Vista, game in 32bit color, 1024x768, I imported only 1 BG and 1 OGG, the first time it crashed running the game, I edited everything again from THE start, deleting everything, and it crashed while I was editing a simple Wait (100); :D
Quote from: Pumaman on Sun 03/05/2009 15:34:47
* Fixed light levels >100% not working with Direct3D driver
SWEET thanks Ceej, you're the best. :D
Quote from: MD on Thu 13/08/2009 02:02:26
I tried two times, and for two times it crashed, in two different ways, this is the second one:
*Attempt of reading or writing of the protected memory. Often this condition indicates that other parts of the memory are damaged.
Version: AGS 3.2.0.93
I'm on Vista, game in 32bit color, 1024x768, I imported only 1 BG and 1 OGG, the first time it crashed running the game, I edited everything again from THE start, deleting everything, and it crashed while I was editing a simple Wait (100); :D
Do you also get these problems with 3.1.2 SP1 or is it only the latest beta that does it? That's a crash in the script editor which I haven't changed in 3.2, so there's no reason why there should be any new bugs there.
Quote from: Pumaman on Sat 15/08/2009 14:24:58
Quote from: MD on Thu 13/08/2009 02:02:26
I tried two times, and for two times it crashed, in two different ways, this is the second one:
*Attempt of reading or writing of the protected memory. Often this condition indicates that other parts of the memory are damaged.
Version: AGS 3.2.0.93
I'm on Vista, game in 32bit color, 1024x768, I imported only 1 BG and 1 OGG, the first time it crashed running the game, I edited everything again from THE start, deleting everything, and it crashed while I was editing a simple Wait (100); :D
Do you also get these problems with 3.1.2 SP1 or is it only the latest beta that does it? That's a crash in the script editor which I haven't changed in 3.2, so there's no reason why there should be any new bugs there.
I made a game with the 3.1.2 without problems. The differences are in the first game [jpg & mp3 16bit color] in this last [tif and ogg 32 bit color].. I added only 1 tif and 1 ogg and everytime something went wrong.
Has anyone else had any crashes like this with the beta?
I've not tried the new beta yet, but I think I've got a bug with 3.1.2 and it seems rather small to make a new thread for.
If you try and assign too long a string to a button's text property AGS will crash with "SetButtonText: Text too long, button has 50 chars max" error. However it looks like the actual limit is 49 characters.
Example:
MoneyLbl.Text = "1234567890123456789012345678901234567890123456789";
works, but
MoneyLbl.Text = "12345678901234567890123456789012345678901234567890";
does not.
Just found out AGS has (to some extent at least) error reporting. Nice job at that. You'll get something about me trying to use a renamed file in place of a valid icon. ::)
I know you've said before it has to be an actual icon but I was being lazy. Anyway, if you create a template with an invalid ICO file the editor crashes (at least when you try to load it directly, i.e. for testing the template). Probably not something you'd have to worry about too much...most people could probably figure out what was going on. :D
I consider the version to be perfect, but there's one problem. My game is on 640x480 resolution, and if I want to change the background, I can't do it properly without the following steps and all the hotspots/walkable areas/regions get delete anyway.
It says it requires a 640x400 bg, but even if I import a 640x400 it says it's not 640x400.
Now most importantly to import a background so it CAN work and not show weird, I have to change the resolution to 640x400, not resize the guis, import bg, revert to 640x480, not resize the guis again, and tada, no walkable areas, no hotspots.
The only other way, is to use draw surface, but how can I see where I'm supposed to draw the walkable areas.
I have a version indicating this problem, so contact me via pm if you need it. This happens in 3.1.2 and on this beta too. I came to notice it now though.
I found a 'bug' in AGS 3.1.2
When I tried to make a voice acting script I got a blank txt file, well, not totally blank, it had one line, this one:
"*** All text lines, in order of appearance in the scripts ***"
And my game has many dialogs and text...
You need to number the lines first.
To be more precise, there's a menu option in ags to auto-number speech lines for you, Joe. I will warn you to wait as long as possible before doing it because it does not work well with numbering lines then adding/subtracting lines and re-numbering. Try to get the game as finished as possible first. If the auto-numbering system always continued from the last speech number it wouldn't be an issue, but since it starts from the beginning each time you can have some issues.
Ok thanks very much Dualnames and ProgZmax
Joe Carl: Also, don't be afraid if you happen to use custom "Say" functions; auto-numbering works properly on those, too.
QuoteIf you try and assign too long a string to a button's text property AGS will crash with "SetButtonText: Text too long, button has 50 chars max" error. However it looks like the actual limit is 49 characters.
Hehe well spotted, I might fix this one :D
QuoteYou'll get something about me trying to use a renamed file in place of a valid icon.
I know you've said before it has to be an actual icon but I was being lazy. Anyway, if you create a template with an invalid ICO file the editor crashes (at least when you try to load it directly, i.e. for testing the template).
Interesting point, I suppose that is something that people might do so it probably should handle it better.
QuoteMy game is on 640x480 resolution, and if I want to change the background, I can't do it properly without the following steps and all the hotspots/walkable areas/regions get delete anyway.
What do you mean exactly? Is your game set to 640x480 in General Settings but you can't import a 640x480 background?
QuoteChanges in 3.2 beta 4:
* Added option to automatically add side borders when running 4:3 games on widescreen monitors
Great news...might not seem like a big thing to some, but to me this is good good news! :)
Quote from: general_knox on Tue 01/09/2009 01:41:18
QuoteChanges in 3.2 beta 4:
* Added option to automatically add side borders when running 4:3 games on widescreen monitors
Great news...might not seem like a big thing to some, but to me this is good good news! :)
These are definitely great news. I hate how everything's stretched on the laptop.
QuoteThese are definitely great news. I hate how everything's stretched on the laptop.
Yeah, totally agree...Man I love AGS...Tried Wintermute and Visionnaire...this is the best! Plus, people are really nice here :)
Quote from: Pumaman on Mon 31/08/2009 19:30:42
What do you mean exactly? Is your game set to 640x480 in General Settings but you can't import a 640x480 background?
Exactly..
I've found a rather odd bug in 3.1.2 that appears to exist in the latest beta as well. If you set the baseline of a character all seems to work fine in DDraw, but in D3D mode it appears to ignore custom character baselines altogether. I tested this rather quickly by placing a character above the player and setting the character's baseline to 2. In DDraw mode he appeared correctly behind the player, in D3D he appears in front every time.
QuoteHas anyone else had any crashes like this with the beta?
I do: AGS 3.2 beta 4. No probs in 3.1 SP2 so far.
Error: Es wurde versucht,I'm geschützten Speicher zu lesen oder zu schreiben.
Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.
Version: AGS 3.2.0.93
System.AccessViolationException: Es wurde versucht,I'm geschützten Speicher zu lesen oder zu schreiben.
Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist. ---> System.AccessViolationException:
Es wurde versucht,I'm geschützten Speicher zu lesen oder zu schreiben.
Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.
bei ccCompileText(SByte* , SByte* )
bei AGS.Native.NativeMethods.CompileScript(Script script, String[] preProcessedScripts, Game game, Boolean isRoomScript)
bei AGS.Editor.NativeProxy.CompileScript(Script script, String[] preProcessedData, Game game, Boolean isRoomScript)
bei AGS.Editor.AGSEditor.CompileScript(Script script, List`1 headers, CompileMessages errors, Boolean isRoomScript)
bei AGS.Editor.AGSEditor.CompileScripts(Object parameter)
bei AGS.Editor.BusyDialog.RunHandlerOnThread()
--- Ende der internen Ausnahmestapelüberwachung ---
bei AGS.Editor.BusyDialog.Show(String message, ProcessingHandler handler, Object parameter)
bei AGS.Editor.AGSEditor.CompileGame(Boolean forceRebuild, Boolean createMiniExeForDebug)
bei AGS.Editor.Components.BuildCommandsComponent.CompileGame(Boolean forceRebuild)
bei AGS.Editor.Components.BuildCommandsComponent.CommandClick(String controlID)
bei AGS.Editor.ToolBarManager.ToolbarEventHandler(Object sender, EventArgs e)
bei System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
bei System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
bei System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
bei System.Windows.Forms.ToolStrip.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
edit:
I also get this error in the Output Window of the editor:
Unexpected error: Der Prozess kann nicht auf die Datei "D:\Eigene Dateien\AGS\shatten\game28.dta" zugreifen,
da sie von einem anderen Prozess verwendet wird.
Roughly translated: The process can't access the file, because it's in use by another process.
When I try to quit after that error, I get:
Error: Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben.
Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.
Version: AGS 3.2.0.93
System.AccessViolationException: Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben.
Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.
bei ccFreeScript(ccScript* )
bei AGS.Native.CompiledScript.!CompiledScript()
bei AGS.Native.CompiledScript.Dispose(Boolean )
bei AGS.Native.CompiledScript.Finalize()
Speaking of baselines, I recently noticed that the following code doesn't seem to work:
cCharA.Baseline=cCharB.Baseline+1;
Additionally, if you call the -registergame parameter on your game's .exe file in order to make double-click loading of save-games possible, there seems to be a crash when restarting the game.
For example, load the game's .exe, save a game, and then quit. Go to the game directory and double-click on the recent save-game file to quickload it (this seems to bypass the creation of the restart point save-game file--especially if you placed SetRestartPoint in the game_start function or in your title screen).
Click your game's "restart" button, or trigger any other place where RestartGame(); is called, and the game will crash out with:
QuoteError: unable to restart game (error:File not found)
These likely aren't exclusive to 3.2 and probably existed in previous versions of AGS too.
Quote from: AGD2 on Thu 03/09/2009 15:05:03
Speaking of baselines, I recently noticed that the following code doesn't seem to work:
cCharA.Baseline=cCharB.Baseline+1;
Isn't it because you actually want to set
cCharA.Baseline=cCharB.y+1;
?
Unless you've specifically have set CharB's baseline, his Baseline property will be 0.
I was just wondering if the character Baseline property was working as intended. If a character's baseline is 0 (which doesn't actually represent 0 in this case, but the character's current y-pos instead), would it make sense to set the baseline relative to that character's y-pos instead?
But yes, as you mentioned, manually setting a baseline relative to that character's y-pos also has the same result. So, either way, it's no big deal.
--EDIT--
Something else I noticed is that if you put code in the game_start function like:
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.
Any chance that the test game feature could automatically check inside the "Compiled" folder for the existence of said files first, rather than the "_Debug" folder?
Spotted another tiny inconsistency, again with AGS 3.1.2 SP1 (I can't see any record of it in the change log for 3.2). The Speech style section of the Game Options manual entry references "QFG4-style speech", but this has been renamed to WholeScreen in the General Settings.
I'm sure you want to know :=.
QuoteIs your game set to 640x480 in General Settings but you can't import a 640x480 background?
Exactly..
Can you upload an example of the problem? I can't reproduce any problems with this.
Quote
I've found a rather odd bug in 3.1.2 that appears to exist in the latest beta as well. If you set the baseline of a character all seems to work fine in DDraw, but in D3D mode it appears to ignore custom character baselines altogether. I tested this rather quickly by placing a character above the player and setting the character's baseline to 2. In DDraw mode he appeared correctly behind the player, in D3D he appears in front every time.
I just tried this and the problem only seems to happen if the character has IgnoreWalkbehinds set. I'll look into it.
QuoteI do: AGS 3.2 beta 4
System.AccessViolationException: Es wurde versucht,I'm geschützten Speicher zu lesen oder zu schreiben.
Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist
Did you just get this error once, or have you had it multiple times? Had you made any changes to the script just before it happened?
Guys, if you have any crashes PLEASE use the Send Error Report button. I haven't received any error reports from the beta in the last 3 weeks so I was assuming that nobody had had any problems with it.
QuoteSpeaking of baselines, I recently noticed that the following code doesn't seem to work:
cCharA.Baseline=cCharB.Baseline+1;
As GarageGothic says, this is correct if CharB has no explicit baseline set. Perhaps the Baseline property should return the Y co-ordinate if it is working with automatic baselines, but since the manual states that it will return 0 in this case, I think it should continue to do so.
QuoteAdditionally, if you call the -registergame parameter on your game's .exe file in order to make double-click loading of save-games possible, there seems to be a crash when restarting the game.
Hmm, well spotted. The quick-restore feature does bypass the game startup, so the restart point is never created. I'm not sure how to fix this, I'll have a think.
Quoteif(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.
Thanks, i'll look into this.
QuoteSpotted another tiny inconsistency, again with AGS 3.1.2 SP1 (I can't see any record of it in the change log for 3.2). The Speech style section of the Game Options manual entry references "QFG4-style speech", but this has been renamed to WholeScreen in the General Settings.
Hehe well spotted, i'll correct that.
QuoteI just tried this and the problem only seems to happen if the character has IgnoreWalkbehinds set. I'll look into it.
Really? Well spotted, old bean! 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.
Quote
Did you just get this error once, or have you had it multiple times? Had you made any changes to the script just before it happened?
It 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).
It also happens a lot after I change a room script without opening the room - but in the end, opening the room and editing the script later hasn't helped either.
Saving for example works all the time, but after hitting compile often makes the editor crash. When I then restart AGS, compiling works fine again.
Quote
Guys, if you have any crashes PLEASE use the Send Error Report button. I haven't received any error reports from the beta in the last 3 weeks so I was assuming that nobody had had any problems with it.
'will do in the future :)
Or better: I start up beta4 and crash it some more times :D
CJ I've taken the liberty to send you a pm, due to I' rather not have anyone to claim a copy of HHGTG( ;D).
hmm... send error doesn't seem to work either...
(http://shatten.sonores.de/wp-content/uploads/2009/09/send_error_crash.png)
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
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?
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
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.
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.
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 ;\.
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.
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...
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:
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.
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!
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.
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.
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?
Even if I set the resolution to 640x400 , i still can't import a background.
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
value1 = value2 & 0xFFFF
and not
value1 = value2 & 0x65535
I guess you meant
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
value1 = value2 & func("FFFF")
Quote from: Gord10 on Wed 16/09/2009 19:22:18
I guess you meant
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
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.
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.
QuoteFirst Michael Jackson, now Patrick Swayze... who will it be next?!?
Die now and get next AGS 3.2 beta named in your memory
I predict AGS 5.0 Beta will be the "TerranRich" Edition.
That sounded more morbid than I intended. :P
Quote from: TerranRich on Thu 17/09/2009 05:26:46
I predict AGS 5.0 Beta will be the "TerranRich" Edition.
That sounded more morbid than I intended. :P
It's morbid enough. Thanks for the insight Pumaman!(CJ)
Quote from: Pumaman on Sun 03/05/2009 15:34:47* Fixed Game.SpriteWidth/SpriteHeight returning the size of the blue cup instead of 0 if you supplied an invalid sprite number
* Fixed editor crash if you tried to use a non-icon file as TEMPLATE.ICO
Excellent. Glad to see my concerns were swiftly dealt with. :)
This might sound like a whim. But it would be nice if you had an option to compile the sprite file out of the game exe in order not to create big-size exe files. And another option in general settings to set the savegame directory in the game folder.
Enable the "split resource files" option in General SEttings, and the sprite file will not be compiled into the EXE.
I will not be adding an option to set a save game folder inside the game folder because of issues with permissions on Vista if you do this -- this has been discussed at length here before.
I see. But why when I use the SetSaveGameDirectory("Save") function my game still creates the 'My saved game folder'?
At first it really bothered me, anyway I'm getting used to it... so never mind.
It does that for the same reason CJ said. Vista permission issues. However (as has been discussed before) you can use the directory path such as Game.SetSaveGameDirectory("./Saves"); which will create the Saves folder within the game directory. Note that if you do this then any user on Vista must install the game itself to a writable directory such as "Documents".
Yeah I knew about this: Game.SetSaveGameDirectory("./Saves");
But never mind I'll make my game to create the folder in My docs
Talking about the Vista permissions. If I create a FILE in the game folder usign a File* pointer would Vista player have any problem?
Unless I'm mistaken File functions always work on the save directory. So as long as the save directory is properly set then there shouldn't be any issues.
Actually I think you might have to use the $SAVEGAMEDIR$ tag. That is:
File *f = File.Open("$SAVEGAMEDIR$/temp.tmp", eFileWrite);
I think. Checking on it.
P.S. Double post??
But I can perfectly use the File functions creating them in the game folder in win xp. So... would vista users have any problems with it?
P.S.
QuoteP.S. Double post??
Why are you asking? It's obvious. Sorry for that
Quote from: Joe Carl on Wed 23/09/2009 22:58:52
Talking about the Vista permissions. If I create a FILE in the game folder usign a File* pointer would Vista player have any problem?
If they installed your game to Program Files, then that would fail and your File.Open call would return null.
Quote from: ProgZmax on Tue 01/09/2009 17:40:38
I've found a rather odd bug in 3.1.2 that appears to exist in the latest beta as well. If you set the baseline of a character all seems to work fine in DDraw, but in D3D mode it appears to ignore custom character baselines altogether. I tested this rather quickly by placing a character above the player and setting the character's baseline to 2. In DDraw mode he appeared correctly behind the player, in D3D he appears in front every time.
This problem with walk-behinds in D3D when "Ignore walkbehinds" is set on the character is proving to be much more difficult to resolve than I thought. I don't really want to release 3.2 until it is fixed, but it's looking less and less likely that I'll be able to find a fix for it, unfortunately...
Anyway, RC 1 is now up. This is as an installer because it includes an updated Demo GAme and a new Template (thanks abstauber!!) If you guys could give it a quick test and make sure everything is working properly, that would be great.
Also, as 3.2 is now getting closer to release time, I'd appreciate any feedback anyone might have on the new audio system, and whether there's anything in it that doesn't work or that is difficult to understand or use.
Quote... and a new Template (thanks abstauber!!)
Yay ;D Thanks for adding!
As for the audiosystem:
I'd love to see a parameter to define the AudioChannel in Audioclip.Play and .PlayQueue. That way PlayQueued also would make a lot more sense to me :)
And I'd like to have an option to change the default volume for audio types by script. Right now, it's a little tricky to do this (like making a slider for music and sound).
But all in all it's great to have the new audio system. Writing audio code and raw drawing code is almost the same and makes a lot more sense. The concepts of the old audio system hasn't been changed since I've been around for the first time ;)
So yes, the new system is way more modern.
I've been meaning to ask this for a while, CJ, and since you just updated winsetup I'll ask it now:
Please can "winsetup.exe" be compiled as "Setup.exe". "winsetup" is so 90's and call me particular but I really grow tired of renaming it manually every few compiles or so. Setup.exe is much more generic.
Even the old Mac OSX Version of AGS compiles as winsetup. Mismatch much? :P
Cheers,
Sparky.
Not if the DOS engine somehow manages to come back. :=
This is really minor though, as you really shouldn't be renaming the file a thousand times. You only need this when the game is ready to go and is packaged for distribution. :P
I think a more important (but not urgent) feature is to able to have the name of the game's executable set in the editor, so it does not need to be identical to the folder's name. Since winsetup.exe won't work when you rename the game's .exe manually, this eliminates the troubles that at least 30% (according to non-exhausive, unconvincing research) of the games would come with a non-working version of the set-up launcher.
Quote from: Gilbet V7000a on Mon 05/10/2009 10:31:35
I think a more important (but not urgent) feature is to able to have the name of the game's executable set in the editor, so it does not need to be identical to the folder's name.
I second that, only should add "and can be changed in any time" ;D
It certainly would be ideal to be able to set names for both the game and setup exe from game settings in the editor itself. So i am inclined to agree.
I think that the main reason behind this behavior was probably due to the days of the DOS engine in which the file names had length restrictions. Although it's not high priority I can see how the request to set the EXE name independently of the project folder name could be useful.
QuoteI'd love to see a parameter to define the AudioChannel in Audioclip.Play and .PlayQueue. That way PlayQueued also would make a lot more sense to me
Fair point. PlayQueued is currently based on audio types and so is only really useful with clips that have an audio type that allows 1 simultaneous channel.
QuoteAnd I'd like to have an option to change the default volume for audio types by script. Right now, it's a little tricky to do this (like making a slider for music and sound).
Ah yes, I remember you mentioning this before. I'll look into it.
QuotePlease can "winsetup.exe" be compiled as "Setup.exe". "winsetup" is so 90's and call me particular but I really grow tired of renaming it manually every few compiles or so. Setup.exe is much more generic.
It was originally called "setup.exe", but people got confused and thought that it was an installer program -- hence the "winsetup.exe" name to distinguish it as Not An Installer.
However, there's no reason why this and the game EXE name shouldn't be customizable in the editor settings -- it's something I need to add at some point.
Most appreciated Chris. I'll probably name mine "Config.exe" as opposed to anything else. :)
Cheers,
Sparky.
I was working on objects (Hitler version - Windows Vista, .tif img) and happened this:
Error: Tentativo di lettura o scrittura della memoria protetta. Spesso questa condizione indica che altre parti della memoria sono danneggiate.
Version: AGS 3.2.0.95
System.AccessViolationException: Tentativo di lettura o scrittura della memoria protetta. Spesso questa condizione indica che altre parti della memoria sono danneggiate.
in load_room_file(SByte* )
in load_crm_file(UnloadedRoom roomToLoad)
in AGS.Native.NativeMethods.LoadRoomFile(UnloadedRoom roomToLoad)
in AGS.Editor.Components.RoomsComponent.LoadNewRoomIntoMemory(UnloadedRoom newRoom, CompileMessages errors)
in AGS.Editor.Components.RoomsComponent.RecompileAnyRoomsWhereTheScriptHasChanged(CompileMessages errors, Boolean rebuildAll)
in AGS.Editor.Components.RoomsComponent.AGSEditor_PreCompileGame(PreCompileGameEventArgs evArgs)
in AGS.Editor.AGSEditor.PreCompileGameHandler.Invoke(PreCompileGameEventArgs evArgs)
in AGS.Editor.AGSEditor.CompileGame(Boolean forceRebuild, Boolean createMiniExeForDebug)
in AGS.Editor.Components.BuildCommandsComponent.TestGame(Boolean withDebugger)
in AGS.Editor.Components.BuildCommandsComponent.CommandClick(String controlID)
in AGS.Editor.ToolBarManager.ToolbarEventHandler(Object sender, EventArgs e)
in System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
in System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
in System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
in System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
in System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
in System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
in System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
in System.Windows.Forms.Control.WndProc(Message& m)
in System.Windows.Forms.ScrollableControl.WndProc(Message& m)
in System.Windows.Forms.ToolStrip.WndProc(Message& m)
in System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
in System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Quote from: Pumaman on Sun 03/05/2009 15:34:47
Now that it turns out that Hitler's skull wasn't actually his (http://news.bbc.co.uk/1/hi/8281839.stm)
They didn't even consider the obvious... Hitler was female :o
[EDIT] Errr, hooray for release candidates!
There seems to be a bug in the new sound logic somewhere. It was happening in the most recent beta, and it's happening in RC1 as well.
When I play the same sound repeatedly, very fast, the sound is replaced by sounds that were previously playing.
An example: I have a caption that types itself on the bottom of the screen when you enter some rooms. It plays a beep sound every time a letter is printed. In 3.2, when I enter a room, it seems to repeatedly play the player's footstep sound as well as the beeps.
It works fine in 3.1. I'm using the old PlaySound(...) functions. I can upload a build if you need it.
The new sound system is really great btw. Don't need my dodgy prioritised sound functions anymore. I wish I hadn't just finished all the sound work for my game though :)
Quote from: MD on Tue 06/10/2009 11:05:58
I was working on objects (Hitler version - Windows Vista, .tif img) and happened this:
Do you remember exactly what you did just before this happened? If you load the same room again, does the problem happen again?
QuoteThere seems to be a bug in the new sound logic somewhere. It was happening in the most recent beta, and it's happening in RC1 as well.
When I play the same sound repeatedly, very fast, the sound is replaced by sounds that were previously playing.
If you could upload a build, that would be helpful please -- it's probably a combination of factors that might be hard to replicate separately.
Quote from: Pumaman on Tue 06/10/2009 19:29:19
Quote from: MD on Tue 06/10/2009 11:05:58
I was working on objects (Hitler version - Windows Vista, .tif img) and happened this:
Do you remember exactly what you did just before this happened? If you load the same room again, does the problem happen again?
I added an object, pressed play. AGS started to save the room and then the crash :)
Fortunately nothing happened to my files.
Ok, I've PM'd you the link
Sorry to go and spoil it all, but..eh..found a bug, and it seems it goes a long way.
We all know that to have a character's talking view portrait appear on SierraWithBackground, the character must be in the same room, otherwise only the text window will appear. Now if you use DisplayTopBar function and then use a Character.Say for the first Character.Say played after DisplayTopBar it will have the TopBar in it, the second will have no problem, I found a workaround but still the bug remains and it should if possible be fixed.
Do this:
SetSpeechStyle(eSierraWithBackground);
//make sure char ego is in the player;ers room. And that he has a talking view.
DisplayTopBar(....);
cEgo.Say("Hey");
cEgo.Say("Hey2");//this line will appear normally.
Great !!! "Abstauber's LEC-style" template
It will be possible to make another templates as Runaway, Sam & Max, LOOM and Monkey Island 3 ?
Quote from: mikosworld on Sat 10/10/2009 00:23:44Monkey Island 3 ?
The default Verb Coin template is pretty much what you're looking for here :)
I don't like "The default Verb Coin template" :(
Functionally, it is identical to the 'Monkey Island 3' (Curse of Monkey Island) verb coin.
You can change the graphics yourself if you wish.
Quote from: Ben304 on Wed 14/10/2009 01:26:11You can change the graphics yourself if you wish.
Not to mention that it is highly encouraged to change the graphics to fit the style and theme of your own game. The original graphics are 'merely' intended as place-holders to help developers test the template in their game before they personalize it.
Plus, by not using the original Monkey Island 3 graphics, neither Electroshokker nor Chris are likely to be send a nice letter from LucasArts's lawyers telling them to stop copyright infringement; and the current graphics are free to use.
QuoteI added an object, pressed play. AGS started to save the room and then the crash
Fortunately nothing happened to my files.
Hmm, strange. Let me know if it happens again.
QuoteOk, I've PM'd you the link
Thanks, I'll look into it.
QuoteWe all know that to have a character's talking view portrait appear on SierraWithBackground, the character must be in the same room, otherwise only the text window will appear. Now if you use DisplayTopBar function and then use a Character.Say for the first Character.Say played after DisplayTopBar it will have the TopBar in it, the second will have no problem, I found a workaround but still the bug remains and it should if possible be fixed.
Strange, I'll see if I can reproduce this.
Pumaman, it'll be possible in "Inventory Items", to add "Mouse Over image" feature in "Apparence" section.
Because, I've create 2 states icons for my inventory items (normal image icon and over image icon with light red outline).
I would like this feature, to show my mouse over item when I'm overlapping it with hotspot/regions ...
Thanks
QuoteWhen I play the same sound repeatedly, very fast, the sound is replaced by sounds that were previously playing.
An example: I have a caption that types itself on the bottom of the screen when you enter some rooms. It plays a beep sound every time a letter is printed. In 3.2, when I enter a room, it seems to repeatedly play the player's footstep sound as well as the beeps.
Thanks for posting your game. I tried it out, but when entering the room to the south I only heard the typing-beeps and not any footstep sounds. Does the problem happen regularly for you?
Quote from: Dualnames on Thu 08/10/2009 08:33:10
We all know that to have a character's talking view portrait appear on SierraWithBackground, the character must be in the same room, otherwise only the text window will appear. Now if you use DisplayTopBar function and then use a Character.Say for the first Character.Say played after DisplayTopBar it will have the TopBar in it, the second will have no problem, I found a workaround but still the bug remains and it should if possible be fixed.
SetSpeechStyle(eSierraWithBackground);
//make sure char ego is in the player;ers room. And that he has a talking view.
DisplayTopBar(....);
cEgo.Say("Hey");
cEgo.Say("Hey2");//this line will appear normally.
I can't reproduce this, it seems to work fine for me. Can you post an example of the problem?
QuotePumaman, it'll be possible in "Inventory Items", to add "Mouse Over image" feature in "Apparence" section.
Because, I've create 2 states icons for my inventory items (normal image icon and over image icon with light red outline).
This thread is not the right place for feature requests, please post them in the Wishlist thread. It is of course possible to work around this with scripting.
Quote from: Dualnames on Thu 08/10/2009 08:33:10
We all know that to have a character's talking view portrait appear on SierraWithBackground, the character must be in the same room, otherwise only the text window will appear. Now if you use DisplayTopBar function and then use a Character.Say for the first Character.Say played after DisplayTopBar it will have the TopBar in it, the second will have no problem, I found a workaround but still the bug remains and it should if possible be fixed.
SetSpeechStyle(eSierraWithBackground);
//make sure char ego is in the player;ers room. And that he has a talking view.
DisplayTopBar(....);
cEgo.Say("Hey");
cEgo.Say("Hey2");//this line will appear normally.
I've given you the files of the game before, if you have them,you can test it there. Just place the code above when pressing Space for example. Forgot to say the Speech when the game starts (on the general settings pnae)is LucasArts. And ego here shouldn't be the playable character but instead an NPC.
Quote from: Dualnames on Fri 16/10/2009 16:51:17
I've given you the files of the game before, if you have them,you can test it there. Just place the code above when pressing Space for example. Forgot to say the Speech when the game starts (on the general settings pnae)is LucasArts. And ego here shouldn't be the playable character but instead an NPC.
I tried pasting that code into HHGTG and it worked fine. Are you sure that's the exact script code that you're using?
Hi,
I had problems opening a template created with 3.0.2 SP1 with the new BETA (3.2 RC1)
The templates delivered with this Version seems to work.
The error is:
---------------------------
Adventure Game Studio
---------------------------
There was an error creating your game. The error was: Unable to extract template files.
Error details: AGS.Types.AGSEditorException: Unable to extract template files.
at AGS.Native.NativeMethods.ExtractTemplateFiles(String templateFileName)
at AGS.Editor.Tasks.CreateNewGameFromTemplate(String templateFileName, String newGameDirectory)
at AGS.Editor.GUIController.CreateNewGame(String newGameDirectory, String newGameName, GameTemplate createFromTemplate)
---------------------------
OK
---------------------------
Is this a problem with the templates or with the RC1?
Well spotted, thanks, that seems to happen if the template is from a previous version and has Sound or Music files. I'll get it fixed.
Quote from: Pumaman on Sat 17/10/2009 21:19:43
Quote from: Dualnames on Fri 16/10/2009 16:51:17
I've given you the files of the game before, if you have them,you can test it there. Just place the code above when pressing Space for example. Forgot to say the Speech when the game starts (on the general settings pnae)is LucasArts. And ego here shouldn't be the playable character but instead an NPC.
I tried pasting that code into HHGTG and it worked fine. Are you sure that's the exact script code that you're using?
I'll send you the files with the problem as soon as possible..
You might wanna check this, but I don't know if it's my computer or the instalation file
(http://www.2dadventure.com/ags/Virus.PNG)
EDIT: It might be my computer, because I don't have the instalation file in my desk :(
There was another anti-virus app that reported AGS as a trojan a while back, I think they fixed their definitions shortly afterwards.
Quote from: Pumaman on Sun 03/05/2009 15:34:47
* Added option to automatically add side borders when running 4:3 games on widescreen monitors
Hi Chris,
Have you tested this on a properly set-up widescreen monitor? I can play 4:3 games on my widescreen monitors without any funny stretching, and it would be a pity if that no longer were the case because of a new feature. Any decent set of drivers and monitor allows to set up stretch-to-fit so it doesn't change the ratio.
Sorry if this has been asked before, but I cannot find a way to search within a thread.
QuoteHave you tested this on a properly set-up widescreen monitor? I can play 4:3 games on my widescreen monitors without any funny stretching, and it would be a pity if that no longer were the case because of a new feature. Any decent set of drivers and monitor allows to set up stretch-to-fit so it doesn't change the ratio.
The new option is configurable in the setup program so you can turn it off if you've set up your graphics card drivers to do the work instead.
Now, I'd like to move 3.2 on to the final release stage, but there are two outstanding bug reports that I haven't been able to reproduce:
QuoteThere seems to be a bug in the new sound logic somewhere. It was happening in the most recent beta, and it's happening in RC1 as well.
When I play the same sound repeatedly, very fast, the sound is replaced by sounds that were previously playing
QuoteWe all know that to have a character's talking view portrait appear on SierraWithBackground, the character must be in the same room, otherwise only the text window will appear. Now if you use DisplayTopBar function and then use a Character.Say for the first Character.Say played after DisplayTopBar it will have the TopBar in it, the second will have no problem.
Has anyone else had any problems like this?
If anyone is reading this and hasn't yet tried out upgrading their game to 3.2 RC1, please do so now (after making a backup copy, obviously) so that any issues can be fixed before the final release.
Hello,
I was wondering... since you've enabled audio panning, then it would make sense to add a property to characters to have the audio linked in their views be panned relatively to their position to the viewport, could it be done ? (if it's not too late)
Thats actually a fantastic idea. To be able to control the amount of panning going on with character coords would be good too.
Cheers,
Sparky.
There seems to be a random non-fatal bug that I've noticed in these betas that I don't recall having encountered previously. I'm not sure what the exact circumstances of it are, and there's a possibility it may just be my system.
I'm experiencing (at random times) issues with open script(s) not having the "dirty" (changed) state of the file updated properly by compiling or even by saving the file directly. I know the files are in fact being saved as testing shows the changes are implemented, but when this happens I can only get the dirty state cleared for that file by selecting to close it, after which I am prompted whether I want to save the changes to the file. I've been telling it yes and there haven't appeared to be any major issues arising from it as I've said.
It is something I would say is "reproducible" in that I've encountered it several times, though what's bringing it about I'm not sure, and obviously since the files are in fact being properly saved there's no real way to track it down from a project upload or anything like that (presumably). Anyway, I've figured out how to deal with it, and as I said it might just be my system, but I don't recall having any issues with prior versions.
Quote from: Haloa on Thu 22/10/2009 21:07:10
I was wondering... since you've enabled audio panning, then it would make sense to add a property to characters to have the audio linked in their views be panned relatively to their position to the viewport, could it be done ? (if it's not too late)
That's a good idea, thanks. It's too late for 3.2 now, but it's a good idea for a future version of AGS.
Quote
I'm experiencing (at random times) issues with open script(s) not having the "dirty" (changed) state of the file updated properly by compiling or even by saving the file directly. I know the files are in fact being saved as testing shows the changes are implemented, but when this happens I can only get the dirty state cleared for that file by selecting to close it, after which I am prompted whether I want to save the changes to the file. I've been telling it yes and there haven't appeared to be any major issues arising from it as I've said.
Well spotted, thanks -- I think this bug has been introduced as a result of a fix that I did in RC1.
The bug seems to happen if a script file is already open, then you go into an Events pane and add an event.
I'll get it fixed.
Quote from: Pumaman on Wed 04/11/2009 21:37:53The bug seems to happen if a script file is already open, then you go into an Events pane and add an event.
I'll get it fixed.
Interesting...during the course of a normal...wait...I don't have a normal work flow, what am I saying? During the course of a spontaneous divulging into tricking AGS into allowing me to use polymorphism simply coz I think it's funny (amongst other things, I have a life...somewhere ::)) I doubt I ever would have produced the exact circumstances. Glad to hear you got it from my description. ;D
Ok, RC 2 is now up. This fixes various issues (including that one!), and although there are a couple more things I need to address it seemed like a good time to get the latest release out there.
Again, if anyone hasn't tried their game with 3.2 yet, please do so now, so that we can find any bugs before it becomes a final official release!
Quote from: Pumaman on Thu 05/11/2009 22:04:00
Again, if anyone hasn't tried their game with 3.2 yet, please do so now, so that we can find any bugs before it becomes a final official release!
Since I finally got a completed game, I will do this now.
I may have found a compiler/runtime bug. I have created a module. An object with properties and methods resides in the module. I have a public method that originally had 11 optional parameters defined. In the global script I create an instance of this object and call this method from game_start() and pass 3 of the 11 optional parameters.
When testing the game I get a runtime error indicating that a script link has failed and the following text: 'BluBox::Init^11'. BluBox is the object and Init is the method being called when this error occurs.
A close inspection of the module header and module script reveals that the prototype matches the actual function definition (except of course for the default values and the ';' vs '{' ending). The object instantiation and method call in the global script also appear to be correct.
So to investigate further the cause of this error the Init method was deconstructed by removing all the parameters from the prototype, definition, and call of the method. This eliminated the error. So then the method was reconstructed one parameter at a time with an intervening test. No errors were encountered until the 11th parameter was added and then the error reappeared.
Now here is the strange part, the 11th parameter was eliminated and I expected to get the same results as before - no errors with 10 parameters. But to my surprise the same error persisted, this time supplying this text in the error message: 'BluBox::Init^10'.
Now I backup to 9 parameters and everything seems to be OK. I thought this was a strange behavior and thought I'd report it. The only other factors I can think of that may be orworth mentioning is the fact that both prototype and function definition spanned multiple lines and so multiple space and tab characters occurred between parameters for aesthetic reasons. Also the optional parameters are GUIControl pointers set to default value of zero. I am also using previous AGS release (AGS Editor .NET (Build 3.1.2.82) v3.1.2 SP1, February 2009).
Here's an issue, but I don't know what is the right behavior here.
Closing "Music" folder by clicking on Expand/Collapse box on the project tree removes Audio Clip from the Audio page, if one was opened before, and opens what looks like general Music properties on Properties Table.
This ONLY happen if Audio tab is active. If any other tab is active (Room, Script, Dialog, etc) this does not happen.
If you switch to different tab, close "Music" folder, then return to Audio tab, then you may open and close "Music" folder as much as you want and Audio Clip is not removed, and general Music properties are not shown,
unless you explicitly click on "Music" folder name (as opposed to Expand/Collapse box).
If you open another audio clip (or same once more), all start to happen again as did previously.
Also, I have a suggestion to add a way (a button perhaps ;)) to toggle repeatitive audio playback on/off.
Quote from: RickJ on Fri 06/11/2009 07:58:57
Now here is the strange part, the 11th parameter was eliminated and I expected to get the same results as before - no errors with 10 parameters. But to my surprise the same error persisted, this time supplying this text in the error message: 'BluBox::Init^10'.
I am also using previous AGS release (AGS Editor .NET (Build 3.1.2.82) v3.1.2 SP1, February 2009).
This was a bug in AGS 3.1.x but should already be fixed in the latest 3.2 RC 2. Could you try it out and confirm that this fixes the problem for you?
QuoteHere's an issue, but I don't know what is the right behavior here.
Closing "Music" folder by clicking on Expand/Collapse box on the project tree removes Audio Clip from the Audio page, if one was opened before, and opens what looks like general Music properties on Properties Table.
This ONLY happen if Audio tab is active. If any other tab is active (Room, Script, Dialog, etc) this does not happen.
This is actually the correct behaviour, but I can see how it could seem like a bug. The problem is that because the audio folders (like "Music") have properties themselves, there needs to be a way to edit them -- and this is how you do it.
Because there is a single Audio pane that changes its view as you select different audio items in the tree, this is the result you get.
The other option would be to make audio work like Views/Dialogs where each one opens a separate tab, but then you start drowning in open tabs, I might make it a preferences option in a future version.
QuoteAlso, I have a suggestion to add a way (a button perhaps ) to toggle repeatitive audio playback on/off
Do you mean the in-editor audio preview? Having some sort of Loop option wouldn't be a bad idea, however this probably won't make it into 3.2 at this stage.
BUG: AGS compiles and runs fine with errors in the script such as naming a View that doesnt exist but later on (and seemingly at random) picks them up and then wont run the game until the code is fixed.
This late detection is rather unusual.
Also, I can't seem to open more than one room at once. I can't remember if this was normal or not. It would be good to be able to edit more than one room for corrospondance between interactions/coordinates/etc.
SUGGESTION (Aesthetic): Switch Character.ChangeView(VIEW) to Character.SetView(VIEW) to stay consistant with objects.
Edit: Is there any reason why repetedly_execute in room scripts are named inconsistantly with the global script? It may sound ridiculous but I actually prefer the slightly longer name for aesthetics and clarity sake. ;)
Cheers,
Sparky.
Quote from: subspark on Sun 08/11/2009 19:02:59
BUG: AGS compiles and runs fine with errors in the script such as naming a View that doesnt exist but later on (and seemingly at random) picks them up and then wont run the game until the code is fixed.
This late detection is rather unusual.
Was this an error in a room script? If so then it could just be that AGS doesn't rebuild all the rooms when you rename a view, so whenever you next try and save the room it will detect the error.
QuoteAlso, I can't seem to open more than one room at once. I can't remember if this was normal or not. It would be good to be able to edit more than one room for corrospondance between interactions/coordinates/etc.
This has always been the case. You can open multiple room scripts but not rooms themselves.
Quote
SUGGESTION (Aesthetic): Switch Character.ChangeView(VIEW) to Character.SetView(VIEW) to stay consistant with objects.
These are different because a character *always* has to have a View, whereas an object does not necessary have a view assigned at all -- it's a fundamentally different mechanism from characters with Change, Lock and Unlock -- hence why the name is different.
QuoteEdit: Is there any reason why repetedly_execute in room scripts are named inconsistantly with the global script? It may sound ridiculous but I actually prefer the slightly longer name for aesthetics and clarity sake. ;)
You can name it repeatedly_execute in the Room Events panel if you want... of course there is the wider issue of whether Rep EXec should be a room event or whether it should just be a specific named script function, but this is down to legacy reasons.
Most appreciated for yours answers Chris! And yeah that was a room script quirk and is completely normal as I understand it now.
Cheers,
Sparky.
I have this small suggestion - to completely pause the game when Pause/Break is pressed (and unpause by any other key).
Reason is quite uncommon: this will make it easier to do proofreading when testing a game, because you won't worry of speech text dissapear too early ;)
Well, maybe there could be other usage for this, like simply pausing game if you need to take a break and there's some action episode goes on which involves timing...
Ah, so like an instant pause button. This should be script controlled (i.e. if user pressed "Pause/Break", then InstantPause() or something), because some people might have timed puzzles and that would essentially be a cheat.
Crimson Wizard, you can check for IsKeyPressed(393) in repeatedly_execute_always (for some reason the pause/break button doesn't have an eKey code assigned). Something like this:
bool pausekeypressed;
function repeatedly_execute_always() {
if ((IsKeyPressed(eKeyF1)) && (!pausekeypressed)) {
if (!IsGamePaused()) PauseGame();
else UnPauseGame();
pausekeypressed = true;
}
else if ((pausekeypressed) && (!IsKeyPressed(eKeyF1))) pausekeypressed = false;
}
(I didn't use keycode 393 in this test because it messes with the AGS debugger and doesn't work well when testing in debug mode. I think the keycode should work in a compiled game though)
Of course you would have to change speech skip to mouseclick or timer only (or using game.skip_speech_specific_key ) so the keypress wouldn't automatically cause the text to disappear.
QuoteOf course you would have to change speech skip to mouseclick or timer only (or using game.skip_speech_specific_key ) so the keypress wouldn't automatically cause the text to disappear.
Or you could manually set up all your skip speech keys in code to get around this. Adding a couple of variables would allow you to toggle different functions for any given key. That might see this part done!
Cheers,
Sparky.
Well, TerranRich's note about timed puzzles were enough to show me that my idea was wrong.
I must excuse for repeatedly suggesting things that are either possible mess-makers or can be implemented by other means. Looks like I am too fast to make conclusions :-X
Thanks for updating your post to actually let me understand it, subspark. Apart from using game.skip_speech_specific_key I don't see how you would do that though, since there's no SkipSpeech() function to call when catching the keypress.
Ahh too right you are! We'll thats me for ideas. :)
Sparky.
Quote from: Crimson Wizard on Mon 09/11/2009 15:34:36
I have this small suggestion - to completely pause the game when Pause/Break is pressed (and unpause by any other key).
Reason is quite uncommon: this will make it easier to do proofreading when testing a game, because you won't worry of speech text dissapear too early ;)
The easiest way to do this is to run the game in a window, and then simply press Alt+Tab or click outside the window when you want to pause the game -- that way the game window will still be visible but will be paused.
Quote from: Pumaman on Wed 11/11/2009 19:28:40
Quote from: Crimson Wizard on Mon 09/11/2009 15:34:36
I have this small suggestion - to completely pause the game when Pause/Break is pressed (and unpause by any other key).
Reason is quite uncommon: this will make it easier to do proofreading when testing a game, because you won't worry of speech text dissapear too early ;)
The easiest way to do this is to run the game in a window, and then simply press Alt+Tab or click outside the window when you want to pause the game -- that way the game window will still be visible but will be paused.
Heh, yeah, but in this case I wont see the text I am going to proofread :D
EDIT: oh, wait. Perhaps I can switch focus to some other window, but leave game not minimized.
Is it possible to execute code just before the window loses focus? Like having a sprite display on-screen indicating the game is paused as soon as you click outside the window and vice-versa?
Sparky.
Quote from: subspark on Wed 11/11/2009 23:22:54
Is it possible to execute code just before the window loses focus? Like having a sprite display on-screen indicating the game is paused as soon as you click outside the window and vice-versa?
Sparky.
This would prevent the aforementioned cheating.
There should be a Window object for the sole purpose of window events like minimizing, focus/blur, etc. Dunno how feasible that is.
I've just discovered that the engine crashes if you try to call Character.PlaceOnWalkableArea from game_start. Makes sense seeing as no room is loaded yet, but the error message isn't very friendly. :=
Quote from: Pumaman on Fri 06/11/2009 18:16:46
Quote from: RickJ on Fri 06/11/2009 07:58:57
Now here is the strange part, the 11th parameter was eliminated and I expected to get the same results as before - no errors with 10 parameters. But to my surprise the same error persisted, this time supplying this text in the error message: 'BluBox::Init^10'.
I am also using previous AGS release (AGS Editor .NET (Build 3.1.2.82) v3.1.2 SP1, February 2009).
This was a bug in AGS 3.1.x but should already be fixed in the latest 3.2 RC 2. Could you try it out and confirm that this fixes the problem for you?
Verified. Upgraded to latest RC and error no longer appears.. Thanks!
QuoteHeh, yeah, but in this case I wont see the text I am going to proofread
EDIT: oh, wait. Perhaps I can switch focus to some other window, but leave game not minimized.
Clicking on an empty bit of the Windows taskbar is the easiest thing to do -- since it's always there and activating it won't put any windows on top of the game window.
QuoteI've just discovered that the engine crashes if you try to call Character.PlaceOnWalkableArea from game_start. Makes sense seeing as no room is loaded yet, but the error message isn't very friendly
Heh, I'll take a look at it. There are various ways of crashing AGS by doing room-specific stuff in game_start, I'll continue to address them one by one as they come up ;)
QuoteVerified. Upgraded to latest RC and error no longer appears.. Thanks!
Glad to hear it!
Quote from: Pumaman on Mon 16/11/2009 22:37:34Heh, I'll take a look at it. There are various ways of crashing AGS by doing room-specific stuff in game_start, I'll continue to address them one by one as they come up ;)
Yeah, I just forget sometimes that what I'm doing is room-specific and there's no rooms loaded yet in game_start. ;) Thanks Chris.
I have a question to whomever can answer this.
When you declare a new variable/function/etc, is there a quick key to add any script adjustment to the typing assistant?
One way I know, is to click on another opened document within AGS (a script, or the sprite manager, etc), and go back to the script you were working on. Is there a quick key to do this (semicolon would be the most logical)?
Do you mean adding the variable/function to the list that comes up when you start typing? For functions, I believe it's when you import it into the global header, but for variables, it should be whenever you declare it. That's been my experience anyway.
Nope. It doesn't add itself to the quick-list the moment you declare it. Give it a shot.
The only way I know, is to do what I said above.
It doesn't even add it to the quick-list if you run the game.
AFAIK the autocomplete cache should be updated any time you switch tabs, compile, or run the game. I could be wrong though.
Making it update when typing a semi-colon could maybe be useful, but might be impacting to the editor's performance.
Quote from: Ryan Timothy on Wed 18/11/2009 19:40:11
Nope. It doesn't add itself to the quick-list the moment you declare it. Give it a shot.
The only way I know, is to do what I said above.
It doesn't even add it to the quick-list if you run the game.
Something's wrong then, because I just tried it and it worked right after declaring it.
I typed in "int iJokerBlah = 1;", hit enter, and typed in "ijo", and there was my variable.
Are you using AGS 3.2 (or even this RC 2 beta, like I am)?
Because no matter what I do for declaring a variable, it doesn't update the autocomplete list without switching tabs. Curious, why would it work for you and not I?
I even tried it in a room script, and it still doesn't work without switching tabs.
Same here. IIRC, updating the auto-complete list after a tab switch was introduced only quite recently.
For me, not even saving the game does it, much less typing enter.
Whoops, I'm using 3.1. I forgot I installed 3.2 separately and ran the wrong one. :-[
Checking now...
It still works as I specified above. So yes, in 3.2 RC 2, I can declare a variable on one line and it's in the auto-complete on the next line. Dunno if it matters, but I'm doing it from within a function. I can confirm that this doesn't work outside of functions.
What I had to do was declare it at the top of the global script, save. Import it at the bottom of the script header, save. Then it was accessible from the global script again.
If you declare a variable at the top of the global script, it's accessible throughout the entire global script. I'm not sure why you import it in the script header.
BUT.. from what you just said there, you're switching tabs (going from the script to the header), therefor, it doesn't add to the autocomplete without switching tabs. Unless I understand you incorrectly.
Heh, well I don't use global variables other than those you can define in the editor (at least not yet), so I'm not surprised I did it wrong.
To answer your question, simply saving the script, closing the tab, and re-opening the tab are enough. Simple hanging tabs (e.g. opening the header, then going back to the global script) also refreshes the list.
Quote from: TerranRich on Thu 19/11/2009 00:45:27
Heh, well I don't use global variables other than those you can define in the editor (at least not yet), so I'm not surprised I did it wrong.
To answer your question, simply saving the script, closing the tab, and re-opening the tab are enough. Simple hanging tabs (e.g. opening the header, then going back to the global script) also refreshes the list.
Yes, we already know that...
Quote from: monkey_05_06 on Wed 18/11/2009 20:08:36
AFAIK the autocomplete cache should be updated any time you switch tabs, compile, or run the game. I could be wrong though.
Making it update when typing a semi-colon could maybe be useful, but might be impacting to the editor's performance.
;)
The question was why it doesn't update more often.
I forgot what issue I was addressing then, if at all. Man, I must be losing it.
I've encountered some erroneous behaviour with tooltips and optional parameters:
// import line in header:
import void ShowBox(String message, int width = 256, int x = 160, int y = 200, bool stay);
// declaration line in script body
void ShowBox(String message, int width, int x, int y, bool stay) {
I tried to call the function using:
ShowBox("Hello, this is a first test of the message box function!", true);
I got the "not enough parameters in call to function" error.
Edit: I moved the bool param after the string param and it works now. Maybe the manual should mention that optional parameters have to be declared last.
The other thing is minor: the string contains a comma and thus the tooltip is showing the wrong parameter in red and the true/false auto-complete window for the bool appears one param too early.
Quote from: Khris on Tue 24/11/2009 15:38:28The other thing is minor: the string contains a comma and thus the tooltip is showing the wrong parameter in red and the true/false auto-complete window for the bool appears one param too early.
It's done that for quite some time. And regarding optional parameters the idea is that you can't pass "nothing" as a parameter so if you have an optional parameter followed by a required parameter then how can you get to the required parameter without being forced to pass something for the optional parameters as well?
I believe AGS will allow the import to compile that way, but it logically doesn't make any sense. From a logical standpoint you should put all of your required parameters first, optional parameters last. That way anything that is optional can be optional.
Hi,
I somehow create currupted save games.
Whenever I try to restore, this is the error I get.
---------------------------
Illegal exception
---------------------------
An exception 0xC0000005 occurred in ACWIN.EXE at EIP = 0x0043AD2A ; program pointer is +25, ACI version 3.20.1099, gtags (8,0)
AGS cannot continue, this exception was fatal. Please note down the numbers above, remember what you were doing at the time and post the details on the AGS Technical Forum.
Most versions of Windows allow you to press Ctrl+C now to copy this entire message to the clipboard for easy reporting.
An error file CrashInfo.dmp has been created. You may be asked to upload this file when reporting this problem on the AGS Forums. (code 0)
---------------------------
OK
---------------------------
Not sure if it's a bug, but I guess it may cause some irritation.
It is about using ALT-drag selection in script editor. Apparently, selection box is being limited by the shortest string in the selected lines range.
For example, if you have some code like:
import function AVeryLongFunctionNameHere();
import function AFunctionName();
If you try to select everything except "import" keywords using ALT-drag here, on the 1st line only a part of function name will be selected.
Detected this in AGS 3.1.*, still present in RC2.
Quote from: abstauber on Tue 24/11/2009 20:10:51
Hi,
I somehow create currupted save games.
The bug has been isolated :)
In room_load, do the following:
[...]
SaveGameSlot(1, "QuickSave");
aSomeMusic.Play();
[...]
Try to load that game and BAM ;D
At least that happens in AGS 3.2 RC2 on my machine.
It appears that extender functions share the global namespace rather than the Object's namespace. In the example below I had expected that the name of extender function would be seen by the compiler as "String.Token" rather than "Token". Not sure if this is a bug or a feature ;) so I thought I'd mention it. It's easy enough to avoid by just using another name.
*** Global Script ***
String IndexOf; // Does not conflict with String.IndexOf(..)
String Token; // Name conflict with extender function String.Token(..)
// String extender function
String Token(this String*); // Causes an error "Token is already defined"
There actually is a way around that Rick. Once an extender method has been declared, AGS accepts it as part of the struct and you can use the normal namespace resolution to resolve the collision. That is:
// script header
import String Token(this String*); // some extender function declaration
import String Token; // global string, this import must come after the extender to prevent collision
// script file
String Token;
export Token;
String String::Token() { // once it's declared by the import you can use normal namespace resolution
// blah
}
This also works even if the function isn't global. You can define a localized extender with the same name as a local variable like this:
// script file
import String Token(this String*); // import just like you would in a header file, but in the main script
// this declares the extender to AGS
String Token; // local variable
String String::Token() { // again, using normal namespace resolution
}
;)
Quote
This also works even if the function isn't global. You can define a localized extender with the same name as a local variable like this:
Ah! Yes, I am using local extenders within a module script that are not to be exposed outside the module. Thanks for the info; it's very useful.
[edit]
Tried your second example and got the following error ... I'll just use fdifferent names.
Quote
Modoc.asc(241): Error (line 241): extender functions cannot be part of a struct
I tried the second example and it worked fine. The only condition in which you would get that error would be something like:
struct MyStruct {
import function Extender(this String*); // wait, what? it's in the MyStruct type but it's a String extender???
};
Extender methods obviously can't be within a struct coz they don't make any sense there. And that is exactly what the error message says.
Edit: (eatingmywordssomewhat) Or if you're using the normal namespace resolution and defining it as an extender at the same time:
String String::Token(this String*) {
}
See my next post after this. :P
No! it's not in a struct. The error ocured with the declaration
String String::Token(..)
If it's working for you then and not for me then I must have mistyped something somewhere or had gotten something out of order?
You didn't per chance put:
String String::Token(this String*)
Did you? Coz you're already resolving that it's a String function with the String namespace and it doesn't need to be defined as an extender.
I have this exact code snippet in game and it works fine:
import String Token(this String*);
String Token; // local variable
String String::Token() { // again, using normal namespace resolution
}
function some_func() {
String s = "";
s = s.Token();
}
Trying to put the "this String*" part inside the function definition gave the same error though. :P So yeah, that's what you did.
I have this question: when I create a new room for 320x200 or 640x400 resolution game, default black background matches the resolution. However, if resolution is set to 320x240 or 640x480, default background does not match the correct height, it is either 200 or 400. Why is it so?
(One may need black rooms for displayng credits for example, or some other purposes, and with this behavior user must create a black image to manually set it as a background)
I just found that it is possible to assign dynamic array of invalid type to a pointer, without getting any compiler error or warning, causing problems in future usage (as well as hard time debugging). For example:
int MyArray[];
function MyFunc()
{
MyArray = new short[100];
}
Well, I know that plain C/C++ does not treat this as something incorrect, but since AGS scripting language is considered to be memory safe, I thought that something should be done here like warning user.
Quote from: Crimson Wizard on Sat 28/11/2009 21:02:14I just found that it is possible to assign dynamic array of invalid type to a pointer, without getting any compiler error or warning, causing problems in future usage (as well as hard time debugging).
I believe this is due to the fact that this is one of the instances where AGS has an implicit type conversion defined. For example:
short s = 10;
int i = s + 2;
Works without any problem (as you would logically expect). From a logical standpoint however I'm not sure what type the array would actually use so it is confusing (i.e., what would be the size limits of each member of the resulting array; based on int as declared or short as defined?).
You can't however perform an implicit conversion doing this that AGS wouldn't normally allow with regular variables. For example:
int arr[] = new GUI[5];
Fails in error.
The current behaviour wouldn't bother me at all so long as I knew definitively which type the array was acutally using.
Anyway, here's another bug.
I have a custom struct, and another one, extended from that first. For simplicity, they are T1 and T2.
T2 extends T1
I have extender functions made as "members" of T1 and those that are "members" of T2, like
function T1Func(this T1*, ...);
function T2Func(this T2*, ...);
So, problem is that if I have an object of type T2, let's say
T2 ObjectT2;
when I type "ObjectT2." and a list of members appear for quick selection, there are no functions that were declared for type T1. There are only variables of that type.
These T1 type extender functions work, however, as expected (i.e. I can type ObjectT2.T1Func(...)), they just are not listed in this hint box (or whatever this is called), and also if I click "Go to definition of T1Func" it does nothing.
Not a big deal, perhaps, but can be confusing.
I pointed this one out before. (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=38627.0) ;)
As I said in that thread the only way I've found of getting these inherited extenders to autocomplete is actually defining an explicit overload for the child class(es). I also found that the overloaded version is being called, that is, AGS supports polymorphism! := Chris, if you fix the autocomplete issue, please don't fix the polymorphism. I like it. :D
It does work though, as you said, so it's possible to just use the functions without the autocomplete.
a couple weeks ago I saw a post from CJ saying he wanted make this release official soon.
I'm curious of the ETA on the official release, anyone have any insight? Obviously it won't be released till its 'ready', I'm just trying to get a rough idea :P
Hi Divon,
I definitely understand your anticipation about this upcoming version of AGS. As for a "rough idea" I would say probably sometime in the next 7-8 years we can probably expect to see a new version of AGS released (or if CJ is really ambitious, maybe even MOAR!).
CJ said in a recent interview that he's been busy with his real life and real job as of late and hasn't had much time to devote to working on AGS. It happens. And at the sake of not being slapped silly with a moistened trout we all accept this and wait patiently. Otherwise we just do silly things to try and break the thing so we can tell CJ about it and seem cool for discovering a "huge" flaw. :=
-monkey
inb4slap
Quote from: manual
If you ask when the next version is coming out, you will be slapped silly with a moist trout.
Quote from: CJ-interview
At the moment for example, I'm very busy with my real life and haven't had a chance to do any work on AGS for a few weeks now. So bugs get reported and start stacking up but I don't have time to fix them. And then of course the list of things to fix is quite daunting when I finally do have some spare time!
Edit: Damn you, monkey.
yeah, I figure its probably a pretty impossible question to answer. I wouldnt have even asked, but I'm 95% certain I wasnt imagining seeing a post from him talking about how he wanted to release it soon.
Theres always the possibility that I wanted this to come out so badly that I just made it up completely in my head and convinced myself that it was true. Then theres the possibility that I could just do a forum search for the post...but then if I did find it, I could no longer live in a state of confusion as to whether or not I am going insane or not...which coincidentally leads to better game development (insanity breeds new ideas, and such...)
I hope no one actually read that last paragraph.
QuoteNot sure if it's a bug, but I guess it may cause some irritation.
It is about using ALT-drag selection in script editor. Apparently, selection box is being limited by the shortest string in the selected lines range.
I didn't even know the script editor had an ALT-drag feature! I think that is by design though, it's how the feature is supposed to work.
QuoteIn room_load, do the following:
SaveGameSlot(1, "QuickSave");
aSomeMusic.Play();
Try to load that game and BAM
I tried that but it worked fine. What type of music are you using? (MP3/OGG/?)
Does it happen for you every time? If so could you upload a game that demonstrates the problem?
QuoteI have this question: when I create a new room for 320x200 or 640x400 resolution game, default black background matches the resolution. However, if resolution is set to 320x240 or 640x480, default background does not match the correct height, it is either 200 or 400. Why is it so?
When you create a new room, it is created from a template room (which is a 320x200 room). You can fix this by making your own black room at the correct resolution, then creating a room template from that which you use in future when making new rooms.
QuoteI just found that it is possible to assign dynamic array of invalid type to a pointer, without getting any compiler error or warning, causing problems in future usage (as well as hard time debugging).
Well spotted thanks, yes that could cause a buffer overrun if you did that. I'll look into it.
Quoteproblem is that if I have an object of type T2, let's say
T2 ObjectT2;
when I type "ObjectT2." and a list of members appear for quick selection, there are no functions that were declared for type T1. There are only variables of that type.
Thanks; as monkey says, this is something that has already been reported and I will look into it.
Quoteyeah, I figure its probably a pretty impossible question to answer. I wouldnt have even asked, but I'm 95% certain I wasnt imagining seeing a post from him talking about how he wanted to release it soon.
I do want to release it soon. That means I won't be adding any more new features to 3.2 and the only thing I'll be doing now is bug fixes. It also depends on when I have an opportunity to do those fixes and how many other issues get reported.
Quote from: Pumaman on Wed 02/12/2009 20:20:29
I tried that but it worked fine. What type of music are you using? (MP3/OGG/?)
Does it happen for you every time? If so could you upload a game that demonstrates the problem?
Yep, the save file is guaranteed to make the engine crash.
Uploaded and PM sent :)
Thanks for uploading, it seems to happen if you save while the music is crossfading. I'll get it fixed.
Wow, that's what I call fast :D Thanks!
I just had a quick look at RC 2, in particular to check out widescreen and audio.
1. The widescreen mode seemed to work fine in the sense that it still works on my 1024x600 netbook even if the option is activated (I was worried it would interfere with properly set up systems which do not squish 4:3 resolutions anyway).
2. Audio files with names instead of numbers both in file names and script: great!
3. Earlier in this thread it was mentioned that the audio files in the cache are automatically updated on compiling. I'm not sure I like this idea. Adding data to a game should have a consistent feel: If I import a sprite, it's data is added to the game, but not automatically updated when the source changes ... hmm, at least I thought so ... actually I didn't try if that happened later during compilation (in fact, I recently suggested to have an explicit reimport sprite(s) command, and an explicit reimport audio file(s) would also be nice). For historical reasons, the behavior could also be such that source files which reside under Sound and Music (or any?) subfolders within the game folder are updated automatically (after all, copying them there already had the semantics of "adding" them to the game). But it would feel strange for sounds which I added from an arbitrary location. Also, the property SourceFileName should be SourceFile to be consistent with the corresponding sprite property.
4. Others have commented on the inconsistency of having only one tab for audio. I think the strangeness comes from having each individual data item as a member in the tree. If it were more like the sprite editor you would just select audio in the tree and have a listing of all audio data in the tab, maybe with convenient play button next to each and the possibility to select multiple items, e.g. for deletion - or reimport ;) But such a GUI can always be added at a later date, in addition to having items in the tree. Even sprites could someday be listed in the tree, then.
5. Not related to anything new in 3.2 but noticed while playing around with tree and audio: Currently, opening an item as a "document" (tab) is on the same level with making its properties available in the property window (need to double-click on item). It would feel more natural if the properties were already displayed when selecting the item in the tree. So you could, e.g., quickly change the volume of a sound without needing to open the tab at all.
Attention please!
3.1.2 -> 3.2 RC2 update bug.
Music files are named using capital letters, like: MUSIC1.
When project is updated, audio entries are named properly, in capital letters, like: aMUSIC1.
However, in script commands for music played on room load they are written incorrently with small letters, like: aMusic1.Play();
This causes errors during compilation.
Thanks for your feedback.
Quote3. Earlier in this thread it was mentioned that the audio files in the cache are automatically updated on compiling. I'm not sure I like this idea.
It is an interesting point, that this is inconsistent behaviour with the rest of the editor. The sheer number of sprites in a game makes automatically checking all the source files for updates unfeasible, whereas with sound files it is possible. However, perhaps a Preferences option should control this.
Quote4. Others have commented on the inconsistency of having only one tab for audio.
Yes, with hindsight it probably wasn't the best way to implement it. But yes, the GUI can always be updated in a future version to improve this.
Quote5. Not related to anything new in 3.2 but noticed while playing around with tree and audio: Currently, opening an item as a "document" (tab) is on the same level with making its properties available in the property window (need to double-click on item). It would feel more natural if the properties were already displayed when selecting the item in the tree. So you could, e.g., quickly change the volume of a sound without needing to open the tab at all.
Yeah, and that would be more consistent with things like Visual Studio. At the moment the editor doesn't have the concept of the Project Tree having focus rather than a Tab Window, which it would need to do to make this work.
QuoteMusic files are named using capital letters, like: MUSIC1.
When project is updated, audio entries are named properly, in capital letters, like: aMUSIC1.
However, in script commands for music played on room load they are written incorrently with small letters, like: aMusic1.Play();
Well spotted, thanks ... I'll look into it.
Sorry I still haven't managed to get RC3 out, I'm in the middle of moving house amongst other things and I'm just not getting any time to get it done; it's frustrating because it shouldn't actually take that long to fix the outstanding issues. Hopefully I'll be able to get something released before Christmas...
I found another strange situation rlated to moving from 3.1.2 to 3.2 RC.
I had a room with very thin walkable area (couple of pixels in height) and some object, that stood right "on top" of that area, it's Y coordinate equal to Y of highest walkable line of pixels. There were characters, that had same Y coordinate.
Object's basline was NOT overriden.
So, in 3.1.2 these characters were drawn over the object.
In 3.2 RC2 object is drawn over them.
looks like now baseline is 1 pixel lower. :-\ Was it a bug in 3.1.2 that is now fixed or new bug in 3.2?
Hi. I've found something strange. I have a room script with these lines among others:
function room_AfterFadeIn()
{
...
PlaySound(6);
while (IsSoundPlaying()) Wait(1);
...
}
The thing is that if I disable the music and the sounds from the game setup, the game hungs up. It just stays there, animating things in the background.
Using AGS 3.2 RC 2
Have you tried using the new IsAudioPlaying() function instead?
Edit: Actually, the IsSoundPlaying function returns an int, not a bool, as far as I remember, so try:
while (IsSoundPlaying() != 0) Wait(1);
and see if that works better. If sound/music is disabled it should always return 0.
One could say this is a stupid question, isn't False considered 0 and True is 1? Cause I could have sworn I was using true/false boolean expressions whenever an int was required, and had no issues... I think.
Quote from: Ryan Timothy on Thu 24/12/2009 21:43:44
One could say this is a stupid question, isn't False considered 0 and True is 1?
But of course.
What, not even on Christmas Eve one can escape people pointing out one's mistakes? You're making Baby Jesus cry, Ryan.
(actually what I had originally written before the edit was much more stupid, glad nobody caught that)
For boolean expressions AGS evaluates 0 as false and non-zero as true. So actually even negative values would evaluate as true.
So if IsSoundPlaying returns zero for false then "if (IsSoundPlaying())" should be considered safe as far as evaluations go. To clarify though, even with sounds disabled via setup the function is definitely still returning true (non-zero)? Maybe just to verify that could you try putting a Display statement along with the wait to make sure?
I tried the Display function thing, and yes, it loops there.
I noticed, there's is a mistake in code tips that show function prototype. When return value is of managed type, it shows no pointer sign (*), like
Character Character.GetAtScreenXY(int x, int y)
I guess this may confuse "newbie" users.
Also I actually made a mistake in code because of that when first used Game.GetViewFrame function. It showed ViewFrame return value, instead of ViewFrame*.
Helloes!
I'm experiencing some StartCutscene/EndCutscene problems. I have a small script with a door opening, a character walking in, two characters having a conversation, and the door closing again. At the start I've put a StartCutscene(eSkipESCOnly); and at the end there's an EndCutscene(); And it works fine. The only problem is that when I skip the cutscene it skips to the end but it plays all the sound effects I've used in the cutscene (someone knocking on a door, the door opening, and the door closing) at the same time. It skips all the conversation etc. but it still plays the sound effects. I only have this problem in the 3.2 RC2 edition. I quickly recreated a similar scene in 3.1.2 SP1 and it works fine. So perhaps it's something with the new audio system?
Hmm... finally decided to give this one a go. (Finally got some time :=)
I'm experiencing the following: when playing a sound clip through the editor, and then whilest playing double-clicking on another sound clip 'hangs' the editor.
I had to kill the process and restart. This doesn't occur every time though.
-----------
As a sidenote, I mostly like the new audio system, except... why only have a master volume setting?
I would like the player to be able to change the volume of ALL music, or sound clips, or speech (the last thankfully still being possible) separately.
What if the player doesn't hear the voice over the music playing in the background so he/she only wants to tune down the music but wants to hear the special sound effects crystal sharp?
Just one of the possible examples, but my point is:
I would like a System.MusicVolume, System.SoundVolume and a System.AmbientSound setting, in addition to the general System.Volume
I don't want to deprive any player (hard-hearing or not, full-sound spectrum hearing or not) of the possibility to tweak these to his/her liking.
Considering you can set the default volume of a clip, I would be happier if I would at least be able to change this default volume in code, as I could then build a workaround for not having the multiple system volume settings
----
Just my 2 cents.
----
EDIT:
PlayAmbientSound, PlayMusic, PlaySound are not marked as old style.
I set the general setting to 'Enforce new-style audio scripting' and those commands were still considered valid. (Even though the help says they're obsolete)
I can partially confirm Def's problem. It seems the latest ags plays a single sound from each cutscene when skipped. I tested this with having only one sound in the entire cutscene which plays once every time I skip it and a scene full of sounds and it played the second to last sound when skipped. Again, I want to add that it does not play all of the sounds for me but it does play one from each cutscene.
QuoteI had a room with very thin walkable area (couple of pixels in height) and some object, that stood right "on top" of that area, it's Y coordinate equal to Y of highest walkable line of pixels. There were characters, that had same Y coordinate.
Object's basline was NOT overriden.
Do any of the objects/characters have the Ignore Walkbehinds property set? Does the problem happen with both DX5 and D3D drivers?
Quotewhile (IsSoundPlaying()) Wait(1);
The thing is that if I disable the music and the sounds from the game setup, the game hungs up. It just stays there, animating things in the background.
Interesting thanks, I'll look into it.
QuoteI noticed, there's is a mistake in code tips that show function prototype. When return value is of managed type, it shows no pointer sign (*), like
Ok thanks, I'll bear this in mind. I don't think I've got time to change this for 3.2 though.
QuoteI'm experiencing some StartCutscene/EndCutscene problems. I have a small script with a door opening, a character walking in, two characters having a conversation, and the door closing again. At the start I've put a StartCutscene(eSkipESCOnly); and at the end there's an EndCutscene(); And it works fine. The only problem is that when I skip the cutscene it skips to the end but it plays all the sound effects I've used in the cutscene (someone knocking on a door, the door opening, and the door closing) at the same time. It skips all the conversation etc. but it still plays the sound effects. I only have this problem in the 3.2 RC2 edition. I quickly recreated a similar scene in 3.1.2 SP1 and it works fine. So perhaps it's something with the new audio system?
Thanks, I'll look into it.
QuoteI would like a System.MusicVolume, System.SoundVolume and a System.AmbientSound setting, in addition to the general System.Volume
AGS no longer has a concept of "sound", "music" or "ambient sounds" -- these are just some default Audio Types but you don't have to keep them.
However, I do plan to address this volume issue by adding a SetAudioTypeVolume command that will allow you to adjust the volume of all audio clips of a particular type. This has already been requested and I would say it is essential to be added before 3.2 can be released.
QuotePlayAmbientSound, PlayMusic, PlaySound are not marked as old style.
I set the general setting to 'Enforce new-style audio scripting' and those commands were still considered valid. (Even though the help says they're obsolete)
Thanks, I'll check this.
Quote from: Pumaman on Tue 05/01/2010 22:48:45
QuoteI had a room with very thin walkable area (couple of pixels in height) and some object, that stood right "on top" of that area, it's Y coordinate equal to Y of highest walkable line of pixels. There were characters, that had same Y coordinate.
Object's basline was NOT overriden.
Do any of the objects/characters have the Ignore Walkbehinds property set? Does the problem happen with both DX5 and D3D drivers?
1. No
2. It happens only when using DX5.
Quote from: Crimson Wizard on Sat 09/01/2010 17:28:01
1. No
2. It happens only when using DX5.
If you have multiple characters/objects with the same Y co-ordinate, AGS does not make any promises about which one is drawn in front. If you are relying on one being in front of the other, can you not change its Y co-ordinate?
Quote from: Pumaman on Sat 09/01/2010 17:38:29
Quote from: Crimson Wizard on Sat 09/01/2010 17:28:01
1. No
2. It happens only when using DX5.
If you have multiple characters/objects with the same Y co-ordinate, AGS does not make any promises about which one is drawn in front. If you are relying on one being in front of the other, can you not change its Y co-ordinate?
Well, there's some sly scene where characters are shown at a large distance in pefect side-view, and they should go before the large car; so character's Y and car's Y should actually match.
(And the car has to be an object, not background, well, that's long story)
Anyway, I solved the problem by overriding baseline for the object. It isn't a big trouble for me at all, I was just wondering if it is some kind of bug or not.
Quote from: Electroshokker on Thu 31/12/2009 10:16:28
PlayAmbientSound, PlayMusic, PlaySound are not marked as old style.
I set the general setting to 'Enforce new-style audio scripting' and those commands were still considered valid. (Even though the help says they're obsolete)
Are you sure about this? I just tried it and PlaySound/PlayMusic didn't work when New Stlye Audio Scripting was turned on.
QuoteAnyway, I solved the problem by overriding baseline for the object. It isn't a big trouble for me at all, I was just wondering if it is some kind of bug or not.
I don't think it's really a bug, since AGS doesn't claim to sort things in any particular order if they have the same baseline. Glad you sorted it out.
Anyway, RC 3 is finally up! This fixes various reported issues. Please try it out and let me know of any issues.
I don't know if this is a thing that can be asked for during RCs, but I'd like to have the 'exact colour import' option when importing a background back.
It seems crucial for 8-bit palette effects, otherwise they screw up. More info on this post (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=39825.msg524306#msg524306).
Quote from: bicilotti on Mon 11/01/2010 02:01:40
I don't know if this is a thing that can be asked for during RCs, but I'd like to have the 'exact colour import' option when importing a background back.
This option is already present, in the Preferences screen (not an ideal place for it, but 8-bit games are so rare now that it was just the easiest place to put the option).
Quote from: Pumaman on Mon 11/01/2010 22:31:21
Quote from: bicilotti on Mon 11/01/2010 02:01:40
I don't know if this is a thing that can be asked for during RCs, but I'd like to have the 'exact colour import' option when importing a background back.
This option is already present, in the Preferences screen (not an ideal place for it, but 8-bit games are so rare now that it was just the easiest place to put the option).
Silly me, thanks.
Rooms create at the resolution of whatever the default setting was, which I consider a bug. I have the settings at 320x240 and it is consistently creating 320x200 rooms which I must then load a background into to adjust to the proper resolution. Normally I wouldn't have noticed but I was testing a gui in the empty room and since 40 pixels were missing I couldn't see it and spent 20 minutes wondering why. ;D
I'm not sure if I'm right or not but gui's seem to be ignoring transparency adjustments of 1 entirely. I have a function that fades in a gui and when I set it to decrement the transparency by 1 nothing happens; when I up it to 2 it suddenly works. Again, there could be some kind of flaw somewhere in my function but I haven't found anything that is incrementing it by 1 or in someway obstructing it.
Quote from: ProgZmax on Wed 13/01/2010 12:38:27
Rooms create at the resolution of whatever the default setting was, which I consider a bug.
I think you can change that just by replacing the default room file with whatever you want. I forget the name of the actual file and I'm too lazy to check it ATM.
Prog, are you directly modifying the GUI.Transparency variable? Coz, per the manual:
Quote from: The Manual > Scripting > GUI functions and properties > GUI.TransparencySome rounding is done internally when the transparency is stored -- therefore, if you get the transparency after setting it, the value you get back might be one out. Therefore, using a loop with gInventory.Transparency++; is not recommended as it will probably end too quickly.
If you're not already, see if doing this:
int trans = gThegui.Transparency + 1;
gThegui.Transparency = trans;
...makes a difference. Obviously it might not (for a change by 1 since it's doing the same thing), but that's the recommended route for modifying the transparency.
The default room file is called
_blank.crm. If your game has one of those it will use that as a template when creating a new room. Try deleting/replacing it and see if that helps. ;)
Hmm, could've sworn I never had the rounding thing come up before. I guess I didn't pay much attention because I wasn't as concerned about the speed of the transition. Thanks guys, though I think that deleting the default room shouldn't be necessary!
Edit: Also, deletion didn't fix it ;(.
I think it might have the same template built-in. Have you tried replacing it?
Quote from: ProgZmax on Wed 13/01/2010 12:38:27
Rooms create at the resolution of whatever the default setting was, which I consider a bug. I have the settings at 320x240 and it is consistently creating 320x200 rooms which I must then load a background into to adjust to the proper resolution. Normally I wouldn't have noticed but I was testing a gui in the empty room and since 40 pixels were missing I couldn't see it and spent 20 minutes wondering why. ;D
This is because the default room template is a 320x200 room. You're right that it's counter-intuitive but you can easily fix it by creating your own New Room Template at the right resolution, and then using that for your new rooms. I need to consider how to improve this.
This build seems to have the potential for breaking as far as room creation and transitions go.
I've sent you a build that illustrates the issue with switching rooms and having completely new rooms remain entirely black in spite of having backgrounds. I tried deleting and re-creating every room but aside from objects the rooms stay completely black. Some kind of bug got triggered somewhere because the problem carries on to every room beyond the first.
In the meantime I've gone back to 3.1, converted everything I had over to it and am having none of these problems.
Edit: I may have fixed this by making a new room and saving it as a template.
I noticed this bug occasionally.
On the AGS Preferences window there's a New Game Directory option. When typing in custom folder, I found it only allows to manually type in 5 characters...
Same with "Import directory".
Quote from: ProgZmax on Sun 24/01/2010 22:57:46
This build seems to have the potential for breaking as far as room creation and transitions go.
I've sent you a build that illustrates the issue with switching rooms and having completely new rooms remain entirely black in spite of having backgrounds. I tried deleting and re-creating every room but aside from objects the rooms stay completely black. Some kind of bug got triggered somewhere because the problem carries on to every room beyond the first.
I tried out the game you sent, the problem seems to be caused in your Rain.asc module, it's probably something to do with the DrawingSurface routines in there. If I remove the Rain module, room 2 fades in fine.
QuoteOn the AGS Preferences window there's a New Game Directory option. When typing in custom folder, I found it only allows to manually type in 5 characters...
Same with "Import directory".
Well spotted thanks, I'll fix this.
The rain module worked in 3.1 without any modifications so I'm not sure why it displays a large black area like that since it's just drawing lines onto the background, but yeah, removing it (and fixing some of the wonky rooms I was importing) took care of the black screen problem!
I'm not sure when this changed but in the current version, if you set the Room.BackgroundAnimationDelay to 0 it's equivalent to setting it to 1. Previously setting it to 0 would halt the animation. Some versions of my modules rely on the old behaviour.
(And setting it to -1 appears to be the same as setting to a large number - the background flips after about 10 seconds. Also, I don't see any way of setting the current background frame.)
Quote from: SteveMcCrea on Tue 02/02/2010 03:08:13Also, I don't see any way of setting the current background frame.
SetBackgroundFrame(int frame)?
In fact, I've never heard of Room.BackgroundAnimationDelay until now, and it's not mentioned in the manual either (except the room's own option that you set in the editor). Is this really accessible in-game for reading or writing?
Quote from: Gilbet V7000a on Tue 02/02/2010 06:57:01
In fact, I've never heard of Room.BackgroundAnimationDelay until now, and it's not mentioned in the manual either (except the room's own option that you set in the editor). Is this really accessible in-game for reading or writing?
No, I was referring to the setting in the editor.
GG, oh. For some reason I was looking for a Room. function :)
That would probably fix it, if it resets the background animation countdown.
Cheers!
I am studying 9-verbs template and noticed some of the properties description in the properties schema are written in German. With all due respect to Deutch language, I guess it will be more convenient for international users to have them in English ;)
Maybe it was just a German module, template or just the word "null"?
Quote from: Crimson Wizard on Thu 04/02/2010 17:38:55
I am studying 9-verbs template and noticed some of the properties description in the properties schema are written in German. With all due respect to Deutch language, I guess it will be more convenient for international users to have them in English ;)
Really... well, then I'd better work those parts over ;D
Btw. the international crowd might also appreciate a proof read manual... ::)
----edit:
Alright, found it. Well, all those custom properties are not in use - it's save to delete them.
Thanks for the heads up!
For more template discussion, please have a look here ;)
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=38874.0
Well, I just hope there will be updated version of this template in final AGS 3.2 release.
Quote from: SteveMcCrea on Tue 02/02/2010 03:08:13
I'm not sure when this changed but in the current version, if you set the Room.BackgroundAnimationDelay to 0 it's equivalent to setting it to 1. Previously setting it to 0 would halt the animation. Some versions of my modules rely on the old behaviour.
I don't think this behaviour has changed, but yes there should be an option in the editor to disable the background animating.
QuoteWell, I just hope there will be updated version of this template in final AGS 3.2 release.
Thanks for the reminder, I'll make sure to include the latest version of the template in the 3.2 final.
Bug:
When renaming Global Variable, list is not automatically sorted.
to reproduce:
1. Create couple of GVs; notice they are sorted in alphabetical order.
2. Create a new GV with name alphabetically preceding existing variables.
3. Double-click on last variable and change its name to something alphabetically posterior. Click OK. Notice that list is not sorted.
I have quite an issue with the Tint() function in this version of the engine.
Until now I scripted my game on the 3.1.2 SP1 release - using DirectX 9 - and there's a critical gameplay element involving colors. A set of characters whose colors change depending of a binary word value. There can be 4bit colors, 5bit, 8bit, 16bit or 24bit as examples from all the ones.
How the Tint() function worked in 3.1.2 was intuitive and fine tuned for this kind of work, since I only had to convert a byte word into simple RGB channels. And after some work the result turned out fine as showed for this character - who uses only one 8bit channel in this case:
(http://yeppoh.stage-select.com/www/misc/Color312_DX9.jpg)
But upon switching to 3.2, it doesn't work anymore :
(http://yeppoh.stage-select.com/www/misc/Color320_DX9DD5.jpg)
I noticed that the Luminance value seemed to have a different behavior than previously, so I set it to 100, but didn't give the same result either :
(http://yeppoh.stage-select.com/www/misc/Color320_DX9DD5100.jpg)
After many testing I've also discovered that my trick doesn't work in DirectDraw mode - neither in 3.2 nor in 3.1.2. Giving the same results as the last two above.
I don't know how I could go around that while being sure that the result will be as correct as in the previous release of the AGS engine, since I don't know how the Tint() system has changed or if it's a bug.
Quote from: Crimson Wizard on Thu 25/02/2010 02:20:58
When renaming Global Variable, list is not automatically sorted.
Thanks for the report, I'll look into it.
QuoteI have quite an issue with the Tint() function in this version of the engine.
This is because the Tint function in 3.2 has been fixed to be the same in Direct3D as it always has been in DirectDraw. AGS 3.1.x had a bug where Direct3D tinting gave a different result (as you've discovered).
However, some people preferred the "buggy" D3D method of tinting, so for a future version I'm planning to add an option to select between the two, if I can get DirectDraw to correctly mimic this type of D3D tint.
OK thanks for clearing that out.
Meanwhile, after I ran some tests to understand the difference with the actual Tint(), I can use a RGB to HSV conversion using the "hexcone" model. The color values won't be exactly the same since I have to sample a 255 scale down to a 100 one for the luminance, but it'll be visually close enough to do the trick if nobody is so obsessive to check if the pixels match the shown numbers.
Ok, well I was hoping to get more fixes into the Final release, but I've had so little time to work on it that I thought it was better to just get something released; I don't think there are any bugs now that are regressions from 3.1.2 so it should be safe to go ahead with this release.
So, please download the Final and try it out. Assuming no big problems are found, I'll make it the Official release on the website in a week or so.
Great, backing up and testing!
Thanks CJ. Even if the alpha fix didnt make this revision.
Tops! :D
Sparky.
Quote from: Pumaman on Sun 03/05/2009 15:34:47* "Export all sprites in folder" command now exports 32-bit sprites as PNGs to prevent losing alpha channel
Brilliant, this should be very useful! Any chance for PNG support for DynamicSprite.CreateFromFile and DynamicSprite.SaveToFile (the latter I guess is not that important until DrawingSurface
fully supports functions can create a new alpha channel or merge two or more existing alpha channels)?
Looking forward to try the new build. Thanks CJ!
Quote from: GarageGothic on Tue 23/03/2010 04:48:08(the latter I guess is not that important until DrawingSurface fully supports alpha channels)
Urk.. :-\
If I've said it once, I've said it a thousand times. DynamicSprites and DrawingSurfaces
do support alpha channels in every single sense that AGS supports alpha channels. The only thing you
can't do is use the DrawingSurface functions to
merge two or more alpha channels together or
create a new alpha channel. The most you can preserve when using the DrawingSurface functions is a single pre-existing alpha channel.
..just saying.
Glad to see this is nearly ready to be unleashed upon the public. :)
Ah, monkey, I knew you would drop by to point this out which was exactly why I put the modifier "fully" in the sentence. Can we please agree that "the only thing you can't do" is also a frequently requested feature?
No need to point out every bloody time that you know better, I think it's an established fact that you do ;)
I must agree, 'complete' alpha channel support on everything from dynamicsprites to GUI's, and I'd have really no other greater request.
I would feel complete. :D
Quote from: Ryan Timothy on Tue 23/03/2010 16:12:04
I would feel complete. :D
When that addition arrives CJ can call it the Nirvana Edition ;D
I just tested the new version but the sideborders for widescreen monitors don't appear for me. The game is 800x600 and my laptop's resolution is 1280x800.
Quote from: GarageGothic on Tue 23/03/2010 12:14:38
Ah, monkey, I knew you would drop by to point this out which was exactly why I put the modifier "fully" in the sentence. Can we please agree that "the only thing you can't do" is also a frequently requested feature?
No need to point out every bloody time that you know better, I think it's an established fact that you do ;)
I know that as well as you know that I know that you know that I know. But still you insist on wording your suggestion incorrectly which breeds misinformation and confusion. As I said, in every single sense the AGS supports alpha channels, the DrawingSurface functions support them as well. It may not be logical to expect anything other than the DrawingSurface functions to be able to create a new alpha channel or merge two or more existing channels. However, it is a completely new functionality and so I find it important to point this out. The DrawingSurface functions are not any more limited than other parts of AGS in this respect, and do "fully" support alpha channels in as much as every other bit of AGS does.
::)
Besides, if I wasn't around to be analytical about things like this, who would be? :=
I have the same problem as Mr.Matti. There are no sideborders showing up for me in fullscreen. I'm on a widescreen laptop at a 1440x900 resolution.
Quote from: monkey_05_06 on Wed 24/03/2010 00:28:34The DrawingSurface functions are not any more limited than other parts of AGS in this respect, and do "fully" support alpha channels in as much as every other bit of AGS does.
Well, GUIs now DO support additive opacity, but anyhow:
Quote from: GarageGothic on Tue 23/03/2010 04:48:08(the latter I guess is not that important until DrawingSurface fully supports functions can create a new alpha channel or merge two or more existing alpha channels)
Happy?
Quote from: GarageGothic on Wed 24/03/2010 18:02:32Quote from: GarageGothic on Tue 23/03/2010 04:48:08(the latter I guess is not that important until DrawingSurface fully supports functions can create a new alpha channel or merge two or more existing alpha channels)
Happy?
;D
Argh! I'm terribly sorry: there were still some minor bugs (mostly high-res related) in the template you've included.
To be honest I've already fixed them last week, but I haven't expected that the final version is already on its way. Would it be a big issue to update the 9-verb template once more?
On the other hand: wohoo for the finishing line in sight :D
QuoteI just tested the new version but the sideborders for widescreen monitors don't appear for me. The game is 800x600 and my laptop's resolution is 1280x800.
QuoteI have the same problem as Mr.Matti. There are no sideborders showing up for me in fullscreen. I'm on a widescreen laptop at a 1440x900 resolution.
Is this the first time you guys have tried 3.2, or were the borders working for you in previous beta releases?
If you're not getting the borders, could you download DebugView from here:
http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
run the DbgView.exe from that download, and then run your AGS game. When the game has loaded, just quit again.
Then, have a look in DebugView and you should see a log of the game loading, which should explain why the borders are not there -- could you post the relevant bit of the log here?
QuoteArgh! I'm terribly sorry: there were still some minor bugs (mostly high-res related) in the template you've included.
To be honest I've already fixed them last week, but I haven't expected that the final version is already on its way. Would it be a big issue to update the 9-verb template once more?
Yeah, it's been spotted that the splash screen says "beta release" on it so I'll probably have to do another release anyway. Let me know when the fixed version of the template is available.
I've been having problems with widescreen borders.
DebugView shows this:
00000032 46.08158112 [5684] AGS: Widescreen side borders: disabled
(not necessary, game 320 x 200 and screen 1920 x 1200 aspect ratios match)
00000033 46.11190414 [5684] AGS: Attempt to switch gfx mode to 320 x 200 (32-bit)
00000034 46.12469101 [5684] AGS: Attempt to switch gfx mode to 320 x 240 (32-bit)
00000035 46.12474442 [5684] AGS: Attempt to switch gfx mode to 320 x 200 (24-bit)
00000036 46.12478638 [5684] AGS: Attempt to switch gfx mode to 320 x 240 (24-bit)
00000037 46.12492752 [5684] AGS: 320x200 not supported, trying with 2x filter
00000038 46.12496948 [5684] AGS: Widescreen side borders: disabled
(not necessary, game 320 x 200 and screen 1920 x 1200 aspect ratios match)
00000039 46.14693832 [5684] AGS: Attempt to switch gfx mode to 320 x 200 (32-bit)
00000040 46.18787766 [5684] AGS: Attempt to switch gfx mode to 320 x 240 (32-bit)
00000041 46.47136688 [5684] AGS: Preparing graphics mode screen
00000042 46.47145844 [5684] AGS: Screen resolution: 320 x 240; game resolution 320 x 200
So I get borders all round, and a squashed game.
The solution is obvious :D
DebugView gave me this:
...
00000027 9.45556450 [2232] AGS: Initializing screen settings
00000028 9.45561695 [2232] AGS: Init gfx filters
00000029 9.45567417 [2232] AGS: Init gfx driver
00000030 9.45571423 [2232] AGS: Switching to graphics mode
00000031 9.48756790 [2232] AGS: Widescreen side borders: gfx card does not support suitable resolution. will attempt 960 x 600 anyway
00000032 9.48767948 [2232] AGS: Attempt to switch gfx mode to 960 x 600 (32-bit)
00000033 9.48789978 [2232] AGS: Attempt to switch gfx mode to 800 x 600 (32-bit)
00000034 10.03549480 [2232] AGS -- InitializeD3DState()
00000035 10.03589439 [2232] AGS: Preparing graphics mode screen
00000036 10.03591347 [2232] AGS: Initializing colour conversion
00000037 10.03600216 [2232] AGS: Check for preload image
00000038 10.03614521 [2232] AGS: Initialize sprites
00000039 10.03656387 [2232] AGS: Set up screen
...
EDIT: Yes, it was the first time I used 3.2, I didn't test any beta version.
From DebugView:
Quote[3148] AGS: Initializing screen settings
[3148] AGS: Init gfx filters
[3148] AGS: Init gfx driver
[3148] AGS: Switching to graphics mode
[3148] AGS: Widescreen side borders: gfx card does not support suitable resolution. will attempt 384 x 240 anyway
[3148] AGS: Attempt to switch gfx mode to 384 x 240 (32-bit)
[3148] AGS: Attempt to switch gfx mode to 320 x 240 (32-bit)
[3148] AGS: Attempt to switch gfx mode to 320 x 240 (24-bit)
[3148] AGS: 320x200 not supported, trying with 2x filter
[3148] AGS: Widescreen side borders: gfx card does not support suitable resolution. will attempt 384 x 240 anyway
[3148] AGS: Attempt to switch gfx mode to 384 x 240 (32-bit)
[3148] AGS: Attempt to switch gfx mode to 320 x 240 (32-bit)
[3148] AGS -- InitializeD3DState()
[3148] AGS: Preparing graphics mode screen
[3148] AGS: Screen resolution: 320 x 240; game resolution 320 x 200
I upgraded to 3.2 just before you released the final version, it hasn't worked in either.
Just so you know,
some video drivers change the aspect ratio of 320x200 and 640x400 resolutions to 4:3 for legacy purposes,
and not less important, if the game is trying to run at a uncommon/unsupported resolution, you're supposed to add it manually to the video drivers.
If this is the final release, the badge on the splash screen still says "3.2 Beta Release".
Well...
Quote from: Pumaman on Thu 25/03/2010 21:39:09
Yeah, it's been spotted that the splash screen says "beta release" on it so I'll probably have to do another release anyway. Let me know when the fixed version of the template is available.
I still hate the fact AGS runs 16:10 aspects fine under Vista/Win7 ONLY if the resolution is set above 640x400.
Im guessing thats exactly what Alan v. Drake was talking about. A minor hindrance but it would be nice not to have to run our game at 4x nearest neighbor every time we want to test it.
Cheers,
Sparky.
Thanks for getting DebugView and testing it, guys!
QuoteI've been having problems with widescreen borders.
DebugView shows this:
So I get borders all round, and a squashed game.
The solution is obvious
Thanks, that's now fixed.
QuoteDebugView gave me this
In this case, your graphics card doesn't support the 960x600 resolution which would be necessary to run the game with side borders. There's nothing AGS can do about this, though you may be able to somehow enable the resolution in your graphics card control panel.
QuoteI upgraded to 3.2 just before you released the final version, it hasn't worked in either.
This might be fixed by the new version, can you let me know if it works.
QuoteI still hate the fact AGS runs 16:10 aspects fine under Vista/Win7 ONLY if the resolution is set above 640x400.
I'm not really sure what you mean. In what way does it not work? Any problems with 320x200/320x240 games are probably just caused by your graphics card drivers not supporting those resolutions.
Anyway, yes Final 2 is now up. This fixes a few issues, but as there are some relatively important changes, I'd like to treat it more like an RC release and give it more time before declaring it completed.
Anti-aliased true type fonts always :) I could kiss you :D
Anti-aliasing fontage! WHOOOOOOOOoooooo.........ooooooOOOOOOOOO! \o/
Quote from: Pumaman on Sat 03/04/2010 15:20:25
This might be fixed by the new version, can you let me know if it works.
It still doesn't work. Lousy laptop!
Quote from: Chrille on Wed 07/04/2010 15:40:57
It still doesn't work. Lousy laptop!
Pity ... looks like your laptop doesn't support any suitable resolutions. You could try turning on the 3x filter in Setup and see if that works.
CJ, I'm wondering - would it be possible to add a function to the plugin API to override AGS' viewport initialization so that the plugin could take care of all rendering while AGS runs in the background handling the game logic? Seems like that could solve a lot of issues people are having with resolutions and also allow for aspect-ratio independent games.
Also, many thanks for the improved anti-aliased font support!
I seem to be having a problem with the Object.Move command in a room_RepExec() function.
Bottom line: it doesn't work. Whenever I perform an action on something in the room, however, the move gets executed.
AGS 3.2 Final 2
If the move is non-blocking are you certain that you are providing adequate conditionals to prevent the Object.Move from being called every game loop? Coz if you keep calling it over and over then clearly it won't work.
QuoteCJ, I'm wondering - would it be possible to add a function to the plugin API to override AGS' viewport initialization so that the plugin could take care of all rendering while AGS runs in the background handling the game logic? Seems like that could solve a lot of issues people are having with resolutions and also allow for aspect-ratio independent games.
Possibly, though that could get quite complicated. It's something to think about for future versions.
QuoteI seem to be having a problem with the Object.Move command in a room_RepExec() function.
Bottom line: it doesn't work. Whenever I perform an action on something in the room, however, the move gets executed.
As monkey_05_06 says, you are probably calling Object.Move every game cycle, which means it is continually restarting its move. You need to consider when exactly you want the move to start.
Anyway, Final 3 is now up with a couple of fixes for reported issues. This time I really am planning to make this the official release version, because 3.2 has been in beta for a year now! So if no other issues are found in the next week, this is becoming official :)
Although this is not technically a bug it is certainly an annoying quirk of the editor.
If a GUI is very tall (for example if you want to scroll it) the entire gui obviously wont be shown in the editor but there are no scroll bars or anything..
So guis either need to have a maximum height or it needs scroll bars.
Quote from: monkey_05_06 on Sun 25/04/2010 13:58:36
If the move is non-blocking are you certain that you are providing adequate conditionals to prevent the Object.Move from being called every game loop? Coz if you keep calling it over and over then clearly it won't work.
Actually, I'm using a timer so it gets called only every 3 seconds or so.
Like I said, the funny thing is that the move does get executed AFTER I click on something, rather then all the time. I'll dig into this some further, though. Maybe there's some other script blocking it.
Thanks CJ for that. Hopefully you can release it as is and you can worry about people's nitpicks and bugfixes for the next release. Or even another service pack down the track.
There is a teeny tiny glitch that happens to me at least once a day and I imagine it happens to a lot of other people as well. I finally figured out yesterday how to recreate the issue each time, flawlessly.
When you hover your mouse over something (before or after the info box pops up) like so:
(http://www.bryvis.com/entertainment/other/agsf/box_glitch1.png)
Then if you move your mouse to the top bar and click on a tab, this happens:
(http://www.bryvis.com/entertainment/other/agsf/box_glitch2.png)
It will cover that area and won't let you click through it. If you aren't quick enough, the box will appear where it's supposed to but still cover everything when you switch tabs.
The thing is, the damn box is not only opaque, it also steals clicks. The only way to remove the info box is to unmaximize the application. Minimizing it will actually have it be there still and it'll cover every other application, until you unminimize it. Or you can click back onto the original script IF the hover box isn't covering it completely - which will also remove it.
yep ive encountered that several times too.
Yeah, the persistent tooltip thing happens often.
I think I came across the same issue, or something very similar, but couldn't figure out how to reproduce it - did you guys also have the tooltip appearing as its own entry in the windows task bar?
With the latest version of ags, trying to run a .Play() command (I haven't tried the old way) with "No digital sounds" as audio device, causes an Illegal exception.
Quote from: Alan v.Drake on Tue 27/04/2010 12:18:40
With the latest version of ags, trying to run a .Play() command (I haven't tried the old way) with "No digital sounds" as audio device, causes an Illegal exception.
Got myself a reproducible error message. The game crashes with a fatal exception every time at this point.
This might be related to Alan v.Drake's sound problems.
Quote from: Illegal ExceptionAn exception 0xC0000005 occurred in ACWIN.EXE at EIP = 0x0043ACAA ; program pointer is +6, ACI version 3.20.1106, gtags (0,40)
AGS cannot continue, this exception was fatal. Please note down the numbers above, remember what you were doing at the time and post the details on the AGS Technical Forum.
in "room2.asc", line 36
Most versions of Windows allow you to press Ctrl+C now to copy this entire message to the clipboard for easy reporting.
An error file CrashInfo.dmp has been created. You may be asked to upload this file when reporting this problem on the AGS Forums. (code 0)
Line 36 reads "Game.StopAudio ();". From my understanding of the situation, this should stop all audio playing if passed with no parameters, yes?
Just to see if one of the Game.StopAudio parameters was the problem, I tried:
Game.StopAudio (eAudioTypeMusic);
Game.StopAudio (eAudioTypeAmbientSound);
Game.StopAudio (eAudioTypeSound);
But this ran as expected.
Great changes in the changelog, I'm porting HHGTG to new version, backing up and the rest, since I've just made it more stable that's all!
EDIT: Great idea of the audio cache folder!!
EDIT2:
Quote
Unable to find aMusic25 which was set as this room's start music
I'm getting this error.(warning in fact). But it doesn't allow the game to compile, nor does it tell me where the error is, nor there is PlayMusic(25); in any room. I think you've removed the PlayMusic room property thing on the interaction thingy. And perhaps it's set there, and doesn't allow game to compile, and I can't access it to fix it.
EDIT3: However adding a music file named 'aMusic25' fixes everything and the game compiles okay.
Quote from: Dualnames on Tue 27/04/2010 13:53:03Quote
Unable to find aMusic25 which was set as this room's start music
I'm getting this error.(warning in fact). But it doesn't allow the game to compile, nor does it tell me where the error is, nor there is PlayMusic(25); in any room. I think you've removed the PlayMusic room property thing on the interaction thingy. And perhaps it's set there, and doesn't allow game to compile, and I can't access it to fix it.
EDIT3: However adding a music file named 'aMusic25' fixes everything and the game compiles okay.
Does this music file play anywhere when you compile and run the game?
Quote from: Sslaxx on Tue 27/04/2010 16:15:33
Quote from: Dualnames on Tue 27/04/2010 13:53:03Quote
Unable to find aMusic25 which was set as this room's start music
I'm getting this error.(warning in fact). But it doesn't allow the game to compile, nor does it tell me where the error is, nor there is PlayMusic(25); in any room. I think you've removed the PlayMusic room property thing on the interaction thingy. And perhaps it's set there, and doesn't allow game to compile, and I can't access it to fix it.
EDIT3: However adding a music file named 'aMusic25' fixes everything and the game compiles okay.
Does this music file play anywhere when you compile and run the game?
Not in script. It probably got stuck on PlayMusicOnLoad property that is now removed.
There's a bad error report when you miss the double equals sign with Random, like so:
if (Random(3)=1) {
}
It results in the error message:
Quoteexpected semicolon after ')'
Definitely not a horrible issue, just figured I'd mention it.
Quote from: Ryan Timothy on Fri 30/04/2010 20:57:06
There's a bad error report when you miss the double equals sign with Random, like so:
if (Random(3)=1) {
}
It results in the error message:
Quoteexpected semicolon after ')'
I'm pretty sure you can only use random with a variable.
EG.
int ran1 = Random(3);
if (ran1 == 1)
{
}
May be wrong, so if I am disregard my message.
Never mind. Misread your post.
I was porting this game today from 2.72 to 3.1.2, and well all the variables were ported perfectly, however variables used this way in 2.72:
SetGraphicalVariable("NAME");
or GetGraphicalVariable("NAME");
Weren't ported correctly, and I had to go alll the way and replace them, not much of a job, but totally boring and tedious.
CJ, will this be fixed in the new version?:
"Need to move mouse before button functions properly". (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=40776.msg539033#msg539033)
I'm currently using v3.1.2 SP1, February 2009.
Thanx.
QuoteAlthough this is not technically a bug it is certainly an annoying quirk of the editor.
If a GUI is very tall (for example if you want to scroll it) the entire gui obviously wont be shown in the editor but there are no scroll bars or anything..
So guis either need to have a maximum height or it needs scroll bars.
QuoteThere is a teeny tiny glitch that happens to me at least once a day and I imagine it happens to a lot of other people as well. I finally figured out yesterday how to recreate the issue each time, flawlessly.
Thanks for these, however please can you post things like this in a seperate thread.
I'd like to keep this 3.2 release thread for ONLY problems which are specific to AGS 3.2 and that don't affect previous versions.
QuoteWith the latest version of ags, trying to run a .Play() command (I haven't tried the old way) with "No digital sounds" as audio device, causes an Illegal exception.
Thanks for reporting this, I have reproduced it and will fix it.
QuoteThe game crashes with a fatal exception every time at this point.
Line 36 reads "Game.StopAudio ();". From my understanding of the situation, this should stop all audio playing if passed with no parameters, yes?
Thanks, I'll fix this too.
QuoteI'm getting this error.(warning in fact). But it doesn't allow the game to compile, nor does it tell me where the error is, nor there is PlayMusic(25); in any room. I think you've removed the PlayMusic room property thing on the interaction thingy. And perhaps it's set there, and doesn't allow game to compile, and I can't access it to fix it.
Ah, is the message not telling you which room it applies to? I'll fix that.
When AGS 3.2 compiles the game, it goes through all the rooms and if they have a "Play music on room load" set, it tries to convert that by adding a line of script to the Player Enters Room event. So if you had set the room's on-load music to Music 25, but you didn't have a MUSIC25.OGG file in the music folder, you will get this warning.
However, this is only a warning, not an error, and should not stop your game from running.
QuoteThere's a bad error report when you miss the double equals sign with Random, like so:
Hmm, that's not specific to Random, it happens with any function call if you do that. I appreciate it's not a perfect error message, but it's probably not something I'll spend any time changing.
QuoteI was porting this game today from 2.72 to 3.1.2, and well all the variables were ported perfectly, however variables used this way in 2.72:
SetGraphicalVariable("NAME");
or GetGraphicalVariable("NAME");
Weren't ported correctly, and I had to go alll the way and replace them, not much of a job, but totally boring and tedious.
What exactly was the problem? Graphical Variables are such an old concept from AGS 2.x that there probably isn't an easy way of porting them.
QuoteCJ, will this be fixed in the new version?:
"Need to move mouse before button functions properly".
I'm currently using v3.1.2 SP1, February 2009.
That should already be fixed in 3.2.
Quote from: Pumaman on Sun 02/05/2010 16:41:44
QuoteCJ, will this be fixed in the new version?:
"Need to move mouse before button functions properly".
I'm currently using v3.1.2 SP1, February 2009.
That should already be fixed in 3.2.
I checked v3.2.0 Final 3 and it seems it is not fixed although the Final 2 change list does mention it should be fixed...
Quote from: [ Arj0n ] on Sun 02/05/2010 17:55:01
I checked v3.2.0 Final 3 and it seems it is not fixed although the Final 2 change list does mention it should be fixed...
Ah, thanks -- it was still broken if you had a Wait() just before setting the Visible=true. This is now fixed.
So, Final 4 is now up, which fixes the reported crashes and a few other issues. Please let me know if you have any problems with this -- as I've said far too many times now, this will become the official 3.2 release if no issues are found over the next week.
Quote from: Pumaman on Sun 02/05/2010 16:41:44
QuoteI was porting this game today from 2.72 to 3.1.2, and well all the variables were ported perfectly, however variables used this way in 2.72:
SetGraphicalVariable("NAME");
or GetGraphicalVariable("NAME");
Weren't ported correctly, and I had to go alll the way and replace them, not much of a job, but totally boring and tedious.
What exactly was the problem? Graphical Variables are such an old concept from AGS 2.x that there probably isn't an easy way of porting them.
I know Graphical Variables are an old concept. However when compiling a game from 2.72 to 3.xx, AGS manages to convert all of them into IntVar_ecc.
Which is great, except for those
SetGraphicalVariable("NAME");
or GetGraphicalVariable("NAME");
Used with those functions. From what I get AGS succesfully converts Graphical Variables into Global variables, placing the import and export thing to the header and global script.
For a reason, some leftovers where there, I've managed to successfully port the game, so no worries, I just thought it'd be nice to mention. That's all.
I know it's an procedure that we are warned that not all will go well, so it's really clear. But in case you feel like fixing this. I know you're a busy man, and this is probably a waste of time.
Quote from: Pumaman on Sun 02/05/2010 20:15:32
Quote from: [ Arj0n ] on Sun 02/05/2010 17:55:01
I checked v3.2.0 Final 3 and it seems it is not fixed although the Final 2 change list does mention it should be fixed...
Ah, thanks -- it was still broken if you had a Wait() just before setting the Visible=true. This is now fixed.
So, Final 4 is now up, which fixes the reported crashes and a few other issues. Please let me know if you have any problems with this -- as I've said far too many times now, this will become the official 3.2 release if no issues are found over the next week.
Yep, I'm using a Wait() before the Visible=True indeed.
Checked the Final 4 version and the problem is fixed.
Thanx :D
Not sure exactly if this is a bug but I seem to have difficulties using the on_event function to callback an event on game restore. I'm simply trying to output a display message to say the game has been restored but the screen seems to be stuck on black (no fade in after restore).
See here (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=40774.0)
The eEventRestoreGame event gets fired before the room in question is actually loaded into memory (and is therefore called even before eEventEnterRoomBeforeFadein). So, no, it's not a bug. It's by design. To display a message to the user you will have to track yourself whether the eEventRestoreGame event has been fired, and display the message from another function (room_AfterFadein, room_RepExec, repeatedly_execute (from a non-room script), etc.).
Hey; I don't know if you are still accepting bug reports for 3.2f4 or anything, but I wanted to let you know while I remembered.
Sometimes when switching around tabs (I usually use ctrl+(shift+)tab) if the mouse is hovering over something when I switch, a tooltip will persist onscreen (usually telling me what a function does). When this occurs, I can sometimes get rid of it by switching back to the script the tooltip is from, but the other day I had one that refused to go away even once I closed every tab - I had to quit AGS and load it back up again to get rid of it.
Quote from: MurrayL on Tue 11/05/2010 15:17:12
Hey; I don't know if you are still accepting bug reports for 3.2f4 or anything, but I wanted to let you know while I remembered.
Sometimes when switching around tabs (I usually use ctrl+(shift+)tab) if the mouse is hovering over something when I switch, a tooltip will persist onscreen (usually telling me what a function does). When this occurs, I can sometimes get rid of it by switching back to the script the tooltip is from, but the other day I had one that refused to go away even once I closed every tab - I had to quit AGS and load it back up again to get rid of it.
Reported already. http://www.adventuregamestudio.co.uk/yabb/index.php?topic=37668.msg538358#msg538358
Oh, my bad! That'll teach me not to look properly. :-X
BUG: Alpha still doesn't work on GUIs. For example alpha blended inventory items.
Cheers,
Sparky.
Quote from: subspark on Wed 12/05/2010 12:08:03
BUG: Alpha still doesn't work on GUIs. For example alpha blended inventory items.
Cheers,
Sparky.
Don't think it's been implemented yet, probably not for this thread.
EDIT: On a serious note, just release as is. And work on all the next bugs and features for the next release IMO.
Thanks Xenogia, that makes a bit more sense.
Cheers,
Sparky
QuoteI know Graphical Variables are an old concept. However when compiling a game from 2.72 to 3.xx, AGS manages to convert all of them into IntVar_ecc. Which is great, except for those
SetGraphicalVariable("NAME");
or GetGraphicalVariable("NAME");
Ah ok. Yeah, it would be nice for that to happen automatically, but there are so few 2.x games that use GRaphical Variables at this point that it's probably not worth the hassle now.
QuoteOn a serious note, just release as is. And work on all the next bugs and features for the next release IMO.
Yes, this is my plan. However, there's still an issue with backwards compatiblity with the audio system that I need to investigate; I don't want to release a Final version that has a regression and breaks old games that are still using the old audio commands.
Quote from: Pumaman on Mon 31/05/2010 18:55:09
QuoteI know Graphical Variables are an old concept. However when compiling a game from 2.72 to 3.xx, AGS manages to convert all of them into IntVar_ecc. Which is great, except for those
SetGraphicalVariable("NAME");
or GetGraphicalVariable("NAME");
Ah ok. Yeah, it would be nice for that to happen automatically, but there are so few 2.x games that use GRaphical Variables at this point that it's probably not worth the hassle now.
QuoteOn a serious note, just release as is. And work on all the next bugs and features for the next release IMO.
Yes, this is my plan. However, there's still an issue with backwards compatiblity with the audio system that I need to investigate; I don't want to release a Final version that has a regression and breaks old games that are still using the old audio commands.
Any ETA on how long it'll take you to stamp out the regression?
Cut down the compatibility (the sooner the better). You've made too many changes to the engine and having to carry on that carrion is forcing you to make bad compromises and working more than necessary.
AGS is finally starting to get good, it would be a real shame having its progress dampened for the sake of compatibility.
- Alan
I agree with Alan.. although I phrase my agreement in a less aggressive fashion.
Quick question and apologies if it was mentioned before in this thread. I couldn't look through all 20 pages!
Is it me, or are the automatic font outlines less thick than they used to be in previous? I'm making a 640 x 480 game and the outline is only one pixel thick, which is barely noticeable at all. Is this a new feature or was it like this all the time and I never noticed?
Quote from: Calin Leafshade on Mon 31/05/2010 19:36:00
I agree with Alan.. although I phrase my agreement in a less aggressive fashion.
Have either of you thought there might be other (possibly commercial-related) reasons to retain compatibility?
QuoteI agree with Alan.. although I phrase my agreement in a less aggressive fashion.
Well, aggressive phrase or not, I agree with this idea. The sooner AGS 3x can stand on its own 'blue saucer' the better.
QuoteHave either of you thought there might be other (possibly commercial-related) reasons to retain compatibility?
I have actually yes. And I think that it is most important that there be a regular link to previous AGS releases on the main website. It was nearly impossible to find 2.6 and I didn't find it here.
To be fair to all, when a commercial production starts here at my studio, like many others, we commit to a version of UE3/AGS/Unity and stick with it so that we avoid having to re-write or re-work anything significant. The same commercial practices would
or really should apply with other commercial studios.
To get back on point (A), I'll be completely honest with you guys, AGS deserves a spring clean. And if I were a betting man, which I am, I'd say Chris grows lethargic of supporting a near-giant backlog of features and perhaps hopes that the majority of us can support the idea of a lighter, clutter-free AGS soon.
Of course, the downside here is that it may be a fair slog to pull out obsolete 2x features and still keep 3x features working, but really in the long run, the benefits are there staring us in the face.
I assure you I certainly don't expect this to be an easy topic for everybody reach a consensus on, but the topic does deserve the opportunity for us to discuss our honest views about it. Perhaps there should be an open, 'reasonable' discussion on what 2x features the community believes belong under the 3x title and what 2x features need to be recorded in the history books.
In any case... this effort and its outcomes is entirely up to your discretion CJ, but I hope you do see where Calin, Alan and I are coming from.
Cheers,
Sparky. :)
Quote from: subspark on Fri 04/06/2010 12:21:03can support the idea of a lighter, clutter-free AGS soon.
This from someone who regularly suggests adding easily scriptable features?
Lol. ;) Well to clarify, by clutter free, I mean obsolete 2x features. The suggestions I make every now and then are just basic ideas I have that I expect have no higher priority than anyone else's.
Anyway, I'm with you here. I feel that this is a necessary change. Does anyone else agree or feel the same way about CJ perhaps eventually removing backwards compatibility from AGS 3x ?
Cheers,
Sparky.
BTW Calin, how come you look ten in your avatar. ;D You remind me of the young Angel from X-Men III.
I think AGS 3.0 is totally different to AGS 2.72, I think it'd be a good point to sacrifice some backwards compatibility and advance the engine. If there are things that hold the engine back, just for the sake of people being able to take their game and advance it to newest AGS. I may sound like a dick, so please spare me.
Quote from: subspark on Fri 04/06/2010 12:21:03Of course, the downside here is that it may be a fair slog to pull out obsolete 2x features and still keep 3x features working, but really in the long run, the benefits are there staring us in the face.
...
...
Perhaps there should be an open, 'reasonable' discussion on what 2x features the community believes belong under the 3x title and what 2x features need to be recorded in the history books.
Quote from: Pumaman on Mon 31/05/2010 18:55:09However, there's still an issue with backwards compatiblity with the audio system that I need to investigate; I don't want to release a Final version that has a regression and breaks old games that are still using the old audio commands.
I'm sorry, but I'm a little lost here. Are you guys talking about 'features' (things AGS 2/3 can do) or 'syntax' (the way the user makes AGS 2/3 do something)? - From CJ's post I assumed it was syntax...but I'm not sure based on the other posts.
If it's about features that AGS 3 inherited from AGS 2 then these features have to be defined and the discussion has to be made on an individual basis. I'd be a little hesitant to reducing the features of AGS though; even if I wouldn't use them all myself.
On the other hand, if it's about syntax, and if the new syntax is well documented, and if it's clearly stated that the old syntax won't work anymore, and considering that the player doesn't need a general engine/interpreter to play the games (like PHP or JavaScript), and if an archive of older key-versions is available (for reasons mentioned by Sub), then I say: the best way to ensure that AGS won't become a Frankenstein's Monster is to enforce the newer (hopefully better) syntax, and get rid of the older (worse?) syntax. And I'd support that direction.
So, ehhh, well...could someone please tell me whether I support Alan, Calin, Sub and Dual? ;)
Your between two topics Miez buddy.
Basically Calin, Alan, Dualnames and myself agree that AGS 2x should stand on its own allowing for AGS 3x to be swept of features that relate to 2x backwards compatibility (being able to use AGS 3 to import older games).
Basically, right now there's a huge bunch of 'engine' code (not to be confused with syntax) that tells AGS 3x how to import a 2x game. We're opting for AGS 3x to have this unnecessary feature removed. It doesn't really make sense anymore. Most of us now have a clear handle on the aging differences 2x has from the newer 3x version. If there are still users wanting to convert their 2x project to the new 3x format, then ultimately AGS 3.2 could be the last version able to do this and it could be hosted among the version numbers (with notes) on the main website as suggested before.
I hope that makes more sense.
Cheers,
Sparky.
Quote from: subspark on Sun 06/06/2010 14:01:12Your between two topics Miez buddy.
Miez is that other Dutch guy who shares some freakish similarities to me (as I once explained in this (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=34542.msg464673#msg464673) post). I know...it confuses me too sometimes. :D
QuoteBasically Calin, Alan, Dualnames and myself agree that AGS 2x should stand on its own allowing for AGS 3x to be swept of features that relate to 2x backwards compatibility (being able to use AGS 3 to import older games).
Basically, right now there's a huge bunch of 'engine' code (not to be confused with syntax) that tells AGS 3x how to import a 2x game.
But for the end-user (not CJ, but me) does this all come back to me being able to use old syntax and the engine understanding it (I know there's more to it from the point of Chris, because it would also include being able to read the original input-files etc, but I'm focussing on the end-user here because...well...frankly I don't care 'how' Chris does it ;) )? - Or are there features (from a user's point of view) in 3x that are obsolete and only exist because 2x had them, and they still have to be in there (for backwards compatibility reasons) even though the only way they are used is through 'outdated' code?
And of course the simple question than arises: would it be possible then to write a 2x-compatibility plug-in that contains the 3x interpretation of 2x data and syntax to use as a buffer/transition-scheme; without it being directly within the 3x source. While this would result in backwards compatibility always lagging behind the release of the final product, it would also force a separation and therefore 2x wouldn't hamper 3x development, and make the 3x engine cleaner.
Just some thoughts...
Realistically we shouldn't demand anything from Chris. Overall it his choice and guess what guys.. it is a FREE program that Chris puts his spare time into. Why do people think that he owes them something with AGS?
^^^^^ agreed. Nothing should be 'demanded' or 'opted for'.
just suggested.
Absolutely. These are all just suggestions here. Nobody's making any demands or decisions for Chris.
'Opting' for the idea was just another way of saying "I stand by Alan's original suggestion", Calin. My choice for words is sometimes a bit mixed up. Sorry for the confusion chief.
Edit: Producing a 3rd party plug-in to allow backwards compatibility to me sounds like a better way of carrying the current official support across into future versions.
Sparky.
QuoteAny ETA on how long it'll take you to stamp out the regression?
After further testing I've confirmed that the problem was already fixed by Final 4.
QuoteCut down the compatibility (the sooner the better). You've made too many changes to the engine and having to carry on that carrion is forcing you to make bad compromises and working more than necessary
QuoteI agree with Alan.. although I phrase my agreement in a less aggressive fashion.
It would have been much easier to develop the new audio system if I had just removed all the old commands like PlayMusic and PlaySound, and said "tough, change all your scripts to use the new commands".
But I can't do that. Put yourself in the position of someone like Dave Gilbert or AGDI who have very large, released games to support. For example, if Dave needs to upgrade to 3.2 to get an unrelated fix, it's not reasonable to expect him to re-code his entire game in the process.
One of the reasons people use AGS is that it has always had good backwards compatibility support, and as much as I'd love to just ditch all the old commands, nobody would ever upgrade to new versions if I did that.
QuoteIs it me, or are the automatic font outlines less thick than they used to be in previous? I'm making a 640 x 480 game and the outline is only one pixel thick, which is barely noticeable at all. Is this a new feature or was it like this all the time and I never noticed?
This hasn't changed, though there might be some difference due to improved TTF anti-aliasing support. Do you have Before and After screenshots?
Anyway, I have uploaded a Final 5, which is important as it fixes a memory leak. I know I've been saying this a lot, but I really do plan to release this if no issues are found in the next couple of weeks.
I truly support any direction the AGS goes. We can't expect a rad version like 3.0 every day! It'd be too much to ask for. We should all lay down with the suggestions and just let it flow. Chris has been doing this forever. He knows best. ;)
Ditching Win98 was a good move. I think AGS is moving into a great direction, and I'm kind of left behind in 3.1.2, I promise I will check up the new audio system. What I said is that for example supporting obsolete thingies like win98 is a good reason to advance the engine.
my actual opinion is that AGS is pretty much *complete*
It does everything it set out to do in a very sensible, logical way.
There are a few loose ends to tie up (alpha channels, damn it) but other than that it is a pretty perfect, low res, 2d adventure game engine.
I agree with you Calin, AGS in its current shape is stable and does exactly what it was intended to do. The majority of the pending feature suggestions (that cannot be solved through scripting) come from users who try to make AGS do things it was never designed for, myself included.
Not to say that there aren't still some valid feature requests still unfulfilled - the lack of widescreen support for higher resolutions being one example. But personally, and without knowing CJ's plans for the engine's future, I would be perfectly happy with a feature lockdown if it was accompanied with greater engine extendability, so we could solve whatever limitations we see and issues we have with the engine ourselves.
My impression - and I have no idea if this is correct - is that CJ, like most of us who started using AGS during our teens or early twenties, has gotten caught up in real world obligations that take a priority over hobby programming (as they should). I totally respect that, and it's one of the main reasons that I've pretty much stopped making feature suggestions and instead try to come up with workarounds in module- and recently plug-in form.
The plugin API is pretty damn powerful but does still has a few limitations in hardware control, the main one I'm struggling with right now being viewport initialization control. And of course there's the Mac/Linux compatibility issue which someone always brings up when I mention that I'm writing a plugin to add some long-requested features. To me it's not a big deal, though it would be a shame if people are hesitant to take advantage of the plugin functions because of this.
I admit I have no idea how dynamically linked libraries are implemented on non-Windows platforms (seeing as all the libraries I'm calling from the plugin are platform agnostic, I don't think it would impossible - though I guess it would mean compiling a version of the plugin for each platform), or how much work it would take for the maintainers of the mac/linux ports of the engine to add hooks to them, which I suppose is a bigger issue.
Well put Garage.
My gut feeling is that AGS will continue to grow in the areas we're all hoping for. Chris is just magic like that. :=
Sparks.
Quote from: Pumaman on Tue 08/06/2010 22:13:59
[..]
But I can't do that. Put yourself in the position of someone like Dave Gilbert or AGDI who have very large, released games to support. For example, if Dave needs to upgrade to 3.2 to get an unrelated fix, it's not reasonable to expect him to re-code his entire game in the process.
One of the reasons people use AGS is that it has always had good backwards compatibility support, and as much as I'd love to just ditch all the old commands, nobody would ever upgrade to new versions if I did that.
[..]
Neither can they expect you to support their old stuff forever.
If 2.7 worshippers want to use the old scriptings, well they can keep up using the old versions, from what I've seen, aside a couple of fix for newer OSes, do they really need more ? I may be wrong, but I seriously doubt it.
I keep pushing only because I think you feel the same. If you want me to stop insisting, well, I'll keep my
mouth shut then.
P.S: I, for one, would gladly upgrade to newer versions.
- Alan
Yeah like I said before it's a sticky area. I upgraded to the newer AGS 2.8 as soon as my 2.72 project completed. Problem solved.
It may not be the same for everyone but I do believe that if your developing a project, it's more than practical to stick with the one engine generation you chose to start with.
But alas... Life isn't fair. SO, we'll have to see. 8)
Sparky.
I usually upgrade through the first stable version available during a game's development cycle unless CJ happens to add one or two features I've really been looking forward to, then I chance on a beta and fiddle with it until I'm satisfied it won't break anything. Also, I don't really see a strong argument against backwards compatibility; from a performance standpoint there's likely no hit with allegro (depending on how cj's approaching it, I've had good results on some of my projects) so it comes down to the effort of making each upgraded component backwards compatible, which yeah, does prolong the development cycle. The one really good thing about backwards compatibility that some people don't understand is that people who mastered ags at an earlier stage, say 2.72, can continue to script in the way they understand in 3.1 with only a few changes instead of having to start over and relearn new-style strings, object-based scripting, and so forth. I am not one of these people since I've been programming for years, but I know people who are in this boat and are very grateful that they can continue merrily along with the function calls and such they learned years ago without having to completely start over.
Anyway, I'll likely give this a try even though I didn't have any issues with the previous build that I can remember.
I understand exactly why the backwards compatibility is being enforced. I would hate to have to go back and recode a bunch of old stuff (there are some old-style things still in Resonance). Unfortunately, the one "feature" that has (to my knowledge) ever been removed from AGS is the one that keeps Resonance back on 3.0.2. :( Ok, so it was an exploit, not a feature...
Running my 320x240 game in 640x480 mode to get high res ttf fonts on a low res game is something I'm not willing to give up. But I really want those new audio features. :'(
Yeah, it's a shame that went away. It's also the reason why Dave Gilbert hasn't (and probably won't) upgrade to a new version. I'm not sure exactly why it should be viewed as broken behavior rather than a bonus (and quite useful) feature that could just be toggled on/off in the editor (via a font property so you could potentially have low and hi res fonts), but oh well.
I think it's because the game is no longer running in 640x480 mode, but in 320x240 with a x2 filter. I could be wrong. If there was a way to turn on double resolution fonts in newer versions of the editor, I'd do a back flip or something else equally impressive.
See? Now we made Vince sad! And that made me sad too. Well, I moved HHGTG from 2.72 to 3.1.2 on a timespan of 2 years and it carried and created some AGS engine bugs, that went fixed. I also carried Downfall from 2.72 to 3.1.2 and apart from some minor annoyances I was really glad this was still possible. My vote goes to keep backwards compatibility always up.
Jesus Christ, why is there no Undo button in the Dialog editor? I had to restart the editor to correct my horrific mistake, and if I'd saved at any point it would have all gone permanently.
since it's a text editor, ctrl z should work just fine.
Any serious projets should use AGS's revision control integration.
Quote from: SSH on Fri 11/06/2010 05:45:01
Any serious projets should use AGS's revision control integration.
I can't tell if you're joking or not.
Any serious programming project should use revision control. Obviously.
As I've never done any serious projects (with AGS or even Windows) ;) I've not actually got any experience of setting up the revision control, though. If anyone has done this, it might be useful to give a HOWTO for setting up CVS or Subversion or something for AGS use, from scratch.
I cant be arsed to read through 22 pages right now, so im sorry if this was already pointed out, but i was told to report here about the "IgnoreUserInputAfterTextTimeoutMs" feature, that it should make the timeout at the beginning of the text being displayed , and not after it, cos otherwise it would come after the last line of text also, so there would be a delay in returning the control back to the player. Thanks, ill go back to my beer now if you dont mind.
I would also very much like a revision control HOWTO
We use SVN on our two projects.
http://tortoisesvn.tigris.org/ (http://tortoisesvn.tigris.org/)
Sparky.
Hey, guys, I dunno if this is still an issue or if it's been mentioned or not. I'm using AGS 3.1 and it seems that whenever I use the mouse wheel (more by accident), the cursor disappears!
Any way to fix this? Maybe people who've never played an AGS game don't know about its lack of mouse wheel in-game integration and won't know to not use it...
Just sayin'.
I've not checked yet, but I think there are some codes in handling the mouse wheel in the default Global Script, in which it is used to cycle through the mouse modes. You may try to disable that part of the codes if they're not welcomed.
QuoteMy impression - and I have no idea if this is correct - is that CJ, like most of us who started using AGS during our teens or early twenties, has gotten caught up in real world obligations that take a priority over hobby programming (as they should).
This is pretty much spot on, yes. But circumstances can change, and there are some periods when I have more time for AGS than others.
QuoteIf 2.7 worshippers want to use the old scriptings, well they can keep up using the old versions, from what I've seen, aside a couple of fix for newer OSes, do they really need more ? I may be wrong, but I seriously doubt it.
We're not just talking old 2.7 games though, in the case of the audio system it is maintaining compatibility with the last official version (3.1.2) that is a lot of work.
QuoteI'm not sure exactly why it should be viewed as broken behavior rather than a bonus (and quite useful) feature that could just be toggled on/off in the editor (via a font property so you could potentially have low and hi res fonts), but oh well.
As Vince says, it's simply not technically possible, since the game is all running at 320x240. At the very last minute, it is then hardware-scaled up to 640x480 via a 2x filter; it's not possible to then go back and render the text at 640x480-resolution after this.
The quirk was only available in older versions of AGS because the game itself ran at 640x480 and AGS did its own custom software-mode scaling to scale all the sprites by 2x; this ability had to be removed to support hi-res co-ordinates in 3.1.
QuoteJesus Christ, why is there no Undo button in the Dialog editor? I had to restart the editor to correct my horrific mistake, and if I'd saved at any point it would have all gone permanently.
Are you talking a scripting mistake or creating/deleting the dialog itself? As Calin says, Ctrl+Z should work to Undo text in the dialog editor.
QuoteI cant be arsed to read through 22 pages right now, soI'm sorry if this was already pointed out, but i was told to report here about the "IgnoreUserInputAfterTextTimeoutMs" feature, that it should make the timeout at the beginning of the text being displayed , and not after it, cos otherwise it would come after the last line of text also, so there would be a delay in returning the control back to the player
This is not a bug, I have replied in your other thread.
QuoteHey, guys, I dunno if this is still an issue or if it's been mentioned or not. I'm using AGS 3.1 and it seems that whenever I use the mouse wheel (more by accident), the cursor disappears!
Any way to fix this? Maybe people who've never played an AGS game don't know about its lack of mouse wheel in-game integration and won't know to not use it...
As Gilbet says, there is some script in the on_mouse_Click function in the global script to handle the mouse wheel, you should check this and make sure it's doing what you want it to do.
The fact that there have been five attempts at a Final version and still no end in sight for AGS 3.2 is wonderful. Furthermore, lol. That is all. :=
(I'm allowed to do this ("troll") since I'm never around anymore)
Hehehe. :D
Realistically someone should lock this thread monkey_05_06.
There's some sort of mistake in the script editor related to error message.
If you type something like
int [] myarray;
It will display " '[' is already defined ", which is a bit confusing in current context.
Quote from: ProgZmax on Thu 10/06/2010 21:42:37
Yeah, it's a shame that went away. It's also the reason why Dave Gilbert hasn't (and probably won't) upgrade to a new version. I'm not sure exactly why it should be viewed as broken behavior rather than a bonus (and quite useful) feature that could just be toggled on/off in the editor (via a font property so you could potentially have low and hi res fonts), but oh well.
I actually have upgraded! I'm still using 320 x 240 sized graphics, but I'm blowing them up to 640 x 480 before importing them into AGS. It's a bit overkill, true, but I like having a low-res game with high-res fonts. I didn't bother upgrading while making Blackwell Convergence because it would have involved a ton of reprogramming. But for a totally new game? Call me a convert.
Nice one Dave!!
How cool is AGS 3x! 8)
Sparky.
Although gui alpha channels work properly now with no gui background they don't seem to work correctly WITH a gui background.
I have a button which has an image with and alpha channel ontop of a gui background which has an alpha channel and the transparency on the button doesnt seem to work anymore.. i'm pretty sure it used to.
EDIT:Same is true of slider handles
I cant seem to get transparency with a png alpha working correctly on a slider handle's graphic aswell...Ggrrr!!
Yep. Same here. Very frustrating. :'(
Is this issue we're having also related to the fact that alpha-blended inventory icons don't work over a GUI with a background? The alpha channel, it seems, is completely discarded.
We're using PNGs too.
Sparky.
I found some weird behavior with resizing guis. In particular, if you change to a room with a room size larger than the default game dimensions and try to resize the gui to fit that room size you'll get an error. Now, while I understand it's going by the game resolution only for gui size limits I see this as rather strange behavior. Why shouldn't we be able to make guis larger than the game resolution and have them off the limits of the screen? It certainly wouldn't break anything by default. I bring this up because, if you make one or two guis larger than the primary resolution of your game by default you get constant warnings that it may cause errors (which it doesn't) and since it doesn't actually break anything I'd rather either the warning was removed or the limitation of resizing guis beyond the game set resolution removed, that way I could avoid the warning by resizing the gui when you entered the larger room and changing it back when you leave. If it's a matter of creating some maximum size limit to prevent memory waste then by all means impose a maximum gui size, but I'd really like to be able to make guis that fit the rooms in my game even if they are larger than the default resolution. Thanks.
Thank you, Dave and CJ, for helping me out with my mouse wheel problem! Indeed, the problem was that any other mouse input aside from the left button click cycled through the mouse modes, and I only have the pointer defined. That's why it disappeared.
Cheers! :)
PS: AGS 3.x and how awesome it is got me back into game-making so major-major thanks, CJ!
You know, just calling them "RC" instead of "Final" sounds better.
Since Progz was mentioning issues with GUI's. Why is it that when you change the X and Y coords of the GUI it causes an error if the GUI is off the room background? Very frustrating. I'm always having to check the X or Y coords plus width and height of GUI to find out if it's off the screen before changing it's position. So instead of changing it's X and Y if it'll be off screen, I just change it's visiblity to false until it comes back on screen.
I noticed there are no help topics which sould cover "advanced" script keywords like "protected", "writeprotected" (I knew that one exists only after getting monkey_05_06's Stack module), "managed" etc. Maybe some other things are missing in the manual too. It would be nice if they are added there.
QuoteAlthough gui alpha channels work properly now with no gui background they don't seem to work correctly WITH a gui background.
I have a button which has an image with and alpha channel ontop of a gui background which has an alpha channel and the transparency on the button doesnt seem to work anymore.. i'm pretty sure it used to.
EDIT:Same is true of slider handles
Are you using Classic or AdditiveOpacity GUI alpha style?
HAs this problem just started happening with Final 5?
Quotefound some weird behavior with resizing guis. In particular, if you change to a room with a room size larger than the default game dimensions and try to resize the gui to fit that room size you'll get an error. Now, while I understand it's going by the game resolution only for gui size limits I see this as rather strange behavior. Why shouldn't we be able to make guis larger than the game resolution and have them off the limits of the screen? It certainly wouldn't break anything by default. I bring this up because, if you make one or two guis larger than the primary resolution of your game by default you get constant warnings that it may cause errors (which it doesn't) and since it doesn't actually break anything I'd rather either the warning was removed or the limitation of resizing guis beyond the game set resolution removed, that way I could avoid the warning by resizing the gui when you entered the larger room and changing it back when you leave.
Reasonable point, please could you post this in a separate thread as it's not related to the 3.2 release.
QuoteYou know, just calling them "RC" instead of "Final" sounds better.
We've gone through the RC releases, the problem is that most people won't use a new release until it becomes Final, so unfortunately it's only when the Final is released that most people start testing it and the bugs are found.
QuoteI noticed there are no help topics which sould cover "advanced" script keywords like "protected", "writeprotected" (I knew that one exists only after getting monkey_05_06's Stack module), "managed" etc. Maybe some other things are missing in the manual too. It would be nice if they are added there.
Yeah, this is because the custom-struct support is still sort of half-finished, and I was planning to wait until everything was fully supported before documenting it. But realistically that's not going to happen for a while so probably documenting the existing keywords would be a good idea.
Yes, I'm confident this is a new issue with Final 5
And i'm using AdditiveOpacity
As am I, CJ.
With respect, I've tried everything to get Alpha working properly in the case described.
Sparky.
I'm also confident it's a new issue, because I've had no problems doing this with previous versions.
When I try to install the latest version (On Windows 7 64 bit) it seems to crash my virus scanner (Kaspersky).
---------------------------
avp.exe - Application Error
---------------------------
The instruction at 0x6ddeba67 referenced memory at 0xfa61e8d2. The memory could not be written.
Normally Kaspersky would scan a new program before running it, so I guess this is what's failing. It's probably Kaspersky's fault, but I thought I'd make it known.
Quote from: Calin Leafshade on Fri 25/06/2010 16:50:51
Yes, I'm confident this is a new issue with Final 5
And i'm using AdditiveOpacity
Can one of you upload a Before and After screenshot of a GUI with this problem in Final 5, and what it looked like with Final 4? I've tried to reproduce the problem but my test alpha GUIs look the same in both Final 4 and Final 5.
And as I asked, can you all please say if you're using Classic or AdditiveOpacity?
QuoteWhen I try to install the latest version (On Windows 7 64 bit) it seems to crash my virus scanner (Kaspersky).
Heh, probably not much I can do about that!
Hey - so great that 3.2 supports black bars on widescreen resolutions - one thing I've noticed, at least on my monitor, is that the bars are uneven at 800x600 - AND, that if I auto-adjust my monitor (you know the auto button that all monitors have now) - boom. It shuffles the image to the left and then all the black is on the right.
Bizarre because I've played lots of games at non-widescreen resolutions that have those bars and not had that problem.
Desktop resolution is 1440x900 for the monitor. Any ideas why it only seems to be AGS stuff that does this?
I have a question, is this intended that those functions without any explicit return type can actually return integer?
Like
function f()
{
return 1;
}
function ff()
{
int a = f();
}
Is this bug or normal behavior?
"function" is just a fancy word for "int" (or rather it's internally defined as int), so yes that's as designed. I'm sure someone else can explain it in more technically correct terms.
QuoteHey - so great that 3.2 supports black bars on widescreen resolutions - one thing I've noticed, at least on my monitor, is that the bars are uneven at 800x600 - AND, that if I auto-adjust my monitor (you know the auto button that all monitors have now) - boom. It shuffles the image to the left and then all the black is on the right.
My monitor does this too. I'm not sure why it would only affect AGS games, perhaps the black borders need to be not actually black, but slightly grey in order for the monitor to recognise them as part of the screen. I'll do some investigation around this.
QuoteI have a question, is this intended that those functions without any explicit return type can actually return integer?
Yes, this is for legacy reasons because in the old days the script compiler didn't do any type checking and assumed that all functions returned an int.
QuoteCan one of you upload a Before and After screenshot of a GUI with this problem in Final 5, and what it looked like with Final 4? I've tried to reproduce the problem but my test alpha GUIs look the same in both Final 4 and Final 5.
And as I asked, can you all please say if you're using Classic or AdditiveOpacity?
Just to reiterate this point -- I really want to release this Final 5 version as the 3.2 Official Release, but I don't want to do this while there is a potentially serious GUI alpha problem outstanding. Can anyone provide an example of the problem?
You know what, to sanity check I just ran Plants vs. Zombies (which is 800x600) and it did it on that too, so it's not just AGS, so don't burn any energy on that one. The bars did look uneven when I booted it in 800x600 on AGS but it honestly could just be my monitor.
Thanks for at least considering it though!
Quote from: Dave Gilbert on Tue 15/06/2010 15:33:52
I actually have upgraded! I'm still using 320 x 240 sized graphics, but I'm blowing them up to 640 x 480 before importing them into AGS. It's a bit overkill, true, but I like having a low-res game with high-res
That's funny, I was just thinking "why not just blow up the graphics?" I sure as hell would not want to do that with an existing game (especially one the size of Resonance), but for a fresh game, sounds like a good call. Not really an issue for me, Han Solo needs to be low-res all the way for the retro factor and Jack Houston is all high-res, but there are a lot of designers like you guys straddling the line between retro coolness and modern convenience.
Here's what I get when two GUI Buttons with an alpha-channel image overlap as opposed to how it should look in a Photoshop mock-up:
(http://www.pressurecookergames.info/agsUIWeirdness.jpg)
The overlapping area is drawn much too dark. This is in Final 5 with AdditiveOpacity.
Interesting how it isn't just darker but actually makes the white line underneath it almost black. If you look at the area inside the holes of the skull eyes you can see that it's almost universally darkening everything underneath it, even items that shouldn't be blended at all.
Well, there is this slight black smoke-like shade underneath the skull that's supposed to be very subtle. On the left, you can see the sharp edge where the pixels begin to have some opacity.
I found that game.speech_music_drop disappeared from the 3.2 "game variables" manual mage even if it's supported by the "old style scripting". By the way, what is the new equivalent for adjusting that?
theres an option in the Audio section of the editor which is on a per-file basis
I dunno if its availble at runtime
Quote from: Edmundito on Sat 31/07/2010 23:28:48By the way, what is the new equivalent for adjusting that?
Game.SetAudioTypeSpeechVolumeDrop
Alright. Perhaps the GUI alpha issues isn't a new issue. I tried it both with 3.2 and then the most recent release. Not sure why I remember it working properly in the first place when clearly it doesn't and didn't. Obviously using AdditiveOppacity.
This is what it looks like with an alpha channel background image on the GUI, and two overlapping alpha channel buttons:
(http://www.bryvis.com/entertainment/other/agsf/gui-bad-alpha-layering.png)
The GUI background image: http://www.bryvis.com/entertainment/other/agsf/transparent_piece.png
And the image for the 2 buttons: http://www.bryvis.com/entertainment/other/agsf/transparent_piece_shad.png
Edit: The only solution is to literally make those buttons their own GUI. And that can suck.
Ok, so are you saying that the alpha behaviour doesn't the work the way you'd like it to -- but it does work the same way as in previous versions of AGS?
If that is the case, then 3.2 Final 5 hasn't broken anything that used to work, and I can go ahead and release it. The AGS GUI alpha behaviour can always be improved in a later version.
If you switch round which GUI button is on top (by using the Send To Back / Bring To Front options in the editor) does that affect the result?
Quote from: Pumaman on Tue 10/08/2010 17:24:14
Ok, so are you saying that the alpha behaviour doesn't the work the way you'd like it to -- but it does work the same way as in previous versions of AGS?
Yes. Sorry for being confused earlier. Maybe Calin also remembered it working properly before too? Unless he actually knows of a new issue. His post did sound quite confident.
QuoteIf you switch round which GUI button is on top (by using the Send To Back / Bring To Front options in the editor) does that affect the result?
Yeah it pretty much overlaps in the same manner as what I posted above.
It would be super cool if the alpha channel worked just like layers in Photoshop. I'm not sure which request for me is most important.
Alpha channels that work as expected on a GUI, or DrawingSurfaces fully supporting alpha channels.
Argh. Tough choice.
RT, did you notice i provided a solution to the drawing surfaces thing?
Its a little inelegant but:
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=41524.0
Yeah I did. I didn't check it out until now, though. It's actually quite impressive what can be done through a plugin, I hadn't realized.
I would still prefer it to be done through AGS. It's one of those features that I think should work out of the box. It's already half coded, it just needs that final addition.
Hi. I don't know if this is a bug, but when a character is performing a blocking walk (with the method Walk), he seems to ignore the regions (the region walk-onto event).
I double checked the original bug I mentioned. i.e 8bit alphas not working on buttons and it seems I was wrong.
They work when the background is transparent (i.e colour = 0)
but they dont work on a coloured background or a background image.
I think i got confused because it was essentially the opposite for font anti aliasing which worked on coloured backgrounds but not on transparent ones.
QuoteHi. I don't know if this is a bug, but when a character is performing a blocking walk (with the method Walk), he seems to ignore the regions (the region walk-onto event).
This is due to the way the script blocking works, it has always been this way and isn't an issue specific to the 3.2 release.
QuoteI double checked the original bug I mentioned. i.e 8bit alphas not working on buttons and it seems I was wrong.
They work when the background is transparent (i.e colour = 0)
but they dont work on a coloured background or a background image.
But can you please clarify if this used to work in previous versions and is now broken in 3.2 Final 5, or if it has never worked in AGS?
The recent fixes related to GUI alpha have been related to if you have an alpha-transparent background image on the GUI -- however if you have an opaque background and draw an alpha-transparent button on top of it then the alpha channel will be lost with both Classic and AdditiveOpacity, as far as I know AGS has always done this.
This is definitely an area for improvement but I don't think it's anything that used to work and is now broken?
Sorry I wasnt clear enough.
I was wrong about it working in previous versions (I tested it again in 3.1.2). It has never worked in those circumstances
Ok, thanks.
So does anyone actually have any problems with 3.2 Final 5, with things that used to work ok in 3.1.2?
If not, I think this finally ready to be an official release!