Jump to content


GM 8.1 "tiny" feature request...


  • This topic is locked This topic is locked
186 replies to this topic

#31 xshortguy

xshortguy

    GMC Member

  • Global Moderators
  • 4321 posts
  • Version:GM:Studio

Posted 17 March 2011 - 04:25 PM

If there's one thing I would really like, its support for 4x4 matrices with common scripts such as matrix inverses, matrix multiplication, eigenvalues, etc.
  • 0

#32 CreativeGuy

CreativeGuy

    GMC Member

  • New Member
  • 47 posts

Posted 17 March 2011 - 04:26 PM

Not sure how long it will take but a WHERE function would be cool like :


A = instance_nearest(x,y,object) WHERE health=1;


to allow for easier instance selection.
  • 0

#33 Medusar

Medusar

    GMC Member

  • GMC Member
  • 1228 posts
  • Version:GM:Studio

Posted 17 March 2011 - 04:29 PM

instance_activate_object_region(left,top,width,height,object,inside) and instance_deactivate_object_region(left,top,width,height,object,inside,notme)

Instance activation / deactivation has been more or less deprecated. Which, considering YYG aim for smaller devices, is a pity I have to say.

Anyway, I think that a foreach statement to deal with individual values in an array would be nice. Especially as there currently is no way for us to determine the size of an array other than by manually keeping track of it. Alternatively (keeping it one per customer), I'd be quite happy with a sizeof() function to determine the number of array elements and use a normal for loop. Shouldn't be too difficult as the runner already keeps track of this.
  • 0

#34 BlueMoonProductions

BlueMoonProductions

    BlueMoonProductions

  • GMC Member
  • 241 posts
  • Version:GM:Studio

Posted 17 March 2011 - 04:31 PM

Not sure how long it will take but a WHERE function would be cool like :


A = instance_nearest(x,y,object) WHERE health=1;


to allow for easier instance selection.

This can already be done with the with-statement:
with(instance_create(x,y,object))
 {
  health = 1;
 }
If you really want to save the instance id in a variable:
var a;
a = instance_create(x,y,object);
with(a)
 {
  health = 1;
 }
Please don't tell me this is not easie instance selection.


EDIT: Sorry, misunderstood your post.

It could be faster though. I know I already did a 'request', but at least I could mention(:P) it: var a=1; would be a nice feature.

Edited by BlueMoonProductions, 17 March 2011 - 04:45 PM.

  • 1

#35 Dark Matter

Dark Matter

    RPG Expert

  • GMC Member
  • 3196 posts
  • Version:GM:Studio

Posted 17 March 2011 - 04:34 PM


Not sure how long it will take but a WHERE function would be cool like :


A = instance_nearest(x,y,object) WHERE health=1;


to allow for easier instance selection.

This can already be done with the with-statement:
with(instance_create(x,y,object))
 {
  health = 1;
 }
If you really want to save the instance id in a variable:
var a;
a = instance_create(x,y,object);
with(a)
 {
  health = 1;
 }
Please don't tell me this is not easie instance selection.

It could be faster though. I know I already did a 'request', but at least I could mention(:P) it: var a=1; would be a nice feature.

That's not what he means. He means something like instance_nearest_variable(). (Sorry for the 2nd post :unsure: )

Edited by Dark Matter, 17 March 2011 - 04:34 PM.

  • 0

#36 Artaex Media

Artaex Media

    Artaex Media

  • GMC Member
  • 1531 posts
  • Version:Unknown

Posted 17 March 2011 - 04:43 PM

Be able to hide small parts of code in the code editor.
Just like in Dreamweaver.
It can be incredibly useful, when writing large scripts.

It should look like this:
Posted Image

-RefluxLtd ;)

