About a month ago I created my first game using AGS for the October MAGS competition and I scribbled some barely readable notes whenever I encountered something which I found confusing or which didn't work as I expected. I thought feedback like this can be helpful for developers even if some of the issues may already have a solution I don't know about. Don't treat it as a list of complaints, I think AGS is a cool product
I used AGS 3.1.2.
Development Environment
o The new game wizard should provide a browse button to
select the target directory for the new game. It might also
be useful to direct the user to the "General Settings" page
after creating the game.
o It should be possible to reopen a previously edited game
from the file menu (File > Recent > ... ?) similar to the
way you can do on AGS startup. Also, creating a new game
should be possible from the File menu for completeness.
o It would be nice to be able to toggle break points just by
left clicking in the gray area between the line number and
the beginning of the line.
o People often seem to accidentally release debug versions at
least for quick MAGS games. Actually, "debug mode" is more a
build setting than an actual game setting. Maybe there could
be commands like "Build Debug Version" and "Build Release
Version" in the menu instead which would output to different
subdirectories.
o It would be nice to be able to force-edit script files while
testing the game (at your own risk, knowing that the debugger
may no longer show the correct line numbers). This allows
to fix small things like typos in message without having
to write them on a list or abort testing.
Scripting Language
o A ternary operator would be nice, but is of course syntactic sugar.
o Calling a global function from a dialog script did not seem to
work for me (but I may have been doing something wrong).
o I had the impression that the global script does not import
the global header (so within the global script a function name
is only known if it occurs at an earlier time in the script).
Event Handling
o When compiling the game, there should be an error if an
event handler has a function name set which does not exist,
just as for functions called in code. Currently this seems to
needlessly crash at runtime.
o It would be convenient if the InventoryItem had an event
UseInvSymmetric(InventoryItem* otherItem)
If an item is used on another, this would always be called for both items.
So you only need to implement one for combining two objects.
o Also, I fell into the trap of having no reactions for some interactions
although I implemented unhandled_event. This of course happens if you do
handle an event but then have some condition inside the event handler
for this interaction to have the desired effect. I solved this by
adding code like "else {unhandled_event(5,1);}" but it is a bit
cryptic and the event type is actually already known by the
engine. Maybe a built-in function "treat_as_unhandled_event()"
could be added.
o Also, regarding unhandled events, it might be more forgiving
for the player to give the negative response immediately instead
of first walking up to the hotspot as if something was happening.
Maybe this could be a game option under "Character Movement":
"Do not walk to hotspot for unhandled events"
Sprite Handling
o It would be nice to have a "Reimport Sprite(s)" command which
simply reloaded the selected sprites from the filename stored in
the SourceFile property. This allows to edit multiple sprites
with an external editor and then updating them in AGS without
having to browse to each (in my case I was generating *lots* of
frames for animations from a 3D source and I found it to be less
painful to simply delete the old sprites and recreate the
animation loops than try to replace the sprites from file).
o When importing a sprite with an alpha channel, you first get
a message box asking you whether to use the alpha channel. Then
the normal sprite import dialog opens which includes the normal
transparency options. This is a bit confusing for the user. I
would recommend to include "Alpha Channel" as an option in
the "transparent colour" combobox and select it as default if
the imported image has an alpha channel. This would make it
more clear what happens and it saves a click too.
o A warning might be displayed within the dialog if the imported
image has an alpha channel but the game is not configured to be
32-bit color.
o Furthermore, the alpha channel did not seem to work for
inventory items within the inventory window. Pixels with partial
transparancy were tinted with black instead of the actual
background color. So I had to use a black inventory window
Room editor
o The "Show this room's" combo box in the room editor and the
object selection combo box in the property window are closely
coupled but very distant on the screen. In particular, it is
a bit confusing if you come from scripting just to add a few
event handlers to some objects, because the objects don't
appear in the property box unless you also select the
correct region type on the other side of the screen.
Maybe the following functionality would be helpful:
In the property window, add a check box
"Filter by currently displayed region type"
If this is disabled, the combo box could show all
objects. If an object is selected which has a different
type from the current display settings, automatically
change the display to the type of the new object.
o Clearing areas (drawing with right mouse button) seems to affect
all regions while drawing only affects the currently selected. This
is somewhat counter-intuitive. Also, if this is desired for some
reason, there should at least be an easy way to completely reset
or clear the current region without affecting other regions.
o A brush size / line thickness for freehand drawing of regions
would be nice. Sometimes 1 pixel is a bit restrictive.
GUI editor
o This could do with a "grid" for placing components or at least a small
delay after a click before it can be moved. I routinely moved GUI elements
by accident for 1 pixel when I just wanted to select them.
Music / Sound
o If you delete the last piece of music, the old music.vox
should be deleted when compiling. Currently it sticks around.
o It would be nice to give sounds names instead of numbers.
Site
o I didn't find the documentation for [ hide ] [ /hide ] in the forum documentation
where the other tags are documented.
And congratulations for reading this up to the end

