• Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

 Studio 2 Hits And Misses

icuurd12b42

TMC Founder
GMC Elder
This thread is to share Studio 2's Hits and Misses, what's been added, how you like it, what's been removed, how it affects you, things that annoy you, things that make you life better!

Warning, there will be more misses mentioned because well, we all know the good parts of the update...

Workspace:
Hit: Showing everything and zooming in and out and panning
Hit: Contextual use of ctrl-mouse wheel over workspace item
MISS: Ctrl-Mouse wheel over code editor not changing font size
MISS: Would like to scroll the workplace with left mouse or right mouse. Mouse wheel is uncomfortable and error prone causing unwanted zooms
MISS: Would like to fling scroll/pan around
MISS: Could enable anti-aliasing for smoother font when zoomed in and out

Resource Treeview
Hit: Much better in general
MISS: Not respecting my windows setting for double-click to open and slow double click to change text, fact this omission is pretty much all over the UI
MISS: Missing hot key for duplicating an item

Code Editor:
HIT: Much better
MISS: Can't resize the font (ctrl+mouse wheel)
MISS: Not respecting the windows standard for selection ESPECIALLY with the mouse actions
MISS: Default size is too tall and you cant see the status line with the function parameters
MISS: Not respecting my windows double click settings

Room Editor
HIT: Too many to list, you guys, great job
MISS: No alternate ctrl or shift on mouse resize and rotate to lock the 2 sides or snap to a grid or angle.
MISS: Like the workplace, middle button is annoying to move the room around because that button is also the mouse wheel so, obviously unwanted zoom ins and outs occur when moving around
MISS: A proper tools for mode change, allowing to say choose the select tool so I can select a region of instances...

That's all for today, add your own to the list!

