Debugging tools are all great, but I am a HUGE fan of having QA/QC tools up front and hand. Here are just a few that I though of that might be useful.
A template checklist that could be applied on both blueprints and functions. Add a button to the blueprint editor window (or in a drop down) that when click iterates through the checklist for each function, and reports back what has been ticked off as QC’d, or more importantly, what hasn’t. Basically, it would just need to be a list of booleans that QA’s could tick off when completed so that it could be tracked internally. Ideally, it would be stripped out in the final package.
Better handling of Blueprint function names. Right now, the function name displayed does not match the actual function name, which can cause confusion and therefore bugs. While the true function name is visible with a mouseover, it would be better to have it showing in the blueprint properties constantly. In that same thread, it would be nice if when the user presses F2(or rightclick>rename) on a function, the text defaulted back to the real function name and not the display name. This causes a lot of unnecessary typing with updating function names.
**Output ‘watched’ variables to a sidebar **in the play window, without the need for additional ‘print string’ nodes. Not only does it create redundant nodes, but it also means a LOT of extra work when trying to debug a complex function. GameMakerPro does a really nice job with that.
Been playing around with structs a lot the last few days, and one of the things that I have noticed is extremely lacking with them is ancillary functionality. They have been truncated down to data containers, which is fine, except that they do not contain any of the usability generic functions that you would expect. Here are some example functions that I would love to see implemented to work with structs:
Get Struct Length - Return the number of elements in Struct
For Each member In Struct - Loop through the elements in a Struct
Get Data Type From Member - Returns the data type of the member from the given element in the struct.
**Get Struct Member **- Takes an int/byte and returns the Member at that position.
Basically, any functionality that could be applied to generic data containers that we could get to work with structs.
Currently, the ForEachWithLoop node requires the creation of an external event to break out of the loop. This can be… irritating, not to mention inefficient.
I would like to suggest adding a new input pin to the Array node. This pin would accept a boolean condition that, while true (or false, depending on how you want to set it up), would continue to loop through the array. Essentially, this would combine the functionality of a while loop with that of a ForEachWithBreak loop without requiring the addition of more nodes to the graph and without requiring events to be fired to trigger the break.