(PS. Sorry that you can't see the cursor. Blame Windows for that :P)
  • 9

#37 kburkhart84

kburkhart84

    Firehammer Games

  • GMC Member
  • 1880 posts
  • Version:GM:Studio

Posted 17 March 2011 - 04:53 PM


instance_activate_object_region(left,top,width,height,object,inside) and instance_deactivate_object_region(left,top,width,height,object,inside,notme)

Instance activation / deactivation has been more or less deprecated. Which, considering YYG aim for smaller devices, is a pity I have to say.


I saw that in the manual. Does anyone know if they are recoding it, or replacing it with something similar(hopefully even better). For bigger games, that is a necesity due to GM's lack of speed with too many objects.

**Now my feature request

I wish the cursor in the text(script/code) editors was more "intelligent." It should remember what x position in the text it was at, and stay there when you use arrow to move down. Visual Studio's text cursor does this. Take the following code.
with(flamefrontleft)
{
    myparent = other.id;
    xoffset = 10;
    yoffset = -29;
}
with(flamefrontright)
{
    myparent = other.id;
    xoffset = 10;
    yoffset = 29;
}
with(flameleft)
{
    myparent = other.id;
    xoffset = -19;
    yoffset = -62;
}
Say I want to change the other.id's all to be something else. Right now(without search/replace), I move to the first one, change it, and for speed, I use the arrow to move down to the next one. But the cursor "forgets" it was at like xposition 22(or close) and when I go past the bracket, stays at position 2, so I have to either move right back again, or use the mouse and click.
  • 3

#38

  • Guests

Posted 17 March 2011 - 05:09 PM

Okay... come one guys. QUICK things to add!! A folding text editor is NOT a quick thing!! :)

instance_activate_object_region(): I'm afraid it's actually not a quick job to play with instances. They aren't arranged very well at all. Perhaps in a future update.

manuel777: Dont follow you... how can you set the alpha (0-255) to a colour (3 channel RGB)?!?!?

BlueMoonProductions: ZBuffer is now 24bit. Will fall back to 16bit if theres issues.

Theophilus: Sorry. would take too long for now.

LSnK: Yeah... would be nice to add lots of functions like this. Theres loads though... We might try and add some if we have a little down time. But theres loads we "could" add here, so it could be a bit of a black hole in terms of time; just one more etc.

Dark Matter: Don't follow you....?

xshortguy: Would take WAY too long. We will be doing a maths update at some point, but not yet.

CreativeGuy: While you're dreaming, would you like a poney too? :)

Medusar: They are both a bit complicated. On top of that once you set a variable the array stays that size, and theres no way of properly "clearing" it, meaning you can't size down at all - this would encourage sloppy coding. So until such time as we can "reduce" arrays in size, I wouldn't want to add this....

kburkhart84: Yeah... would take too long to do I'm afraid. A better code editor in general would be nice. I would love tabs over spaces, but that would take ages too... I already tried. :(

Come on guys... "simple" changes please...

#39 Lapps

Lapps

    GMC Member

  • GMC Member
  • 789 posts
  • Version:GM:Studio

Posted 17 March 2011 - 05:09 PM

To be able to draw things at different layers, as if the object was at that layer. As it is, to have one thing under and another bit of the object on top of a middle one (like a sprite in a ship), we have to make two separate objects for the ship, and what if a game needs to do a lot of this, it'll double the instance count.

Something like:
draw_set_depth(-3)
// or
draw_set_depth(depth)

Edited by Sonica2, 17 March 2011 - 05:12 PM.

  • 3

#40 Dark Matter

Dark Matter

    RPG Expert

  • GMC Member
  • 3196 posts
  • Version:GM:Studio

Posted 17 March 2011 - 05:13 PM

Dark Matter: Don't follow you....?

At the moment if you click once in the search field, it highlights the entire text, which makes it hard to change certain bits. It would be much better if you made it work just like any other text field and just place the cursor where you click. Then, you could double click in the field to highlight it all.
Secondly, if you're searching across multiple scripts, the search field text is kept local, so that if you change the text in the search field in one script, it won't change for the others, which is time consuming to change each time.
  • 2