Items mentioned in the comments
MISS: space + left mouse button for moving workspace canvas is POINTLESS because the moving can only be done when you click the workspace canvas so the modifier is useless. Have left button act like middle button for moving canvas and be done with it
MISS: Can't move the workspace canvas when I can't click the workspace canvas background (windows in the way) No doubt space + left button was initially made for this but broke in the code editor. Have the ALT key be used as move modifier...
MISS: Could code errors be reflected in the events area as well and in the object (tree view) maybe, to make it easier to track them down?
MISS: No code folding. would be nice to have folding on /* */ and { } and also to have user defined start and end fold tags
MISS: Ctrl-Mouse Wheel does not resize the font
MISS: Treeview and lists don't respond to keyboard character inputs. Hitting C in the font list in the font property, for example, does not scroll to the C-Fonts
MISS: Many Windows Standards are not followed in general for many tiny little details which is aggravating
MISS: The Syntax Error does not update properly, Showing me an error in my line when the error is in fact resolved
MISS: Code Syntax Checker is unaware that the compiler supports the split text... The code is perfectly fine and compiles while the syntax checker complains
MISS: Clicking an event brings the code into view but does not set the focus to the code box. Code box should get input focus with the carret set at the position I left it
MISS: Caret not positioning itself properly when you click a word/character as it did in studio 1.4
HIT: Background layers can have a speed set in the level editor. This makes it very easy to make moving clouds.
MISS: The level editor only lets you enter integer numbers for the hspeed and vspeed, so with the minimum speed of 1, my clouds are moving way too fast!
HIT: background layers can tile horizontally.
HIT: Code editor recognises user created variables.
MISS: Font looks yuck and colour scheme looks yuck for code editor
HIT: crop to selection in the image editor
MISS: in the image editor, I would like it if it scrolled when I was using the selection tool and my mouse was the edge of the screen. (I don't know if that makes sense). That would make precise selection of big images much easier.
 
Last edited:
S

StuffandThings85

Guest
One thing I noticed is that I couldn't rearrange things like the resources tab. I want to be able to change the layout of the editor. In Unreal Editor, for example, you can click and drag the tabs and put them in any place you like. Im so used to having the resource tree on the left, I'd like to keep it that way. Maybe there already is a way to do this, but I didn't mess around with it too long.
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
You can indeed rearrange all the elements and dock them to any side (or even the bottom)... There is a series of IDE tutorials that cover these things which I STRONGLY recommend that you do, and it's also covered in the manual.

PS: It breaks my heart to see these features ignored when I spent months writing the documentation to explain them. :(
 
S

StuffandThings85

Guest
I didn't have all that much time last night to fully explore it, but I'll definitely work with it more tonight. I see there are already some DnD tutorials from Shaun Spalding (YoYo Game's Youtube) so I look forward to that.
 

icuurd12b42

TMC Founder
GMC Elder
You can indeed rearrange all the elements and dock them to any side (or even the bottom)... There is a series of IDE tutorials that cover these things which I STRONGLY recommend that you do, and it's also covered in the manual.

PS: It breaks my heart to see these features ignored when I spent months writing the documentation to explain them. :(
Did you make videos? This stuff should be on the yoyogames YT channel...

No one reads manuals anymore unfortunately even though it has cool animation on the subject... and broken videos
 

Attachments

Nocturne

Friendly Tyrant
Forum Staff
Admin
I wrote the tutorials which have been made into videos (and the videos are included as part of the written tutorials)... ANd that broken video shouldn't be broken!!!! *sob*
 

zircher

Member
MISS: Default size is too tall and you cant see the status line with the function parameters
That one will be painful as people try to learn the new functions.

MISS: Like the workplace, middle button is annoying to move the room around because that button is also the mouse wheel so, obviously unwanted zoom ins and outs occur when moving around
Does simultaneous left and right click work as an alternate to middle mouse button?
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
Nope. If I log out of YT and then go to the link from the manual I can see it fine.
 

spacerobot

Member
MISS: Like the workplace, middle button is annoying to move the room around because that button is also the mouse wheel so, obviously unwanted zoom ins and outs occur when moving around
Does simultaneous left and right click work as an alternate to middle mouse button?
I hold space down then left click to drag around the workplace. It does the same thing as middle mouse.
 

icuurd12b42

TMC Founder
GMC Elder
I hold space down then left click to drag around the workplace. It does the same thing as middle mouse.
Thanks. But don't you think holding space is a little redundant since that only works if you are clicking the background of the workspace. Adding the space as a move modifier seems pretty redundant...
 
  • Like
Reactions: xot

Cpaz

Member
MISS: Would like to scroll the workplace with left mouse or right mouse. Mouse wheel is uncomfortable and error prone causing unwanted zooms
Yes. Very much this. I actually don't think this would be as much of a problem is there was some kind of "window snapping" ala displayfusion. It would help keep the space clean.

Can I also add a miss to the room editor?
The way you add objects is kinda stupid. Now, granted it's MUCH better than that dreaded giant list we have in GMS. But it's pretty clunky as it is. Sometimes selecting an object from the list let's me use the alt+left mouse, other times it doesn't register.

But I still concur, it's still a MASSIVE improvement.
 

icuurd12b42

TMC Founder
GMC Elder
The way you add objects is kinda stupid. Now, granted it's MUCH better than that dreaded giant list we have in GMS. But it's pretty clunky as it is. Sometimes selecting an object from the list let's me use the alt+left mouse, other times it doesn't register.

.
Don't drag the object in when you want to use alt. In fact, I simply click the object. No dragging and use ALT to start drawing. I think the issue is trying to use ALT when dragging in an object
 

CedSharp

Member
Thanks. But don't you think holding space is a little redundant since that only works if you are clicking the background of the workspace. Adding the space as a move modifier seems pretty redundant...
That's actually quite common panning logic for tons and tons of applications.
 

icuurd12b42

TMC Founder
GMC Elder
Never seen that tonnage. I'm saying it's superfluous because there is no need to override the behavior with space since there is NO left mouse drag behavior there in the first place...
 

CedSharp

Member
That's actually quite common panning logic for tons and tons of applications.
I should probably fix my statement: In many many GRAPHIC applications.
So @icuurd12b42 is right, because in a graphic application, left mouse usually does something. My reflex was still to automatically hold space before trying to pan haha.
 

xot

GMLscripter
GMC Elder
That's actually quite common panning logic for tons and tons of applications.
It may be what other apps do, and it may be my first instinct, but if panning only works when the background is clicked, and clicking the background has no other function or another context, it doesn't make sense to complicate the dragging with an additional input.
 

Ubu

Member
MISS:
Does the first blank tile in the tileset have to be shown at all? Couldn't it just be there without showing up in the UI? This makes it extremely cumbersome when importing tilesets. Having to reconstruct the entire tileset before importing it is now necessary to avoid "loosing" the first tile. It could probably be solved with an extra import option which would shift the entire tilset one tile to the right on importing. Only problem with this is when tilesets are "correctly" organized, the offset will make the tileset look jumbled and harder to work with.
 

CedSharp

Member
MISS:
Does the first blank tile in the tileset have to be shown at all? Couldn't it just be there without showing up in the UI? This makes it extremely cumbersome when importing tilesets. Having to reconstruct the entire tileset before importing it is now necessary to avoid "loosing" the first tile. It could probably be solved with an extra import option which would shift the entire tilset one tile to the right on importing. Only problem with this is when tilesets are "correctly" organized, the offset will make the tileset look jumbled and harder to work with.
I'm not sure what you're talking about. What's this "blank" tile you're talking about? I didn't see any problem using tiles up to now in gms2 :/
 

Cpaz

Member
Don't drag the object in when you want to use alt. In fact, I simply click the object. No dragging and use ALT to start drawing. I think the issue is trying to use ALT when dragging in an object
I know. At first I thought that you had to drag and drop all objects. Then I looked it up and found the "Alt+left click" in one of the manual screenshots.
But I'm mostly just referring to the clunky nature of object placement as a whole. Good idea in concept, but i've been having issues with it.

I'm not sure what you're talking about. What's this "blank" tile you're talking about? I didn't see any problem using tiles up to now in gms2 :/
When placing tiles in the room editor, for some reason, the top-left (or the "first") tile will be unusable. Maybe there's something we've missed in the settings but it's there. I just don't know why.
 

Ubu

Member
When placing tiles in the room editor, for some reason, the top-left (or the "first") tile will be unusable.
And also in the brush builder and auto tiler. They seem to have fixed it in the sprite import window though, which was my main concern.
 
Last edited:

Mike

nobody important
GMC Elder
Please read the docs on this, tile 0 is "special" in that it's not even drawn. So no matter what you put there it'll always be dropped out of the rendering. This helps optimise tile rendering a lot, and aids when having many overlapping tile layers.

We have discussed changing this so that it'll allow a tileset to be imported better, but it will mean your tiles start at 1, not 0 - which probably isn't a big issue. To me, it's important o know that the first tile on your texture page is 0, especially if your trying to do ant special effects with your tiles, which is why its reserved.
 

Ubu

Member
I get why the 0-tile is there, but does it have to show up/be visible in the editors? Couldn't it just be present "under the hood"?
 

Mike

nobody important
GMC Elder
You can select it and paint with it, and I think its important its visible so people know about it, and it's not "magic" or confusing numbers associated with it.

As I said, we have an idea to improve it... but we still have to discuss it.
 
S

Scott97

Guest
HIT: Background layers can have a speed set in the level editor. This makes it very easy to make moving clouds.
MISS: The level editor only lets you enter integer numbers for the hspeed and vspeed, so with the minimum speed of 1, my clouds are moving way too fast!
HIT: background layers can tile horizontally.
HIT: Code editor recognises user created variables.
MISS: Font looks yuck and colour scheme looks yuck for code editor
HIT: crop to selection in the image editor
MISS: in the image editor, I would like it if it scrolled when I was using the selection tool and my mouse was the edge of the screen. (I don't know if that makes sense). That would make precise selection of big images much easier.

Overall I would like to say I am having a lot of fun with the new version. Thanks yo-yo!
 

kupo15

Member
I miss the green check mark, I like going into a window and making lots of risky changes, test it and being able to X out and go back to something that worked. That's all for now
 

Mike

nobody important
GMC Elder
would like it if it scrolled when I was using the selection tool
Not quite sure what you mean... but selections can be moved with the mouse...and cursor keys. does this help?

Fonts - change them in the preferences! :)

MISS: The level editor only lets you enter integer numbers for the hspeed and vspeed,
I agree - can you file this as a bug?
 

CedSharp

Member
There, there.


Make a duplicate of the script you're fusking with. For really extreme changes, use source control. This can be rectified by adjusting your workflow.
This is exactly what I do. When I want to test something, I duplicate the script and rename the "old one" with "_old" prefix. I do tests, and if I'm happy I delete the old and if I'm not
I delete the new one. No need to change the whole saving/validation proccess. I'm actually super happy that there is no more "apply" button. Gosh those "are you sure you want to close this window" where getting on my nerves haha.
 

rIKmAN

Member
This is exactly what I do. When I want to test something, I duplicate the script and rename the "old one" with "_old" prefix. I do tests, and if I'm happy I delete the old and if I'm not
I delete the new one. No need to change the whole saving/validation proccess. I'm actually super happy that there is no more "apply" button. Gosh those "are you sure you want to close this window" where getting on my nerves haha.
Exactly the same here, except I use "_orig" :)
 
G

gamible

Guest
MISS: Like the workplace, middle button is annoying to move the room around because that button is also the mouse wheel so, obviously unwanted zoom ins and outs occur when moving around.
I believe you can left click + space to achieve the same effect.
 

Mike

nobody important
GMC Elder
I miss the green check mark, I like going into a window and making lots of risky changes, test it and being able to X out and go back to something that worked. That's all for now
Keep the window open and just "undo" - LOTS! Undo is much better in this version, just keep the window open (which you would have to do anyway) and undo your changes.
This isn't going to change I'm afraid, it was a huge issue internally that 1.x did this. So now, either undo your actions, or use source control and revert stuff.

Personally, I leave everything open and "undo" a lot. (or duplicate the resource)
 
G

GproKaru

Guest
HIT: Better UI control
HIT: They added my idea of room layers (Godsend for 3D map editing)
MISS: Lack (Or a significantly more vague) of support of 3D in general

Overall, the lack of 3D model support which was present in GM:S is literally a breaking point for me. So I'm not too happy about that and I'm just gonna stick with GM:S until it gets sorted out~
 

Mike

nobody important
GMC Elder
3D is there as just as much as it was in 1.x, functions have been renamed but its all there. What do you think we've taken out?

In fact, with the new cameras, the framework is there for much better support....
 
G

GproKaru

Guest
3D is there as just as much as it was in 1.x, functions have been renamed but its all there. What do you think we've taken out?

In fact, with the new cameras, the framework is there for much better support....
I can't find any ways to use my 3D models within GMS2. And considering my previous projects are heavily based on the d3d functionality. GMS2 is just going to murder the entire coding framework if I even look at the import button incorrectly. (That's when that becomes an option)

Just as an example, this is pretty much how it's handled:

d3d_transform_set_identity();
d3d_transform_add_scaling(final_scale,final_scale,final_scale);
d3d_transform_add_rotation_z(image_angle);
d3d_transform_add_translation(x,y,Z);
d3d_model_draw(model,0,0,0,sprite_get_texture(tex,0));
d3d_transform_set_identity();

I've yet to find any examples or methods that can replicate that~
 

mMcFab

Member
EDIT: I have no idea why this post is here. I posted it in another thread, yet it is in both? I am confused, to say the least
EDIT2: Hang on, I'm even more confused. This does seem to be the right thread. I think maybe I was looking at a similar thread. Anyway, original answer (kinda):
It's possible to write your own importer for d3d files, and all d3d transforms have been replaced by the matrix functions.
 
Last edited:
G

GproKaru

Guest
EDIT: I have no idea why this post is here. I posted it in another thread, yet it is in both? I am confused, to say the least
That might be a possibility if I even knew where to even begin with that. But even so, I'm not finding any functions or even methods on how to even render said model within game maker.
Then there's also the issue of now using something else instead of d3d_set_projection_ext for my camera...
I feel removing d3d was a massive step back for GMS2 at least for me and at this point, it's put me off from getting it... It's not worth a 20-23% performance increase to literally rework my entire work process...
 

Mike

nobody important
GMC Elder
So
I can't find any ways to use my 3D models within GMS2. And considering my previous projects are heavily based on the d3d functionality. GMS2 is just going to murder the entire coding framework if I even look at the import button incorrectly. (That's when that becomes an option)

Just as an example, this is pretty much how it's handled:

d3d_transform_set_identity();
d3d_transform_add_scaling(final_scale,final_scale,final_scale);
d3d_transform_add_rotation_z(image_angle);
d3d_transform_add_translation(x,y,Z);
d3d_model_draw(model,0,0,0,sprite_get_texture(tex,0));
d3d_transform_set_identity();
So.... first the matrix stuff. Look at matrix_build(x, y, z, xrotation, yrotation, zrotation, xscale, yscale, zscale); This does everything in a single step - MUCH faster than doing individual steps. Each matrix you were building and combining before would have taken 64 multiplies, and 64 adds (more or less) - each time you added a step. The one here, does everything in around 20-odd multiples - for everything. You can still of course build a Z rotation one with everything else 0, then push that onto the matrix stack. So this one command (that's been in 1.x for a while) does everything you need it to. The whole "matrix_????" set of functions are pretty powerful.

Model rendering. Yes, this has moved to compatability scripts. However, these scripts are just sitting in the runtime cache in a ZIP and you can add them yourself so you get the full GML code of a model renderer, allowing you to enhance it all if you want as well. Look in...C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.0.1.16\lib\compatibility.zip. You'll find these pretty useful I suspect.

and for the record.... (something like...once you copy in the model rendering)
Code:
var mat = matrix_build(x, y, z,   0.0,0.0,image_angle,  final_scale,final_scale,final_scale );
matrix_stack_push(mat);
d3d_model_draw(model,0,0,0,sprite_get_texture(tex,0));
matrix_stack_pop();
 

mMcFab

Member
That might be a possibility if I even knew where to even begin with that. But even so, I'm not finding any functions or even methods on how to even render said model within game maker.
Then there's also the issue of now using something else instead of d3d_set_projection_ext for my camera...
I feel removing d3d was a massive step back for GMS2 at least for me and at this point, it's put me off from getting it... It's not worth a 20-23% performance increase to literally rework my entire work process...
Some kind of general guide to using d3d models w/o d3d_*. This isn't in code, as that would require me to write the thing:
1) Save model as d3d from GM:S using d3d_model_save();
2) Check out the file in a text editor (it can be read as text in GameMaker too)
3) The first line always seems to be 100 for me. I don't know why. The next line lists the number of vertices
4) Loop through the file, reading all lines, and splitting the numbers ito some kind of array. These numbers likely represent Position, Normal, UV, Color, and probably in that order, too.
5) Look up the vertex buffer functions. They work practically the same way as the primitives for model building - build a buffer and format using the datary from before
6) When drawing, simply use vertex_submit()
And the camera - I have personally tested this:
1) Create a camera, projection matrix, and assign them. Enable zwriting too:
Code:
mPerspFOV = matrix_build_projection_perspective_fov(60, 16/9, 32, 32000);

camera = camera_create();
camera_set_proj_mat(camera, mPerspFOV);

gpu_set_ztestenable(true);
gpu_set_zwriteenable(true);
2) Create a lookat matrix, and assign it. I did this in step, but you only need to do it when the camera has to move - this is just a camera spinning about the origin:
Code:
var zz = -64;
var xx = lengthdir_x(128,current_time/10);
var yy = lengthdir_y(128,current_time/10);

mLookat = matrix_build_lookat(xx,yy,zz, 0,0,0, 0,0,1);

camera_set_view_mat(camera, mLookat);
3) In draw, just apply the camera before rendering anything
Code:
camera_apply(camera);

Overall, removing d3d was a massive step forward in my opinion. The d3d functions were outdated, ineffecient and were holding GM back. This is a new iteration, with new possibilities, after all! Though, if it is too much hassle, we still keep 1.4 anyway.
Also, the documentation is your friend, and goes through this stuff - lookup the gpu functions, camera, matrix and vertex buffers, and . Poor @Nocturne didn't spend all that time on it for it to be ignored!
 
Top