AGS 3.0 Final - it's been a long road

Started by Pumaman, Sun 10/06/2007 18:24:35

Previous topic - Next topic

TheMagician

Thanks for the explanation, monkey. That helped me more than the comment before yours.

SSH

#481
Having been using v3.0b13 to rework the walkcycle generator a bit, I've got some comments:

1. Please can there be a menu option/icon/keyboard shortcut to save just the current script file. If there is a keyboard shortcut for this, please can it be described somewhere?

2. Where's the view animation preview?

3. Setting 0 as the border colour for a GUI does not make it have no border, as the control implies

4. Using Find in the editor might be nicer if the find GUI was like the Firefox one, "hidden" in/just above the status bar

5. Right-clicking a script tab should have a save option. Also, it would be nice for that menu to have the option to switch between the header/script of a module

6. Importing a game with modules should name the module scripts after the module names, not just Module0, Module1, etc.

7. It would be nice to have an option to run the compiled game rather than the Debug version

8. It would be nice to be able to control the "working directory" of the debug run: the walkcycle generator loads files from its working directory and it isn't at all clear where that is when in Debug, so I have to run the compiled version.

9. There should be an toolbar icon or context menu option to set breakpoints, as well as F9

10. If I've added any breakpoints BEFORE using F5 (including trying to re-run after adding a breakpoint that worked) then the game fails to run and I get:

---------------------------
Illegal exception
---------------------------
An exception 0xC0000005 occurred in ACWIN.EXE at EIP = 0x004274DD ; program pointer is -41, ACI version 3.00.953, gtags (2039,36)

AGS cannot continue, this exception was fatal. Please note down the numbers above, remember what you were doing at the time and notify CJ on the Tech forum.



Most versions of Windows allow you to press Ctrl+C now to copy this entire message to the clipboard for easy reporting.
---------------------------
OK   
---------------------------

10. It would be nice to have the old option of highlighting  the outlines of GUI controls, becuase sometimes the controls are invisible until selected.
12

subspark

#482
QuoteImporting a game with modules should name the module scripts after the module names, not just Module0, Module1, etc.
I've already asked for this on page 18 of this topic and the response was,
QuoteThe name in the list pane is the filename of the .SCM file that you imported it from. I don't see any reason to change this, it means that the script file name will be as intended by the module author.

I don't think he quite got what I was asking so I'll elaborate:
I meant that the name the Author 'chose' in the name field should also be loaded in the list pane window. It shouldn't derive it's name from the filename!! Module Authors can get lazy so module names should be internal :)

Cheers,
Paul.

monkey0506

The problem with that would be that some module authors choose descriptive names for the Name-field that wouldn't do well as a filename (and the scripts in the pane are listed by filename).

SSH

Well, I was talking about importing existing 2.72 games that had modules in them. In that case, the modules in the game just get called "Module0", "Module1", etc.
12

Rui 'Trovatore' Pires

What's the status on the EditThis.AGSGame file? Is it really scrapped? I often opened my projects via that file, directly...
Reach for the moon. Even if you miss, you'll land among the stars.

Kneel. Now.

Never throw chicken at a Leprechaun.

Charity

I tried to load a game in beta 13 that I'd been working on in beta 8.  (It was originally from 7.2.)  It loaded fine, but it didn't prompt me to upgrade anything, and now when I try to run the game itself it compiles and then crashes with this message:

(ACI version 3.00.953)

Error: prepare_script: error -18 (no such function in script) trying to run 'room_Load' (Room 1)

When I run my backup in beta 8 it still runs without problems.

Shane 'ProgZmax' Stevens

Lyaer, this is probably a lingering problem with the older betas and creating new room scripts for the editor for imported games.  Check the 'Enters room before' event and see if a room_Load function was made for it.  If so, go there and see what's inside the function (if you imported from 2.72 then it is probably a routing function to something like hotspot1_a or whatever).  Make sure the function it routes to (if there is one) exists.  I had the very same problem on several of the earlier builds and it looks like it's still happening.

Charity

#488
I searched my global script and my room 1 script and couldn't find anything that said room_Load, but I found the "player enters screen (before fadein) section and I changed the function from room_b or something to room_Load.  I had to do the same thing with Repeatedly Execute, and then the game loaded.  Problem is when I try to leave the screen I get an error saying

