User Tag List

Results 1 to 9 of 9

Thread: Ideas for Event Writing Efficiency?

  1. #1
    Clicker Fusion 2.5 (Steam)HTML5 Export Module (Steam)

    Join Date
    May 2016
    Location
    Canada
    Posts
    106
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Ideas for Event Writing Efficiency?

    Hey everyone.

    I'm working on a Custom Movement Engine and I find that if I want to add something, even something little like an object for the character to interact with; I have to overhaul tons of events just to get it to barely work.

    I see other custom engines (mainly Mario related) and they have so many things going on like changing the player with a powerup without it affecting their momentum or many other things.

    If I wanted to go about things such as adding powerups to my engine and not lose their momentum and other things, I would need to basically re-do many many events again just to barely work.

    It's not that I can't do it, it just takes a lot of event editing and sometimes I feel like my code is because sloppy as my methods are hacky. I can get things to work but I feel like I'm breaking other things in the process, or making things harder for me in the future when I want to implement something else.


    Are there techniques you all may know that might help me make my events more efficient?

    I know this is a very loose question with many many answers, but I'm sure there is something I'm missing when I'm writing events (perhaps poor planning or not understanding exactly how everything works?)

    I just constantly find myself wanting to restart as I feel my events are far too messy to implement something new.

    Can it be that I simply don't have enough experience with Clickteam Fusion and will only be able to understand how to take the most efficient routes when writing events as I gain more experience?

    Also, I apologize if this is hard to understand as I don't have an example, but I just couldn't figure out how to word it.

  2. #2
    Clicker Fusion 2.5Android Export Module

    Join Date
    Sep 2010
    Posts
    537
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    It could be lack of experience. I have learned to do a lot of stuff differently the more I've been using the software. I gave up a game I'd been working very hard on for over a year because of the way I had done certain things and now a year later I'm starting it from scratch again

  3. #3
    Clicker Fusion 2.5 DeveloperFusion 2.5+ DLCAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleSWF Export ModuleXNA Export ModuleUnicode Add-on
    mobichan's Avatar
    Join Date
    Oct 2007
    Location
    Buffalo, NY
    Posts
    3,281
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)
    I would say experience is going to be a better teacher in regards to efficient coding. One thing I learned early was to “abstract” my code so most things were controlled by flags and variables. For example, instead of making things happen based on key inputs directly, you set a flag or variable when a key is pressed. Then when your var = whatever, you run your code. This allows you to keep your code modular.

  4. #4
    Clicker Fusion 2.5 Developer

    Join Date
    Jul 2008
    Posts
    1,305
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)
    It basically comes down to two things:

    * Planning ahead - so you avoid problems down the road that will require you to go back and change things later on.
    * Keeping things flexible - so when you do need to change things, it's a very quick and easy process.


    The planning part is very important. Before you start, make sure you know what features you might possibly want to include, AND how you plan to do it, and keep that in mind as you go - don't do something you know you will have to change drastically later on, and don't create a simple engine and then just try to "tack on" extra features as you think of them (this also helps you avoid "feature creep", which is one of the main reasons that projects get abandoned).

    To an extent, the "AND how you plan to do it" part is where experience comes in. However, you can always research and experiment with a potentially tricky aspect of a project beforehand. For example, if I were making a strategy game and wasn't sure how I was going to go about pathfinding or combat, I'd create a small demo of each, before building either into the main project.

    Don't hard-code any values that you might possibly want to change later. It's a lot easier to change an alterabe value in one object than to change a hard-coded value in many different events. For example, if you're making a platformer, "gravity" should definitely be stored as a variable somewhere (see my next point), and not hard-coded.

    Instead of using global values, counters, etc, use "container" active objects to hold groups of related values. For example, if you have a complex pathfinding system that uses a lot of values, create a separate active, call it "Pathfinding", and use it just to store those as alterable values (and give it a clearly recognisable icon).

    Use fastloops to create the equivalent of "functions" in other programming languages, allowing you to trigger the same action instantly, from anywhere in your event list, just by running the loop one time.

    Create all your graphics files (it goes without saying that you should be using a decent third party graphics application, and NOT the built in Picture Editor) in a way that can be easily imported again (eg. using "box mode") if you need to change anything.

  5. #5
    Clicker Fusion 2.5 DeveloperFusion 2.5+ DLCAndroid Export ModuleHTML5 Export ModuleiOS Export Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Fusion 2.5+ DLC (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)
    Wodjanoi's Avatar
    Join Date
    Jun 2015
    Location
    Germany
    Posts
    652
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    The efficiency level will definitely grow with your experience.
    Some pain in the learning curve is absolutely normal and can be the best teacher - just don't give up if you like game creation with Fusion. A good understanding of math is probably important at some point to bring your coding skills at a higher level.
    It's also important to understand specific functions/features which can be confusing at first - like Fastloops and ForEach - but if you know how you can use this knowledge at the right place, it will improve your productivity significantly.

  6. #6
    Clicker

    Fusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleSWF Export Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)

    Join Date
    Jun 2006
    Location
    Killeen, TEXAS
    Posts
    1,037
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    to be efficient and get a good system in place - you should NOT be adding things. that's where it gets messy and stuff goes wrong.
    FULLY plan out your system in the beginning, then go about a logical structure for your goals/plan.

    feature creep is just bad planning

  7. #7
    Clicker Fusion 2.5Fusion 2.5 Mac
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Fusion 2.5+ DLC (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    zip2kx's Avatar
    Join Date
    Jun 2015
    Posts
    780
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by MuddyMole View Post
    It basically comes down to two things:

    * Planning ahead - so you avoid problems down the road that will require you to go back and change things later on.
    * Keeping things flexible - so when you do need to change things, it's a very quick and easy process.


    The planning part is very important. Before you start, make sure you know what features you might possibly want to include, AND how you plan to do it, and keep that in mind as you go - don't do something you know you will have to change drastically later on, and don't create a simple engine and then just try to "tack on" extra features as you think of them (this also helps you avoid "feature creep", which is one of the main reasons that projects get abandoned).

    To an extent, the "AND how you plan to do it" part is where experience comes in. However, you can always research and experiment with a potentially tricky aspect of a project beforehand. For example, if I were making a strategy game and wasn't sure how I was going to go about pathfinding or combat, I'd create a small demo of each, before building either into the main project.

    Don't hard-code any values that you might possibly want to change later. It's a lot easier to change an alterabe value in one object than to change a hard-coded value in many different events. For example, if you're making a platformer, "gravity" should definitely be stored as a variable somewhere (see my next point), and not hard-coded.

    Instead of using global values, counters, etc, use "container" active objects to hold groups of related values. For example, if you have a complex pathfinding system that uses a lot of values, create a separate active, call it "Pathfinding", and use it just to store those as alterable values (and give it a clearly recognisable icon).

    Use fastloops to create the equivalent of "functions" in other programming languages, allowing you to trigger the same action instantly, from anywhere in your event list, just by running the loop one time.

    Create all your graphics files (it goes without saying that you should be using a decent third party graphics application, and NOT the built in Picture Editor) in a way that can be easily imported again (eg. using "box mode") if you need to change anything.
    This post is great.
    Not hardcoding and using containers for your values are the best two things you can start doing. This will allow you to modify things in runtime. Experience will also give you an idea what kind of values you'll need in advance. E.g. I know that I'll always need one value that's getting changed and a value that's the limit of whatever variable I'm doing (e.g. speed_current & speed_limit) because of the way I like to code, so I just put them in as i create the objects.

  8. #8
    Clicker Fusion 2.5 (Steam)HTML5 Export Module (Steam)

    Join Date
    May 2016
    Location
    Canada
    Posts
    106
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by mobichan View Post
    I would say experience is going to be a better teacher in regards to efficient coding. One thing I learned early was to “abstract” my code so most things were controlled by flags and variables. For example, instead of making things happen based on key inputs directly, you set a flag or variable when a key is pressed. Then when your var = whatever, you run your code. This allows you to keep your code modular.
    Thanks, I'll give try adding in key input alterable values later today.

  9. #9
    Clicker Fusion 2.5 (Steam)HTML5 Export Module (Steam)

    Join Date
    May 2016
    Location
    Canada
    Posts
    106
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks everyone, I genuinely believe that this has helped me with better planning.

    Just yesterday I was able to add swimming to my game without having to overhaul everything as I have values for the player. One being (Is Swimming). If (Is Swimming) is equal to 1, then my game will disable all the walking and jumping events and will run a modified version with physics for the player underwater and will revert back once the player is no longer in the water.

    Hopefully things continue this way as I believe I want to add whatever I think of to my game.
    I know this is poor planning, but I think it's better as I've planned ahead for certain 'groups' which each new object I create will fall under which should make event managing far easier than before I made this post.

    Again, thanks for all the help everyone! Feel free to leave more comments below if you have any additional ideas or methods to share.

Similar Threads

  1. Efficiency of my application (server)
    By Hydra in forum Fusion 2.5
    Replies: 3
    Last Post: 29th June 2015, 08:14 AM
  2. Memory Efficiency
    By Asholay in forum Multimedia Fusion 2 - Technical Support
    Replies: 8
    Last Post: 11th December 2012, 11:31 PM
  3. How do I let one file writing event wait for other
    By bertus in forum Multimedia Fusion 2 - Technical Support
    Replies: 5
    Last Post: 21st February 2010, 09:54 PM
  4. Event Editor ideas!
    By Spiriax in forum Multimedia Fusion 2 - Technical Support
    Replies: 8
    Last Post: 12th February 2007, 09:18 PM
  5. Just a little event efficiency question.
    By konjak in forum Multimedia Fusion 2 - Technical Support
    Replies: 3
    Last Post: 30th December 2006, 05:18 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •