AGS 3.0.2 Final 2 - Credit Crunch Edition

Started by Pumaman, Mon 28/04/2008 18:22:53

Previous topic - Next topic

Pumaman

Well, with people being asked to take pay cuts all over the place, I guess we won't have any money left to do anything except sit at home and make games:

Changes in Final 2:

* Updated to v1.6.0 of Verb Coin template (thanks Electroshokker!)
* Improved editor behaviour on startup if registry entries have been corrupted
* Fixed template generation failing if the template had speech or translations
* Fixed template generation saying it was successful even when it failed
* Fixed Create New Game not putting music/sound files in the sub-folders
* Fixed editor crash if you selected a whole line of script and then pressed F1
* Fixed Mouse.ChangeModeView crashing if you passed a View of -1


Changes in Final:

* Alpha-transparent background and borders are now supported for textwindow GUIs
* Room editor now shows "?" for mouse position when the cursor is outside the room area
* Room editor now uses grey for area outside of actual room background
* Fixed potential managed object pool corruption if you made heavy use of SayBackground
* Fixed crash creating/renaming view folders, introduced by an earlier beta
* Fixed crash if you tried to crop edges on a completely transparent sprite
* Fixed intermittent error after closing game when using debugger
* Fixed crash using $AUTOCOMPLETEIGNORE$ on script function, introduced by RC 2.

Changes in RC 2:

* Added some new icons thanks to Klaus
* Added plugin API GetSpriteUsageReport,DeleteSprite functions
* Fixed crash starting up the editor on some systems
* Fixed excluded room files still being compiled into the game EXE
* Fixed DrawingSurface.GetPixel sometimes returning invalid values in 32-bit games
* Fixed view preview not being updated if you changed the currently displayed sprite's Flipped setting
* Fixed view preview not flipping frames if they were being scaled down
* Fixed script editor function list not including extender functions
* Fixed editor crash if you deleted a GUI control while in the middle of dragging it around
* Fixed error generating voice acting script if there was a player.Say line in the script with no indentation
* Fixed crash in sprite import window when zooming out and in of the bottom right corner

Changes in RC 1:

* Added optional DialogOptionSayStyle parameter to Dialog.DisplayOptions()
* Added editor plugin API methods ShowSpriteSelector, SetStatusBarText, Game.Sprites, CreateNewSprite, ChangeSpriteImage
* Further improvements to appearance of various dialogs when using 120 DPI; and splash screen now displays taglines when using 120 dpi ;)
* Editor now makes sure that you don't name a View the same as a character
* Updated to v1.5.3 of Verb Coin template (thanks Electroshokker!)
* New GUI alpha channel method (in General Settings) to allow more intuitive rendering of alpha channels on GUI controls
* When importing alpha channel images, alpha-transparent pixels are now recognised as transparent pixels
* Sprindex.dat is now put under source control if the main sprite file is
* Fixed alpha channel not working on graphical Overlays
* Fixed line and rectangle tools sometimes being slightly out from where the area actually appeared
* Fixed 8-bit rooms from 2.72 not being displayed correctly in the editor if they used gamewide colours
* Fixed transparency being lost when importing an 8-bit character into a hi-colour game
* Fixed Global Variables editor not allowing you to use negative numbers
* Fixed speech.vox being generated even if you had no speech (you may need to delete any existing syncdata.dat file for this to work)
* Fixed dynamic arrays not working if you had Left-to-right Precedence turned off
* Fixed the last imported image file being locked by the editor

Changes in beta 2:

* Added Global Variables pane to editor, to allow you to easily declare global variables for the script instead of having to do all the import/export rubbish
* Added Dialog.DisplayOptions command to assist with implementing custom dialog systems
* Added DynamicSprite.CreateFromDrawingSurface script function

Changes in beta 1:

* Added script functions Game.DialogCount, Dialog.OptionCount, Dialog.GetOptionText
* Added plugin API functions IsRunningUnderDebugger, BreakIntoDebugger, GetPathToFileInCompiledFolder
* Modified source control integration not to check in the username, which was happening in some cases
* Added option to put sprite and sound files under source control
* Improved responsiveness of room Edges editor under Windows Vista
* Improved parsing of function list in script editor when the script contains comments and strings
* Improved look of wizard dialogs when run at 120 DPI
* Updated to latest version of Electroshokker's Verb Coin template
* Fixed demo game not compiling
* Fixed editor error loading games if your regional settings had a space in the short date format
* Fixed some TTF fonts being incorrectly positioned in the editor GUI previewer
* Fixed hotspot sometimes getting corrupted when importing a new background
* Fixed exported GUIs not having the sprite resolutions exported correctly
* Fixed translation file generation failing if a script included a speech mark inside quotes ('"')
* Fixed Game.TranslationFilename property returning a path when the game is run under the debugger
* Fixed Voice Actor Script generation giving error if you used "Narrator" (with a capital N) in a dialog script
* Fixed editor crash if you deleted the Compiled folder while it was running

THIS IS A BETA, ALWAYS BACK UP YOUR GAME BEFORE USING A BETA VERSION OF AGS

http://www.adventuregamestudio.co.uk/AGS-3.0.2.exe
for this release only an installer is provided (to make sure the demo game is now working!) but for the final release a plain RAR file will of course be made available

Joseph DiPerla

Awesome! Keep up the great outstanding work CJ!!!!
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

skuttleman

Quote from: Pumaman on Mon 28/04/2008 18:22:53
* Added script functions Game.DialogCount, Dialog.OptionCount, Dialog.GetOptionText

Yay! I fished my wish! Rock on, CJ!!!!

monkey0506

I knew if I held out long enough on that dialog code that you'd come through CJ! :=

Not that I would do that... ::)

Mr.T


subspark

Brilliant work Chris! You and AGS are true a legend.
Paul.

lemmy101

Awesmoe stuff CJ! :D Lovely goodies!! *drools* Thanks again! :)

subspark

Actually theres still a bug with the rendering of the text, Chris. As shown in my example, the font is being distorted from its usual 1 pixel spaced style. Also, the label's coordinates in the game/editor are still not representative of each other.


Note: Pink background = Editor
          Black Background = Running Game

Cheers mate,
Paul.

Pumaman

Does the font use an outline? I think the editor draws the fonts 1 pixel off if they've got an outline in-game, which is something I need to fix at some point but it's not a major priority.

QuoteAlso, the label's coordinates in the game/editor are still not representative of each other

What do you mean by this?


Anyway, I've uploaded beta 2. This is earlier than I normally would, but there are two things that I want to make sure get time to be tested before this version is released.

First, the new "Global variables" pane. I've seen a lot of questions in Beginners Tech from people asking how to create global variables, and with all the import/export nonsense it has been unnecessarily complicated. So this new feature should make it much simpler and hopefully ween people off the 2.72 interaction editor.

The other thing is that in order to implement the new Dialog.DisplayOptions command I've had to do some refactoring of the dialog system, so if you guys could make sure that your dialogs still work properly that'd be appreciated.

GarageGothic

#9
Quote from: Pumaman on Mon 28/04/2008 18:22:53* Added DynamicSprite.CreateFromDrawingSurface script function

Oh thank you, thank you, thank you!!! I can't wait to get started using this feature.

Now kids, we can all learn a valuable lesson from this: If you pester CJ enough, he'll eventually give in to your demands  ;)

Edit:
QuoteAlso, the label's coordinates in the game/editor are still not representative of each other

Is the font antialiased in-game? If so, I wonder if this isn't the exact same issue I reported three years ago? I came to accept it as a bug in the external libraries, but perhaps now that DrawingSurface supports hi-res coordinates it would be possible to fix? I remember reading somewhere that all true type text in the game is rendered as DynamicSprites internally before being displayed, so perhaps a pixel adjustment would be possible?