Code: ags
. . . trying to 'room_LeaveBottom'


I've looked all through the room script and all I have is a bunch of region scripts and the two I already mentioned.  There is nothing that refers to leaving the room from the bottom or any other direction.  It is supposed to make me go to room 2, but I must have used the editor or something.  Is there any way to recover the function if there is nothing pointing to it?

EDIT:  Nevermind.  I see I can just add the script manually and it stops it crashing.  But there are enough instances of this to hunt down that I am beginning to think it is time to move the relevant code to a new test game and start fresh.  Thanks much, ProgZmax.

SSH

another thing that is missing from the Dynamic sprite stuff is simply creating a blank one from scratch which there is a lot more point to now that one can draw on sprites.

DynamicSprite.Create(width, height)
12

SupSuper

Quote from: Pumaman on Fri 05/10/2007 23:49:46
QuoteExactly. Though I just noticed AGS switches to 640x480 when I try to run on 320x200 (although it looks different from actually running on 640x480), so maybe it's a side-effect of that? It only happens on fade-outs, too. Here's a screenshot.

Hmm, I still can't reproduce this. Does it only happen with the DX5 driver? Would it be possible to upload a sample of this problem for me to take a look at?
Yep, it only happens with the DX5 driver on 320x200 full-screen, maybe it's a hardware-specific thing. I'm running Windows Vista with a Radeon X1650 Pro. I put my game here if it helps.
Programmer looking for work

Ghost

#491
I recently (well, yesterday) made a fresh XP install and just downloaded Beta13 and, of course, Net Framework 2.
Now, when I start a new game with the default template, set the colour depth to 16bit highcolour and import a sprite, the editor tells me that I cannot import a high-colour sprite into a 256 colour game.
When I save and quit, and then restart the editor, importing works.

I'm importing from a bitmap made in Photoshop, saved as 16bit. Quirk, or am I, once again, doing something wrong?

EDIT: Sorry. I just saw that this has already been mentioned.

Pumaman

QuoteWhen I try to play my FLIC animation using the run command in the editor under DirectDraw 5 I just get flickering bands of the animation. When I try it under Direct3D 9 I get the following error...

Thanks for reporting this, seems like the FLC player is broken, I'll look into it. At least this proves somebody is actually still using FLC's ;)

Quote
And another issue - when running under Direct3D 9 and using the 'disolve' for room transitions I get a mismatched colour depths error, though it works under DirectDraw 5. My game is 16-bit

I'll look into this.

QuoteI'm still having the problem where Exiting the editor from the "Welcome To AGS!" dialog leaves the AgsEditor.exe process running using 100% CPU. This time I'm using Win2k on an AMD Sempron (single core).

Has anyone else had this problem? Do you have the problem if you exit from the main editor, or is it only the Welcome To AGS dialog that causes it? I can't replicate this, it's very strange.

QuoteThe Ags3d plugin works fine. It does highlight a workflow problem - I have to copy external files from the Compiled directory into _Debug. Any chance of that being done automatically? Or of running a post-build or pre-debug command (so I can run a batch file)?

Ah, interesting ... plugins should be automatically copied to _Debug, I guess!

QuoteAGS now shifts the bottom row of pixels of a Dialog GUI background image 1 line above the top.

Are you saying this is a new problem in beta 13? I'll look into it.

QuoteAlso perhaps for those of us who wish to save space on background art, could we perhaps have an option to turn off all elements of a GUI including the background image. That way we don't have to paint in an ugly black square on our background art to emulate the GUI going black. (The background color and border should be the only elements visible).

Adding a proper "GUIs Go Black" option is a reasonable request!

QuoteDynamicSprite.Resize(int width, int height, optional bool antialias)
Which would implement the same antialising used for character scaling on the DynamicSprite.

The problem with this would be it wouldn't be possible to accelerate it with the D3D driver ... but as long as you only used the command rarely, I guess that wouldn't be an issue.

QuoteA move away from the built-in functionality of the current dialog options display towards one that uses a default gui (like you can do with text guis) would probably resolve this request once and for all, and that way you could change the default background to 'anything' (transparent, black, or an image) easily.

