AGS 2.72 Final 2 - World Cup Edition

Started by Pumaman, Sat 14/01/2006 22:47:30

Previous topic - Next topic

Gilbert

Quote from: Radiant on Mon 20/03/2006 22:32:52
So I guess this would be something like "if a file 42.crm (or globalscript.txt) exists in the current directory, load that instead of grabbing it from the resource library".
I think this is supported already since AC era :P , works for rooms, musics, sounds, etc. resources, "large" "global" changes like adding a sprite or changing the global script (since global script was compiled into the game's main chunk) may require a complete change though.

InCreator

#181
Interesting that beta 5 had some weird bug that caused game to crash when testing. Immediately after the game loads, without even starting screen coming up, AGS crashed back to editor and gave a message about engine "shut down improperly" with no clearer text of error.

Tested both with my old game (I made no changes from beta4, and it ran well with that one) and also a default game template, with only room1.crm added (just a random BG) so it could be tested.

When my project crashed, I quite started to panic, since CJ always warns about backing up the game... But then noticed that next version is out, updated - and no problem anymore.

Can't figure out from bugfixes list neither, I don't have anything listed that could cause the crash.

But my guess is that it's something about palette.

Well, nevermind anymore.

Quote"large" "global" changes like adding a sprite or changing the global script (since global script was compiled into the game's main chunk) may require a complete change though.

What about a small recompiler? Like, you distribute fixed resource and small EXE file, which integrates the resource into game? Nowadays, many games have patching utilities, while updating, there's always updated resources AND a little program that applies them? Something like mini-AGS, without user interaction or GUIs, just a compiler. It would be smaller indeed.

AGD2

For something like the patching option, you should check out ClickTeam's freeware version of Patchmaker:

http://www.clickteam.com/English/patch_maker.htm

Basically, you point the program to the directory containing your old compiled game files. In the other box, you point it to the folder containing the latest compiled version of your game with all the bug fixes included. You can then make tweaks to various settings and exclude files you do not wish to update etc. When you're done, it'll compile an .exe patch using only the data that has changed between versions of your game to keep filesize to a minimum.

PatchMaker might work well on smaller AGS games; but as CJ once said, AGS compiles its resource files in an arbitrary manner. This being the case, PatchMaker may still compile a lot of redundant data.  Although, you might get smaller patch file sizes from if you compile your AGS game into a single executable file without any resource files.

I think a built-in AGS patch utility would be a great addition, but likely a lot of work for CJ.  A suitable alternative for minor room-related bugs might be to allow the user to password protect their .crm files, so that new versions could be placed in the game directory if needed, without the worry that anybody else can open them up and view/change them in the editor?

strazer


Pumaman

QuoteThanks, I'll go re-import everything then and see if that works (or, if you plan on implementing an indicator some time soon, I'll wait for that).

Beta 6 will display the colour depth on the Room Settings pane, next to the Relative Size.

QuoteSpeaking of which - it would be rather useful if, in the sprite list, there was an indicator as to which sprites were in a different resolution (e.g. 640x480) or in a different color depth (because those are likely an author's mistake that is hard to see as of now). Maybe in the right-click menu "select all sprites with such-and-such resolution" would help.

That's not a bad idea -- it does do this if you use hi-color sprites in an 8-bit game, but not otherwise.

QuoteNot really - it is part of windows' really idiotic System Restore function, that is so integrated with everything that I have been unable to turn it off. When I manually delete big EXEs, I rename them first. I'll give split resources a try, though.

Sounds annoying, it must be possible to turn that off. I've never noticed it doing anything myself.

QuoteSpeaking of split reosurces. This is probably a rather complex idea, but it would be really nifty for testing purposes if it were possible to upgrade things without having to redistribute the entire game. In particular, the global script or any particular room file. You're probably aware that Sierra games allow this (they always look for 'loose' resource files first, and if none are found they check their big library files; thus you can 'upgrade' any script by simply dumping a script file in the game directory). So I guess this would be something like "if a file 42.crm (or globalscript.txt) exists in the current directory, load that instead of grabbing it from the resource library".

As Gilbot says, this is already supported. You can place room42.crm in your Compiled and it will override the version that's compiled into the exe; it also works for sounds, etc; but the trouble is of course that if you do this, anyone can open those files in the editor.

There's a request outstanding to either password protect room files, or better still, to enable compiling "mini-patch" type things which would create a DAT file with just a specific set of rooms and which would take precedence over the main EXE file.

QuoteWhen my project crashed, I quite started to panic, since CJ always warns about backing up the game...

This isn't just idle advice, you know :P
It only takes 2 seconds to back up your game; a simple Copy & Paste of the game folder and you're sorted. Really people, it's not hard to do :P

Gilbert

Quote from: Pumaman on Tue 21/03/2006 19:46:48
There's a request outstanding to either password protect room files, or better still, to enable compiling "mini-patch" type things which would create a DAT file with just a specific set of rooms and which would take precedence over the main EXE file.

Password protected rooms? Don't look back to good o' AC! :=
Spoiler

Well, to be serious, I think one problem is, AGS game data is not that secured anyway (most data are not encrypted as far as I know), so I think an even better choice was maybe, provide an option in the editor to save an encrypted room (maybe with extension .erm), and that room cannot be loaded back into the editor for editting anymore (not even with passwords, you can keep the original crm file for updating though), if a .erm file is placed in a game's folder teh engine will use it first. And if this is possible, I'll also suggest when saving a game in the editor you may have an option to save the rooms encrypted into the executable (make it an option, otherwise it would be annoyingly wasting time when testing games) when you feel the game's ready for public release.
[close]

lemmy101

Quote from: Pumaman on Tue 21/03/2006 19:46:48
There's a request outstanding to either password protect room files, or better still, to enable compiling "mini-patch" type things which would create a DAT file with just a specific set of rooms and which would take precedence over the main EXE file.

Hi Pumaman, about this...

how about .zip support like in the Quake engine where they had renamed .zip files that the game engine would be able to query the enclosed filenames, and extract them on demand as fi they were simply present in the directory... then everyone can easily make compressed passworded data files simply with a copy of winzip?

cheers,

lemmy

Pumaman

The problem with encrypting data is that the engine has to be able to open it. Therefore you can never have true data encryption in a situation like this, since the game engine needs to know the password/key in order to extract the game data and therefore it can't be protected to the same extent as you could a personal zip file where only you know the password.

Also, encryption obviously adds to the amount of time it takes to read the data files, and thus has a performance impact.

The more basic request of a simple password protection on room files is still possible of course, but it can never be water-tight.

SSH

Quote from: Pumaman on Tue 21/03/2006 19:46:48
QuoteThanks, I'll go re-import everything then and see if that works (or, if you plan on implementing an indicator some time soon, I'll wait for that).

Beta 6 will display the colour depth on the Room Settings pane, next to the Relative Size.


For my SpriteFonts module, it would be nice to know a Room's BG depth at runtime and act diffeently accordingly. Any chance of a room.color_depth to go alongside the system.color_depth?

12

Radiant

#189
If I declare a struct containing an array like this
Code: ags

struct thingy {
  int a, b, c[10], d;
};

then variable d won't show up in the syntax completion.

If I use a non-existent operator such as *= the compiler treats this as an error in the keyword preceding it; e.g.
Code: ags

blup *= 2;

gives an error about the word 'blup' (even if it's a legal var) rather than about the operator.

Small feature request:
Code: ags

*=   /=   &=   |=   %=

I keep using these by reflex and they don't exist in AGS.


Game.GlobalMessages[500].LowerCase () is accepted by the syntax completer, but not the compiler ('instance required')

string s1; s1.LowerCase ()  is not accepted by the syntax completer, nor by the compiler ('not a public member')

Pumaman

#190
Quote from: SSH on Sat 25/03/2006 16:31:04
For my SpriteFonts module, it would be nice to know a Room's BG depth at runtime and act diffeently accordingly. Any chance of a room.color_depth to go alongside the system.color_depth?

Beta 7 adds this.

QuoteIf I declare a struct containing an array like this
struct thingy {
  int a, b, c[10], d;
};
then variable d won't show up in the syntax completion.

Ok, I'll look into this.

(Edit by strazer: AGS v2.72 RC 1: * Fixed autocomplete not picking up definitions of multiple variables on one line when one was an array.)

QuoteIf I use a non-existent operator such as *= the compiler treats this as an error in the keyword preceding it;

I wouldn't really say that this is an issue, it's just the way the compiler works. Giving you the identifier preceding it should be close enough to allow you to track down the problem.

Quote*=   /=   &=   |=   %=
I keep using these by reflex and they don't exist in AGS.

Sounds like a reasonable request, it is something anyone else would use?

QuoteGame.GlobalMessages[500].LowerCase () is accepted by the syntax completer, but not the compiler ('instance required')

Yes, this is an issue with the compiler at the moment, it doesn't support instance methods on static properties, I need to implement that at some point. The workaround is quite easy though.

Quotestring s1; s1.LowerCase ()  is not accepted by the syntax completer, nor by the compiler ('not a public member')

Indeed, because it's an old-style string. Old style strings are not objects, hence that will not work.

Wretched

I tend to want to use ^= quite a lot as a quick toggle, don't forget that one. Also float versions where applicable.

While I'm here, I've noticed that the crossfade between rooms, esp. in beta 6, is now so fast it looks like an instant change.Ã, 

And I can't get Object.ManualScaling to work, complains about not being able to import the function. Maybe this is wip.

Besh

Thank you very much for all the WAYPOINT functions.
Great works  ;D
"Spread our codes to the stars,
You can rescue us all"
- Muse

Radiant

Strange bug... the compiler occasionally, but not always, chokes if two multiline comments are sequential. For instance,

Code: ags

/****** Dataset header ******/

/*
          Earth    */


gives the error "unexpected 'Earth'".

edmundito

Quote from: Pumaman on Sat 14/01/2006 22:47:30
* Fixed issue where it was possible to characters to get stuck on top of each other.

I sure hoped they named this the Three Stooges bug! :P

GarageGothic

#195
Quote from: Pumaman on Sat 14/01/2006 22:47:30* Added System.Gamma and SupportsGammaControl

Awesome! No more worries about screens being too dark. Let's hope that everyone starts implementing this function. Thanks, CJ.

Edit: Except for one small thing - it doesn't seem to work! I put this code into my room script enter room after fadein interaction:

Code: ags
if (System.SupportsGammaControl) {
		Wait(200);
		System.Gamma = 10;
		}


And I didn't see any difference at all on the screen once the blocking period ended. I'm doing this on my laptop, so I wonder if the gamma only works on CRT screens - but that would be very strange. The game is 32 bit, I'm running in full screen mode, and the System.SupportsGammaControl must return as True since the Wait(200) command does run.

Pumaman

#196
QuoteWhile I'm here, I've noticed that the crossfade between rooms, esp. in beta 6, is now so fast it looks like an instant change. 

Has anyone else noticed this? I'll have a look at it.

QuoteAnd I can't get Object.ManualScaling to work, complains about not being able to import the function. Maybe this is wip.

The property is called Object.IgnoreScaling -- is there a typo in the manual somewhere where it gives you the wrong name?

QuoteStrange bug... the compiler occasionally, but not always, chokes if two multiline comments are sequential

Strange, I'll look into it.

(Edit by strazer: AGS v2.72 RC 1: * Fixed block comment parsing sometimes not working properly if /* was the last thing on a line)

QuoteAnd I didn't see any difference at all on the screen once the blocking period ended. I'm doing this on my laptop, so I wonder if the gamma only works on CRT screens - but that would be very strange. The game is 32 bit, I'm running in full screen mode, and the System.SupportsGammaControl must return as True since the Wait(200) command does run.

Has anyone else tried this feature, and had success? It seems to work fine for me, I wonder if some graphics cards report that they support the feature, but actually don't...

It's certainly not a CRT issue, because I have a TFT and it works.

EDIT: I'm not sure if the Gamma feature will work with 8-bit games, but that should'nt be an issue as yours is 32-bit

GarageGothic

#197
Quote from: Pumaman on Tue 11/04/2006 18:26:57I wonder if some graphics cards report that they support the feature, but actually don't...

My laptop has a ATI Mobility Radeon 9700 Pro video card. It does support gamma settings trough the desktop properties and in other games, but of course it could have an Allegro/DirectDraw incompability of some kind.

Edit: Neither positive nor negative values have any visible effect. Not even 0.

bullfrog

Quote from: Pumaman on Tue 11/04/2006 18:26:57
Has anyone else tried this feature, and had success? It seems to work fine for me, I wonder if some graphics cards report that they support the feature, but actually don't...

It works perfectly on my laptop (ATI Mobility Radeon 9700).
But setting the gamma to 0 on my desktop (NVIDIA GeForce 5900XT and a CRT)  doesn't make the screen black. It looks like a photo negative.

Wretched

 Well it's odd because object[0].ManualScaling=true; compiles and the ManualScaling appears in the auto complete but you get the error

Script link failed: Runtime error: unresolved import 'Object::get_ManualScaling'

when you try to run.

SMF spam blocked by CleanTalk