Does C3 plan to make possible to create "plugins" using the event sheets?

  • If i remember correctly when Ashley announced on scirra blog that C3 was comming he said something about users being able to create plugins using Construct's event sheet in the future.

    Either way, is there a plan for a feature like that? It would be pretty cool to have something like this so it would be more accessible to the comunity to contribute creating plugins.

  • The new built-in functions feature is a small step towards this. However it's a huge project, and has a high opportunity cost as it would offset all other work for a long time. So I like the idea but I think it will only be feasible to tackle it in the long term.

  • Ashley can we have a update about this topic? Did we have some progress in the backstage area towards this feature? I'm really excited about the possibility of creating plugins inside the editor.

  • I'm afraid I have no update to provide. We deal with hundreds of feature requests, thousands of bug reports, our own internal priorities, and all the other support and administration that comes with running a software company, and we have just three developers. We simply don't have the resources to tackle everything quickly, let alone huge projects such as this one that would likely involve overhauling how much of Construct itself works.

  • Ah, I'm sorry to hear this feature hasn't gotten traction. I'm perpetually hoping to see it in an update one day. Since it sounds like that's unlikely to happen anytime soon, has there been any consideration of other ways to achieve similar results?

    I tend to start lots of simple little projects, and many of them have similar elements. For example, I often want a bitmap-based progress bar. I've built a system for this in event sheets using a combination of sprites and 9-slice objects. The logic for it is pretty trivial, but it's still a pain to recreate it in every project. I don't want to (nor do I have the ability to, really) write a dedicated plugin for it - I want to leverage all the powerful classes already in the engine.

    It's already possible to manually copy pieces of my system from one project to another, but this is pretty tedious and involves a fair amount of work for each feature I want to rebuild - I still need to create all the objects/families, variables, etc. before copying and pasting the event sheet logic. In some of my more complicated systems this process can take a long time and is pretty error-prone. So, it would be great if there were some easy way to bundle a bunch of related families, objects and event sheets into a package that can be imported into new projects. Any hope for something like that?

  • agree with post above, re-using code and be able to do it fast is pretty important, i think the change in functions was actually a huge step towards this, because referencing to functions is now more easy to code-check which i believe was one off the bigger problems.

    I suggest moving in steps, each step could already help in copying pieces of code to new projects

    step 1 export section of code to new project

    -export all references to a new project (layers, plugins, sprites, variables,... )

    step 2 convert new project

    -prepares the code and objects for better import

    -add an unique identifier to all names and variables to eliminate nameconflicts

    -the code now references this new unique identifier

    step 3 import from a new project

    -create layers

    -plugins (check for existing plugins versus the import to decide what needs to happen)

    -import sprites

    -add variables to objecttypes , sprites, etc..

    -import events (if everything exist and has correct naming this should not conflict anymore)

    step 4 an automated design that processes this steps in one go

    after this process user renames some of its naming and variables to better work in current project

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • I was dreaming about this a few days ago. This would be amazing and a huge boon to development speed

  • It's already possible to manually copy pieces of my system from one project to another, but this is pretty tedious and involves a fair amount of work for each feature I want to rebuild - I still need to create all the objects/families, variables, etc.

    This. I use families as "pseudo behaviors" in my construct projects but I still have to implement them all over again whenever I start a new project.

    Maybe if each family had a eventsheet attached to it, like this:

    Of course the attached event sheet should have some restrictions, like referencing only the family object (no other objects) and not including other event sheets.

    Then if we could export this family and then reimport it (alongside the attached event sheet) in another projects you would only need to include new objects in your families and it would work very similar to behaviors, but using events.

    I guess even the community could gather to work on a project like that, I think the idea sounds possible even as a third party program.

  • Of course the attached event sheet should have some restrictions, like referencing only the family object (no other objects) and not including other event sheets.

    That is a really severe restriction. It may even make the feature too restricted to be useful.

  • The best approach is probably to create yourself a base-project that includes everything you regularely use, so you don´t have to copy bits and pieces by hand. Deleting stuff you don´t need is much easier. I also have one setup mainly for the way I handle buttons that require just 3 events all across the project for setup (a combination of 2 plugins)

  • That is a really severe restriction. It may even make the feature too restricted to be useful.

    I don't think so tbh. Most behavior (if not all of them?) looks like they work only referencing it's own internal properties/variables and the object it's attached to (like the sprites properties) wich you would also be able to acess while referencing the family.

    I think it's only a question of designing the project with a modular approach.

  • The best approach is probably to create yourself a base-project that includes everything you regularely use, so you don´t have to copy bits and pieces by hand. Deleting stuff you don´t need is much easier. I also have one setup mainly for the way I handle buttons that require just 3 events all across the project for setup (a combination of 2 plugins)

    Yes, this is a work around I've tried as well, and it can help in some situations, but it has some limitations. For example, if you develop something new in an existing project and want to bring it into other existing projects (or put it into a template project like the one you describe), there's still manual recreation involved with getting it ported over.

    My point is that it's already technically possible to port features from one project to another, but it would be helpful if there was some automation.

  •  For example, if you develop something new in an existing project and want to bring it into other existing projects (or put it into a template project like the one you describe), there's still manual recreation involved with getting it ported over.

    True, but that shouldn't be that bad? I mean you copypaste/create all objects you need and then copypaste all events and maybe do some cleanup. Or am I missing something? I mean it probably doesn´t work for all cases so yeah...

  • True, but that shouldn't be that bad? I mean you copypaste/create all objects you need and then copypaste all events and maybe do some cleanup. Or am I missing something? I mean it probably doesn´t work for all cases so yeah...

    Copy and paste objects wont work if you use families for example, and I think families is a must have for any big projects. If you want to copy paste any code referencing a family you need to recreate that family with the same name and create each of it instance variables + add all the behaviors used by it manually. It's kinda of pain.

    edit --

    Now imagine the possibilities you can achieve with exporting and importing families. Peoplo could create new behavrios to sprites like other moviment behavriors, transforming the sprite into a HP bar, having the sprite as a controller for a menu (menu logic), etc...

    And the only thing you would need to do is import a family created by some fellow c3 user to your project and add a sprite into this family.

    I think something like that would be next level for c3, it's pretty much adding ability to create behaviors but with events.

    I really think using families is the way to go for this feature.

  • >  For example, if you develop something new in an existing project and want to bring it into other existing projects (or put it into a template project like the one you describe), there's still manual recreation involved with getting it ported over.

    True, but that shouldn't be that bad? I mean you copypaste/create all objects you need and then copypaste all events and maybe do some cleanup. Or am I missing something? I mean it probably doesn´t work for all cases so yeah...

    It's not so bad as to totally block one's progress, no. Again, this is not me saying there's no workaround. What I'm saying is this has been a big enough friction point over the years that it's worth asking about the possibility of a better solution. If you don't think you'd ever make use of such a feature, good for you.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)