This will be long, but I hope my plea is considered. I've tried my best but I haven't been able to get past the intermediate level with the program, and I'm thinking there are a number of others like me. Anything you can do to help me and others break this barrier would be worth its weight in gold!
My little simple games
I've built a few small games in Construct, and used many methods that would probably be frowned upon because they are not technically sound and are just a ton of workarounds. I know there are better ways and ways that are more efficient using better methods, but I simply don't know how to do it and that's again after having used the program for quite some time.
While my little games would do well as fun little diversions for a bored PC user, I'm simply without the knowledge and understanding to take them to the next level. The next level is where I want to be.
The problem that I and likely many other beginner to intermediate users have
I'm not a language programmer nor have I ever programmed in a language (nor am I interested in ever doing so) and therefore I do not understand expressions in Construct, I don't know what they mean, and I don't know how to write them properly, I do not know when to use them. I need help there, but I have no idea where to turn to.
Why the example tutorials confuse most people
When I open an example .cap and see a ton of mathematic equations, and things in parentheses, dot this dot that, quotation this, quotation that... it all reads like Japanese to me. Without knowing the concept behind the code, why you wrote it the way you did, and what each part means, I have no idea what to do with it. I can copy it, but I'm still not really learning the 'why' behind it, so I won't know how and when to incorporate it in the future.
My belief is, what separates the intermediate user from the expert level user for this program falls under 2 main segments of knowledge:
1. -Understanding expressions: knowing all of them, knowing what they mean, knowing how to write them, knowing when to use them.
-Array object; knowing how to write them, knowing when to use them
-Ini File object; knowing how to write them, knowing when to use them
-Hash Tables object; knowing how to write them, knowing when to use them
-Save and Load function; knowing how to write them, knowing when to use them
-Keep states for button, keyboard, and mouse controls; knowing how to write them, knowing when to use them
-Function object; knowing how to write them, knowing when to use them
-AI; knowing how to write it.
-Physics; knowing how to write it, write the expressions, and understanding what it all means
-Bones; how to use them
-Steps on creating a collision mask
-Making pause menu's, inventory menu's, and menu's in general
2. Incorporating all of the above into a full-fledged game where you can:
-Save your progress which includes all of the stats, scores, time clock, progress, and characters used
-Load a saved game which includes all of the stats, scores, time clock, progress, and characters used
-Allow the user to edit names and statistical information for each character, save it, and then be able to load it
-Allow the user to load in his own image files and edit them as skins and logo's for character uniforms, cars, ships, etc. and then save it and load when needed later.
-Allow the user to enter menus where he can substitute characters/players for other characters/players. Like if it were a soccer game, the user could go into a pause screen menu and substitute Goalie A for Goalie B.
-Allow the user to call up images, text and statistical values from files, like, for example; If this were a soccer game, and the user were on a team selection screen, there would be a side for a home team and a side for an away team. Say he wanted to select the Green team vs the Red team, he would select both teams and the program would immediately pull in the information from file for both teams which would include:
-The Green and the Red teams uniforms, each player character, each player name, all of their attributes and statistics...
... When the user presses 'start' to begin the game, this would all be available in the game. The same thing could be applied to RPG's or combat games where you would select a party.
^^^These things would be useful for fighting games, RPG's, sports games, etc.
I can tell you that none of the small games I've made have used a single thing from #'s 1 or 2, and I realize that I can never reach the next level with this program without learning to use them.
What I've read
I've read some attempts at tutorials on these in the past, but to be quite honest they don't teach in steps and that's a big problem. And while a .cap along with it is fine, if I can't know the steps in which you took to write the lines in the .cap the example or tutorial doesn't help me at all because I'm not coming away with an understanding of the what, how, and why.
My humble plea
If anyone writes a tutorial on those advanced subjects I've talked about, please keep the things I've said here in mind. Try going more in-depth as to the what, why, and how. Make teaching the expressions a top priority (an expressions database might be a good idea?), how to write them properly, and when to use them. Post screenshots of code whenever possible. Try to stay away from acronyms and a lot of jargon because beginners and intermediates are unlikely to know what you mean.
Thanks for listening!
Develop games in your browser. Powerful, performant & highly capable.
you need to focus on testing what each object does for yourself, its not that difficult. look at the actions conditions parameters etc of each one, and try to do little tests based on little hypothesis you have as to what each might do.
As for expressions, theres not all that much too them besides math and a very basic syntax.
whenever you see an object name followed by a dot, it means its returning whatever parameter after the dot as a number, or *rarely* a string for that specific object.
so sprite.x, is returning the x position as a number for the object "sprite", so if the object is at x=24, sprite.x=24. etc, this goes for all "after dot" parameters, like .angle, .y, .width, etc. theres too many to list. if the condition that expression is running for picks an instance of sprite with its logic, then sprite.x will refer to the sprites which have been picked.
if you see ONLY a .x .y .angle etc. that means that it is choosing the object type specified in that specific action.
so lets say we have the action... set sprite's x position to: sprite.x+other.y+5
you could :
also write it as the action......... set sprite's x position to: .x+other.y+5
you don't need to write "sprite".x, because sprite is already the object being referred to in the action.
both do the exact same thing, except one is cleaner and quicker to write.
brackets, multiplication, division, etc. all follow the basic BEDMAS you'd expect to use in any math. think of expressions as any other mathematical equation, where the result of the expression is your answer.
http://sourceforge.net/apps/mediawiki/c ... xpressions
basic expression stuff and what each is...
private variable are the next BIG thing you need to know, basically, anything encompassed in single quotes like 'your variable' is a private variable of an object.
now remember how you can have sprite.x and .x mean the same thing based on what the action is blablabla.
the same goes for PV's, except its a tad different. you can have...
Sprite.Value('Variable name'): which nobody really uses, since its long compared to:
Sprite('Variable name') : this does the same thing in EVERY situation at the above.
'Variable name' : without brackets or sprite, works the same as the ".x, .y, .angle"
these are the MAIN and i'm pretty sure ONLY things you really need to know, because i get along fine with just this knowledge, and I write some of the most complicated expressions around.
of course theres also the oh so important
system expressions work as described in this well written wiki page. look over it, because it gives you those "simpler" ways of doing things.
of course just knowing HOW expressions look and work doesn't mean you can write them, but at least now you can apply your mathematical knowledge to expressions.
math is the only way. i can't make that any less true, and i wont explain math either, theres enough of that EVERYWHERE to help you. Google is your friend.