Warning: There's a bit of a long read ahead. But try and get through it, I put a ton of thought into this and I think it's worth your time
Construct 2 plays a very difficult game - a great balancing act of making an engine simple enough for non-programmers to use while maintaining the
flexibility and complexity required by advanced developers. And it does this brilliantly - mostly.
One feature, which is commonplace in just about every high level OOP language, seems to be neglected and forgotten about, even though it is
crucial to almost every modern day application.
I am talking, of course, about Classes. You know, those customizable objects with their own properties and variables.
"So you mean Sprites?" I can hear you asking.
Well, sort of.
While Sprites do have the ability to store information in themselves through Instance Variables, I feel that they are severly limited. First of all, using a
Sprite to store data just seems strange. I mean, sure, I can spawn new ones off the layout with their own variable values, but that seems way too
much like a workaround rather than a feature. And I'm fairly certain that the process of creating a sprite, albeit offscreen, is far more resource
intensive than manipulating much simpler data.
Second of all, there are only three (3!!!) data types available for instance variables - Number, Boolean, and Text. While this may work for simple
things, it is borderline unusable for more complex problems.
Let's take an example:
Let's say I'm making a pizzeria simulation game. A customer calls and places an order, and I need to fill out the order properly, through mini games
and memorization. Stuff like remembering toppings, customer details, slice cutting, seasoning, and the works. Sounds simple, right? But let's look at
the classes and properites needed: