AGS 3.3 Wishlist

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

Previous topic - Next topic

Gilbert

Well, the debug() functions work only in debug mode, so a proper FPS counter would be nice. (There were codes to simulate this, but it'll be better if it's internal.)

Shane 'ProgZmax' Stevens

#221
QuoteForce feedback and joystick support.

This is something I wanted to make a module for (using DirectInput), but it didn't seem possible last time I checked.  If I had direct access to DInput for polling devices I could make a module for it in a snap, and I will add that I'd very much like to get joypad support added (even if I have to write the script to make it happen, which is no big deal).  Internal support would be ideal, obviously.

subspark

Can importing masks please act the same way as importing game backgrounds?

AGS always warns me that a mask is too small compared to the background, but this is because AGS doesnt know how to place it over the top half of the screen like it does with a background image.
Can we please automate this?

Cheers,
Sparky.

Khris

Decided to post here after reading this thread about how to link an event to a function.

The general mechanism is mentioned in Part 3 of the tutorial.
It doesn't explicitly state there that an event triggers a call to a function by the name entered in the field, that one can rename it, or even link several events to one function.
It also doesn't mention that simply typing a function called room_Load won't make it get called automatically (as opposed to e.g. on_key_press).

The tutorial only explains the steps people have to do to create a hotspot event.

Still, I'm not sure if the way too high amount of threads about something as basic and essential to AGS as this stems from people not reading the tutorial or the tutorial not being a bit more verbose on this issue.
Regardless, IMO somebody has to do something about it.
It feels like that was the 84th thread in which I posted the words "thunderbolt icon".

Plus, Irathil said he'd been looking for the answer in the manual and in the forums and still wasn't able to find it.
I've noticed that the BFAQ link in the forum rules sticky is dead, but even if somebody found it, it doesn't seem to have been updated since 2.x.

Understanding events function linkage is an essential part of using AGS, and way too many people have no idea how it works.
Imagine somebody had coded a paint program and every few days there's a new thread about how to change the drawing color...

Crimson Wizard

I wanted to make a couple of suggestions, then I found one of them was already made quite a while ago:

Quote from: Joseph DiPerla on Thu 22/01/2009 17:24:54
6)Views-- Can we just have an option to copy one loop to the next? Most of the time my Right loop is a copy of the left loop just flipped. So rather than have to put in all the frames, can we just have a copy function?

What's the status of this one? Is it planned or implemented or discarded, or what? ;)

Second suggestion is to be able to select multiple frames and set up properties for them all at once.
Reasons:
1) Setting up same delay.
2) Setting up Flipped flag for large piece of loop or whole loop at once.

subspark

Strongly agreed!

Cheers,
Sparky

Wonkyth

I'm fairly handy with C#, so maybe I'll try making an editor plugin that could do that.
I wouldn't rely on me though, as I'm not very self-motivated...
"But with a ninja on your face, you live longer!"

subspark

QuoteI wouldn't rely on me though, as I'm not very self-motivated...
Lol... That's not supposed to be a good thing. :)

Stacy Davidson

New thought on the resolution issue.

I suppose what I'd really like to see is this scenario:


* a higher, widescreen resolution is implemented (1280x800, or even better 1920x1080)

* a game is developed in this resolution

* when played, player is given choices of resolution.  At full res, the game plays as it looked when it was designed.  On a lower res of, say, 640x480, the screen is vertically reduced to 480px, but the image retains original aspect ratio and the remaining areas of the screen simply scroll left/right. 

In this way, you could design a room that is one single screen at high res, but when played in low res the screen would be a scroller.


Is this something that would be doable?  And, how would it effect the GUI?  Could the GUI simply scale down with the screen?  Or would the designer need to include alternate sets of GUIs for each res?  (worst case scenario, probably unnecessary but I wanted to throw it out there).

I am really interested in this feature, as the only way to play AGS games on modern screens now is to play in a window, or play it vertically squeezed.

Thanks Chris!
-s

-Stacy Davidson
Jack Houston and the Necronauts
Warbird Games
www.warbirdgames.com

subspark

Well back on Unreal Engine 3, what we would do is design multiple GUIs for every resolution we wanted to support. I would work in photoshop at the very highest 16:10 resolution (2560x1600) and scale backward sharpening by 50% in each increment. The engine would allows for resolution to be changed in-game or set beforehand and the nessecary GUI layout would load. This is how many engines handle this but AGS may not necessarily be the best candidate for this neither the worst. I would imagine we'd have to rethink much of AGS.

Allow me to share some of my ideas on how AGS 'might' handle dynamic resolutions that can be changed during gameplay.
First and foremost a new resolution manager could be invented in which say 6 custom resolutions can be input that the gui & room editor have access to from a drop listbox. Also updating the GUI editor to handle the 'play area' might be neccessary. You would define a play area rect in the GUI editor much like the inventory rect.

In the gui/room editor, by cycling through the six different resolutions, AGS would load/unload a different set of variables and sprites per resolution setting.
Handling all this data internally may or may not be the best way to go. I'm no programmer or system designer but I can take a good guess.

Anyway I hope this discussion continues. (Perhaps in a seperate "radical ideas and design" thread)
I'd like to see dynamic "custom" resolution support in the near future and I'm sure some of you would too. :)

Cheers,
Sparky.

Denzil Quixode

#230
As 3.2 is now entering the RC stage, it is probably too late to start adding wishlist things for it, but anyway...

If a function returns a (pointer to a) struct, you currently must assign that to a variable before you can access its methods and fields. Could that be changed?

For example, say CreateMyStruct() is a function that returns a MyStruct* pointer, and MyStructs have a method called MyMethod(). If all I want to do is create a MyStruct, call a method on it and then no longer care about it, I'd try to do it like this:

Code: ags
CreateMyStruct().MyMethod();


...but the compiler complains that it was expecting a structure before the dot, and will only allow this:

Code: ags
MyStruct* myStruct = CreateMyStruct();
myStruct.MyMethod();


I know that may not seem like much difference, but I would prefer the option if possible.

Denzil Quixode

Another one - I have an Editor plugin and a Run-Time plugin that I intend to work together as a unit, but the user must treat them as separate things (for example, when enabling/disabling the feature they have to do so in two different places in the project tree). Would it be possible to have some way for one of the plugins to "link" itself as dependent on another one? I don't know exactly the right way to do this. I have some ideas:


  • Editor plugin can get the current state of a Run-Time plugin (whether it is enabled/disabled) and can register a callback so that if the user changes that, the Editor plugin knows about it and can enable/disable itself as well.
  • Run-Time plugin has the option to hide itself from the project tree, and the Editor plugin has the ability to enable/disable it - so the user never has the option to enable the Run-Time plugin if the Editor plugin is not present, and enabling/disabling is done through a custom option on the Editor plugin. (I prefer this idea, it seems more flexible.)

joelphilippage

It would be nice to have the renumber speech function to add speech numbers to the old list so line numbers are not messed up.



RickJ

Extender Variables or Properties
Extender functions are fantastic, wonderful, wizbang thingies indeed.  But the inability to similarly extend the variable space is a huge hindrance to extender functions reaching their full potential.  There are workarounds that usually involve creating huge static struct arrays.  These are cumbersome, ineloquent, and often negate any benefits to be gained through the use of extender functions.  In some cases such workarounds are impractical, especially when object types having unlimited number are involved.

Likely this has been suggested before multiple times but I would like to ask again so that it is not lost and forgotten.

monkey0506

Although I support the idea of extender properties (as well as static extenders) the workaround can be made slightly more eloquent, though it means we can't use a struct for organizational purposes. We have dynamic arrays, but can't currently make a dynamic array of a custom struct (another useful suggestion). So instead of:

Code: ags
struct CharVar {
  int HP;
  int MP;
};

CharVar CharVars[AGS_MAX_CHARACTERS];


We could instead do something such as:

Code: ags
int CharVar_HP[];
int CharVar_MP[];

function game_start() {
  CharVar_HP = new int[Game.CharacterCount];
  CharVar_MP = new int[Game.CharacterCount];
}


Granted for larger structures this easily becomes much more aggravating (I would know), however I've used this method myself with great success.

You could then have Get/Set extenders that simply mask the internal properties:

Code: ags
int GetHP(this Character*) {
  return CharVar_HP[this.ID];
}

void SetHP(this Character*, int hp) {
  CharVar_HP[this.ID] = hp;
}


Don't get me wrong, I'm not saying a built-in solution wouldn't be appreciated here. But to me having an extracted data structure with dynamic arrays is better than a compressed data structure with a static size.

mikosworld

In "Inventory Items", to add "Mouse Over image" feature in "Apparence" section.

Because, I've create 2 states icons for my inventory items (normal image icon and over image icon with light red outline).
I would like this feature, to show my mouse over item when I'm overlapping it with hotspot/regions ...

mikosworld

Another idea, after the audio player system remade. Why not to make the video system as ( vMymovie.Play(); ) ;)
and to build game with external resource file separated as "movies.vox" like

suicidal pencil

Hey, maybe someone could put some internet connectivity into AGS, so that players could submit scores to a database, or in some games, play with others. That, and it could also be used so that AGS will check for updates and bug fixes itself.

CTxCB

How about the ability to select, move and delete more than one item in gui

xenogia

Quote from: Crimson Wizard on Thu 08/10/2009 22:56:02
I wanted to make a couple of suggestions, then I found one of them was already made quite a while ago:

Quote from: Joseph DiPerla on Thu 22/01/2009 17:24:54
6)Views-- Can we just have an option to copy one loop to the next? Most of the time my Right loop is a copy of the left loop just flipped. So rather than have to put in all the frames, can we just have a copy function?

What's the status of this one? Is it planned or implemented or discarded, or what? ;)

Second suggestion is to be able to select multiple frames and set up properties for them all at once.
Reasons:
1) Setting up same delay.
2) Setting up Flipped flag for large piece of loop or whole loop at once.

I would definetly love at option to select multiple frames of animation and change the overall delay.

SMF spam blocked by CleanTalk