Yeah, the dialog system needs an overhaul. But not for 3.0 :)

QuoteIt just struck me that one function missing is DynamicSprite.CreateFromSurface(optional int x,y,w,h)...

I'm not convinced by this -- surely you'd create the surface from the dynamic sprite and then you can always crop/resize the dynamicsprite as appropriate?

QuoteAlso, what colour are the new pixel create when one uses DynamicSprite.ChangeCanvasSize to make a sprite bigger?

Should be transparent.

QuoteAnd if I do:

DrawingSurface *rds=Room.GetDrawingSurfaceForBackground();

in a function, autocomplete doesn't work on rds. But If I declare rds as a non-pointer, autocomplete DOES work.

Hmm, I tried this and it was fine. However, there is an issue with autocomplete where if you add lines to the end of a function, it won't pick up any variable definitions that are after the original position where the function ended when you opened the script.

QuoteAs this thread shows, the functionality of the editor's Colour Finder is slightly confusing. Now that the entire editor has been rewritten, wouldn't it be a good time to fix this dodgy behaviour? Especially as version 3.0 also introduces Game.GetColorFromRGB which doesn't have the issues that the Colur Finder does (for instance, Game.GetColorFromRGB(255, 255, 255) correctly returns 65535, whereas Colour Finder values (31, 31, 31) return 65503, which is in fact RGB(255, 250, 255)).

Perhaps the Colour Finder sliders should be 0-255 rather than 0-31, I'm not sure about this one...

QuoteNow that we can draw using high-res co-ordinates, it might be handy to have the option of getting the mouse position in high-res co-ordinates

Is this something anyone else would find useful? For now, we'll see how useful the HiResCooordinates feature of the surfaces is as to whether to expand it to cover other things.

Quote1. I create a new game and, first of all, change the colour depth to 32bit. It gives me the standard warning about the possibility of corrupting sprites. Ok. Then I switch over to the sprite explorer and try to import a new 32bit image. However, AGS gives me the following error message:
"Cannot import a hi-colour or true-colour image into a 256-colour game."

Thanks for this -- as part of adding the plugin support to beta 13 I broke part of the editor which notifies the different panes about configuration changes. I'll get it fixed.

Quote2. I like the way the brackets highlight when you type a closing bracket. However I miss the good old bracket checker (Ctrl+B). As things are right now I have to delete the bracket I want to check and then type it new to see to which opening bracket it belongs.

Well, the new approach is more in line with applications like visual studio ... would anyone else find the return of the Match Brace as a menu option useful?

Quote3. If I create a new room and import a background of 320x240 pixels the engine of course tells me, that the new background is bigger than the old one. Then the new background is shown. However there is a scrollbar at the right side of the image although the engine would have enough space to show it without scrollbars. To get rid of the scrollbar I have to save and close the room tab. Then I have to load a different room and close that again. Then when I reopen my old room the scrollbars are gone.

I'll look into this.

Quote4. I tried to create a dynamic array of the type "short":

Code:
short array_test[];
short array_size = 10;
array_test = new short[array_size];

The last line gives the error: "Array size must be an int."

I do see your point here, but there's not really any need to declare array_size as a short ... it is a bit of a dodgy issue with the script compiler, but just declaring array_size as an int will fix it.

Quote5. When an error occurs while compiling, a window pops up telling you that there was an error and that I should look at the output window. I do so, see the error and in practically 100% of the cases I double click it to open the corresponding script.
However, I miss the old behaviour that when you click "OK" in the error window it automatically opens the corresponding script and jumps to the line that gave the error.

Well, this behaviour is to prepare for the script compiler being able to report multiple errors in future, in which case you'd want to choose which one to jump to. Perhaps an option to get rid of the "There were errors" message box would reduce your number of clicks?

Quote6. I think this has been asked before: will the view preview become available again?

Well, it's available in the Characters pane that uses the view and in the View Selector; but it seems like people do want it back in the main view editor, so I'll look into this.

Quote7. When I type something like

