AGS 3.0 Final - it's been a long road

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

Previous topic - Next topic

subspark

Hmm, when using the character.tint command the luminance seems half of what it should be. It doesn't pay respect to the region's list pane's values either. I still strongly believe the luminance AND the RGB tint properties should be a part of the regions list pane's properties. Why is adding this ability so complicated, CJ? Am I missing something?

Cheers,  :)
Paul.

monkey0506

Quote from: Pumaman on Sun 30/09/2007 20:16:19
Quotehow feasible might it be to implement some properties like Game.CursorModeCount and Game.FontCount?

CursorModeCount and FontCount would be very easy to add, I don't think anyone's asked for them before.

Actually I have asked about the FontCount before here. It was even put in the tracker, but that appears to be broken. But I would also find the CursorModeCount valuable.

Quote from: Pumaman on Sun 30/09/2007 20:16:19As for UseHighResCoordinates, the DrawingSurface provides a convenient separate place to implement this as a trial. If it proves useful, then I can certainly look into expanding it further.

Okay! :) I'm guessing that if things work out that this might be a move toward removing the 320x200 coordinate system from hi-res games?

subspark

#382
QuoteOkay! Smiley I'm guessing that if things work out that this might be a move toward removing the 320x200 coordinate system from hi-res games?
Oooh yippee! A resolution independent coordinate system. That would be extremely valuable.

I remember CJ saying this:
Quote
QuoteRadiant:    Will this or a future version support 800x600 (or higher) resolution, using actual 800x600 coordinates rather than 400x300 ones? Having to put everything at even-numbered pixels is kind of impractical
Chris:    This version won't because it would require significant changes to the engine to support this, however it's certainly something I'll look into for future versions
(Page 6 of this thread.) Also I thought somebody said AGS 3.0 was going to be an engine rewrite in addition to the editor being upgraded. I'm sure it wasnt you Chris but could someone clarify the timeline for us

Cheers,
Paul.

monkey0506

#383
Quote from: subspark on Mon 01/10/2007 05:30:49
QuoteOkay! :) I'm guessing that if things work out that this might be a move toward removing the 320x200 coordinate system from hi-res games?
Oooh yippee! A resolution independent coordinate system. That would be extremely valuable.

Note the words guessing, if, and might. Also, check the source. :P

Edit: Just making sure you knew who had said it. ;)

subspark

I said 'would be' not 'is' Monkey.  ;)
I was excited that someone mentioned it.

BTW did you get my PM a few days ago?

Cheers,
Paul. 8)

SSH

Trying to Test Game with my walkcycle editor (which worked fine in an older 2.8 beta) I got:

Error: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Version: AGS 3.0.0.12