Shane 'ProgZmax' Stevens

QuoteDialog.DisplayOptions

Very nice.  Is this part of your plan to allow dialogs to be run via normal scripts?  If so, I'm all for it!

skuttleman

The Global Variables pane doesn't let me insert negative default values for integers.

subspark

#12
Quote from: myselfThe label's coordinates in the game/editor are still not representative of each other.

Yeah basically this means that the coordinates in the game are different to the coordinates in the editor. The same bug as before only less extreme.

The font's outline was set to 'Automatic' however if I change it to 'None', the bug still occurs.

Cheers,
Paul.

Edit: Great work with the Global Variables Pane, Chris! It has however been a while since I touched code and I'm stumped as to how to use them in my scripts. Could you update the help file for the next release with an example? It would help novice programmers like myself.

would it be like:
Code: ags
if (GetGlobalVariable(ego_has_item1)==1) {
   --code here--
}

SetGlobalVariable(ego_has_item1, 0);


Also the ability to reorder the global variables would be handy for organizational sake. I tend to have them in order of triggered but some might like to order them by Z-A or type.

Thanks mate. Cheers.
Paul.

Gilbert

Quote from: subspark on Wed 30/04/2008 01:35:14
Yeah basically this means that the coordinates in the game are different to the coordinates in the editor. The same bug as before only less extreme.

Hmmm try setting up the game to run at an alternate resolution (i.e. if it's set up to run at 320 try 640 and vice versa) and see if it makes any difference.
As far as I remember, for a low res (320x2xx) game. The position of the labels are off by one vertical screen pixel when we compare it running at low res. or in high res. (640x4xx). This at least happened in old versions. I don't have time to check if it's fixed, personally I think it should be fixed.

subspark

Thanks, Gilbot. Your right. Running the game in 640x400 mode means that the label sits lower than it is set in the GUI Editor by 1 pixel at runtime.

Running in 320x200 mode eliminates the offset problem. I've tracked the font rendering problem to the font itself. It seems that the new version has changed my font's scale/position.
Example:


Cheers,
Paul.

Rui 'Trovatore' Pires

Subspark, re global variables - have you tried using them as you would normal variables? Just,

if (ego_has_item1) {}

ego_has_item1++;

...stuff like that?

I mean, I *hope* it works like this, if the whole point was to simplify GVs...
Reach for the moon. Even if you miss, you'll land among the stars.

Kneel. Now.

Never throw chicken at a Leprechaun.

subspark

#16
Wow RUI. Thanks. Incidentally, I could find no reference to your code example in the manual. This is quite confusing. Whats the use for Graphical variables if there are Global Ints and why are graphical variables called Graphical variables? Shouldn't they be Global Variables?

Cheers,
Paul.

Edit:
SUGGESTION:
I don't know how the other types of global variables such as GUI* work, but I think global variable code should be housed more uniformly. I mean the same code format should be used for (ints,GUI*,Character* etc.) Otherwise its too confusing for beginners like me and unnecessarily cluttered for everyone as a whole. This is just my opinion however.

Cheers,
Paul.

SSH

#17
Quote from: subspark on Wed 30/04/2008 10:11:10
Wow RUI. Thanks. Incidentally, I could find no reference to your code example in the manual. This is quite confusing. Whats the use for Graphical variables if there are Global Ints and why are graphical variables called Graphical variables? Shouldn't they be Global Variables?

Graphical variables went out with v3.00 since they were part of the now-defunct interaction editor.

Quote
It has however been a while since I touched code and I'm stumped as to how to use them in my scripts. Could you update the help file for the next release with an example? It would help novice programmers like myself...

I don't know how the other types of global variables such as GUI* work, but I think global variable code should be housed more uniformly. I mean the same code format should be used for (ints,GUI*,Character* etc.) Otherwise its too confusing for beginners like me and unnecessarily cluttered for everyone as a whole. This is just my opinion however.

Monkey wrote a great tutorial for n0bs like yourself at http://americangirlscouts.org/agswiki/index.php?title=AGS_Pointers_for_Dummies
12

Pumaman

QuoteVery nice.  Is this part of your plan to allow dialogs to be run via normal scripts?  If so, I'm all for it!

Well, in theory with this command you don't have to use the dialog scripts at all. You could simply do something like this in your normal script:

int choice = dBarman.DisplayOptions();
if (choice == 0)
{
  cBarman.Say("Hello");
}
else if (choice == 1)
{
  cBarman.Say("Something else");
}
// etc

OK, it's not very elegant code, but it gets us half way there.

QuoteThe Global Variables pane doesn't let me insert negative default values for integers.

Good spot, thanks, I'll get it changed.

QuoteThe font's outline was set to 'Automatic' however if I change it to 'None', the bug still occurs.

As GarageGothic asks, do you have TTF anti-aliasing enabled? If so and you turn it off, does that resolve the problem?

QuoteGreat work with the Global Variables Pane, Chris! It has however been a while since I touched code and I'm stumped as to how to use them in my scripts. Could you update the help file for the next release with an example? It would help novice programmers like myself.

Well, the idea was that they're so simple you don't need an example on how to use them -- but I will add one to the manual :)

