Because GameSalad is a drag-and-drop tool that does not require writing actual code, a question we often get is “how can this actually help students learn how to program?”  The answer is that understanding how to program is much more than typing syntax (which is often where introductory programming courses begin, is the least interesting part of programming, and tends to discourage students early).


Because GameSalad emphasizes experimentation and rapid iteration, students see results quickly and can play with different concepts and experiments without fear of “breaking something” or getting tripped up with stray semicolons or brackets.  And along the way, they’re utilizing and learning fundamental concepts of software development and programming.


Here are some of the key programming concepts that students learn by building games in GameSalad:

 

PROGRAMMING CONCEPTHOW THE CONCEPT IS USED IN GAMESALAD
Object oriented developmentGameSalad Actors have the concept of inheritance, prototypes, and instances.  
Event Driven ProgrammingUsing Rules and Behaviors, GameSalad teaches the fundamentals of  Event Driven Programming, which is the dominant programming paradigm used in games,graphical user interface (GUI) applications, and many other applications, such as Javascript web applications.  Many other programming tools focus only on functional programming.
VariablesGameSalad Actors and Scenes have Attributes, which are essentially variables.  Attributes in GameSalad have different types, including boolean, integer, real, image, and text. Access to attributes is controlled by scoping rules and encapsulation.
FunctionsGameSalad’s Behaviors are effectively functions that can be called again and again, passing different arguments into the call as needed.
Trigonometric math, angles, rotationActors can interact with each other based on distances, angles, velocities, and forces. The Expression Editor features mathematical functions such as sin, tan, cos, abs to allow complex computations.
Comparison OperatorsGameSalad’s Rules allow the use of comparison operators like equals, less than, greater than, less than or equal, greater than or equal and, not equal to evaluate expressions.
Conditional execution (if/then/else)Using Rule Groups, GameSalad teaches users how code can be executed selectively based on conditions.
Data structures & data-driven designGameSalad Tables are effectively multidimensional arrays, which teaches users how to store data more efficiently and the importance of developing a program independently of data (i.e., not hardcoding)
LoopingTeaches the concept of looping over a set of instructions until a given condition is reached.
Physics & SimulationGameSalad includes a fully integrated 2D physics engine and all Actors have physical Attributes that can be modified as needed.  
String ManipulationGameSalad has expression functions that help teach how to concatenate and manipulate strings, a key element of programming in any language.