System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at load_room_file(SByte* )
   at load_crm_file(UnloadedRoom roomToLoad)
   at AGS.Native.NativeMethods.LoadRoomFile(UnloadedRoom roomToLoad)
   at AGS.Editor.Components.RoomsComponent.LoadNewRoomIntoMemory(UnloadedRoom newRoom, CompileMessages errors)
   at AGS.Editor.Components.RoomsComponent.RecompileAnyRoomsWhereTheScriptHasChanged(CompileMessages errors, Boolean rebuildAll)
   at AGS.Editor.Components.RoomsComponent.AGSEditor_PreCompileGame(PreCompileGameEventArgs evArgs)
   at AGS.Editor.AGSEditor.PreCompileGameHandler.Invoke(PreCompileGameEventArgs evArgs)
   at AGS.Editor.AGSEditor.CompileGame(Boolean forceRebuild, Boolean createMiniExeForDebug)
   at AGS.Editor.Components.BuildCommandsComponent.TestGame(Boolean withDebugger)
   at AGS.Editor.Components.BuildCommandsComponent.CommandClick(String controlID)
   at AGS.Editor.GUIController._mainForm_OnMenuClick(String menuItemID)
   at AGS.Editor.MainMenuManager.MenuEventHandler(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

And then when compiling:


Error: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Version: AGS 3.0.0.12

System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at ccCompileText(SByte* , SByte* )
   at AGS.Native.NativeMethods.CompileScript(Script script, Script[] headers, Game game, Boolean isRoomScript)
   at AGS.Editor.Components.RoomsComponent.SaveRoomOnThread(Object parameter)
   at AGS.Editor.BusyDialog.RunHandlerOnThread()
   --- End of inner exception stack trace ---
   at AGS.Editor.BusyDialog.Show(String message, ProcessingHandler handler, Object parameter)
   at AGS.Editor.Components.RoomsComponent.SaveRoomButDoNotShowAnyErrors(Room room, CompileMessages errors)
   at AGS.Editor.Components.RoomsComponent.RecompileAnyRoomsWhereTheScriptHasChanged(CompileMessages errors, Boolean rebuildAll)
   at AGS.Editor.Components.RoomsComponent.AGSEditor_PreCompileGame(PreCompileGameEventArgs evArgs)
   at AGS.Editor.AGSEditor.PreCompileGameHandler.Invoke(PreCompileGameEventArgs evArgs)
   at AGS.Editor.AGSEditor.CompileGame(Boolean forceRebuild, Boolean createMiniExeForDebug)
   at AGS.Editor.Components.BuildCommandsComponent.CompileGame(Boolean forceRebuild)
   at AGS.Editor.Components.BuildCommandsComponent.CommandClick(String controlID)
   at AGS.Editor.GUIController._mainForm_OnMenuClick(String menuItemID)
   at AGS.Editor.MainMenuManager.MenuEventHandler(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
12

FSi++

A simple suggestion: now in order to perform an "integrate with windows" trick I have to run the game's .exe with an obscure command line parameter - either from installer or by making end-user do so.

Wouldn't it be nice if that could be performed from within winsetup? It will not require a lot of coding, but would be very convenient.

GarageGothic

#387
I haven't had time to play around with the new RawDraw commands, but it seems that the new handling of alpha channels has broken my old RawDraw based functions in that drawing RGB color (255,0,255) no longer works as a transparency mask for the sprite. In addition, this wouldn't work anyway if the alpha channel was retained for the DynamicSprite.

I guess the best way to handle this would be to add an out-of-range DrawingSurface.DrawingColor value that draws 100% transparency to the DrawingSurface (allowing a value range to draw an actual gradient alpha channel is probably too much to ask, though it would be awesome :)).

Pumaman

QuoteCould it please be made optional whether to keep or remove the alpha channel (with an optional bool at the end of the function perhaps)? I need to use transparency on shadows created from character sprites, and anti-aliased sprites don't support transparency.

As this existing functionality has been removed, I guess it's only fair that I add a way of adding it back :)

QuoteI'm not sure I agree

I'm not really sure how you can be in a position to disagree with my assessment of the work involved in modifying the AGS engine code, to be honest  :P

QuotePeople who construct a tiny game that uses very few resources will compile to a smaller size

But it won't. AGS only writes out to disk the number of objects that you actually have, it's just the in-memory structures that are fixed size.

QuoteHmm, when using the character.tint command the luminance seems half of what it should be. It doesn't pay respect to the region's list pane's values either

Setting a character tint overrides any other tints, like ambient tint or region tint -- it doesn't attempt to combine them together. Also, I'm not really sure what you mean by "the luminance seems half of what it should be", are you saying the behaviour of the tint has changed since 2.72?

QuoteSystem.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
  at load_room_file(SByte* )

Bugger, I was sure I'd fixed that. Can you make it happen repeatedly or did it only happen the once? So far it's quite annoying because I haven't managed to find any way of reproducing the problem.

QuoteSystem.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
  at ccCompileText(SByte* , SByte* )
  at AGS.Native.NativeMethods.CompileScript(Script script, Script[] headers, Game game, Boolean isRoomScript)

Are you able to reproduce this one, or did it seem to happen as a result of the previous error?

QuoteA simple suggestion: now in order to perform an "integrate with windows" trick I have to run the game's .exe with an obscure command line parameter - either from installer or by making end-user do so.
Wouldn't it be nice if that could be performed from within winsetup? It will not require a lot of coding, but would be very convenient.

Interesting idea. What do people think about allowing the player to register/unregister the game with a button in setup? Is this giving them too much control or does it sound reasonable?

Quoteit seems that the new handling of alpha channels has broken my old RawDraw based functions in that drawing RGB color (255,0,255) no longer works as a transparency mask for the sprite.

Hmm good point, that will draw a pink line over alpha-channel sprites. I'll look into it.

GarageGothic

#389
Quote from: Pumaman on Mon 01/10/2007 20:55:25Interesting idea. What do people think about allowing the player to register/unregister the game with a button in setup? Is this giving them too much control or does it sound reasonable?

I think it's a valid suggestion, considering that more people distribute their games as .zip and .rar files than with installers (which - considering the number of AGS games I try out every month - is a good thing). However, I think this brings up another issue which has been bothering me for a long time - the many superfluous features of winsetup, which may confuse the player, requires mention in the documentation despite doing nothing for that particular game, or may even break the game if not blocked by game code (such as displaying a hi-res game in 320x200 causing unreadable fonts and crashes). Yes, some of them can be locked out in the .cfg file, but these settings will disappear if the .cfg is deleted for whatever reason.
How much work would it take to add a pane in AGSEdit to customize the winsetup, choosing which checkboxes and dropdown menu items to allow, and perhaps allowing for some minor customization of the layout (and maybe a piece of your own artwork to distinguish it from every other AGS game)? It's probably too late for the current version, but with the Direct3D driver option, a lot more end-users will need to run the setup program than before.

subspark

Not that I like to take apart CJ's lovely design of the winsetup, but I beleive ResHacker is the only way to do this right now.
Having said that, the idea of customizing the winsetup for a developers needs is truly welcome and overdue. So I am highly inclined to agree.

Cheers,
Paul.

subspark

#391
It would be nice in AGS if the sprite importer could remember which folder it was in when the sprite was last chosen and I think the ability to change the transparency mode (bottom-right / pallet index 0) could be done in the right click menu. I'm tired of having to surf back through old folders when correcting a silly mistake of choosing the wrong corner for transparency.

EDIT: In the layout section of the list pane under the GUI editor, I think 'Height' should be moved below 'Width' (like in most apps). The same goes for item width and height.
I also think 'Left' should be renamed to 'X Position' and 'Top' to 'Y Position'.

Cheers,
Paul.

mchammer

#392
Still using beta 11, so i dont know if this exists at beta 12,  the sprite manager showed only 64 sprites in a folder, even i had over 70.

EDIT: Nevermind, might be that i just had sprite manager open when i added more sprites with view editor, so it didnt update it. ::)
My 40 bullets - An action/war game.

Shane 'ProgZmax' Stevens

#393
QuoteBut it won't. AGS only writes out to disk the number of objects that you actually have, it's just the in-memory structures that are fixed size.

Fair enough, but I see some potential in creating objects and the like during runtime as well, allowing them to (among other things) appear to change rooms with the player easily or to be replicated.  If objects were made wholly independent from rooms there wouldn't be a whole lot of point to dynamically create them, but as it is now there would be quite a lot you could do with the ability to toss an object into a room on the fly or add a dozen or so extra as needed.  Objects being independent of rooms would be more useful, granted, since you could just set their room number and they'd be where you wanted them without creating copies in other rooms.  I'm not trying to hassle you, I just have some experience with static limits and then later seeing how much better things work out without them (and how many problems it avoids).

Recluse

#394
I had a question originally about alpha-blended sprites not displaying correctly in the editor window. I was going to grab some screenshots when I uncovered another (slightly more interesting) problem.

Something seems to be up with the SaveScreenShot(String filename) function.

I'm unable to use it to get any screenshots in both DirectDraw and Direct3D mode. I've placed the function inside one of my scripts, so it can't be a problem with the key_pressed function. I was able to use the function perfectly from 2.8, last I checked.

I think something with the new graphics engine isn't working, maybe the screenshot function is still pulling from an old surface, or something...

At any rate, I'm at a loss as to what to do, it won't work at all on my box.

EDIT: OH YEAH! My original problem... Ahem...

I've got some alpha blended sprites I'd like to use, but they seem to be displaying oddly in the editor, the entire background of the image is either white or black. However, the images display fine in  the game in both DirectDraw and Direct3D mode... Just thought you should know. :D
All your verbcoin are belong to us.

subspark

Chris, just letting you know that the automatic 'space after comma' is still performed in the dialog editor.
Cheers,
Paul.

monkey0506

However, one place that I would find the spacing after a comma useful is immediately following the end of a string-literal. If a string-literal is followed immediately by a comma no space is inserted, however for any following parameters it would be.

TheMagician

Quote from: subsparkHaving said that, the idea of customizing the winsetup for a developers needs is truly welcome and overdue
Agreed.

subspark

CJ, AGS 2.8 is behaving differently to 2.72 in terms of character tinting. I can't seem to get it to tint at ALL in 2.72 and again in 2.8 it seems to be only allowing half of the value I set in to be displayed.
If you have time, I have uploaded my small game for you to look see.
http://www.shuugouteki.net/paul/Development/AdlantoPrototyp_CJ_BUGTest.zip

BTW, I sent you a PM, Chris. Did you get it? I wasn't sure.

Thanks,
Paul.

Cinfa

Quote from: Recluse on Tue 02/10/2007 04:09:36
I've got some alpha blended sprites I'd like to use, but they seem to be displaying oddly in the editor, the entire background of the image is either white or black. However, the images display fine in  the game in both DirectDraw and Direct3D mode... Just thought you should know. :D
Same problem in 2.72 - maybe it's a feature to see transparent objects, but an outline would be fine as well.
Anyway I think it's only a problem with the editor window.

SMF spam blocked by CleanTalk