Quote
would it be like:
if (GetGlobalVariable(ego_has_item1)==1) {
   --code here--
}

SetGlobalVariable(ego_has_item1, 0);

No, the whole point is you don't need any special commands to use them. So it would just be:

if (ego_has_item1 == 1) {
   --code here--
}

ego_has_item1 = 0;

They should be picked up by autocomplete to assist with this.

QuoteRunning the game in 640x400 mode means that the label sits lower than it is set in the GUI Editor by 1 pixel at runtime.

Ah ok, well I'm not sure if there's a lot that can be done about this. When you run at 320x200 it has to shrink the font and the way it's happened has probably resulted in the characters shifting up slightly.

Is this 1 pixel offset causing you a problem?

QuoteIt seems that the new version has changed my font's scale/position.
Example:

Yes, 3.0.2 changes the rendering in the editor so that it matches the rendering in the engine (previously it was using a different renderer, which is why it could be 5 pixels out). So it's important to note that the engine TTF rendering is identical to previous versions, but in the editor it has now changed to be consistent with the engine.

QuoteWhats the use for Graphical variables if there are Global Ints and why are graphical variables called Graphical variables? Shouldn't they be Global Variables?

Graphical Variables are obsolete, they're from the 2.72 interaction editor.
As of now, I consider that GlobalInts are obsolete as well. The new Global Variables feature provides a much more friendly way of creating global ints that allows you to name them, and so I don't see there being any need to continue using GlobalInts.

QuoteI don't know how the other types of global variables such as GUI* work, but I think global variable code should be housed more uniformly. I mean the same code format should be used for (ints,GUI*,Character* etc.) Otherwise its too confusing for beginners like me and unnecessarily cluttered for everyone as a whole. This is just my opinion however.

I'm not really sure what you're asking here, can you re-phrase that?

Gilbert

Quote from: Pumaman on Wed 30/04/2008 10:49:03
Ah ok, well I'm not sure if there's a lot that can be done about this. When you run at 320x200 it has to shrink the font and the way it's happened has probably resulted in the characters shifting up slightly.

This is not necessarily true. The following image is a comparison of a button in my (yet-to-be-released) game (compiled with V2.6sp1 :P):

The font is actually an AGI font set I made, and was set to work at low res. and the button graphics was low res. also. So, when the game is set to run at 640x480, the label should be identical to the 2x zoomed in version of the low res. one. However, you can see that it's not actually the case.
I can understand the off-position problem if it's a true type font or a high res bitmap font, but it shouldn't happen if it's a low res. bitmap font.

(P.S. just tried V3.00 and it seems to have the same problem.)

SMF spam blocked by CleanTalk