AGS 3.1.0 Final - World's Heaviest Bridegroom Edition

Started by Pumaman, Sat 05/07/2008 23:21:19

Previous topic - Next topic

GarageGothic

Hi-res coordinates? Oh bollocks, I foresee months of revising my scripts. Awesome feature nonetheless, should make for some smooooooth scrolling.

Dave Gilbert

woo.  you are the man.  checking this out now.

Shane 'ProgZmax' Stevens

#22
I get a 'cannot set video mode 320x240' error when trying to set my game to run fullscreen no matter which filters I use (2x, etc).  This happens in directdraw and d3d mode :(.  Also, my game resolution is now distorted to something larger than 320x240 (looks like an additional 60 pixel vertical area) and fonts no longer seem to scale down :(.



The text used to fit nicely in that bottom purple bar, and you'll notice the window is quite larger than it should be (you can actually see the color difference in the black where the proper screen size ends).

TheMagician

Quote from: PumamanRemoved Setup option to use the "wrong" resolution.

I'm creating a 320x240 game at the moment. Also I (and I guess many other players) use a TFT flatscreen display.

I always deliberately checked the "wrong" 640x480 mode in winsetup.exe because
a) when running the compiled game in fullscreen mode it looks crisper and sharper than the 320x240 mode
b) when testing and debugging the game I have a bigger window

Also I never had any issues with this "incorrect" setting.

Are these possibilities gone now or are there new ways to acchive these effects?

Lt. Smash

#24
I suggest to add this onto the implementing-list:

- Option to choose simple or advanced dialog creation.
     Simple: As it is.
     Advanced: You can use normal code:
In the dialog editor you set the options with attributes for Optiontext and textcolor. Show and Say aren't needed.
When you add a new option, the code editor adds:
Code: ags

if (DialogOption[NR].Clicked == true)
{
  
  Dialog.ShowOptions();
}


In the end it could look like:
Code: ags

Dialog.Start();
if (DialogOption[0].Clicked == true)
{
  player.Walk(12,12);
  player.Say("Txt");
  cPlayer2.Say("Txt2");
  DialogOption[0].SetState(eOptionOffForever);
  DialogOption[1].SetState(eOptionOn);
  Dialog.ShowOptions();
}
else if (DialogOption[1].Clicked == true)
{
  player.Animate(xxx);
  player.Say("txt")
  cPlayer2.Say("Txt2");
  Dialog.ShowOptions();
}


This is just a recommondation of how this could be implemented.
and I don't see why there is this simple dialog editor while there is no interaction editor.

Pumaman

QuoteIt would be amazing if the calltip help tool could be implemented for properties as well as functions. That would certainly be a huge undertaking adding all those comments, but I think for a new user it could be an invaluable tool in learning AGS.

I'd like to do this but there's no obvious point at which to pop up the calltip, whereas with functions you have typing the ( to do so. But what I might do it add something so if you hold the mouse over a variable it pops up the help text.

QuoteI get a 'cannot set video mode 320x240' error when trying to set my game to run fullscreen no matter which filters I use

Heh thanks, as usual I manage to not test the thing that I've broken -- 320x240 and 640x480 games were being initialized at the wrong resolution.
I've uploaded beta 2a with a fix. It should hopefully fix the text thing too, though I wasn't able to replicate it. If you still get the text problem with beta 2a would you be able to upload something that demonstrates it?

QuoteI always deliberately checked the "wrong" 640x480 mode in winsetup.exe because
a) when running the compiled game in fullscreen mode it looks crisper and sharper than the 320x240 mode
b) when testing and debugging the game I have a bigger window

In DX5 mode you have the graphics filters that provide a similar thing -- just select the 2x Nearest Neighbour filter and the game will run at 640x480.
The D3D driver will now do the same if it can't initialize 320x240 full screen.

The option had to be removed to support native hi-res co-ordinates; allowing people to run a 640x480 game at 320x240 as you could in previous versions would cause significant problems.

QuoteOption to choose simple or advanced dialog creation.

What you've described can already be done using the Dialog.DisplayOptions command.

QuoteI suggest to add the three main biggest features onto the implementing-list:
QuoteAny chance of finally implenting anti-alias fonts capability for dialog/speech for us high-resolution designers?

Please don't post feature requests in this thread -- there's the Wishlist thread for that instead. I'm trying to keep this thread clean for feedback on the beta.


Anyway, as I say I've uploaded beta 2a to fix the 320x240/640x480 display issues. Please let me know how you get on with this.

Shane 'ProgZmax' Stevens

#26
The resolution fix worked but the fonts still don't scale.  I think the problem is that now that you've removed the option in setup to manually set the resolution, I can't make the hi res fonts scale down by setting my game to 640x480 (filters don't have any effect on font scaling).  What you've done is actually correct, and people like me have been using a loophole to get smaller fonts than should be available at low resolutions, so I'm not really sure if it's even worth allowing.  It's certainly nice to be able to have really tiny readable fonts in a 320x240 game, but unless you can implement some way for the filter selection to allow the 'fonts designed for 640x480' rule (possibly by actually switching to that resolution?) I'll just have to find smaller fonts that actually have good visibility in low res.

Here's a visual example using 3.0 vs 3.1.0 beta 2a:







Same font, same point size, the only difference is before I could manually set the resolution to 640x480 to allow hi res font scaling and now I use the 2x filter.  Would it be possible to add some kind of engine setting to allow font scaling regardless?  Either that or some engine setting to allow the developer to pick the output resolution would work!

subspark

I agree. my fonts are whacked too.
great work on the UFO edition. that was a super fast release.

Cheers,
Paul.

Pumaman

Quote from: ProgZmax on Fri 11/07/2008 21:47:05
The resolution fix worked but the fonts still don't scale.  I think the problem is that now that you've removed the option in setup to manually set the resolution, I can't make the hi res fonts scale down by setting my game to 640x480 (filters don't have any effect on font scaling).  What you've done is actually correct, and people like me have been using a loophole to get smaller fonts than should be available at low resolutions, so I'm not really sure if it's even worth allowing.

Hmm, so have you been setting the "Fonts designed for 640x480" option to True, but your game is actually 320x240 ... and then you have changed the resolution in Setup to run it at 640x480? Therefore by running the game at its native resolution the fonts are too big?

If that's the case, then with previous versions surely if the user went into Setup and changed the resolution to 320x240 they'd get the same problem?

I could look into it automatically scaling down the fonts in this situation, but they would probably look quite rubbish if it did that.

Shane 'ProgZmax' Stevens

QuoteIf that's the case, then with previous versions surely if the user went into Setup and changed the resolution to 320x240 they'd get the same problem?

I could look into it automatically scaling down the fonts in this situation, but they would probably look quite rubbish if it did that.

Yes, that's why I think it would be nice if it was an in-engine setting (like a setting below resolution that would let you specify output resolution).  That way if you wanted scaled fonts in a low res game everyone would benefit, and with most video cards these days not even supporting low resolutions most people play the games scaled up to 640x400/480, anyway :).  Some kind of internal, optional setting would definitely be good, since I know a few people who have been using fonts in this way, Dave Gilbert's games included.

AGA

deltamatrix: requests don't go here. I moved your post to the right place.

Pumaman

Thanks, AGA.

QuoteYes, that's why I think it would be nice if it was an in-engine setting (like a setting below resolution that would let you specify output resolution).  That way if you wanted scaled fonts in a low res game everyone would benefit, and with most video cards these days not even supporting low resolutions most people play the games scaled up to 640x400/480, anyway .  Some kind of internal, optional setting would definitely be good, since I know a few people who have been using fonts in this way, Dave Gilbert's games included.

The problem is that this just isn't possible any more. Internally, the game is running at 320x240 and it's only at the very end of the game cycle that the result gets stretched by the filter to 640x480.

The old option that allowed this could do so because the co-ordinate system was always at 320x200-resolution. But now, if your game was to run at 640x480 the support for hi-res co-ordinates means that the engine would now expect everything to be at that resolution, which it wouldn't be in your 320x240 game.