#41 silentworks

silentworks

    GMC Member

  • GMC Member
  • 578 posts
  • Version:Unknown

Posted 17 March 2011 - 05:16 PM

I would like to have more controls for the sound effects on the Sound properties form:

CHORUS: wetdry,depth,feedback,frequency,wave,delay,phase
ECHO: wetdry,feedback,leftdelay,rightdelay,pandelay
FLANGER: wetdry,depth,feedback,frequency,wave,delay,phase
GARGLE: rate,wave
REVERB: gain,mix,time,ratio
COMPRESSOR: gain,attack,release,threshold,ratio,delay
EQUALIZER: center,bandwidth,gain

:rambo

Thanks.
  • 0

#42 Copernicus

Copernicus

    GMC Member

  • GMC Member
  • 27 posts

Posted 17 March 2011 - 05:29 PM

Something simple I thought of is allowing more alarm events. Instead of alarm[0...11] you could have alarm[0...15]. This way you could have as many alarm events as user defined events.
  • 0

#43 NpN Games

NpN Games

    Stupid Evil Genius

  • GMC Member
  • 200 posts
  • Version:GM8

Posted 17 March 2011 - 05:31 PM

Add an option to open(not expand!) all resources in a group.




I think you forgot to see it..... You didn't reply about this... Posted Image
  • 0

#44 GraphicGamer

GraphicGamer

    GMC Member

  • GMC Member
  • 310 posts
  • Version:GM8

Posted 17 March 2011 - 05:33 PM

It would be nice to be able to open two, side-by-side code editors (like the Windows 7 aero snap) shouldnt take that long. It save time instead of flipping back and forth.
  • 0

#45 CreativeGuy

CreativeGuy

    GMC Member

  • New Member
  • 47 posts

Posted 17 March 2011 - 06:15 PM

Not sure how long it will take but a WHERE function would be cool like :


A = instance_nearest(x,y,object) WHERE health=1;


to allow for easier instance selection.




ok so maybe this was a bit to far bit maybe a function like : instance_find_x(object,position)


that will find all of object and then return the one thats position nearest away?

so like :

x = you
| = object
s = object to find

x |||s||

you would do:


obj=instance_find_x(object,4);


that would make a kind of ds_list of all the object sort them in order of distance and the find the X position?
  • 0

#46 GStick

GStick

    All Secrets Exposed

  • GMC Member
  • 1852 posts
  • Version:GM:Studio

Posted 17 March 2011 - 06:16 PM

In GM8, the ability to set the bounding box of a sprite to whatever size and whatever location you want it in was removed. This was especially useful for changing the bounding box in-game to a size larger than the sprite itself, or positioning it off center. It also granted the ability to utilize the same sprite for moments that required different bounding boxes. This is overall the biggest thing holding me back from GM8, and I would really love to see it reimplemented. Even if it's only for rectangle bounding boxes.

Quick Example:
Setting a bounding box to be -32,-32,100,100, where the sprite is only 64x64.
  • 1

#47 Harrk

Harrk

    GMC Member

  • GMC Member
  • 194 posts
  • Version:GM8

Posted 17 March 2011 - 06:48 PM

When working with tiles it sometimes gets awkward placing things one at a time. Was thinking maybe like being able to drag the cursor along the tiles you want to place at one time? Like a selection box which grabs the selected tiles and then we can place lots of tiles at once.
(If I remember correctly, RPG Maker had something like this)

Not sure if that's a big job or not though... Thought I'd throw it out there anyhow.
  • 0

#48 AndrewB

AndrewB

    Kibbles and bits

  • New Member
  • 336 posts
  • Version:GM8

Posted 17 March 2011 - 06:57 PM

I have one suggestion but I think EVERYONE will agree with me.

draw_get_font();

I think this will be very useful.
  • 18

#49 NpN Games

