• 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.

Discussion The Big List of New Things

Juju

Member
I've binged a fair amount on GMS2. Here's what I've learnt so far:
Excuse any weird formatting, the forum's being a butt.
btw follow me @jujuadams kthnx

  1. Go to the Resource Tree, then click on Options and then Main. You can change the default framerate to 60 in there.

  2. Room editor is now layer-based and has a bunch of new features. Each layer can be a different type - instances, background, path, tiles. Lots of exciting possibilities here that I've not been able to fully explore.

  3. Here's a complete list of obsolete functions.

  4. Don't worry! Here's a list of new functions.

  5. Sprite editor has been rebuilt, but is missing some of the old functionality with saturation / hue shifting / alpha manipulation etc. Colour picker is sexy though :3

  6. Backgrounds are gone! Everything's a sprite.

  7. Tilesets are now managed from their own dedicated editor. Autotiling and tile brushes are now supported and configurable.

  8. DnD now has quite a different look. But who uses DnD seriously anyway?

  9. Array literals are now supported var _array = [ 0, 1, 2 ];
  10. variable_instance_get is back (with its friends)! This opens the door for more modular code / extensions.
  11. The ternary operator is now supported: variable = condition ? <expression1 (if true)> : <expression2 (if false)>
  12. Macros can be defined inline, not unlike enums.

  13. Autocomplete for all variables (global + instance + local). Not entirely sure how GMS2 works this out yet and if autocompletion is limited to variables defined in the Create event.
  14. instance_create has been replaced by two functions: instance_create_depth and instance_create_layer. I recommend using the latter as it meshes nicely with the new features in the room editor.

  15. The views functions are gone and have been replaced by "camera" functions... although the room editor still calls them views which is a bit confusing.

  16. Loads of d3d functions have been kicked to one side in preference for gpu_* and matrix_* functions. You can now choose how z-ordering is done on the GPU for some sweet-ass silhouetting effects.

  17. Blend modes, colour writing, and alpha testing have also been moved into the new gpu_* functions.

  18. Anti-aliasing via display_reset() doesn't work for now due to changes during the migration to DX11.

  19. Paths can now be defined inside the room editor.

  20. The IDE is workspace based with most things inside tabs. Middle click to move the workspace around, use the scroll wheel to scroll up and down.

  21. If you're on a laptop, you can also engage "laptop mode" (on the toolbar on the far right) and hold down control / alt to perform middle mouse actions.

  22. Import features are blocked on the public beta. The manual says you'll be able to import .gmx files into GMS2 and have all the legacy functions replaced with suitable GMS2 equivalents (though I suspect they'll be buggy to begin with).

  23. No find-replace in scripts... which is odd. You can do find-replace across the entire project however.

  24. GMS2 doesn't use the ///script_name( arguments ) nomenclature for scripts any more. Instead, it uses JSDoc notation* (the manual says "JavaDoc" but this wrong).

  25. GMS2 uses the "Fast Collision" system developed Spring 2016. It's an order of magnitude faster than GMS1 and has been robustly tested in Nuclear Throne and Hyper Light Drifter. Note: Some behaviour will be slightly different so don't expect things to port exactly from GMS1 (noticeably in instance_place).

  26. All of your sidebars/tabs are draggable and pinnable to any side of the window. The compile form/syntax error/misc output windows are located at the bottom.

  27. A lot more of the IDE's functionality is customiseable. ctrl+shift+P opens the preferences menu - I've got scripts and shaders opening in separate windows.

  28. The old texture page/sound group assignment system has been replaced with an actual proper manager which makes life much, much easier for big projects.

  29. Speaking of texture pages, there are two new functions for performing texture flushes on specific pages rather than everything - sprite_flush and sprite_flush_multi

  30. The font editor is the same, though the detail settings have been swapped out for a single "anti-alias" feature. Should make pixel art fonts a little bit easie to work with.

  31. Timelines are still in. I know precisely one person that uses the feature so ok I guess?

  32. There's a Notes section! It'll be really handy for keeping track of game ideas / thoughts during production.

  33. The object editor (the place where we spend a good third of our time) has been changed to a component-like format... but it's not actually a component system. We don't know if that means it'll be possible to write extensions for the IDE there.

  34. The IDE tracks your project time usage ¯\_(ツ)_/¯

  35. Project structure in the OS's file system is more logical but IDE groups still don't translate to folders on disk. The general file format for config files is now JSON rather than XML.

  36. Scripts and object code is stored in raw text as .gml files which means using an external editor is entirely possible.

  37. Strings are handled differently with richer features. \n is now a newline character, you can use Unicode literals etc. Big improvement for handling non-Latin characters.

  38. Some default particle shapes have changed!

*JSDoc works like this:
@description A general description of what the script does.
@param {datatype} An argument input to the script
@param {datatype} Another argument input to the script
 
Last edited:

RowdyCoder

Member
Nice write up. Much appreciated.

What you've reported in regards to changes in GML appear to be very promising. And the addition of the JavaDoc style commenting/documentation is a nice add imo.
 