Therefore, it's not really possible to support both hi-res co-ordinates and this font 'feature' that you're using. Of course anything is possible but I'm not sure that the amount of work it would require to implement would be worth the hassle.

Therefore, I think the only thing I can do is say that if you need this font hack then stick with 3.0.2 for now. I'm a bit concerned at how widespread it might be though, since Subspark says he's using it too, and you say Dave Gilbert's games are as well. Unfortunately it's not something I was aware of before embarking on this change.


Anyway, beta 3 is now up which adds and fixes some stuff, including 1024x768 support. Let me know if there are any problems.

TheMagician

Quote from: PumamanIn DX5 mode you have the graphics filters that provide a similar thing -- just select the 2x Nearest Neighbour filter and the game will run at 640x480.
The D3D driver will now do the same if it can't initialize 320x240 full screen.

Ok, I tested this briefly and the DX5 mode with 2x Nearest Neighbour filter works well.
However, I also used the D3D driver and was surprised that it's output quality is worse (pixels being distorted). Aren't they supposed to give the same result, as you said?

Here is a comparison of the two modes.
The screenshots are taken from a 320x240 game which runs in fullscreen mode:


Shane 'ProgZmax' Stevens

QuoteTherefore, I think the only thing I can do is say that if you need this font hack then stick with 3.0.2 for now. I'm a bit concerned at how widespread it might be though, since Subspark says he's using it too, and you say Dave Gilbert's games are as well. Unfortunately it's not something I was aware of before embarking on this change.

No problem.  Like I said, I always knew it was a loophole in the editor and wasn't ever really a feature as such.  I'll just have to start using small bitmap fonts, since there's no way I'm not going to take advantage of future improvements :).

monkey0506

#34
I know this isn't really the place for suggestions per se, but with the recent changes to the dialog system I've become aware that the Dialog structure doesn't have an ID member. Technically I guess this could be worked around using something like this:

Code: ags
int GetID(this Dialog*) {
  int i = 0;
  while (i < Game.DialogCount) {
    if (this == dialog[i]) return i;
    i++;
  }
}


But it would be simpler if I could just use:

Code: ags
dialog[i].ID


Also, I've mentioned it before but if there are NO dialogs in the game, the dialog array isn't defined at all. Clearly this saves space, but there is absolutely no way for the user to know from within the script whether this is the case...could perhaps a macro be defined?

Another thing that comes to mind is something brought up by skuttleman's KADS: the return and stop dialog-script commands. How exactly are these handled if using Dialog.DisplayOptions? Would it be possible to intercept these commands without actually having to replace them with a run-script?

Sorry if this is too suggestive (;)) for this thread...simply some thoughts on the dialog revisions.

BUG REPORT: (v3.1.0 beta 3)

Now when I type a struct member then a space I see the auto-complete list appearing with the struct functions and properties...selecting any of these apparently replaces the value I had already selected, except leaving the first character of the previous member. This is apparently a new issue with the latest beta (as far as I can tell). Notably it is only possible to select a member from the second appearance of the list by double-clicking on it, or arrowing down to it and pressing enter (the list is inactive?). This is as much information as I can really give...hopefully it's enough. If it makes a difference I was testing the calltip functionality with custom struct members...

Vince Twelve

Ooh, I had been using that font loophole too for Resonance.  I quite liked having smooth fonts on the 320x240 game.  I had been checking internally if the game was running in 320x240 or 640x480 and if it's the former, use a small bitmap font, and if it's the latter, use a nice ttf font.

I guess this locks me in 3.0.2 which is fine for now.  It has all the features I need. Though if you ever get around to that audio overhaul, I might be forced to look into working around this.

Pumaman

QuoteOk, I tested this briefly and the DX5 mode with 2x Nearest Neighbour filter works well.
However, I also used the D3D driver and was surprised that it's output quality is worse (pixels being distorted). Aren't they supposed to give the same result, as you said?

