I am currently teaching programing classes for the local homeschool coop group. I teach beginner classes and advanced classes. The class doesn't focus exclusively on construct 2 but I chose it as a way to introduce kids to concepts in game programing. The kids range in ages from 10-14 .
Construct 2 is a phenomenal tool, and its speed is what makes it work. I can focus on a specific concept and use built in behaviors to get everything else working. For a bunch of distract-able kids having something working in 10 minutes is super important. It is instant feed back. The only thing you have to worry about is the game code.
I really appriciate the work that has been done in c2. I love the quick bug fix turn arounds, and honestly, I only complain on the forums as much as I do because I like c2 so much. As far as improvements go, the direction that is being taken with c3 is what is important to me.
Being able to make behaviors via events, share events easily across projects , more "Object orientedness" (families inheriting from families) and so on.
On a specific level. I still think c2 needs the ability to insert an image editor side to represent a family. The visual nature of construct 2 is irrelevant in highly abtracted projects using alot of families. You can't see quickly what family you are referring to in the events.
I would also really love to object oriented style events where we create event sheets and attach them to a specific object, and if that object is a family object then certain groups or methods can be overwritten on objects that inherit. I'm sure you know what I am getting at here. If c3 maintained its quick and easy event editing, but allowed for more complex event descriptions, c3 would be unstoppable. As a user of unity, I could point out that the strength of unity is in the way it handles this. Fast passing of uid is also super important for function calling. If you want to use alot of functions, you end up having to get the uid of the object, pass it to the function, repick the object, and so on every-time you use a function.... which is a lot of work for something that is supposed to make things faster. If I may, there should be an option to maintain the sol when passing control to a function. that way you wouldn't need to do the repicking to get the object or objects in question. If you wanted a fresh sol then you would just check a box. This would be perhaps hard to add, but seriously, please think about it.
Thanks for listening, as always