No downsides to Global Events and Behaviors anymore = no need for level loading?

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.
  • Okay, bear with me, I'm trying to word this clearly so people understand what I'm talking about. Previously, Fusion had limitations with the Global Event Editor and Behavior Editor which made it inferior to using the regular event editor, so it was better to have a level loading routine to build a level in a single frame to avoid having to go back through several frames of events to fix bugs in a large game. But it had the downside of not being able to just quickly and easily construct levels in the frame editor and run with it. It added complexity to your workload when Fusion was all about rapid development.

    Now, all those limitations appear to have been fixed with 2.5+ and various updates. So unless you have a specific need for loading levels into a single frame or a level editor, I see no real reason to use that method versus just building your levels in multiple frames and either using Global Events, or putting all your events into a Behavior and setting the object to Global so that any changes you make happen across all frames. Is there something I might be missing or is this as big of a time saver as I think it is? I'm sure there's other use cases for loading levels than what I mentioned, but by and large it seems it's mostly unnecessary unless you just prefer to do it that way. You might as well just put all your events in a behavior for the player active object and set it to global.

  • Okay, bear with me, I'm trying to word this clearly so people understand what I'm talking about. Previously, Fusion had limitations with the Global Event Editor and Behavior Editor which made it inferior to using the regular event editor, so it was better to have a level loading routine to build a level in a single frame to avoid having to go back through several frames of events to fix bugs in a large game. But it had the downside of not being able to just quickly and easily construct levels in the frame editor and run with it. It added complexity to your workload when Fusion was all about rapid development.

    Now, all those limitations appear to have been fixed with 2.5+ and various updates. So unless you have a specific need for loading levels into a single frame or a level editor, I see no real reason to use that method versus just building your levels in multiple frames and either using Global Events, or putting all your events into a Behavior and setting the object to Global so that any changes you make happen across all frames. Is there something I might be missing or is this as big of a time saver as I think it is? I'm sure there's other use cases for loading levels than what I mentioned, but by and large it seems it's mostly unnecessary unless you just prefer to do it that way. You might as well just put all your events in a behavior for the player active object and set it to global.

    Almost, but I did have a bug with the wrong object showing in the global event editor (have you had anything like this?) when I chose it, all of the alt values were for a different object until I restarted Fusion. This was after copy-pasting events from a frame, so not sure if that's part of why it happened.

    Also, having to put absolutely every event and group into the global editor and just toggling level specific groups is the only solid way of being able to make certain events and groups will happen in specific event ordering. Things like manual pause functions (disabling the main game group) might not work properly if you have any groups or events in frames.

    I'm trying to figure out just how viable it is to put the entire game code into the global event editor and leave frame events behind, so I'd be interesting in hearing how you go about it!

    Please login to see this link.

    Please login to see this link.

    Please login to see this link.

  • I would also like to know if thats possible. As much as I enjoy making levels editors, as it makes stuff a little more organized, it takes a lot of time and I only do it if I am planning to make a big game. Being able to use frames as levels would be an organization nightmare but it would also make it easier to quickly make a level-based game.

    ALSO, Fusion 2.5+ idea: Frame folders?

    check my apps here:
    Please login to see this link.

  • ALSO, Fusion 2.5+ idea: Frame folders?


    Yes! I really hope a redesign for the storyboard editor is in the cards for 2.5+ and we won't have to wait for F3. That really needs better organization with folders. No idea how feasible that is to overhaul that.

  • Almost, but I did have a bug with the wrong object showing in the global event editor (have you had anything like this?) when I chose it, all of the alt values were for a different object until I restarted Fusion. This was after copy-pasting events from a frame, so not sure if that's part of why it happened.

    Also, having to put absolutely every event and group into the global editor and just toggling level specific groups is the only solid way of being able to make certain events and groups will happen in specific event ordering. Things like manual pause functions (disabling the main game group) might not work properly if you have any groups or events in frames.

    I'm trying to figure out just how viable it is to put the entire game code into the global event editor and leave frame events behind, so I'd be interesting in hearing how you go about it!

    I personally haven't experienced any strange bugs in the global event editor so far. I think the global event editor would work out just fine for the entirety of a game if you organized things in groups and activate/deactivate as necessary. I organize things pretty extensively in groups as it is so for me it's not much of an adjustment. But I also have been thinking that maybe using a Behavior for a global active object could potentially be better because then the game events would only be in frames that actually need them and you could still have frame specific events without having to switch things off and on. But activating/deactivating groups isn't that much more work really so probably not a big difference. Probably mostly just a difference in how you personally prefer having things organized.

  • I'm tempted by the idea of putting code in a behaviour. It sounds really neat. But not being able to access it with a hotkey would be a deal breaker.

    Also, I remember from my Flash Actionscript days that having different bits of code in different places ended up super confusing. Finding bugs or adding features could end up being a wild goose chase.

    I really like having all code organised in a single frame. Though I have moved a few things into global events. Stuff that's separate from my main game engine, like my controller input engine and debugging stuff. I like having that out of the way of my normal events, and having my debugging tools always available is great as I can quickly debug things in my level editor frame or elsewhere.

    I use a system where I have a separate frame for each level. But these aren't playable frames. Instead, I load them and they save their contents into array and ini files, which then will get loaded by the game engine frame. So I guess I've already kind of had the benefit of building levels directly in the frame editor. Though until now when I updated some code in my level editor code, I had to paste it into all those frames. I've moved the level editor code into global events now which is terrific.

    I'm trying to think whether I still really need the level editor system, or could I theoretically use the system you're describing, Shawn. Honestly I'm not sure. But I think so. For example, I have certain large L shaped platforms that must be split into two parts for them to work correctly. If I placed them directly in I would need to place and line up two objects each time. But in my level editor system I have a separate single guide object that I place. It lets me place the L shaped platform in one go, and then the engine will split it into two pieces on its own at runtime.

    I guess I could do this sort of thing without needing to save and load levels. I could just have code in the global events that destroys the guide object and replaces it with 2 objects. But then if I'm coding those sort of intermediate steps into the engine then I guess I'm kind of halfway to a level editor system, and away from a 'pure' frame-based system anyway?

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.


  • The only thing is using behaviors, how do you control ordering of events? I guess if you put everything in one objects events it would work, now I think about it, using a combination of global events, frame events and behaviours, you could actually order everything exactly as needed? Frame > global > behaviour, put everything in global and frame specific stuff in behaviors, then lateUpdate stuff in global object behaviors

    Please login to see this link.

    Please login to see this link.

    Please login to see this link.

  • I definitely think its doable, even with standard 2.5. Back when i was using it daily and working on my CV3 fangame (REALLY need to get off my ass and finish it!!) i tried this out and for the little bit of time i used it this way it worked fantastic! Not that i had a way that was set apart or anything by any means. But what i did was make a "master" frame that plugged in all my characters/enemies/bosses into it along with any sensors and whatnot that went with them. Then i coded them all individually, put them in as global events and it worked like a charm. It really was nice to be able to fine tune one frame and it carry across all others. Of course you would want to avoid create events and position events that are object specific, except for things like sensors etc. Another way i did to add on to this was that i would clone my master frame and build the level on it, that way everything stayed together. While it did make for a messy workspace i didn't have to worry about Fusion doing searches for objects that didn't exist.

    Developer/Composer :

    Vamprotector

    Castlevania Chronicles 2 - Simon's Quest

    Castlevania Chronicles 3 - Dracula's Curse

  • I mentioned in another thread that I'm a massive fan of working with global objects and behaviours and the DLC has made it even easier to do so. Does it mean no need for level loading? Not really. The advantages and disadvantages of choosing to design your game in a single frame and load in levels or working with global objects and events / behaviours across many frames has not really changed. And there are not right or wrong answers here. Use what ever works best.

    The inability to create objects unless they exist in the frame is the last remaining limitation for global events and behaviours. You still have to copy one instance of each object you wish to work with in every frame. Would love to see the Create Object from another Frame action you get in the regular frame editor but it sounds like this is too big of a change to make in the current version of Fusion.

    If this were possible, you could introduce new objects easily, adding a create action to the global event editor or a global object with a behaviour and all frames would just work. It's not the end of the world though, dragging a dropping new objects in each frame is not too time consuming for most multi-frame games. I still hold some hope that something will come before Fusion 3, but we'll see :)

    Andy H @ Please login to see this link. - Please login to see this link.
    Retro Gaming @ Please login to see this link.

  • The only thing is using behaviors, how do you control ordering of events? I guess if you put everything in one objects events it would work, now I think about it, using a combination of global events, frame events and behaviours, you could actually order everything exactly as needed? Frame > global > behaviour, put everything in global and frame specific stuff in behaviors, then lateUpdate stuff in global object behaviors 樂

    My thoughts with using a behavior would be to just have everything done in there as if you were using the regular event editor for all your game's events. The global active object would basically serve to make your game events global for every frame you want them in. So for instance, a title screen obviously wouldn't need the game logic in it, so you could just use that frame's event editor and not bother with the global active object for that frame.

  • I wonder what the ordering for behaviors is, we could maybe use multiple global actives as substitutes for groups, and if they were added in, day, alphabetically, you could number the actives to figure out how you wanted each group of global events to appear in the event tick.

    Please login to see this link.

    Please login to see this link.

    Please login to see this link.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!