2024.400 - Current Version: IDE 549/Runtime 567
Download Links: Windows - macOS - Ubuntu Beta
- IDE Featured Changes
- Local Package Integration: Git starter files are now created when importing a package to become a new project 5513
- Preferences: Fixed a GM crash on startup if any “Paths” field was left blank and saved in the last IDE session (Preferences now also blocks adding a blank path and will revert the path back to the default) 5488
- Project Saving: Fixed an issue where duplicated Sequences were sometimes empty and could not be edited thereafter, but this was later found to affect AnimCurves, regular Sprites, and Objects also, so this is a very important fix! 4990
- UI/UX: [Mac IDE] File > Recent Projects when another project is already open now/again reliably opens the chosen project 5508
- UI/UX: Fixed that pressing your Tab key on any dialog in Beta 4 (and possibly 3) would frequently cause the press to be registered multiple times 5388
- Runtime Featured Changes
- Building Projects: Added support for complying with Apple’s new privacy requirement (ITMS-91053) through PrivacyInfo.xcprivacy 5122
- In-Game: bm_subtract no longer creates a different end result than expected in 2024.400 runtimes 5496
- In-Game: gpu_set_depth() now affects the depth at which subsequent calls to draw_tilemap() will draw that tilemap 4741
- In-Game: [macOS] show_debug_message()/show_message() in a Cleanup event no longer causes a crash when using Cmd+Q to quit the game 5571
- IDE Featured Changes
- Debugger: F2 to rename a watch no longer instead renames the “Variables” dock tab 5080
- Docs Integration: Release Notes links on the Help menu and Update Available notification are now updated to point at these new release notes pages 5204
- Project Saving: Only in “Blank Game” templates on the Start Page is the default room in that project resized to match your Preferences value for the default size of a new room, as this caused the other Templates to not look/work correctly
- Room Editor: Removed unexpected extra project autosaves whenever pressing “delete” and “copy” shortcuts (which can greatly improve performance/productivity in larger projects) 5320
- Room Editor: F2 to rename a layer in the panel no longer instead renames the Inspector tab 2665
- Room Editor: Shift-clicking no longer cancels “select from any layer” mode every time you do the command 2890
- A large number of Redefine Keys issues and general “hotkeys” bugs have been fixed
- Plus, there have been many changes/fixes for Code Editor 2 and the other dialogs it interacted with
- And, if you do need to send us a “Building A Project” or “In-Game” bug, you will now see you’re also asked to kindly tell us which platform(s) you have confirmed are affected by the issue you want to report
- Runtime Featured Changes
- Building Projects: [Android] Increased the minimum supported SDK version from 16 to 21 4459
-
Note: For your existing projects you may need to raise this value in Game Options yourself before trying to do any builds
- Building Projects: [Android] Fixed an issue where Extensions could cause build fails in 2024.400 runtimes because build.gradle keys were not expanded correctly 5173
- Building Projects: [HTML5] Fixed that sound assets were not exported on Beta Runtimes 2024.400.0.550+ 5283
- In-Game: Gamepads are again found on startup if built using 2024.400 runtimes, which fixes an issue in earlier 400 Betas 5327
- In-Game: audio_get_recorder_count() now correctly includes devices which contain non-Latin characters in their name (also, the Audio Recording event is now surpressed if the data failed to be read - instead, you now get an error logged telling you this) 5124
-
Important: Xbox GDK version increased - see the Required SDKs FAQ before trying to do any builds
- This release also brings support for the new GPU Texture Compression extension available on its own GitHub repo now 5495
- IDE Featured Changes
- Code Editor: The new code editor is now available for Beta users to enable in Preferences (if you wish) and try out - along with its many new features: scrollbar minimap with floating code preview tooltips, rainbow braces, all events for an object open at once in a single view, configurable layouts, and much more (see its Preferences section for more info)
- Feather: Has now been renamed “Diagnostics” and is active when using CE2, so you will see this if you enable the new code editor (be aware that in this release you will get a second panel for Diagnostics, rather than your existing “Syntax Errors”/”Feather” tab being closed when the new one opens - just close the old one)
- Project Save: The Preferences default for where GameMaker stores your projects has now been moved, as Windows IDE users are increasingly opting-in (sometimes unknowingly) to OneDrive managing their “My Documents” folder and so OneDrive is causing problems when trying to do their builds later on 4372
-
Note: If you have not manually set a different home folder in Preferences, then your Preferences will automatically update to this new value when you start GameMaker; if you have previously changed your home folder, then you may wish to check it is not inside OneDrive, etc.
- Project Save: Carrying on from the change above, if GameMaker detects your project is still being stored in a folder which is managed by OneDrive/Dropbox/Google Drive/iCloud, then you will get dialogs on save/load which advise you that you really should move your projects to the new, safe location 2859
- Runtime Featured Changes
- IDE Featured Changes
- Default .gitignore files are now added into new projects when you create them (although, we are aware that right now the Mac IDE does not do this, nor does importing an existing project .yyz) 2922 / 4559
- Project Save: Renamed resources are now resorted alphabetically in the .yyp when using 2024.2 5035
- Game Options: Fixed a GM crash when setting a .gif file as Windows splash screen and clicking Apply (note that you will not get an animated splash screen if you supply a .gif - only the first frame will be used!) 5048
- Image Editor: Auto-Trim command now also adjusts the sprite’s collision mask to maintain the original relative position 4873
- Also a very important project-saving fix for converting a pre-2024.2 project in 2024.2 or 2024.400 Beta 1 when your “Default” configuration is not the active one in the IDE would overwrite your Default configuration’s Game Options
- Runtime Featured Changes
- IDE Featured Changes
- Local Packages can now be created even when logged-out (when using a “guest” account) 4417
- Can now define the default Animation Speed value for Sprites on an Asset layer in a room 2931
- Game Options for iOS no longer rejects icon images which contain transparency 4617
- Stopped adding the “…_stripN” suffix onto the new Sprite assets created when dropping strip images onto GameMaker 2963
- Updated the gamepad database to incorporate latest gamepad definitions - 4735
- A number of performance and stability fixes also
- Runtime Featured Changes
Milestone Page
- 2024.4 (Closed issues are fixed/implemented for Betas, Open issues are still to do before the Monthly)
Misc New Functions
dbg_view_exists(view)
- Check to see if a dbg_view still exists.
dbg_section_exists(section)
- Check to see if a dbg_section still exists
gpu_get_blendequation()
- This function can be used to retrieve the current blend equation being used for drawing. The returned value will be one of the following constants (the default value is bm_eq_add):
gpu_get_blendequation_sepalpha()
- This function can be used to retrieve the current blend and alpha blend equations being used for drawing. The function returns a 2 element 1D array with the following elements in it:
gpu_set_blendequation(equation)
- When GameMaker goes to draw a pixel there is a source colour (the colour of the pixel we’re going to draw) and a destination colour(the colour that’s already in the pixel we’re drawing to), so when determining the new colour of the pixel, the source and destination colours are calculated according to the chosen blend mode. Each component of the colours is stored as a floating point value between 0 and 1, and the new colour is calculated by multiplying each component of the source colour by some factor and by multiplying each component of destination colour by some other factor and then combining the results together component by component using a configurable equation.
gpu_set_blendequation_sepalpha(equation,equation_alpha)
- When GameMaker goes to draw a pixel there is a source colour (the colour of the pixel we’re going to draw) and a destination colour(the colour that’s already in the pixel we’re drawing to), so when determining the new colour of the pixel, the source and destination colours are calculated according to the chosen blend mode. Each component of the colours is stored as a floating point value between 0 and 1, and the new colour is calculated by multiplying each component of the source colour by some factor and by multiplying each component of destination colour by some other factor and then combining the results together component by component using a configurable equation.
gamepad_enumerate()
- Currently only functional on Android, this function will enumerate gamepads to detect any newly added gamepads and remove any recently removed ones without the need for BLUETOOTH_CONNECT permission.
Misc Changed Functions
skeleton_animation_clear(track)
changed to skeleton_animation_clear(track,[reset],[track])
Misc New Constants
bm_min
- Min blending (Takes the minimum value for each colour component).
bm_reverse_subtract
- Subtractive blending where the destination colour is subtracted from the source colour.
bm_eq_add
- Additive blending. Luminosity values of light areas are added.
bm_eq_subtract
- Subtractive blending where the source colour is subtracted from the destination colour.
bm_eq_max
- Max blending (Takes the maximum value for each colour component).
bm_eq_min
- Min blending (Takes the minimum value for each colour component).
bm_eq_reverse_subtract
- Subtractive blending where the destination colour is subtracted from the source colour.
gp_home
- The gamepad’s Home button
gp_extra1
- A gamepad button used for mapping extra buttons on a device
gp_extra2
- A gamepad button used for mapping extra buttons on a device
gp_extra3
- A gamepad button used for mapping extra buttons on a device
gp_extra4
- A gamepad button used for mapping extra buttons on a device
gp_extra5
- A gamepad button used for mapping extra buttons on a device
gp_extra6
- A gamepad button used for mapping extra buttons on a device
gp_paddler
- A gamepad button used for mapping paddle right button on a device
gp_paddlel
- A gamepad button used for mapping paddle left button on a device
gp_paddlerb
- A gamepad button used for mapping paddle right bottom button on a device
gp_paddlelb
- A gamepad button used for mapping paddle left bottom button on a device
gp_touchpadbutton
- A gamepad button used for mapping the touchpad button on a device (i.e. PS4 and PS5)