Development Environment
o The new game wizard should provide a browse button to
select the target directory for the new game. It might also
be useful to direct the user to the "General Settings" page
after creating the game.
o It should be possible to reopen a previously edited game
from the file menu (File > Recent > ... ?) similar to the
way you can do on AGS startup. Also, creating a new game
should be possible from the File menu for completeness.
o It would be nice to be able to toggle break points just by
left clicking in the gray area between the line number and
the beginning of the line.
o People often seem to accidentally release debug versions at
least for quick MAGS games. Actually, "debug mode" is more a
build setting than an actual game setting. Maybe there could
be commands like "Build Debug Version" and "Build Release
Version" in the menu instead which would output to different
subdirectories.
o It would be nice to be able to force-edit script files while
testing the game (at your own risk, knowing that the debugger
may no longer show the correct line numbers). This allows
to fix small things like typos in message without having
to write them on a list or abort testing.
Scripting Language
o A ternary operator would be nice, but is of course syntactic sugar.
o Calling a global function from a dialog script did not seem to
work for me (but I may have been doing something wrong).
o I had the impression that the global script does not import
the global header (so within the global script a function name
is only known if it occurs at an earlier time in the script).
Event Handling
o When compiling the game, there should be an error if an
event handler has a function name set which does not exist,
just as for functions called in code. Currently this seems to
needlessly crash at runtime.
o It would be convenient if the InventoryItem had an event
UseInvSymmetric(InventoryItem* otherItem)
If an item is used on another, this would always be called for both items.
So you only need to implement one for combining two objects.
o Also, I fell into the trap of having no reactions for some interactions
although I implemented unhandled_event. This of course happens if you do
handle an event but then have some condition inside the event handler
for this interaction to have the desired effect. I solved this by
adding code like "else {unhandled_event(5,1);}" but it is a bit
cryptic and the event type is actually already known by the
engine. Maybe a built-in function "treat_as_unhandled_event()"
could be added.
o Also, regarding unhandled events, it might be more forgiving
for the player to give the negative response immediately instead
of first walking up to the hotspot as if something was happening.
Maybe this could be a game option under "Character Movement":
"Do not walk to hotspot for unhandled events"
Sprite Handling
o It would be nice to have a "Reimport Sprite(s)" command which
simply reloaded the selected sprites from the filename stored in
the SourceFile property. This allows to edit multiple sprites
with an external editor and then updating them in AGS without
having to browse to each (in my case I was generating *lots* of
frames for animations from a 3D source and I found it to be less
painful to simply delete the old sprites and recreate the
animation loops than try to replace the sprites from file).
o When importing a sprite with an alpha channel, you first get
a message box asking you whether to use the alpha channel. Then
the normal sprite import dialog opens which includes the normal
transparency options. This is a bit confusing for the user. I
would recommend to include "Alpha Channel" as an option in
the "transparent colour" combobox and select it as default if
the imported image has an alpha channel. This would make it
more clear what happens and it saves a click too.
o A warning might be displayed within the dialog if the imported
image has an alpha channel but the game is not configured to be
32-bit color.
o Furthermore, the alpha channel did not seem to work for
inventory items within the inventory window. Pixels with partial
transparancy were tinted with black instead of the actual
background color. So I had to use a black inventory window

Room editor
o The "Show this room's" combo box in the room editor and the
object selection combo box in the property window are closely
coupled but very distant on the screen. In particular, it is
a bit confusing if you come from scripting just to add a few
event handlers to some objects, because the objects don't
appear in the property box unless you also select the
correct region type on the other side of the screen.
Maybe the following functionality would be helpful:
In the property window, add a check box
"Filter by currently displayed region type"
If this is disabled, the combo box could show all
objects. If an object is selected which has a different
type from the current display settings, automatically
change the display to the type of the new object.
o Clearing areas (drawing with right mouse button) seems to affect
all regions while drawing only affects the currently selected. This
is somewhat counter-intuitive. Also, if this is desired for some
reason, there should at least be an easy way to completely reset
or clear the current region without affecting other regions.
o A brush size / line thickness for freehand drawing of regions
would be nice. Sometimes 1 pixel is a bit restrictive.
GUI editor
o This could do with a "grid" for placing components or at least a small
delay after a click before it can be moved. I routinely moved GUI elements
by accident for 1 pixel when I just wanted to select them.
Music / Sound
o If you delete the last piece of music, the old music.vox
should be deleted when compiling. Currently it sticks around.
o It would be nice to give sounds names instead of numbers.
Site
o I didn't find the documentation for [ hide ] [ /hide ] in the forum documentation
where the other tags are documented.
And congratulations for reading this up to the end
