One of the biggest things about the 'S' plugin
which lucid made for 0.x was the fact that it allowed data structures. Variables on their own are fine and dandy, but structures that store arrays of variables, be it string, integer, boolean or other can make various tasks, especially stuff in RPGs, much easier.
There's other uses, such as save data, and storing conversation data for cutscenes, and stuff like that. That, and we need a good replacement for the Array Object.
Yes, it is early days, I am aware of that, but in the long run, data structures, especially being able to visually create a series of 2D arrays that can be used in a meaningful manner could well be extremely beneficial, and in some ways, could eliminate the need for an ini object as well.
Alright, here's how I think it should work. Say we start out with a new project, we're trying to create an RPG. We want to create a series of arrays for the player's party. In the project bar off to the left, below the Layout, Event Sheet and Objects folder, there's a folder called 'Structures', or 'Supers' or 'Tables' or whatever Ash would think would be most suitable. We right-click on that folder, and click "Add New Structure/Table/Whatever". It'll ask if you want a single 2D array, or a Structure. We'll go with the latter here.
Then, Construct sets aside a new tab, and gives a dialog much like the Instance Variables editor, where you can insert new arrays of Strings, Integers, Booleans, etc. and order them however you wish. For this example, our arrays consist of:
- Name: String
- Level: Integer
- EXP: Integer
- HP: Integer
- Attack: Integer
- Defense: Integer
- Speed: Integer
- Luck: Integer
- Weapon: String
- Armor: String
- Ailment: String
And so on and so forth.
Once you're done, the "Structure Editor" gives you an Excel-like table, which one can adjust the margins like any Excel table, and start entering in information if they so desire. In this case, we can enter in the name and stats for our game's player characters. For cutscenes, you could have an integer for which line in the conversation, a string for the actual dialogue, another string to identify the speaker and an integer which tells Construct which frame for that character's mugshot should show.
For save files, you could save every structure into a single file that the game can load when the player chooses to load a save, along with some other information if need be.
It's not the most perfect of explanations, but... Well, I cannot stress how useful something like this could be, and it could help further set Construct 2 apart from the competition, especially if it's done in a user-friendly manner. It could be used for simple arrays, as well as more complex stuff.