In short, I increment the numeric part of the layout name
This leads to the fact that I HAVE to name my layouts "Level 1" "Level 2" "Level 3"
I might seems ok, but:
1- such a name is really not descriptive at all, so you end up wondering "oh yeah, what is the level where we could only jump to win?"
I would much prefer naming my layouts "The Jumpy Level" or "First encounter" or something meaningfull.
2- reordering is a pain. I have to rename all the layout after the one lowest I swapped. And has we can't have two layouts with the same name, it becomes quite a pain.
So yeah, having an internal index of layout and a go to next/previous layout action would be awesomely great as well as "nextLayoutName" and "previousLayoutName" variables, or accessing layouts via an index. 'Cause I can imagine a game that would go to a "Stats" layout between each level.
<font size="4">Applying things to other levels:</font>
Damn, that was the most painfull and time consuming phase. C2 is NOT (yet) built for that kind of global scale change. And I seriously think that's it's one of the most important aspect that makes the difference between using C2 for small tiny little toy game and big serious projects.
Unless you create a level editor of course.
But then why do we have layouts?
So ok here's what I would suggest. Probably some of that is already on a todo list but I'll say all that I have in mind for completeness.
We should be able to change the properties of objects across layouts
Yes we could do that in a event in a start of layout with a ridiculous long list of setting stuff... hmpf.
OR... There could be a way to change the X position of every instance on all layouts, or any other property.
Here's some ideas on how it could look:
- If you click on an object type in the "Objects" panel you select all the object in the layout and then all changes apply to all of them. If you click on object type in the "Projects" panel it currently does the same. But it could be different. If I click on the project panel object type, I could be in a "Global property change" mode with a big feedback like different background color in the property fields, or a big red message telling you that you are globally changing everything *God mode*
- You could right click on any instance and have an "applying these properties on all instances of the project"
So in short, if I'm making a HUD and I want my buttons a little bit more to the left, and don't want to go through my 110 levels... It would be great to have such feature :D
I had to duplicate the same object in all my layouts one by one.
This problem could be handled the same way as the global property I just talked about. You right click on an instance and "duplicate this instance with its properties in all layouts". It would create the instance and set the same exact properties (including position, layer, blending mode and fx)
These two last issues leads to one problem though
Layer consistency across layouts.
Indeed, If I want to apply the same object properties across all layouts the layer scheme of each layout could cause some issue.
I think it's a bit more complicated than applying changes or creating objects across layouts, because following the workflow I described, I would already have some layers, and maybe I would have renamed them and created others in some layouts, etc.
One idea could be to handle it like copy pasting files in a folder.
- you select a bunch of layers, you right click > copy layers
- you select a bunch of layouts, you right click > paste layers
And then you'll have a popup "a layer with the same name already exists : Overwriting properties / Ignoring + apply to all warnings"
We would need another operation to copy and paste the ordering of layers though. So yeah might not be the best solution, but there's definitely something to do to make global changes a bit easier.
Maybe some layout templates, a bit how family works...
<font size="4">Other small little things:</font>
I didn't have to use that in my project, but I was talking with a friend using C2 and I told him something like "Oh! It would probably be easier if you had all these prites in different animations of the same sprite.
An ability to merge / split sprites would be awesome. (Well splitting is easier, just have to duplicate and get rid of animations)
Maybe copy pasting animation across sprites could be usefull also.
Set mirrored/flipped, set boolean, set visible, etc it would be great to be able to set these kind of thing in expressions.
Personnaly, I don't really like the set mirrored/flipped action, I'd like to have to choice to deactivate this feature and set negative width/height.