RujiK

Member
@Juju
Do you have the beta? Can you confirm if there are collapsible code blocks now? Also is an internet connection required at all to run GMS2? Any speed increase?
 

Juju

Member
Do you have the beta?
Yarp.

Can you confirm if there are collapsible code blocks now?
The IDE is... completely different. Forget all that you knew. It's all workspace-based so it's much more flexible than GMS1.

Also is an internet connection required at all to run GMS2?
I had to log in at the start, but I'm not sure if this is due to it being a beta.

Any speed increase?
Dunno yet. Raw drawing power looks about the same. There's only a Windows VM option at the moment. The fast collision system is a big big step up from GMS1's default setting (but we've had access to that for months in GMS1's EA/beta channel).
 

RujiK

Member
@Juju thanks for the reply, but from the videos on youtube the code windows look about the same.

So there is no code folding? IE: You can't do this:


Even with a new workspace, I still expect to have some step events with about 2000 lines of code and the code collapse would be nice.
 

Juju

Member
Oh I see! Apologies, trying to keep track of a dozen things over here.

It doesn't look like that's a feature right now. Given that find-replace is missing in code blocks, it seems like is an "IDE-first, GML-second" beta. I really hope they implement code folding in the future.
 
G

Greg Squire

Guest
Very cool stuff! Thanks for the write-up. #24 has me excited as having proper sound management for large project is something I've been hoping for. Think adventure games with LOTS of voice-over sound files.

Also it would be nice if YoYoGames (or even someone else) put together a "migrating game projects from 1.0 to 2.0 guide". It would make a good blog post for the GameMaker blog. I realize you can't do imports with the beta right now, but eventually this will be needed. I hope it's on YoYoGames' radar.
 
H

heyimdandan

Guest
I've noticed that instance_create(x,y,obj) is gone. Any idea what's replacing it? I use it frequently.
 

Nallebeorn

Member
@RujiK While the code editor sadly doesn't have code folding (yet), I noticed that the code for individual events is now stored as plain-text .gml files in the project directory. So using an external code editor could be an option when editing those huge step events ;)
I've noticed that instance_create(x,y,obj) is gone. Any idea what's replacing it? I use it frequently.
instance_create_layer() and instance_create_depth(). You just have to specify the z-position (either with a named layer defined in the room editor, or a numerical depth like in old GM) when creating instances.
 
H

heyimdandan

Guest
@RujiK While the code editor sadly doesn't have code folding (yet), I noticed that the code for individual events is now stored as plain-text .gml files in the project directory. So using an external code editor could be an option when editing those huge step events ;)

instance_create_layer() and instance_create_depth(). You just have to specify the z-position (either with a named layer defined in the room editor, or a numerical depth like in old GM) when creating instances.
Thank you, that's intriguing, sounds as if this type of command can literally add new depth to games.
 
N

Novithian

Guest
You no longer set the room_speed individually.

room_speed documentation:
"IMPORTANT! This variable is maintained for Legacy Support only, and should not be used as it no longer sets the speed for a single room, but for ALL rooms in the game. To change game speed you should instead be using the function game_set_speed."
 
C

Christoffer Karlsson

Guest
@Juju
Do you have the beta? Can you confirm if there are collapsible code blocks now? Also is an internet connection required at all to run GMS2? Any speed increase?
i think you have to login once a month
 

kupo15

Member
Something you missed I think might be important (or maybe not?)


How big of a deal is this? From an "include as many users as possible" strategy GMS2 obviously leaves these customers behind compared to GMS1. If you are a making a big game (or any I guess) should developers be caring about these users anymore especially if you are making a game that won't be intensive enough that XP users can run it fine?
 

Llama_Code

Member
Something you missed I think might be important (or maybe not?)


How big of a deal is this? From an "include as many users as possible" strategy GMS2 obviously leaves these customers behind compared to GMS1. If you are a making a big game (or any I guess) should developers be caring about these users anymore especially if you are making a game that won't be intensive enough that XP users can run it fine?
A lot of modern games don't work on XP anyways , anything that requires DX 10 or 11 is a no go for XP.

XP market share has dropped considerably as well, down to 10% or so, and a lot of that is business that refuse (or cant) update. I would wager not a lot of people that would play your games are still on XP.
 
G

gamible

Guest
Oh I see! Apologies, trying to keep track of a dozen things over here.

It doesn't look like that's a feature right now. Given that find-replace is missing in code blocks, it seems like is an "IDE-first, GML-second" beta. I really hope they implement code folding in the future.
I want visual studio's code editor in GMS2. It's, amazing!
 
Z

zendorf

Guest
Nice list, there is a lot of cool new stuff in there!

Does globalvar still extist? I am hoping that it does, so that I can port over my existing project and I know there was talk of getting rid of it.

I use hundreds of instance_create and instance_destroy in my project so I presume that the importer will convert these to the new equivalents?

Shame that there is no code folding and looks like there is still no vector2 class, which is always a pain...
 

11clock

