Hello everyone, I'm a user of clickteam products for quite a long time (since The Games Factory) and I'm currently using Fusion 2.5. I think that I have some good knowledge of the software now, but I still learn a few tricks from time to time and they happen to be very useful sometimes. So I wonder if there are any of those that could help me with some issues I encounter frequently.
1) "Merged OR" condition
I often write very long conditions and one of the reasons is that I want a particular event to happen under different circumstances. Sometimes, I'd like the exact same conditions, but with only of them changing. So, I'm forced to write this (for example) :
CONDITION A
+CONDITION B
+CONDITION C
+CONDITION X
or
CONDITION A
+CONDITION B
+CONDITION C
+CONDITION Y
or
CONDITION A
+CONDITION B
+CONDITION C
+CONDITION Z
Now, this is annoying, because if I want to change the initial conditions "A, B, C", but keep the last one (X, Y, Z), I have to do it 3 times and I'm more likely to forget one or make a mistake. In addition, this condition is very heavy, hard to read and scales up to a very large number of conditions when I want more than one condition to vary, while keeping others exactly the same. Sometimes, I even separate it in multiple events (by copying the same actions) in order to make it simpler to drag and drop conditions in them, which isn't good programming principle isn't it? Is there a way to "merge" OR conditions. Which means something like this? :
CONDITION A
+CONDITION B
+CONDITION C
+{CONDITION X or CONDITION Y or CONDITION Z}
That would allow me to write easily something like this :
CONDITION A
+CONDITION B
+CONDITION C
+{CONDITION 1 or CONDITION 2 or CONDITION 3}
+{CONDITION X or CONDITION Y or CONDITION Z}
+{CONDITION foo or CONDITION bar}
(one that I really wouldn't like to write the way I'm able to right now)
2) Refactoring alterable values
Making a game often makes me change my design through developpment. Which means the way I want to use and name the alterable values of my active objects might change. For example, let's assume I have this object :
OBJECT CHARACTER
-Alterable value A : stat_strength
-Alterable value B : stat_agility
-Alterable value C : stat_stamina
-Alterable value D : hp
-Alterable value E : mana
...
-Alterable value P : isShielded
-Alterable value Q : isCrouching
And later on, I realize I need a new variable "stat_dexterity". Now the only thing I can do (assuming all variables up to Q are taken) :
OBJECT CHARACTER
-Alterable value A : stat_strength
-Alterable value B : stat_agility
-Alterable value C : stat_stamina
-Alterable value D : hp
-Alterable value E : mana
...
-Alterable value P : isShielded
-Alterable value Q : isCrouching
-Alterable value R : stat_dexterity[/I]
Now for the comfort while programming the game, I would really like to have all my "stat_something" somewhere together (concatenated). This might sound stupid, but it happens VERY often for me. More generally, I find it really hard to organize my alterable values within an object, considering they can only be renamed from the original alterable values A, B, C... etc. Sometimes, I realize that I don't need a variable in the middle of used variables (let's say variable L), so I just rename it to "UNUSED" (or back to "Alterable Value L"). I end up with a bunch of "UNUSED2", "UNUSED3" and replace them when I need a new variable that pops up in the middle of variables that have nothing to do with them. Sometimes, it makes me mad and I just make a new object with the right variables in the right order and recopy all events by hand!
So the question is, is there a way to manage this? At least, is there a way to intervert two variables (change every reference to variable A in the code by variable B) other than doing it by hand?
3) Function, external script, extensions
Finally, I think Clickteam's products make it easier to make easy things, but makes it harder to make hard things (compared to a standard programming language). For example, making a simple function and make a call to it with parameters seems pretty tricky to do. Use active objets with alterable values as buffer for parameters/variables and call a loop? I don't even know if that's a "correct" way to do it. Is there a better way? Can I insert a custom script from a programming language? Which one(s)? Should I make my own extensions? Is there a good tutorial out there about making its own extension? How can I then ensure that they will be exportable (iOS, flash?). Furthermore, is there a way to make a currently existing extension compatible with exporting?
Thank you very much for reading so far and thank you in advance for your answers. I look forward to know more about advanced use of the software.





Reply With Quote

