Basic Kliking Concepts.
This article is intended to give you a better understanding of the inner workings of KNP, TGF, and MMF.
===========
Part One - Understanding Program Flow
To put it simply, program flow is the path your game takes until it reaches the end.


Example: A Properly "flowed" process
------------------------------------------------------------
Player presses fire 1 - Set ValueA.Player1 = 1
ValueA.Player1 = 1 - Shoot Bullet at dir32 at speed 100 and Set ValueA.Player1 = 2
ValueA.Player1 = 2 - Shoot Bullet at dir31 at speed 100 and Set ValueA.Player1 = 3
ValueA.Player1 = 3 - Shoot Bullet at dir01 at speed 100 and Set ValueA.Player1 = 0
-----------------------------------------------------------
What's Happening Here:
When Player 1 presses fire, you see him shoot three bullets in slightly different directions.

Example: An Improperly "flowed" process
------------------------------------------------------------
Player presses fire 1 - Set ValueA.Player1 = 1
ValueA.Player1 = 2 - Shoot Bullet at dir32 at speed 100 and Set ValueA.Player1 = 3
ValueA.Player1 = 1 - Shoot Bullet at dir31 at speed 100 and Set ValueA.Player1 = 2
ValueA.Player1 = 3 - Shoot Bullet at dir01 at speed 100 and Set ValueA.Player1 = 0
-----------------------------------------------------------
What's Happening Here:
When Player 1 presses fire, you see him shoot one bullet up.

Why is this happening?
In the second example, after player1 presses fire, Value A is set to one. This trigger the character to shoot a bullet up and set Value A to 2. When this value Reaches 2, it should trigger the Value A = 2 event, but it doesn't.
This "bug" is happening because all programs flow logically from top to bottom. To the program, ValueA will equal 2, but only after it mattered. The program continues towards the bottom line and will then repeat from the top line. So in essence, when the program loops through the events again, it will fire those next to bullets (2+3) but not in the same process (Complete cycle of events). It may not look like anything is wrong, but should player 1 hit the fire button repeatedly in different processes, the gun will only shoot 1 bullet at random points, instead of the three it should.

Summary:
When doing final preparations for release and bug tracking, program flow is a good place to start checking for any abnormalities in the program. Remember, Programs flow from top to bottom, then restart at the top. Programs ca never flow backwards, (unless you tell them to.)
---------------
Shabadage