Member
Is It possible to add scripts to objects instead of making them all global? Or a better version of user events that allow renaming them and having them accept arguments?
 
R

renex

Guest
Last time I had to use XP was on a custom arcade machine built out of refurbished office computers. Thinking a bit on it, I could easily have installed a minified Win7 on them instead.

I know only one person using XP to current date, and that's because they are using an educational laptop manufactured in 2006. Everyone else migrated to 7/10.
 
N

NPT

Guest
Last time I had to use XP was on a custom arcade machine built out of refurbished office computers. Thinking a bit on it, I could easily have installed a minified Win7 on them instead.

I know only one person using XP to current date, and that's because they are using an educational laptop manufactured in 2006. Everyone else migrated to 7/10.
Everytime you use an ATM you're probably using Windows XP.

Microsoft is making a killing off the XP support contracts.
http://info.rippleshot.com/blog/windows-xp-still-running-95-percent-atms-world
http://www.theinquirer.net/inquirer...ture-cash-machines-could-run-android-or-linux
 
Z

Zeralith

Guest
Something you missed I think might be important (or maybe not?)


How big of a deal is this? From an "include as many users as possible" strategy GMS2 obviously leaves these customers behind compared to GMS1. If you are a making a big game (or any I guess) should developers be caring about these users anymore especially if you are making a game that won't be intensive enough that XP users can run it fine?
Using Windows XP is a security risk, as it is no longer getting updates from Microsoft.

The other issue is you can't realistically purchase the operating system anymore. If a new Game Development Studio formed and wanted to make games in GameMaker, Windows XP isn't even a purchasing option for them or anyone.

Lastly, the internet security industry is making a hard push to get rid of TLS 1.0 (for HTTPS connections) within the next year or so. Payment/Banking sites that need to keep PCI compliant, need to move everything over to TLS 1.1+ soon. Windows XP only has SSL 1.0, SSL 2.0, SSL 3.0, and TLS 1.0 support in it's Schannel implementation. All versions of SSL are already off of the internet due to the POODLE vulnerability.

If you're on the internet and using Windows XP, it's just a super bad idea, and you should upgrade as soon as possible... and also, Windows Vista is losing support from Microsoft early next year, as well.
 

Juju

Member
What? AA isn't deprecated in DX11.
Got a quote from Mike here that says it's not currently available in DX11 ¯\_(ツ)_/¯ Might be a pipeline change from DX9. He'll need to give more detail. I'll change the wording in the OP to make that clearer.

I use hundreds of instance_create and instance_destroy in my project so I presume that the importer will convert these to the new equivalents?
Yep, there are compatibility scripts that are made on import. No idea how reliable they are yet (second beta will catch the bugs? probably?).

Shame that there is no code folding and looks like there is still no vector2 class, which is always a pain...
No code folding does make me sad, though array literals (plus enums) make using arrays-as-structs an actual thing. Already updated my quaternion system with it.

Is It possible to add scripts to objects instead of making them all global?
Doesn't look like it, at least not yet? We can but hope.

Using Windows XP is a security risk, as it is no longer getting updates from Microsoft.
True. Also GMS2 adds some new texture flushing features aren't compatible with XP. I get the impression they've had plans to ditch XP support for a while.

Does globalvar still extist?
globalvar still exists, much to my annoyance.
 
Last edited:

RujiK

Member
The last steam survey said 1.36% of it's users still have Windows XP. Although it may not sound like much, it's actually the 5th most popular OS on steam.

XP also has more than twice as many users as all linux users combined, so it may make more financial sense to support XP on GMS1 than to support linux on GMS2.

Source: http://store.steampowered.com/hwsurvey/
 
R

renex

Guest
Everytime you use an ATM you're probably using Windows XP.
Oh yeah, I forgot about that. But my friend can confirm lol.

5581_574828932602468_166333446_n.jpg

On the note of DX11, I'd imagine it would allow for native mipmaps, no?

I really like the new "create at depth" just because of how well that translates into 3D. Since I just use depth as z, it works great for me.
 
You have to turn off laptop mode (last button in the row of buttons including the play, debug, and clean)

Laptop mode is definitely off. That mode makes it so that when you hold CTRL and simply move your mouse, you zoom. But the new default way to zoom is to hold CTRL and scroll the mouse wheel, whereas in version 1.4, to zoom, you don't have to hold anything.

GameMaker 2 inhibits my workflow process because of this.
 
Laptop mode is definitely off. That mode makes it so that when you hold CTRL and simply move your mouse, you zoom. But the new default way to zoom is to hold CTRL and scroll the mouse wheel, whereas in version 1.4, to zoom, you don't have to hold anything.

GameMaker 2 inhibits my workflow process because of this.
Yeah, I have been having problems with laptop mode as well. It is just hard for me to control, and virtually forces me to use a mouse
 
R

renex

Guest
I should also note that I have a broken mouse wheel, and it makes GMS2 literally unusable. Studio not so much because occasional random scrolling doesn't bother as much.

I really need a new mouse.
 
Top