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
*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
Excuse any weird formatting, the forum's being a butt.
btw follow me @jujuadams kthnx
- Go to the Resource Tree, then click on Options and then Main. You can change the default framerate to 60 in there.
- 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.
- Here's a complete list of obsolete functions.
- Don't worry! Here's a list of new functions.
- 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
- Backgrounds are gone! Everything's a sprite.
- Tilesets are now managed from their own dedicated editor. Autotiling and tile brushes are now supported and configurable.
- DnD now has quite a different look. But who uses DnD seriously anyway?
- Array literals are now supported var _array = [ 0, 1, 2 ];
- variable_instance_get is back (with its friends)! This opens the door for more modular code / extensions.
- The ternary operator is now supported: variable = condition ? <expression1 (if true)> : <expression2 (if false)>
- Macros can be defined inline, not unlike enums.
- 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.
- 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.
- 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.
- 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.
- Blend modes, colour writing, and alpha testing have also been moved into the new gpu_* functions.
- Anti-aliasing via display_reset() doesn't work for now due to changes during the migration to DX11.
- Paths can now be defined inside the room editor.
- 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.
- 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.
- 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).
- No find-replace in scripts... which is odd. You can do find-replace across the entire project however.
- 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).
- 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).
- 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.
- 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.
- 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.
- 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
- 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.
- Timelines are still in. I know precisely one person that uses the feature so ok I guess?
- There's a Notes section! It'll be really handy for keeping track of game ideas / thoughts during production.
- 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.
- The IDE tracks your project time usage ¯\_(ツ)_/¯
- 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.
- Scripts and object code is stored in raw text as .gml files which means using an external editor is entirely possible.
- 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.
- 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: