-
How To... Instructions... Manual... Guide... HELP!
My 30 day demo of MMF2 Developer is going to run out before I can find any comprehensive intructional content to help me learn to use the product and feel confident enough to spend all my year's savings!
I've searched and searched for specific How-To's on things such as Expression Editor and certain Objects and after 5 Days I'm getting really frustrated.
I've done the included Tutorial, read through the Help section which is nowhere near as in-depth as it needs to be for a beginner like me. I've scoured forums all over, I've worked out a fair bit myself, but there's been so many times I've thrown my hands in the air over something I just can't work out without any insight and extra information.
Can anyone point me in the right direction? IS there a direction?!!! Besides waiting for the full version to come with some kind of manual? Is the included manual as in-depth as I hope?
I know I will most likely purchase the product, but it's a massive and scary thing for me to spend that much money on software when I'm not completely confident yet.
Thanks for any help <img src="/center/images/graemlins/smile.gif" alt="" />
-
How To... Instructions... Manual... Guide... HELP!
My 30 day demo of MMF2 Developer is going to run out before I can find any comprehensive intructional content to help me learn to use the product and feel confident enough to spend all my year's savings!
I've searched and searched for specific How-To's on things such as Expression Editor and certain Objects and after 5 Days I'm getting really frustrated.
I've done the included Tutorial, read through the Help section which is nowhere near as in-depth as it needs to be for a beginner like me. I've scoured forums all over, I've worked out a fair bit myself, but there's been so many times I've thrown my hands in the air over something I just can't work out without any insight and extra information.
Can anyone point me in the right direction? IS there a direction?!!! Besides waiting for the full version to come with some kind of manual? Is the included manual as in-depth as I hope?
I know I will most likely purchase the product, but it's a massive and scary thing for me to spend that much money on software when I'm not completely confident yet.
Thanks for any help <img src="/center/images/graemlins/smile.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
I know there are alot of tutorials for beginners for MMF1.5 here: http://www.nmxt.com/kb/start/index.php
Many things still apply to MMF2 though the interface has changed a bit. I think you can figure it out <img src="/center/images/graemlins/smile.gif" alt="" />
I think there is also a few tutorials on the CD's but I can't remember which there are. I wrote a few tutorials for MMF2 I think they are available somewhere.
-
Re: How To... Instructions... Manual... Guide... H
I know there are alot of tutorials for beginners for MMF1.5 here: http://www.nmxt.com/kb/start/index.php
Many things still apply to MMF2 though the interface has changed a bit. I think you can figure it out <img src="/center/images/graemlins/smile.gif" alt="" />
I think there is also a few tutorials on the CD's but I can't remember which there are. I wrote a few tutorials for MMF2 I think they are available somewhere.
-
Re: How To... Instructions... Manual... Guide... HELP!
Hi there Annie!
First of all - I guess that the official manual could help You a bit. It's written specificaly to cover the basic level of MMF's know-how and program usage, such as "where to click to open this window", "what does this object do" or "what should I input there". It's really quite basic, a perfect start for a person who didn't spend much time with Clickteam products... yet. <img src="/center/images/graemlins/wink.gif" alt="" />
If You're afraid of buying MMF2 Developer, perhaps You should think about MMF2 standard? It's almost as powerful and You can upgrade to developer for a discount price later. I went for the purple one (developer), since I'm in need for one of the objects available only in this version, but if You still feel lost in MMF's ways, You could think about the standard version as an alternative. But, of course, if You'd like to have MMFdev from the beginning - don't let me stop You, it has even more power than the standard version, thanks to exclusive extensions, and definately is worth buying. <img src="/center/images/graemlins/smile.gif" alt="" />
As for tutorials - I guess that there's lot's of them here and there, the problem could be that most of them is rather on a bit higher level - I haven't found any covering the expression editor. I guess that You could have a look here http://www.create-games.com/articles.asp and here http://www.create-games.com/forum.asp?id=11 - and, of course, don't stop Yourself from posting any questions that You might have (even those basic ones) at this forum. You'll soon discover that Clickteam's community is always willing to help. I'll try my best too, You can even mail me with some questions, but be sure to know that I'm not a great tutor and definately not one of the hardcore wise-men here. <img src="/center/images/graemlins/wink.gif" alt="" /> Anyway, if You'd need help and stated Your problems a bit more thoroughly, I'd be happy to help You.
-
Re: How To... Instructions... Manual... Guide... HELP!
Hi there Annie!
First of all - I guess that the official manual could help You a bit. It's written specificaly to cover the basic level of MMF's know-how and program usage, such as "where to click to open this window", "what does this object do" or "what should I input there". It's really quite basic, a perfect start for a person who didn't spend much time with Clickteam products... yet. <img src="/center/images/graemlins/wink.gif" alt="" />
If You're afraid of buying MMF2 Developer, perhaps You should think about MMF2 standard? It's almost as powerful and You can upgrade to developer for a discount price later. I went for the purple one (developer), since I'm in need for one of the objects available only in this version, but if You still feel lost in MMF's ways, You could think about the standard version as an alternative. But, of course, if You'd like to have MMFdev from the beginning - don't let me stop You, it has even more power than the standard version, thanks to exclusive extensions, and definately is worth buying. <img src="/center/images/graemlins/smile.gif" alt="" />
As for tutorials - I guess that there's lot's of them here and there, the problem could be that most of them is rather on a bit higher level - I haven't found any covering the expression editor. I guess that You could have a look here http://www.create-games.com/articles.asp and here http://www.create-games.com/forum.asp?id=11 - and, of course, don't stop Yourself from posting any questions that You might have (even those basic ones) at this forum. You'll soon discover that Clickteam's community is always willing to help. I'll try my best too, You can even mail me with some questions, but be sure to know that I'm not a great tutor and definately not one of the hardcore wise-men here. <img src="/center/images/graemlins/wink.gif" alt="" /> Anyway, if You'd need help and stated Your problems a bit more thoroughly, I'd be happy to help You.
-
Re: How To... Instructions... Manual... Guide... HELP!
As for the Expression Editor... I don't know what info do You specifically need, so I'll just let myself roam free and write some useful info about couple of things. Don't be mad at me if any of this won't even come close to the info You're interested in. I'm shooting blind here. <img src="/center/images/graemlins/smile.gif" alt="" />
So, let's have a walk through Expression Editor's territory:
"Do not underestimate the power of the Expression", as Lord Vader once said. <img src="/center/images/graemlins/wink.gif" alt="" /> Many MMF2's actions and conditions ask You to input a number or a calculation that will help them to understand what, where, at what time, for how long, from what side, etc. You want something to happen. The Expression Editor is used also for giving paths to exterior game files or folders (for example, You could input: "C:\Program Files\MyGame\mygame.exe"), for retrieving various data, loading and saving files, using arrays, and for many other things. You can find more overall info at Your help file (if I remember correctly, it should be in the Demo) - just open Help/Contents from the menu and have and input "expression editor" at the index of help topics.
Example of usage #1:
Let's say that You have created an array to store the game's data such as player's experience, player's inventory etc. over frames. Let's say that the array is at size of 10x10x1 (with "1 Base index" option made "on" - which starts the array from the number 1, as opposed to starting all cells from the number 0, choose the type of the array to be a numerical array), so You can input Your data into any cell ranging from x1y1 (since it's two dimensional - 10x10) to x10y10. Let's say that You want to have player's level at x2y5, and You want to set the level at 5 as soon as the frame starts.
So... After creating the condition ('Start of Frame'), go to the array object in the event editor, right click on the corresponding white tile and choose Write\Write Value to XY from the pop-up menu. The Expression Editor will open. Firstly, input the number that You'd like to store - it's number 5 for us. Just press 5 and click 'OK'. Then, You have to choose the horizontal position of the array (which one of the cells in X will be used to store that amount of data). We wanted to input it at x2y5, so press 2. Then another click and input 5 to store the array data at Y position 5. And that's done.
Example of usage #2:
Now, for something harder: let's say that You want to show the player on which level is he. You want a counter displaying always what's going on in the cell x2y5, the place that we kept player's level at. So... After creating the counter and placing it in the frame, create a new condition: Always. Then, go to the counter, right click on the white field corresponding to the condition "Always" and choose "set counter". The Expression Editor appears - click on the "Retrieve data from object" button at the right - a list of objects will appear. Choose the array, right click on it and choose the "Read value from the XY position" option. We're almost done. Now, such an expression should be displayed in the Expression Editor:
ValueAtXY( "Array", >Enter X offset<, >Enter Y offset<)
Where "Array" is the name of Your array and the texts with the triangle brackets are the places where You should put array's X and Y positions. So, after choosing our position, it should be like this:
ValueAtXY( "Array", 2, 5)
Notice that I deleted the triangles... You can check if Your expression is true at any time - by clicking the "Check current expression" button - it will either display an error (for example, if You'll mix values and strings without converting any of them), or show You "Valid expression". Since our expression is valid, click OK and it's ready.
Example of usage #3:
Now, create a string in the frame. The String object displays text that you can edit and format in a variety of ways - and we're mostly interested in the "Alterable string" option (it enables You to change the string at runtime to whatever You'd like). So, let's do this thing firstly - we want to have the string change to "Hello, I'm Marty" text as soon as the frame starts (or when the player presses the CTRL key or whatever). After putting the right condition, choose "Change alterable string" from the string's action list - the Expression Editor once again will appear. Notice those little symbols there: "". Since You're going to input a text, not a value, You have to input it between those little fella's. For example, You can't just type in Hello, I'm Marty, You have to make it this way:
"Hello, I'm Marty"
When You've done, click OK. The game will then display this text at the right event.
And what if You'd like to show on which level the player is, and incorporate it into the string? Notice two buttons in the Expression Editor: VAL and STR$ - they enable You to convert text into values and values into text. Let's do this: when the player enters the frame / presses SPACE / whatever else, make the string display: "Hi, tough guy. You're on [X] level", where "[X]" is the level of Your hero, stored in the array at x2y5.
So... Firstly input the text in the "" symbols. Then, click in the place that You'd like to have the level displayed, and press the STR$ button. Select the >Enter number here< text, and click "Retrieve data from an object" - choose the array and retrieve the data from position x2y5. It should give You something like this:
"Hi there, tough guy. You're on Str$( ValueAtXY( "Array", 2, 5) ) level"
Check the expression. What the...?! It's a syntax error! That's because You can have only undynamic expressions in those guys: "". Since our array is dynamical, it can change at any stage of the game, You have to incorporate it in another way... By adding the bracketted sections and the array section of the expression's code... How?
Try this for size:
"Hi there You're on " + Str$(ValueAtXY( "Array", 2, 5)) + " level"
Yep, it's working. <img src="/center/images/graemlins/smile.gif" alt="" /> That's because we've put the undynamical parts (the text) and the dynamical parts (the Str$ expression updated with numbers from the array) into different sections of the expression, merged with the "+" symbol.
Quite easy? <img src="/center/images/graemlins/smile.gif" alt="" /> Hope that I've shown anything that can be of any use to You...
Cheers!
-
Re: How To... Instructions... Manual... Guide... HELP!
As for the Expression Editor... I don't know what info do You specifically need, so I'll just let myself roam free and write some useful info about couple of things. Don't be mad at me if any of this won't even come close to the info You're interested in. I'm shooting blind here. <img src="/center/images/graemlins/smile.gif" alt="" />
So, let's have a walk through Expression Editor's territory:
"Do not underestimate the power of the Expression", as Lord Vader once said. <img src="/center/images/graemlins/wink.gif" alt="" /> Many MMF2's actions and conditions ask You to input a number or a calculation that will help them to understand what, where, at what time, for how long, from what side, etc. You want something to happen. The Expression Editor is used also for giving paths to exterior game files or folders (for example, You could input: "C:\Program Files\MyGame\mygame.exe"), for retrieving various data, loading and saving files, using arrays, and for many other things. You can find more overall info at Your help file (if I remember correctly, it should be in the Demo) - just open Help/Contents from the menu and have and input "expression editor" at the index of help topics.
Example of usage #1:
Let's say that You have created an array to store the game's data such as player's experience, player's inventory etc. over frames. Let's say that the array is at size of 10x10x1 (with "1 Base index" option made "on" - which starts the array from the number 1, as opposed to starting all cells from the number 0, choose the type of the array to be a numerical array), so You can input Your data into any cell ranging from x1y1 (since it's two dimensional - 10x10) to x10y10. Let's say that You want to have player's level at x2y5, and You want to set the level at 5 as soon as the frame starts.
So... After creating the condition ('Start of Frame'), go to the array object in the event editor, right click on the corresponding white tile and choose Write\Write Value to XY from the pop-up menu. The Expression Editor will open. Firstly, input the number that You'd like to store - it's number 5 for us. Just press 5 and click 'OK'. Then, You have to choose the horizontal position of the array (which one of the cells in X will be used to store that amount of data). We wanted to input it at x2y5, so press 2. Then another click and input 5 to store the array data at Y position 5. And that's done.
Example of usage #2:
Now, for something harder: let's say that You want to show the player on which level is he. You want a counter displaying always what's going on in the cell x2y5, the place that we kept player's level at. So... After creating the counter and placing it in the frame, create a new condition: Always. Then, go to the counter, right click on the white field corresponding to the condition "Always" and choose "set counter". The Expression Editor appears - click on the "Retrieve data from object" button at the right - a list of objects will appear. Choose the array, right click on it and choose the "Read value from the XY position" option. We're almost done. Now, such an expression should be displayed in the Expression Editor:
ValueAtXY( "Array", >Enter X offset<, >Enter Y offset<)
Where "Array" is the name of Your array and the texts with the triangle brackets are the places where You should put array's X and Y positions. So, after choosing our position, it should be like this:
ValueAtXY( "Array", 2, 5)
Notice that I deleted the triangles... You can check if Your expression is true at any time - by clicking the "Check current expression" button - it will either display an error (for example, if You'll mix values and strings without converting any of them), or show You "Valid expression". Since our expression is valid, click OK and it's ready.
Example of usage #3:
Now, create a string in the frame. The String object displays text that you can edit and format in a variety of ways - and we're mostly interested in the "Alterable string" option (it enables You to change the string at runtime to whatever You'd like). So, let's do this thing firstly - we want to have the string change to "Hello, I'm Marty" text as soon as the frame starts (or when the player presses the CTRL key or whatever). After putting the right condition, choose "Change alterable string" from the string's action list - the Expression Editor once again will appear. Notice those little symbols there: "". Since You're going to input a text, not a value, You have to input it between those little fella's. For example, You can't just type in Hello, I'm Marty, You have to make it this way:
"Hello, I'm Marty"
When You've done, click OK. The game will then display this text at the right event.
And what if You'd like to show on which level the player is, and incorporate it into the string? Notice two buttons in the Expression Editor: VAL and STR$ - they enable You to convert text into values and values into text. Let's do this: when the player enters the frame / presses SPACE / whatever else, make the string display: "Hi, tough guy. You're on [X] level", where "[X]" is the level of Your hero, stored in the array at x2y5.
So... Firstly input the text in the "" symbols. Then, click in the place that You'd like to have the level displayed, and press the STR$ button. Select the >Enter number here< text, and click "Retrieve data from an object" - choose the array and retrieve the data from position x2y5. It should give You something like this:
"Hi there, tough guy. You're on Str$( ValueAtXY( "Array", 2, 5) ) level"
Check the expression. What the...?! It's a syntax error! That's because You can have only undynamic expressions in those guys: "". Since our array is dynamical, it can change at any stage of the game, You have to incorporate it in another way... By adding the bracketted sections and the array section of the expression's code... How?
Try this for size:
"Hi there You're on " + Str$(ValueAtXY( "Array", 2, 5)) + " level"
Yep, it's working. <img src="/center/images/graemlins/smile.gif" alt="" /> That's because we've put the undynamical parts (the text) and the dynamical parts (the Str$ expression updated with numbers from the array) into different sections of the expression, merged with the "+" symbol.
Quite easy? <img src="/center/images/graemlins/smile.gif" alt="" /> Hope that I've shown anything that can be of any use to You...
Cheers!
-
Re: How To... Instructions... Manual... Guide... H
Doesn't the demo come with a PDF of the manual? I would have thought it would have.
-
Re: How To... Instructions... Manual... Guide... H
Doesn't the demo come with a PDF of the manual? I would have thought it would have.
-
Re: How To... Instructions... Manual... Guide... H
Good posts koobare. If I ever get amnesia or suddenly forget how to use the expression editor, I'm coming here to remind me <img src="/center/images/graemlins/smile.gif" alt="" />
Just to add another summary of what the expression editor's for though: The expression editor is for getting and setting data from objects and files.
-
Re: How To... Instructions... Manual... Guide... H
Good posts koobare. If I ever get amnesia or suddenly forget how to use the expression editor, I'm coming here to remind me <img src="/center/images/graemlins/smile.gif" alt="" />
Just to add another summary of what the expression editor's for though: The expression editor is for getting and setting data from objects and files.
-
Re: How To... Instructions... Manual... Guide... H
Thanks TT. <img src="/center/images/graemlins/smile.gif" alt="" /> Hope that You won't get an amnesia, though... <img src="/center/images/graemlins/wink.gif" alt="" />
And here's another little advice that I forgot to add to my previous post: remember that You can do various operations on numbers in the Expression Editor. Adding one array's cell to another, dividing them by two and then adding up to what the counter is storing won't be a problem. Heck! That's why the EE looks like a big ol' calculator, isn't it? <img src="/center/images/graemlins/wink.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
Thanks TT. <img src="/center/images/graemlins/smile.gif" alt="" /> Hope that You won't get an amnesia, though... <img src="/center/images/graemlins/wink.gif" alt="" />
And here's another little advice that I forgot to add to my previous post: remember that You can do various operations on numbers in the Expression Editor. Adding one array's cell to another, dividing them by two and then adding up to what the counter is storing won't be a problem. Heck! That's why the EE looks like a big ol' calculator, isn't it? <img src="/center/images/graemlins/wink.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
LMAO Koobare!!!
Thank you SOOO much guys for your replies, especially Koobare, OMG what an effort! Your detailed epics were extremely helpful, I learned a lot and it's all more in perspective now.
I really look forward to checking out the Manual when it arrives... Oh YES I DID cave and purchase this morning! Mainly because I feel now like if I do need any help there will always be some wonderful person(s) here to sort me out <img src="/center/images/graemlins/smile.gif" alt="" />
THANKS AGAIN GUYS!
-
Re: How To... Instructions... Manual... Guide... H
LMAO Koobare!!!
Thank you SOOO much guys for your replies, especially Koobare, OMG what an effort! Your detailed epics were extremely helpful, I learned a lot and it's all more in perspective now.
I really look forward to checking out the Manual when it arrives... Oh YES I DID cave and purchase this morning! Mainly because I feel now like if I do need any help there will always be some wonderful person(s) here to sort me out <img src="/center/images/graemlins/smile.gif" alt="" />
THANKS AGAIN GUYS!
-
Re: How To... Instructions... Manual... Guide... H
Congratulations on your purchase. I hope that you discover that your money was well spent.
I must warn you however, about the biggest mistake made by new users.
Once a new user gets comfortable with the interface and begins to understand the MMF engine and programming concept, they attempt to make, all by themselves, a massive app that would take a professional team of programmers, developers and artists a year or more to produce.
Start with very simple programs - stuff you don’t need to show anyone. Then make some small, but useful or entertaining apps to show your friends. And take it from there.
I’ve been a registered MMF user for over five years and there is still a ton of stuff I don’t know how to do. (Mostly with objects and extensions.) (New extensions from third party developers sometimes come out so fast that it is impossible to keep up.)
But if you are having trouble with anything just ask at the forums and other users will jump all over themselves trying to help. (It’s like a competition.) (Helping newbies builds status on this forum and flamers get flamed or even banned. )
If you work hard, and regularly read the forums, it won’t be too long before you give a newbie some solid advice.
Cool <img src="/center/images/graemlins/smile.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
Congratulations on your purchase. I hope that you discover that your money was well spent.
I must warn you however, about the biggest mistake made by new users.
Once a new user gets comfortable with the interface and begins to understand the MMF engine and programming concept, they attempt to make, all by themselves, a massive app that would take a professional team of programmers, developers and artists a year or more to produce.
Start with very simple programs - stuff you don’t need to show anyone. Then make some small, but useful or entertaining apps to show your friends. And take it from there.
I’ve been a registered MMF user for over five years and there is still a ton of stuff I don’t know how to do. (Mostly with objects and extensions.) (New extensions from third party developers sometimes come out so fast that it is impossible to keep up.)
But if you are having trouble with anything just ask at the forums and other users will jump all over themselves trying to help. (It’s like a competition.) (Helping newbies builds status on this forum and flamers get flamed or even banned. )
If you work hard, and regularly read the forums, it won’t be too long before you give a newbie some solid advice.
Cool <img src="/center/images/graemlins/smile.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
Thanks Stevie.
I've been making lots of mini examples for myself to use as a reference when I forget how to do something. Whenever I read something or just click away and try stuff, and it clicks in my noggin, I'll go create something to reinforce it.
The only real kind of cool thing I've made so far is a simple slot machine (the graphics are actually the closest thing to cool about it, LOL), and it was fairly easy to get it working to my amazement - because I tried it years ago with Flash MX and ended up giving up the project because it was too difficult. So YAY for MMF! I may post the project for others to check out as I'd love some feedback on how I could improve any coding to make it simpler, as it's kind of just whacked together to just WORK LOL.
But yes, baby steps for sure, I've MUCH to learn, and as you said, the learning is an ongoing process. If anything, my purchase is for my own learning and need for a challenge anyway, I'm a mum who needs to exercise her brain! Of course it all helps move me closer to working out how I could turn my big ideas into things other people will hopefully get some use out of, whether free or paid, but that's a LONG way off. For now, I just want to play and learn and make silly little things that make me go WOW I can't believe I just did that!
<img src="/center/images/graemlins/laugh.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
Thanks Stevie.
I've been making lots of mini examples for myself to use as a reference when I forget how to do something. Whenever I read something or just click away and try stuff, and it clicks in my noggin, I'll go create something to reinforce it.
The only real kind of cool thing I've made so far is a simple slot machine (the graphics are actually the closest thing to cool about it, LOL), and it was fairly easy to get it working to my amazement - because I tried it years ago with Flash MX and ended up giving up the project because it was too difficult. So YAY for MMF! I may post the project for others to check out as I'd love some feedback on how I could improve any coding to make it simpler, as it's kind of just whacked together to just WORK LOL.
But yes, baby steps for sure, I've MUCH to learn, and as you said, the learning is an ongoing process. If anything, my purchase is for my own learning and need for a challenge anyway, I'm a mum who needs to exercise her brain! Of course it all helps move me closer to working out how I could turn my big ideas into things other people will hopefully get some use out of, whether free or paid, but that's a LONG way off. For now, I just want to play and learn and make silly little things that make me go WOW I can't believe I just did that!
<img src="/center/images/graemlins/laugh.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
No problem, Annie. <img src="/center/images/graemlins/smile.gif" alt="" /> Glad to be of any use. If You're ever in need of help again, just flash the bat-signal (or, as an alternative, You could just post somewhere in the forums)! <img src="/center/images/graemlins/wink.gif" alt="" />
Oh, and I forgot to write about two quite useful things when it comes to the Expression Editor... So, here comes some more info for Ya':
Example of usage #4:
It's sometimes necessary to operate on exterior files, for example for loading or saving game data (let's say that You may want to save that array of Yours, just to save the player's progress). MMF2 will ask You to specify the path You want to load the file from (or save the file to), as soon as a save\load action will be initiated - and, of course, it will use the Expression Editor to do that.
So, let's set up a condition (I've selected "Start of the Frame") and choose 'Save\Save Array to file' from the Array's actions (If You'll choose 'Save Array to file via a file selector', the player will be asked to specify the path to save the game himself, via an explorer window). MMF2 will open an explorer window in which You can browse to the desired location (at the bottom of this window You can find the "Expression" button - which will open the Expression Editor instead of the explorer). Let's choose something short, for example "C:\Mygame\saves\". Let's name the file "savegame1". So, we'll have this in the Expression Editor:
"C:\Mygame\saves\savegame1"
Test the application. As soon as it starts, it saves Your array to the specified location, to the file "savegame1". Notice that this file doesn't have an extension at all, and You can give it one by adding it in the expression at the Expression Editor... It's not really necessary, but I find it useful to keep better control of all my game files. Let's say that we wanted to have a ".sav" extension for our file... Simple add it to the previous expression, and You'll get:
"C:\Mygame\saves\savegame1.sav"
Now the saved file will have the ".sav" extension. Don't forget to add this extension to the expression when You load the file! Also, notice those quotation marks - they mean, as said before, that the whole expression is undynamical (doesn't have any "morphing parts").
It seems real easy, right? Here's the catch: the array will be saved at this path indifferently to where the player has installed Your game! In other words: the game will always attempt to save the "savegame1.sav" file at the "C:\Mygame\saves\" directory, even if the player installed his copy of Your masterpiece at 'C:\Program Files\ILoveIt\BestProgramEver'. Kinda' sucks, right? But have no fear! The solution is near!
And what's the solution? It's simply two dynamical expressions, one that returns the drive that the player installed Your game at, and the second one returns the application's path on that drive. Here they are: 'Appdrive$ + Appdir$'. So, after modyfing our precious expression, here's what we've got:
Appdrive$ + Appdir$ + "saves\savegame1.sav"
Note one thing: this code returns the game's installation directory, and thus... The game should be firstly installed (built) to use it. <img src="/center/images/graemlins/smile.gif" alt="" /> In other words: it doesn't have to work when You're just working on Your application files in the editor, it will most probably work after You've build the application. I'm not 100% sure about this, but it seems quite logical to me. I'm usually building every bit of code I do every 10 minutes, as games often work faster when built into stand-alone apps than in MMF2 editor, so I guess it's not a problem for me. But if You'd like to create the whole application in the editor firstly, without building it for test purposes every now and then, then just use an undynamical path (like the first & second ones in this example), and then - when the game's done and ready to be built - just swap those paths to the dynamical one. Use comments in the event editor to keep a track on where such a nasty code to swap is placed, or - even better - make the saving event in global events, which will enable You to alter all frames with just a few clicks.
What more can I add? It's pretty simple to prepare savegame slots for Your game (for example, enabling the player to save at 10 different slots, or create 5 different characters, etc.). Let's say that we want to create a game with 3 savegame slots. Let's do it! Create a folder for savegames in Your game directory (let's call it - surprise! - "savegames"), just to keep our main game folder clean, and then, in that folder, create another three folders, called "savegame1", "savegame2", "savegame3". Go to the frame editor, create three buttons - "save game in slot 1", "save game in slot 2" and "save game in slot 3". You can now go for two methods of slot-saving:
a) Create such events that if the player clicks on the first button, the game saves the array in 'Appdrive$ + Appdir$ + "savegames\savegame1\array.sav"', and when the player clicks on the second button, the game creates a save in 'Appdrive$ + Appdir$ + "savegames\savegame2\array.sav"', etc. That's the easiest method, but not always the better one (especially if You let the player to choose the slot for his character profile at the start of the game).
b) Create a counter (I named it "SlotCounter") - alternatively, You could use a GlobalValue or AlterableValue of an active object in the game, but let's just skip it and go for the counter method - set it's minimal value on 0, and maximal on 3. Now, everytime the player clicks on one of those three buttons, set the counter to corresponding number (if he selected button one - set the counter on 1, if button two - set the counter on 2, if button three - set the counter on 3, if the player didn't select any buttons - leave the counter on 0). Then, set up another event that if the player clicks on any of these buttons, game saves using this expression:
Appdrive$ + Appdir$ + "savegames\savegame" + Str$( value( "SlotCounter" ) ) + "\array.sav"
Take a look at this expression - what does it do? It creates the path of the installed game ('Appdrive$ + Appdir$'), then creates the path in the game folder, combining three elements. Thanks to the 'Str$' function, the counter's value is converted into a string number and thus enables Your program to decide - based on the counters value - into which folder should the save go.
One last thought about the second method: remember that the sequence if pretty important! MMF2 cycles through events from top to bottom, so if an event is lower on the list, it will be executed a nanosecond later. Why is this so significant? Because if You'll put our array's saving action BEFORE (higher, closer to the top) setting up the counter to the right slot, it won't save the game at the currently selected slot, but at the one that was selected earlier. In other, shorter, words: sequence is important, so take a look at it from time to time!
Hmmm... Guess that wraps it up.
Example of usage #5
Last thing for today (unless any questions arise <img src="/center/images/graemlins/wink.gif" alt="" />) - how to generate random numbers in the Expression Editor. Well, there's this slick and sexy little expression Random(X), where X is the end-of-the-range number (the biggest number that can be generated). Let's try this: create a Counter object, put it in a visible part of the screen. Set the condition to "Every 2 seconds", and then choose "Set Counter" from the Counter's actions list. In the Expression Editor input this:
Random(15)
Now run the application, sit back, sip coffee (or tea, or whatever You prefer), relax and watch how the counter generates random numbers from 0 to 15 every 2 seconds. Cool, isn't it? <img src="/center/images/graemlins/wink.gif" alt="" />
If You'll input Random(99) it will generate one of one hundred numbers (from 0 to 99) - zero is always counted in as a number. But what to do if You'd like to have a random number from this range:
Random(50) + 50
Now it generates a number from 50 to 100... There are lots of possibilites, You can generate a couple of Random numbers in one expression (for example 'Random(5) + Random(5)') or just play with maths (example: '(Random(5)+ Sin(4) + 35/Random(5) - 12/Random(2)')
And that's it, folks. <img src="/center/images/graemlins/wink.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
No problem, Annie. <img src="/center/images/graemlins/smile.gif" alt="" /> Glad to be of any use. If You're ever in need of help again, just flash the bat-signal (or, as an alternative, You could just post somewhere in the forums)! <img src="/center/images/graemlins/wink.gif" alt="" />
Oh, and I forgot to write about two quite useful things when it comes to the Expression Editor... So, here comes some more info for Ya':
Example of usage #4:
It's sometimes necessary to operate on exterior files, for example for loading or saving game data (let's say that You may want to save that array of Yours, just to save the player's progress). MMF2 will ask You to specify the path You want to load the file from (or save the file to), as soon as a save\load action will be initiated - and, of course, it will use the Expression Editor to do that.
So, let's set up a condition (I've selected "Start of the Frame") and choose 'Save\Save Array to file' from the Array's actions (If You'll choose 'Save Array to file via a file selector', the player will be asked to specify the path to save the game himself, via an explorer window). MMF2 will open an explorer window in which You can browse to the desired location (at the bottom of this window You can find the "Expression" button - which will open the Expression Editor instead of the explorer). Let's choose something short, for example "C:\Mygame\saves\". Let's name the file "savegame1". So, we'll have this in the Expression Editor:
"C:\Mygame\saves\savegame1"
Test the application. As soon as it starts, it saves Your array to the specified location, to the file "savegame1". Notice that this file doesn't have an extension at all, and You can give it one by adding it in the expression at the Expression Editor... It's not really necessary, but I find it useful to keep better control of all my game files. Let's say that we wanted to have a ".sav" extension for our file... Simple add it to the previous expression, and You'll get:
"C:\Mygame\saves\savegame1.sav"
Now the saved file will have the ".sav" extension. Don't forget to add this extension to the expression when You load the file! Also, notice those quotation marks - they mean, as said before, that the whole expression is undynamical (doesn't have any "morphing parts").
It seems real easy, right? Here's the catch: the array will be saved at this path indifferently to where the player has installed Your game! In other words: the game will always attempt to save the "savegame1.sav" file at the "C:\Mygame\saves\" directory, even if the player installed his copy of Your masterpiece at 'C:\Program Files\ILoveIt\BestProgramEver'. Kinda' sucks, right? But have no fear! The solution is near!
And what's the solution? It's simply two dynamical expressions, one that returns the drive that the player installed Your game at, and the second one returns the application's path on that drive. Here they are: 'Appdrive$ + Appdir$'. So, after modyfing our precious expression, here's what we've got:
Appdrive$ + Appdir$ + "saves\savegame1.sav"
Note one thing: this code returns the game's installation directory, and thus... The game should be firstly installed (built) to use it. <img src="/center/images/graemlins/smile.gif" alt="" /> In other words: it doesn't have to work when You're just working on Your application files in the editor, it will most probably work after You've build the application. I'm not 100% sure about this, but it seems quite logical to me. I'm usually building every bit of code I do every 10 minutes, as games often work faster when built into stand-alone apps than in MMF2 editor, so I guess it's not a problem for me. But if You'd like to create the whole application in the editor firstly, without building it for test purposes every now and then, then just use an undynamical path (like the first & second ones in this example), and then - when the game's done and ready to be built - just swap those paths to the dynamical one. Use comments in the event editor to keep a track on where such a nasty code to swap is placed, or - even better - make the saving event in global events, which will enable You to alter all frames with just a few clicks.
What more can I add? It's pretty simple to prepare savegame slots for Your game (for example, enabling the player to save at 10 different slots, or create 5 different characters, etc.). Let's say that we want to create a game with 3 savegame slots. Let's do it! Create a folder for savegames in Your game directory (let's call it - surprise! - "savegames"), just to keep our main game folder clean, and then, in that folder, create another three folders, called "savegame1", "savegame2", "savegame3". Go to the frame editor, create three buttons - "save game in slot 1", "save game in slot 2" and "save game in slot 3". You can now go for two methods of slot-saving:
a) Create such events that if the player clicks on the first button, the game saves the array in 'Appdrive$ + Appdir$ + "savegames\savegame1\array.sav"', and when the player clicks on the second button, the game creates a save in 'Appdrive$ + Appdir$ + "savegames\savegame2\array.sav"', etc. That's the easiest method, but not always the better one (especially if You let the player to choose the slot for his character profile at the start of the game).
b) Create a counter (I named it "SlotCounter") - alternatively, You could use a GlobalValue or AlterableValue of an active object in the game, but let's just skip it and go for the counter method - set it's minimal value on 0, and maximal on 3. Now, everytime the player clicks on one of those three buttons, set the counter to corresponding number (if he selected button one - set the counter on 1, if button two - set the counter on 2, if button three - set the counter on 3, if the player didn't select any buttons - leave the counter on 0). Then, set up another event that if the player clicks on any of these buttons, game saves using this expression:
Appdrive$ + Appdir$ + "savegames\savegame" + Str$( value( "SlotCounter" ) ) + "\array.sav"
Take a look at this expression - what does it do? It creates the path of the installed game ('Appdrive$ + Appdir$'), then creates the path in the game folder, combining three elements. Thanks to the 'Str$' function, the counter's value is converted into a string number and thus enables Your program to decide - based on the counters value - into which folder should the save go.
One last thought about the second method: remember that the sequence if pretty important! MMF2 cycles through events from top to bottom, so if an event is lower on the list, it will be executed a nanosecond later. Why is this so significant? Because if You'll put our array's saving action BEFORE (higher, closer to the top) setting up the counter to the right slot, it won't save the game at the currently selected slot, but at the one that was selected earlier. In other, shorter, words: sequence is important, so take a look at it from time to time!
Hmmm... Guess that wraps it up.
Example of usage #5
Last thing for today (unless any questions arise <img src="/center/images/graemlins/wink.gif" alt="" />) - how to generate random numbers in the Expression Editor. Well, there's this slick and sexy little expression Random(X), where X is the end-of-the-range number (the biggest number that can be generated). Let's try this: create a Counter object, put it in a visible part of the screen. Set the condition to "Every 2 seconds", and then choose "Set Counter" from the Counter's actions list. In the Expression Editor input this:
Random(15)
Now run the application, sit back, sip coffee (or tea, or whatever You prefer), relax and watch how the counter generates random numbers from 0 to 15 every 2 seconds. Cool, isn't it? <img src="/center/images/graemlins/wink.gif" alt="" />
If You'll input Random(99) it will generate one of one hundred numbers (from 0 to 99) - zero is always counted in as a number. But what to do if You'd like to have a random number from this range:
Random(50) + 50
Now it generates a number from 50 to 100... There are lots of possibilites, You can generate a couple of Random numbers in one expression (for example 'Random(5) + Random(5)') or just play with maths (example: '(Random(5)+ Sin(4) + 35/Random(5) - 12/Random(2)')
And that's it, folks. <img src="/center/images/graemlins/wink.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
Three cheers for koobare!
Is there some sort of forum award we could give you? <img src="/center/images/graemlins/smile.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
Three cheers for koobare!
Is there some sort of forum award we could give you? <img src="/center/images/graemlins/smile.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
Nah, TT. <img src="/center/images/graemlins/wink.gif" alt="" /> I'm just a small clickling passing on the knowledge I got from other clicklings some time ago... <img src="/center/images/graemlins/smile.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
Nah, TT. <img src="/center/images/graemlins/wink.gif" alt="" /> I'm just a small clickling passing on the knowledge I got from other clicklings some time ago... <img src="/center/images/graemlins/smile.gif" alt="" />
-
Re: How To... Instructions... Manual... Guide... H
Although koobare's post is very helpful, be sure to remember not to go to deep to fast. A very common mistake from clickers just starting out is that they set themselves a task which in reality they have no hope of achieving, simply because it is beyond there knowledge at that time.
I don't know how "well" you understand the principles of coding, but expressions should not be the first thing on your list when creating apps. Stick to simple, and learn how things are done step by step.
End of the day expressions make your program very flexible, and if you wanted to try and use them and you think you know enough to then obviously feel free, but there is not always a need for them to be complex.
An example of what I mean is calling the applications path and directory (as mentioned above in the example) using Appdir$ Apppath$ etc, it is possible to just stick the directory of your application in manually "c:\mmf\games" or whatever it is. This is more basic and a simple thing to remember, fair enough there are reasons not to and drawbacks to this, but IF you experiment with expressions my advice to you is to stick simple, just for now, forget about all the functions and what they do and stick to basic path names etc.
Like I say I don't know the extent of your knowledge, but I remember when I first started clicking using the games factory, expressions were something I wouldn't of even considered touching. At least not in that context, stick to very basic stuff.
Another bit of advice I would give is to try creating some of the classic games, ie: Bat & Ball game, Asteroids, space invaders. Each one will present you with new problems that you would look at and think "how?" Eventually it clicks, and because they are fairly simple projects each will gain you different skills because each game works differently, and also uses different movements in game. I found when I first ran through TGF tutorials years ago this helped me a lot.
Just my advice <img src="/center/images/graemlins/smile.gif" alt="" /> Also posting on the forums asking about anything you have trouble with is a must, there are always people about to help.
BUT Remember - Create small projects, don't set yourself targets you can't achieve!!
-
Re: How To... Instructions... Manual... Guide... H
Although koobare's post is very helpful, be sure to remember not to go to deep to fast. A very common mistake from clickers just starting out is that they set themselves a task which in reality they have no hope of achieving, simply because it is beyond there knowledge at that time.
I don't know how "well" you understand the principles of coding, but expressions should not be the first thing on your list when creating apps. Stick to simple, and learn how things are done step by step.
End of the day expressions make your program very flexible, and if you wanted to try and use them and you think you know enough to then obviously feel free, but there is not always a need for them to be complex.
An example of what I mean is calling the applications path and directory (as mentioned above in the example) using Appdir$ Apppath$ etc, it is possible to just stick the directory of your application in manually "c:\mmf\games" or whatever it is. This is more basic and a simple thing to remember, fair enough there are reasons not to and drawbacks to this, but IF you experiment with expressions my advice to you is to stick simple, just for now, forget about all the functions and what they do and stick to basic path names etc.
Like I say I don't know the extent of your knowledge, but I remember when I first started clicking using the games factory, expressions were something I wouldn't of even considered touching. At least not in that context, stick to very basic stuff.
Another bit of advice I would give is to try creating some of the classic games, ie: Bat & Ball game, Asteroids, space invaders. Each one will present you with new problems that you would look at and think "how?" Eventually it clicks, and because they are fairly simple projects each will gain you different skills because each game works differently, and also uses different movements in game. I found when I first ran through TGF tutorials years ago this helped me a lot.
Just my advice <img src="/center/images/graemlins/smile.gif" alt="" /> Also posting on the forums asking about anything you have trouble with is a must, there are always people about to help.
BUT Remember - Create small projects, don't set yourself targets you can't achieve!!
-
Re: How To... Instructions... Manual... Guide... H
As good advice as this is, I find that you only really learn how to use a piece of software when you are trying to achieve something. I agree that it is probably best to start doing small projects and gradually work your way up, but I also think that for many people that would be quite boring.
While I don't recommend beginners should design a huge RPG to build, I do think that they should build something they are interested in, rather than just another bat and ball game.
Also it's important to note that a lot of success comes from good design. Be sure to know more or less exactly what you want the result to be before starting programming. Also make a few tests and experiments before you start for some of the more complex aspects of the game engine.
I do agree one should start small, but I also think anything you make should be interesting and fun to do.
The very best of luck to all new clickers!
-
Re: How To... Instructions... Manual... Guide... H
As good advice as this is, I find that you only really learn how to use a piece of software when you are trying to achieve something. I agree that it is probably best to start doing small projects and gradually work your way up, but I also think that for many people that would be quite boring.
While I don't recommend beginners should design a huge RPG to build, I do think that they should build something they are interested in, rather than just another bat and ball game.
Also it's important to note that a lot of success comes from good design. Be sure to know more or less exactly what you want the result to be before starting programming. Also make a few tests and experiments before you start for some of the more complex aspects of the game engine.
I do agree one should start small, but I also think anything you make should be interesting and fun to do.
The very best of luck to all new clickers!
-
Re: How To... Instructions... Manual... Guide... H
This was the sort of thing that takes new users lots of time to figure out. Giving some step by step instructions was a great idea. I love MMF but the manual are not always very helpful. You tell you what the commands are but not how to make them work. It would be great to have a place to store "subroutines" on the web site along with a step by step description. For example, for the Trial object you could have a sample application with just the objects required and a single button. Either the mfx file could be commented or a seperate txt file could be used to explain how the sample was made. I know that you can search the forums and that there are example files (which are really nice, by the way) but that doesn't always work very well. But to have a set of larger set of premade explained files might work better. Just a thought.
Steve
-
Re: How To... Instructions... Manual... Guide... H
This was the sort of thing that takes new users lots of time to figure out. Giving some step by step instructions was a great idea. I love MMF but the manual are not always very helpful. You tell you what the commands are but not how to make them work. It would be great to have a place to store "subroutines" on the web site along with a step by step description. For example, for the Trial object you could have a sample application with just the objects required and a single button. Either the mfx file could be commented or a seperate txt file could be used to explain how the sample was made. I know that you can search the forums and that there are example files (which are really nice, by the way) but that doesn't always work very well. But to have a set of larger set of premade explained files might work better. Just a thought.
Steve