>
> 4) Some way to have Object "methods" or perhaps some way to link an Object method to call a Function Event?
>
> 5) Function definition markup/tags to define what params a Function needs and is visible in Action Function call dialog
>
> 6) Return multiple values or an array from function
>
Love the suggestions!
A few additions:
1 - Start treating arrays as a proper type, instead of an object. We have string, number and bool, why not array?
2 - Same goes for dictionaries (AKA hashmaps, AKA associative arrays), so that you can do array["position"] as well as array[1]
3 - Pointers as a type. This means you can store references to an object inside another object, as a property. Right now you can do this by storing the object's ID, but you can't do stuff like player.weapon[1].destroy() in a single event
4 - First class functions. You should be able to return functions as well as store functions as properties of an object. This is something that javascript can already do, so why not?
5 - N-Dimensional arrays, as well as arbitrarily nested arrays. This, combined with the points above, would allow you to express things like player.inventory[0]["quantity"] = 1
All these would be very useful. Also some kind of vector type for 2D/3D (3D would be viable to anyone doing anything isometric), so that vectors can be properly manipulated rather than having TONS of different variables and long expressions. support for angle / distance / dot / cross / normalization on these vectors, and the ability to recognize when the expression would have a scalar vs a vector result. The vectors can probably just be implemented as 1D arrays, so basically just add support for scalar products on any 1D array, cross products on 1D arrays (with dimension less than 4), and euclidean distance / normalization functions for any 1D array. It's not that difficult.
These are all very basic features and the argument that construct users "dont need" this kind of functionality is kind of weak, games use data types to simplify code, whereas construct forces you to build things in boilerplate using floats and ints and basic types, and makes using proper complex data-types extremely annoying.