Metroidvania/ HUB Level Design Possibility?

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.
  • What's the best way to go about making a "Metroidvania" kind of level progression in Fusion 2.5? As in, loading multiple level layouts likely across many, many frames, with the ability to backtrack and the like as well as having the game remember which enemies are defeated and which items have been previously grabbed?

    I'm looking to make something with "HUB level design" similar to how Hexen played, where solving a puzzle on one level/ frame, would open up a door, raise stairs, fill a pit with water, etc.; on another level/ frame.

  • You could make the whole game in 1 frame, loading levels from an array. (then you make a level editor to create the levels rather than use Fusions built in frame editor) Or you can simply create your levels in separate frames and use global values +ini/array to load relevant data at the start of each frame.

    for example, if you wanted the game to detect whether or not the player had already collected a key and to display it or not display it:

    START OF FRAME
    global value = 0 - create key
    global value = 1 - destroy key

    Check out my Game on Itch.io
    Please login to see this link.

  • I take it there are tutorials for things like level editors around here somewhere, hopefully?

    As for separate frames, would having multiple frames all having copies of the same code in it cause memory issues, or start to make the game file huge? And the same for copies of objects needed in those frames, global or otherwise?


  • As for separate frames, would having multiple frames all having copies of the same code in it cause memory issues, or start to make the game file huge? And the same for copies of objects needed in those frames, global or otherwise?

    The difficulty with this approach is that if you need to change the way a core part of your game works you then need to copy it into all the other frames.

    Using the global event list mitigates that somewhat, and is a more straightforward approach than designing your entire game within one frame.

    I wouldn't worry about memory unless you are building for mobile devices.

    SUPER MEGA BEST CAT ADVENTURES Please login to see this link. and Please login to see this link. live now!

  • Stay away from multiple frames, you'll never finish your game this way. It's the kind of thing you need to experience to fully understand the downfalls of it, but it will basically turn coding into a grind... bugs will never get fixed, features can't be easily added, you can't build on your engine for a sequel, so many inherent problems.

    Quote

    Using the global event list mitigates that somewhat, and is a more straightforward approach than designing your entire game within one frame.


    The global event list introduces new problems, it's something I also recommend avoiding.

    Please login to see this link.

  • Seriously, is there a known "best practice" for making a global engine, besides remaking parts of MMF inside MMF?

    I've heard that Global objects with Behaviors is a good way to go but I've never tried it myself.

  • I'm completely with DaveC and Ryan.

    Whilst Fusion allows the flexibility to span across multiple frames, making organisation easier, it also allows for rapid engine development using one-frame. I haven't designed a multi-frame based game for years. If you learn the basics on Arrays and INI file saving/loading, develop your own external level editor and create a 'load routine' inside your one-frame engine. This way everything is contained to one-frame, easier to debug and much easier to update.

    Game Launcher Creator V3 - Please login to see this link.
    Bespoke Software Development - Please login to see this link.
    Learn Clickteam Fusion 2.5 - Please login to see this link.

    Danny // Clickteam

  • I also agree that the single engine frame/array method is the best way to go - my own metroidvania does it this way - but it's advice I feel slightly uncomfortable giving out to everyone, especially if they're just starting out. Learning how to do things that will benefit you in the long-run is great, of course, but one of the best features of MMF *over other game creation tools* is that it allows for incredibly fast development. Not so much if you have to remake part of the tool yourself.

  • Quote

    ... If you learn the basics on Arrays and INI file saving/loading, develop your own external level editor and create a 'load routine' inside your one-frame engine. This way everything is contained to one-frame, easier to debug and much easier to update.

    Is there a tutorial of how to create a "level editor" and how to only use one frame in CF?

  • Not that I know of. It would be FAR too comprehensive and complex.

    The best way is to learn all the individual routines separately first, then combine them all. Take a look in the Examples/Widgets/Guide section of the forum. I think MuddyMole or UltimateWalrus created a complex external level editor that you can download and take a look at the code to.

    Game Launcher Creator V3 - Please login to see this link.
    Bespoke Software Development - Please login to see this link.
    Learn Clickteam Fusion 2.5 - Please login to see this link.

    Danny // Clickteam

  • You can start out by just using a list object and writing the x,y coordinates of your blocks to individual lines of the list object, then on the start of frame, use a fast loop to read every line of your list object and create a block at that position. That will give you a fair idea of the concept of 'level editor'.

    Please login to see this link.

    Edited once, last by Ryan (December 12, 2014 at 3:19 AM).

  • I've really got myself into a tangle using multiple frames and global events in the past and, like others, would ward you off them. My current method is having a group for each level that loads all the data into an array. The only downside I can see with this is you end up with a ton of events although most of these events never get executed as they are in closed groups. For those with more experience than me, is this a bad practice?

Participate now!

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