NpN Games

    Stupid Evil Genius

  • GMC Member
  • 200 posts
  • Version:GM8

Posted 17 March 2011 - 07:02 PM

I have one suggestion but I think EVERYONE will agree with me.

draw_get_font();

I think this will be very useful.


Very less will agree I think. there is no need to return drawing font as you are the one to set it..... Dont know if you are thinking to use it in a different way... Posted Image



  • 0

#50 Dark Matter

Dark Matter

    RPG Expert

  • GMC Member
  • 3196 posts
  • Version:GM:Studio

Posted 17 March 2011 - 07:03 PM


I have one suggestion but I think EVERYONE will agree with me.

draw_get_font();

I think this will be very useful.


Very less will agree I think. there is no need to return drawing font as you are the one to set it..... Dont know if you are thinking to use it in a different way... Posted Image

For scripts where you want to set it, but revert it back at the end, it might be useful, though I've never need to use it. draw_get_color and draw_get_alpha are the only ones I need.

Edited by Dark Matter, 17 March 2011 - 07:04 PM.

  • 0

#51 AndrewB

AndrewB

    Kibbles and bits

  • New Member
  • 336 posts
  • Version:GM8

Posted 17 March 2011 - 07:11 PM

Very less will agree I think. there is no need to return drawing font as you are the one to set it..... Dont know if you are thinking to use it in a different way... Posted Image


I'd actually use it quite a bit, mainly in custom dialogue scripts. I just think it'd be a handy function since there is already draw_get_color(); and draw_get_alpha();.
  • 0

#52 GraphicGamer

GraphicGamer

    GMC Member

  • GMC Member
  • 310 posts
  • Version:GM8

Posted 17 March 2011 - 07:13 PM

To be able to draw things at different layers, as if the object was at that layer. As it is, to have one thing under and another bit of the object on top of a middle one (like a sprite in a ship), we have to make two separate objects for the ship, and what if a game needs to do a lot of this, it'll double the instance count.

Something like:

draw_set_depth(-3)
// or
draw_set_depth(depth)



I completely agree, that would make layering so much easier
  • 1

#53 Shadow Link

Shadow Link

    GMC Member

  • GMC Member
  • 1597 posts

Posted 17 March 2011 - 07:14 PM

When running the game under Debug Mode, I would love to be able to open the Show Instances dialog and be able to double click on an instance to open up its local variables. It's pretty annoying having to Show Local Variables and type IDs especially when checking multiple instances. If you add this, could it be in the form of a two-column listbox? That way we could either double click an ID for that particular instance or the object name for the object. If not, I'd gladly settle for just IDs and access objects by typing their name under Show Local Variables.

EDIT: I should also thank you Mike, for the effort you put into this forum and hearing us out! It's sincerely and much appreciated. :)

EDIT2: dissonance5 (below): You can already do that by hovering the mouse over the Execute Code action in the list.

Edited by Shadow Link, 17 March 2011 - 07:28 PM.

  • 3

#54 dissonance5

dissonance5

    GMC Member

  • New Member
  • 6 posts

Posted 17 March 2011 - 07:25 PM

The ability to see the first line (or just the first few character in that line) of code in an "Execute Code" action within the actions section of the object editor. That way, I could put a comment in there, and have an idea of what the code was without having to select it and open up the code editor.
  • 0

#55 GraphicGamer

GraphicGamer

    GMC Member

  • GMC Member
  • 310 posts
  • Version:GM8

Posted 17 March 2011 - 07:31 PM

The ability to see the first line (or just the first few character in that line) of code in an "Execute Code" action within the actions section of the object editor. That way, I could put a comment in there, and have an idea of what the code was without having to select it and open up the code editor.



Its been done, Posted Image just hover your mouse over it

Edited by GraphicGamer, 17 March 2011 - 07:36 PM.

  • 1

#56 TheMagicNumber

TheMagicNumber

    GMC Member

  • GMC Member
  • 5247 posts
  • Version:Unknown

