AGS 3.3 Wishlist

Started by subspark, Tue 09/12/2008 03:34:03

Previous topic - Next topic

GarageGothic

#420
Use ogg vorbis instead of .avi - no issues with external codecs that the end user may or may not have installed, and they can already be included in the compiled file.

Edit: This was in response to icey/Scavenger's post on the previous page, btw. That said, as I've suggested in an earlier post, I *do* think it would be excellent to have a custom resource file format to "hide" custom data files that could be accessed through File functions or by a module. For instance .xml vector data, text resource files, or the .pam files used by the script Calin posted (though I still think AGS should support lipsync for any style of animation internally - I can't see any technical arguments for restricting it to Sierra style overlays).

subspark

QuoteI *do* think it would be excellent to have a custom resource file format to "hide" custom data files that could be accessed through File functions or by a module

I've suggested this once before, but it would be totally kick-ass if AGS could allow users to customize their own data packages. A container file with a custom three-letter extension could be entered into the properties pane and on compile, the data files get encoded and dropped into the compiled folder.

I've always welcomed the idea of user customization in concert with security.

Cheers,
Sparky.

Dualnames

There is a very great module that Monkey made, and it had a video test demo as well, the module is called Encrypted Module 1.1 or 1.2 anyhow, the most recent one, and trust me, its very fast in both encrypting and decrypting, so you don't really have to worry about speed issues. The whole dat thing in my personal opinion is just uterrly pointless in my OWN opinion.
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

subspark

QuoteThe whole dat thing in my personal opinion is just uterrly pointless in my OWN opinion.
Oh, you mean pointless as officially supported? I can see where your coming from indeed, however CJ has always maintained a high level of security to protect project data and I personally think a data management/protection system would compliment that motive and offer better protection right out of the box.

Cheers,
Sparky.

Dualnames

I'm not really sure, sparks. I don't think a function offered by a complicated module, ever became part of AGS instead. And the encrypted module is in that category as well.
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

GarageGothic

Encryption is only part of the issue (and in any case, AGS' own file obfuscation is lousy - most if not all Strings are searchable cleartext in the executable file). To me the main concern was the ability to bundle files of various formats in a single resource file. I'm probably just gonna add the functionality to my plugin, but it's kinda getting to the point where I'm rewriting so much base functionality that I might as well do a full AGS port.

subspark

My point exactly, Garage. Hit the nail on the head buddy. ;)

Cheers,
Sparks.

Akril15

Quote from: Calin Leafshade on Thu 23/09/2010 10:41:28
I actually managed to do Lucas Arts lipsync... Only about 100 lines of code.
Ooooh, this sounds great! I'll definitely have to play around with that code when I have the time. Thank you very much!

Ryan Timothy B

Instead of having just IsInteractionAvailable(int x, int y, int mode), there should also be a more direct approach since I imagine the X and Y route uses this method behind the scenes anyway.

Suggestion:
Character.IsInteractionAvailable(int mode);
Object.IsInteractionAvailable(int mode);
Hotspot.IsInteractionAvailable(int mode);



Just like the currently available feature: InventoryItem.IsInteractionAvailable(int mode);

It would make things less spaghetti code with some of my stuff. Thank-you kindly! :P

subspark

I think having an OnRelease property to go with the OnClick one in the GUI events pane would be extremely useful.
You could effectively create a two-step function this way. For example you can click down on mouse to fade out a GUI, and then release the mouse to fade another in. ^^
It would save many lines of mouse state checking code.

Cheers,
Sparky.

Knox

It would be great to have some sort of "tokenize" for strings (taken from Mel scripting):

QuoteThis command will split the first string argument up according to split characters provided in the optional second argument. If this argument is not provided, tokenize will use a default split string consisting of whitespace characters. The input string is scanned for substrings (tokens) which are separated by any of the split characters. Note: tokenize does not match the entire split string; it matches any character in the string. The resulting token strings are put into the third argument which is a string array. The return value of this procedure is the number of tokens into which the original string is divided.

Code: ags

MEL examples
string $buffer[];
$numTokens = `tokenize "A/B//C/D" "//" $buffer`;

// Buffer will contain 4 strings, not 2: "A", "B", "C", "D"
// and $numTokens will be 4.

string $buffer[];
$numTokens = tokenize("Mildred Pierce Femme Fatale", $buffer);

// Buffer will contain 4 strings: "Mildred", "Pierce", "Femme", and "Fatale."
// and $numTokens will be 4.

string $buffer[];
$numTokens = `tokenize "testing=non-default separators" "=" $buffer`;

// Buffer will contain 2 strings: "testing" and "non-default separators."
// and $numTokens will be 2.

--All that is necessary for evil to triumph is for good men to do nothing.

Calin Leafshade

general:

Check the stringplus module. It has a very similar function based on a C# function.

tzachs

I'm missing an "Export" button for the audio files (in the new version, this obviously wasn't a problem in the old version).
As a workaround I took the files from the AudioCache folder, but I don't think that I can count on it for the long run.

