A question about performance

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!

  • I have returned to CF 2.5 after being away for over 10 years (using other tools). One game that inspired me to make games back then was I Wanna Be the Guy, which is created in MMF2 (I think?).

    I am thinking about creating a similar, masochist platformer and want some advice regarding performance. If I recall correctly the initial version of IWBTG was created in one single frame, with everything being loaded at once. The game contains less than 100 rooms filled with collision tiles and traps (a lot of spikes). That game seems to be running fine, so I am wondering if I can get away with creating my entire game in one single frame?

    To make things more clear, I plan to have around 50 rooms. Each room is 320 x 240 pixels, filled with 16x16 pixel collision tiles and some active objects. I estimate around 100 backdrop objects and roughly 10 active objects per room. This gives 5000 backdrop objects and 500 active objects for the entire game. There will be rooms that have particle effects such as rain, but things like that will be loaded only when the player enters the room.

    The game is currently targeted for PC only, so I do not have to take mobile performance into consideration.

    My question is if this is an approach that can work, or if I am setting myself up for failure?

  • Yes, your approach can work. Fusion is overall quite a bit more powerful now than it was in the MMF2 days, and a game like I Wanna Be the Guy is well within the abilities of the engine. Since you're developing with only PC in mind, performance should be even less of an issue.

    If I'm understanding you correctly, it sounds like you want to have one very large level frame and build every one of the 50 levels inside of it. When the player switches to another 'level' they would simply teleport to another part of the frame where the next level is located? I don't have any experience with doing it that way in Fusion, although it is technically possible. That being said, I think you could run into some issues doing it this way if you end up needing too many objects loaded at once, or if you make a lot of really large objects or the frame ends up being absolutely massive in dimensions. The max number of active objects in a single frame at any given time is 30,000.

    Usually the practice of loading all of your levels in a single frame is done to avoid the clutter that having something like 50 individual level frames would cause, along with the difficulty of keeping track of the events for each of those frames.

    There's another way of doing a game in which you use only 1 frame for all the levels, but in which you do not load them all at the same time. With this method, you would have a single blank frame that loads 1 of any number of different levels into it one at a time from a file. When you leave the current level, the frame resets and loads up a different level. This method generally requires you to create some kind of custom level editor in which you create and save the data for each level which would then be loaded by the games single level frame. If you don't want to make a full blown custom level editor, you can still use this method by building your levels in separate frames in Fusions default frame editor and then programming a set of events to loop through all of the objects in the frame to save to a file in the same way that you would with a custom level editor. I think Volnaiskra developed a method like that if I remember correctly.

  • Thanks a lot for the thorough reply! The game will be "open world" in a sense, with a camera that snaps to each 320x240 pixel room - there will be nearly no camera scrolling. So, there won't be any levels, but rather rooms and areas that you can move seamlessly between.

    The level editor approach is likely the best one from a performance perspective. The thing that makes me reluctant to use it is that my game (much like IWBTG) will have a lot of unique things going on inside each room. While a game like Super Mario Bros is rather limited in feature scope, IWBTG has unique traps in each and every room, making it harder to apply a general solution to storing things (I think?).

    I am wondering if there is any merit to using quick backdrops rather than backdrops when possible? For example, assuming that a room should have it's bottom part filled with tiles, I could replace the 20 individual backdrops with a single quick backdrop that stretches over the entire room (using a tile motif that visually ends up looking the same). Is this something that improves performance a lot, or can I just place backdrops to my heart's content?

  • Game with only one frame usually means put all elements you need in frame then create them dynamically during runtime, according to the level file, which describes the position of elements, and also means you need to make a level editor, to gid rid of manual imagination work without WYSIWYG.

Participate now!

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