Hmm, that's strange. I tried out a 320x240 game on my computer, and it looked the same in D3D and DX5 full screen. I wonder if your graphics card might be trying to do some sort of wacky anti-aliasing or something when it stretches the image in 3D mode... can you try checking your graphics card settings in control panel and see if there's anything that looks like it might do that?

Does anyone else get this problem?

QuoteI know this isn't really the place for suggestions per se, but with the recent changes to the dialog system I've become aware that the Dialog structure doesn't have an ID member

Fair enough, though I'm not sure why you'd need to know the ID number?

QuoteAlso, I've mentioned it before but if there are NO dialogs in the game, the dialog array isn't defined at all. Clearly this saves space, but there is absolutely no way for the user to know from within the script whether this is the case...could perhaps a macro be defined?

Yeah I guess this would be a bit annoying for module authors, I'll look into it.

QuoteAnother thing that comes to mind is something brought up by skuttleman's KADS: the return and stop dialog-script commands. How exactly are these handled if using Dialog.DisplayOptions? Would it be possible to intercept these commands without actually having to replace them with a run-script?

It's irrelevant since DisplayOptions doesn't run dialog scripts. All it does is displays the options and returns which one was chosen.

QuoteNow when I type a struct member then a space I see the auto-complete list appearing with the struct functions and properties...selecting any of these apparently replaces the value I had already selected, except leaving the first character of the previous member

Interesting, I get that too but I also get it in 3.0.2 so it's probably been there for a while. I'll get it fixed.

QuoteOoh, I had been using that font loophole too for Resonance.

Blimey, not another one!! Who ever would have thought so many people would be using a feature that I didn't even know existed!!!  :-\

TheMagician

Quote from: Pumamancan you try checking your graphics card settings in control panel and see if there's anything that looks like it might do that?

I have a GeForce card which uses the NVidia Control Panel.

There is indeed a pane with different settings for scaling non-native resolutions:



1. NVidia scaling                                            2. NVidia scaling with fixed aspect ratio
3. Integrated scaling mode of the display     4. No scaling

What's interesing: with NO scaling and fullscreen mode selected I get a big black border around the image which is actually 640x480 (although the game is 320x240). However, the difference between DX5 and D3D are exactly the same as shown in the gif in my previous post.

freshpaint

I have about 20 rooms of a 800 x 600 res game (Darkdevil County) more or less completed, some with a fair amount of scripting.  The "keep lo res" mode doesn't work the way I'd thought it would, however, since all screen coordinates settable in the room properties panes get converted.  In particular, even though on the screen hotspots look right, when you move the mouse over them or try to run an interaction, the coordinates aren't right. 

My little roger example I'd uploaded for my hotspot misunderstanding shows what's wrong immediately.  You can change object x,y and hotspot walkto points in script, but not the x,y of the real estate they cover in the room editor pane (which is always hi res).

This is the original demo -- if you open it and run it under any of the new 3.10 versions and toggle the hi/lo res feature you'll see what I mean, I hope.  The status line is supposed to update when over the hotspot, etc.  The program runs just fine if you switch to hi res coordinates, however, since there's no coordinate stuff happening in the scripts.

Buggy Test.zip

As to going thru and doubling everything in the Darkdevil game -- well, this is what you get by not listening when your mother told you never ever to hardwire anything!  Conversion program, anyone?

The new dialog option to run loops works great for me.  Doing stuff in actual screen coordinates is going to be great when I get everything converted.  Until then...


Dave Gilbert

#39
Quote from: Vince Twelve on Sun 13/07/2008 07:53:28
Ooh, I had been using that font loophole too for Resonance.  I quite liked having smooth fonts on the 320x240 game.  I had been checking internally if the game was running in 320x240 or 640x480 and if it's the former, use a small bitmap font, and if it's the latter, use a nice ttf font.

I guess this locks me in 3.0.2 which is fine for now.  It has all the features I need. Though if you ever get around to that audio overhaul, I might be forced to look into working around this.

Doh.  Me too.  I've always been using hi-res fonts on a 320 x 240 screen.  Looks like I'll stay with 3.02 as well! 

SMF spam blocked by CleanTalk