Right now, we only have basic C-style arrays in GM, which have the following disadvantages:
• No way to get the size of the array aside from using scripts (slow).
• No way to insert data from the array.
• No way to delete data from the array.
I am aware ds_list could be considered a good array replacement, as it has all of the features I requested, but ds_lists take time to use and type.
For example, let's compare:
GML:
if(ds_list_size(listname))
{
}Objective-C:
if(array.count)
{
}I know back in the day I was heavily against OO'ing GM, arguing against the 'ease of use' factor (something which I believe is still a valid argument), but for tools like GM:Studio intended for professional use, the lack of advanced data types is heavily counterproductive.
My suggestion would be to install simple class methods to GM's data types... and make the syntax for calling them similar to C#. For example:
string.realvalue(); array.count(); real.round();This would also enable us to ditch the ds_functions, replacing them with far superior 'classes'. For example:
ds_list= array ds_map= dictionary ds_grid= 2darrayThe 'array' class could also be set to organise itself via priority, list, or queue methods, via an array.mode(mode); method.
I believe GM's greatest weakness right now is its tendency to embrace C-like data types, greatly lengthening the amount of typing for trivial stuff like an array size.