Posted 17 March 2011 - 07:32 PM

Remove unused bitmaps from runner.
  • 8

#57 HaRRiKiRi

HaRRiKiRi

    GMC Member

  • GMC Member
  • 1364 posts

Posted 17 March 2011 - 07:41 PM

Searching not only in scripts, but also in object code actions. Because now I need to search each code snippet separately and that is quite painful.
  • 4

#58 paul23

paul23

    GMC Member

  • Global Moderators
  • 3680 posts
  • Version:GM:Studio

Posted 17 March 2011 - 07:49 PM

Something simple I thought of is allowing more alarm events. Instead of alarm[0...11] you could have alarm[0...15]. This way you could have as many alarm events as user defined events.

Well I'm still praying they actually incorporated unlimited alarm/user events in this version of gamemaker. (At least mike said "he'd like it") - unlimited (and especially when named) would prevent alarm collisions & would allow one to really write & combine engines/code pieces.

Edited by paul23, 17 March 2011 - 07:50 PM.

  • 1

#59 Manuel777

Manuel777

    InvaderGames

  • GMC Member
  • 3467 posts
  • Version:GM:Studio

Posted 17 March 2011 - 08:23 PM

manuel777: Dont follow you... how can you set the alpha (0-255) to a colour (3 channel RGB)?!?!?

Im not exactly sure on how it works on ther programs, but i think it takes the sum of all three channels and divide it by three;
A = ( (R+G+B) /3)
but its more commonly used with black and white images, to avoid confusions.
  • 0

#60 IceMetalPunk

IceMetalPunk

    InfiniteIMPerfection

  • Retired Staff
  • 9322 posts
  • Version:Unknown

Posted 17 March 2011 - 09:09 PM


To be able to draw things at different layers, as if the object was at that layer. As it is, to have one thing under and another bit of the object on top of a middle one (like a sprite in a ship), we have to make two separate objects for the ship, and what if a game needs to do a lot of this, it'll double the instance count.

Something like:

draw_set_depth(-3)
// or
draw_set_depth(depth)



I completely agree, that would make layering so much easier

It's been mentioned in other topics that this is not only extremely difficult to do, but virtually impossible. The way drawing works, everything is drawn to the current buffer (i.e. the screen or currently-set surface) as soon as the drawing code is executed. Tell me, then, how you'd handle drawing something like this:

draw_set_depth(0);
draw_text(10,10,"One");
draw_set_depth(5);
draw_text(10,10,"Two");

You can't; by the time "Two" is told to be drawn, "One" is already in the buffer. There's only two ways to get around this: the first is to essentially create a new drawing surface each time the depth is changed, and draw to the correct surface, then sort the surfaces by depth and draw them in order to the buffer. I imagine that'd be quite a memory hog. The second way is for GM to pre-process all code, looking for drawing functions, and then prioritize the drawing functions by draw depth before executing anything. And that would be incredibly difficult to do, as well as incredibly slow.

So that option is an almost irrefutable "no" and is 100% not a small change.

Another note (unrelated to the above): for those who want clamp(), you do realize that clamp(val,min,max) = median(val, min, max), right?

Anyway...my feature request, which I have no idea how difficult it would be to implement: something along the lines of surface_set_alpha_from_surface(). This would be like sprite_set_alpha_from_sprite(), only with surfaces; currently the only option when this is needed is to create a temporary sprite from the surface, call sprite_set_alpha_from_sprite, draw it to the surface, then delete the temp sprite. It's pretty processor-intensive and quite slow to do, especially considering that the sprite_set_alpha_from_sprite() is slow to begin with. There shouldn't be a need to add to that by forcing us to create resources only to delete them immediately after transfer to a surface.

Like I said, I don't know if that would be difficult, but would it not just be basically copypasta from the sprite-based function with some relatively minor modifications?

-IMP ;) :)
  • 2




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users