Knox

Thanks Calin, Ill try that module out!
--All that is necessary for evil to triumph is for good men to do nothing.

helios123

Here are some features which would also be useful. (I have not read all of the 22 pages of replies, so some might have been be repeated. Sorry about that):


  • More detailed scripting reference. Currently, keywords such as extends, writeprotected, managed, protected, readonly, static are not documented. This should save module writers and scripters some time.


  • Placing the events of each character in a separate script, instead of the global script, and the facility to export/import this script when the character is exported/imported.

    e.g. If cEgo is a character, then all the event handlers (LookAt, Talk, Interact, etc.) for cEgo will be generated in cEgo.asc (and cEgo.ash) and not GlobalScript.asc.

    This will save time when the same character is to be repeatedly used in a series of games (e.g. for the games in ROTN, Ben Jordan and similar series). This will also ensure that GlobalScript.asc does not become excessively large when a large number of characters are used.


  • Seek/Tell functions in the File object, similar to fseek/ftell functions in C/C++.


  • A for loop for use in scripts, so that for loops can be used where the number of iterations are known, (e.g. traversing an array, generating numbers from intA to intB in steps of intC), and while loop can be used for the more general case of unknown number of iterations. Also, using a for loop ensures that the loop variables are initialized, there will less cases where initialization, increment/decrement of the loop variable was forgotten.


  • Ability to store structs which do not contain methods as global variables, maybe using a generic container type.


That's all for now,
helios123

subspark

I would like to see a simple lock objects position feature for the room editor. I'm always dragging my mouse a little when selecting them and can rarely get a stationary lock on the darn things! ;D

Seriously though, it's as frustrating as a nail in the eyeball. >:(

Cheers,
Paul.

GarageGothic

Quote from: subspark on Mon 04/10/2010 22:17:28I would like to see a simple lock objects position feature for the room editor. I'm always dragging my mouse a little when selecting them and can rarely get a stationary lock on the darn things! ;D

I agree a lock feature would be convenient, but you don't actually need to click objects to select them, just use the object dropdown menu in the room editor like you would do for hotspots or regions.

Gilbert

Quote from: helios123 on Mon 04/10/2010 19:46:17
A for loop for use in scripts, so that for loops can be used where the number of iterations are known, (e.g. traversing an array, generating numbers from intA to intB in steps of intC), and while loop can be used for the more general case of unknown number of iterations. Also, using a for loop ensures that the loop variables are initialized, there will less cases where initialization, increment/decrement of the loop variable was forgotten.

Well, I think this has very low priority, as signified by the fact that there were 'for' loops before the overhaul of the text script system in AGS AC V1.14. So, this feature has been absent for more than 10 years now.

subspark

QuoteI agree a lock feature would be convenient, but you don't actually need to click objects to select them
Yeah but I'm just old fashioned like that. ;)

Cheers,
Sparky.

Rocco

Quote from: subspark on Mon 04/10/2010 22:17:28
I would like to see a simple lock objects position feature for the room editor.
I second that, today i had this issue trying to place 2 small objects at pixellevel above 1 big object.
this was a bit fiddly, but i can live with that, but i cant live with the Walkable Areas Limitation.

- So please raise the Walkable Area and maybe the Regions Limitation.
For the most issues in AGS, there are more or less convenient Workarounds,
but i dont know a decent workaround to outpace the Walkable Area Limitation.
So please - (it would be gorgeous if this could already done in AGS 3.2 last minute, cause who knows when AGS 3.3 will appear,
and i guess its not so much work,   ;D )

- a hotspot description renaming function on the fly would also be very useful (but not so badly needed as more Walkable areas  :P )



SMF spam blocked by CleanTalk