In new GameMaker 2 update there are so many major changes: https://help.yoyogames.com/hc/en-us/articles/360011980018
We develop our game (https://store.steampowered.com/app/733460/First_Feudal/) on this engine for 3 years. There was no other way to handle state before: only arrays. No structures and model objects.
So we have really many arrays in our game. We use 1d and 2d arrays. From now GML have only 1d arrays, and 2d or other multidimensional arrays - are 1d array of 1d arrays.
For now after update from 2.2 to 2.3 GameMaker your arrays may work ok. But there are some issues. First of all some array functions will deprecate in next versions. And some of them (like array_height_2d) may work in different way if you mix 1d and 2d logic.
So, how to update 2d arrays to new 2.3 format, and don't use obsolete functions later?
Firstly I want to do it using some script (on vbs or powershell), but this idea wants to eat a lot of time because of issues with best way of open and rewrite file. There may be issues with file code format after rewrite. + time to research regexp in them. And also some logging system develop (to know which files and how changes). We cannot use just GMS, because of no regexp search.
So the best way for me was Notepad++ (https://notepad-plus-plus.org/downloads/).
Firstly, replace all [i,j] to [i][j]
([\w])(\[\s*)([^\]\[]+)(\s*,\s*)([^\[\]]+)(\s*\])
\1\[\3\]\[\5\]
*.gml
Then think about fix [[i][j],k] to [[i][j]][k]:
([\w])(\[\s*)([^\]\[]+\]\[[^\]\[]+\])(\s*,\s*)([^\[\]]+)(\s*\])
\1\[\3\]\[\5\]
Secondly, replace all array_height_2d to array_length
array_height_2d\(
array_length\(
Thirdly, replace all array_length_2d to array_length
(array_length_2d\(\s*)([^\(]+)(\s*,\s*)([^\)]+)(\s*\))
array_length\(\2\[\4\]\)
And finally, replace all array_length_1d to array_length
array_length_1d\(
array_length\(
It also may be some issues with 2d array creation. If you use accessors, then you should fully init array before access to property. (before, accessor was increased array size by itself)
Then fix other corner cases.