sprite.DrawSurface(                 

...so, basically anything which ends in an opening bracket, I get an "unexpected eof" error with no further explanation. Whereas AGS 2.8 said something like "End of input reached in middle of expression in line ..."

The script compiler hasn't changed in this respect in AGS 3.0, so I don't think there's any different behaviour here. However I'm sure it could be improved.

Quote8.1 First of all I think it is great that Autocomplete now picks up variables that are declared at the top of the script. However, perhaps the manual could state a little more obviously, that this happens after the script was quicksaved via "Ctrl+S". First I thought I have to close the script tab completely before any changes are made to Autocomplete.

Ideally I'd like it to be constantly up to date, however so far I haven't found a performant way to do this. I'll continue looking at improvements, though.

QuoteWhy does Autocomplete pop up even if there is nothing it has to suggest?

It has always done this when you type 3 characters in a row, but perhaps it should only pop up if there is at least one match to what's being typed in.

Quote8.3 Again I think this was mentioned before: DynamicSprite* and DrawingSurface* don't get picked up by Autocomplete if they are declared inside a function and not at the top of the script.

Again, I can't replicate this problem ... it seems fine to me.

Quote9. And finally something that really isn't a bother at all, I'm just wondering: I'm from Germany and some of panels' names show up in German? For example in the room pane I have "Entwurf" which roughly means  "draft" or "Auflistung" which means "List". Somewhere else if have "Darstellung" which means "display".

Where do you see this? Some of the built-in .NET components like the property grid will automatically translate their built-in text into your Windows language.

Quote1. Please can there be a menu option/icon/keyboard shortcut to save just the current script file. If there is a keyboard shortcut for this, please can it be described somewhere?

Hmm, the save operation should be fast even though it saves everything. Or do you not want it to save changes to other scripts?

Quote3. Setting 0 as the border colour for a GUI does not make it have no border, as the control implies

Can you clarify what you mean?

Quote6. Importing a game with modules should name the module scripts after the module names, not just Module0, Module1, etc.

Well, the module names don't tend to lend themselves to file names. There are modules with names like "Module that provides snow/rain effects", which wouldn't be very useful as a filename displayed in the project tree.
As this is only a one-off thing when you import a 2.72 game, I think it's better to leave it up to you to rename them to something useful for you.

Quote8. It would be nice to be able to control the "working directory" of the debug run: the walkcycle generator loads files from its working directory and it isn't at all clear where that is when in Debug, so I have to run the compiled version.

The working directory should effectively be the Compiled folder. Commands like File.Open should be redirected to pick up files from there.

Quote9. There should be an toolbar icon or context menu option to set breakpoints, as well as F9

Well, there is a main menu option ... but actually the script editor context menu could do with some modernisation, you're right.

Quote10. If I've added any breakpoints BEFORE using F5 (including trying to re-run after adding a breakpoint that worked) then the game fails to run and I get:

An exception 0xC0000005 occurred in ACWIN.EXE at EIP = 0x004274DD ; program pointer is -41, ACI version 3.00.953, gtags (2039,36)

Hmm, that's strange. Has anyone else had this problem? I can't replicate it.

QuoteWhat's the status on the EditThis.AGSGame file? Is it really scrapped? I often opened my projects via that file, directly...

That file is scrapped, yes. However, I'll look into adding an association for the GAME.AGF file to load the editor. It's likely that the final version of AGS 3 will come in an installer rather than zip file, which could set up this association.

QuoteI tried to load a game in beta 13 that I'd been working on in beta 8.  (It was originally from 7.2.)  It loaded fine, but it didn't prompt me to upgrade anything, and now when I try to run the game itself it compiles and then crashes with this message:

As others have said, this is probably due to some issues with earlier betas importing games from 2.72.

Quoteanother thing that is missing from the Dynamic sprite stuff is simply creating a blank one from scratch which there is a lot more point to now that one can draw on sprites.

DynamicSprite.Create(width, height)

That's a fair point.

QuoteYep, it only happens with the DX5 driver on 320x200 full-screen, maybe it's a hardware-specific thing. I'm running Windows Vista with a Radeon X1650 Pro. I put my game here if it helps.

Thanks, I'll take a look at it.

QuoteNow, when I start a new game with the default template, set the colour depth to 16bit highcolour and import a sprite, the editor tells me that I cannot import a high-colour sprite into a 256 colour game

Yep, this has already been reported and is a bug in beta 13, I'll get it fixed.

OneDollar

Looks like a bit of work to do. Thanks CJ!

SSH

Quote from: Pumaman on Sun 14/10/2007 13:27:48
Quote3. Setting 0 as the border colour for a GUI does not make it have no border, as the control implies

Can you clarify what you mean?

GUI border color control says "set to 0 for no border" but this only works if the background colour is transparent (0) too. Otherwise it makes the border colour 0 (black)

Quote
Quote6. Importing a game with modules should name the module scripts after the module names, not just Module0, Module1, etc.

Well, the module names don't tend to lend themselves to file names. There are modules with names like "Module that provides snow/rain effects", which wouldn't be very useful as a filename displayed in the project tree.
As this is only a one-off thing when you import a 2.72 game, I think it's better to leave it up to you to rename them to something useful for you.

Module descriptions are like that, but module names are usualy just single words or camelcase and make good filenames, in my experience. What's long with long filenames anyway?

Quote
Quote8. It would be nice to be able to control the "working directory" of the debug run: the walkcycle generator loads files from its working directory and it isn't at all clear where that is when in Debug, so I have to run the compiled version.

The working directory should effectively be the Compiled folder. Commands like File.Open should be redirected to pick up files from there.

Definetaly NOT the case

Quote
Quote10. If I've added any breakpoints BEFORE using F5 (including trying to re-run after adding a breakpoint that worked) then the game fails to run and I get:

An exception 0xC0000005 occurred in ACWIN.EXE at EIP = 0x004274DD ; program pointer is -41, ACI version 3.00.953, gtags (2039,36)

Hmm, that's strange. Has anyone else had this problem? I can't replicate it.

I'll PM you my project so you can see if its specific to some code I wrote
12

smiley

#495
Quote from: SSH on Sun 14/10/2007 15:44:18
Quote
The working directory should effectively be the Compiled folder. Commands like File.Open should be redirected to pick up files from there.
Definetaly NOT the case

Do you use a listbox to search for the files?
Because it looks like ListBox.FillDirList still uses the game folder instead of the Compiled folder.

EDIT:
the same:
DynamicSprite.CreateFromFile
DynamicSprite.SaveToFile

TheMagician

Bracket Checker:
QuoteWell, the new approach is more in line with applications like visual studio ...
But can't AGS transcend applications like visual studio and include this feature :) ... it has the advantage that you can also check the brackets from the opening bracket not just the closing one.

Script error messages:
QuotePerhaps an option to get rid of the "There were errors" message box would reduce your number of clicks?
It sure would.

Autocomplete:
Quotebut perhaps it should only pop up if there is at least one match to what's being typed in.
I think that would be an improvement.

DynamicSprite pointer not getting picked up within a function:
QuoteAgain, I can't replicate this problem ... it seems fine to me.
I just tested it again and it seems to be the same problem as with the "import sprites in high resolution" issue: When you save the script, close the tab and completely shut down the editor, then start it up again and load your script - then it get's picked up. (might have to do something with the Plugin issue you mentioned?)

Auto-translated text:
QuoteWhere do you see this?
Here are two example pics:

   

Especially the word "Entwurf" doesn't make sense there.


And one new question/suggestion:
Is there currently a way to just erase (in other words: make transparent) one single pixel of a RawDraw surface? I know this won't be needed very often, but DrawRectangle or  DrawCircle always erase more than one pixel.

Shane 'ProgZmax' Stevens

QuotePerhaps the Colour Finder sliders should be 0-255 rather than 0-31, I'm not sure about this one...

I'm definitely for a shift to the 0-255 range.  It means a more accurate (and wider) color selection.


QuoteAdding a proper "GUIs Go Black" option is a reasonable request!

If I read the question right, wouldn't a quick fix be to make the transparency setting of guis independent of the controls on the gui so you could adjust its opacity without affecting the text or other controls?  Of course this would mean control-specific transparency options, but then people could have semi-transparent guis with solid, readable text or semi-transparent text on solid guis or whatever!

Kweepa

Quote from: Pumaman on Sun 14/10/2007 13:27:48
QuoteI'm still having the problem where Exiting the editor from the "Welcome To AGS!" dialog leaves the AgsEditor.exe process running using 100% CPU. This time I'm using Win2k on an AMD Sempron (single core).

Has anyone else had this problem? Do you have the problem if you exit from the main editor, or is it only the Welcome To AGS dialog that causes it? I can't replicate this, it's very strange.
Just the Welcome dialog. It's 100% reproducible on two very different machines.

Quote
QuoteThe Ags3d plugin works fine. It does highlight a workflow problem - I have to copy external files from the Compiled directory into _Debug. Any chance of that being done automatically? Or of running a post-build or pre-debug command (so I can run a batch file)?

Ah, interesting ... plugins should be automatically copied to _Debug, I guess!
The plugin is copied fine I think - just not extra files that Ags3d needs (obj model files). Sounds like the problem SSH has with the Walkcycle generator.

Quote
Perhaps the Colour Finder sliders should be 0-255 rather than 0-31, I'm not sure about this one...
0-255 sounds good to me.

Quote
QuoteNow that we can draw using high-res co-ordinates, it might be handy to have the option of getting the mouse position in high-res co-ordinates

Is this something anyone else would find useful?
Yes please!
Still waiting for Purity of the Surf II

monkey0506

Quote from: Pumaman on Sun 14/10/2007 13:27:48
Quote8.1 First of all I think it is great that Autocomplete now picks up variables that are declared at the top of the script. However, perhaps the manual could state a little more obviously, that this happens after the script was quicksaved via "Ctrl+S". First I thought I have to close the script tab completely before any changes are made to Autocomplete.

Ideally I'd like it to be constantly up to date, however so far I haven't found a performant way to do this. I'll continue looking at improvements, though.

I've found that you don't have to save the script as long as you have multiple tabs open, simply switching to another tab and then switching back will update autocomplete. But yes, do continue looking for ways to make it better. :=

Quote from: Pumaman on Sun 14/10/2007 13:27:48
Quote6. Importing a game with modules should name the module scripts after the module names, not just Module0, Module1, etc.

Well, the module names don't tend to lend themselves to file names. There are modules with names like "Module that provides snow/rain effects", which wouldn't be very useful as a filename displayed in the project tree.
As this is only a one-off thing when you import a 2.72 game, I think it's better to leave it up to you to rename them to something useful for you.

Would it be possible for scripts to have sub-branches made for each script which could then be listed by the "descriptive name"?

    Scripts
      |-> Module that provides snow/rain effects
      |---> Module0.ash
      |---> Module0.asc
      |-> Global script
      |---> GlobalScript.ash
      |---> GlobalScript.asc

I wouldn't put too high a priority on it...just an idea I had.

Quote from: Pumaman on Sun 14/10/2007 13:27:48
QuoteWhat's the status on the EditThis.AGSGame file? Is it really scrapped? I often opened my projects via that file, directly...

That file is scrapped, yes. However, I'll look into adding an association for the GAME.AGF file to load the editor. It's likely that the final version of AGS 3 will come in an installer rather than zip file, which could set up this association.

If you do distribute it via an installer, PLEASE use an installer that has the option to 1) NOT create a Start menu folder and 2) NOT create a desktop icon. Both the Start menu and my Desktop are overcrowded as it is. Since I work entirely from the family computer (still living at home I am) I install all my programs to the second hard drive which is where I navigate when I need to open any of them.

Quote from: Pumaman on Sun 14/10/2007 13:27:48
Quoteanother thing that is missing from the Dynamic sprite stuff is simply creating a blank one from scratch which there is a lot more point to now that one can draw on sprites.

DynamicSprite.Create(width, height)

That's a fair point.

Until then it's possible to work around this as such:

Code: ags
int width = System.ViewportWidth, height = System.ViewportHeight; // replace with your width/height values
DynamicSprite* sprite = DynamicSprite.CreateFromScreenshot(width, height);
DrawingSurface* surface = sprite.GetDrawingSurface();
surface.Clear();
surface.Release();


Not saying don't do the new function...but not too difficult to get around "now that one can draw on sprites." ;)

SMF spam blocked by CleanTalk