In my last post, I discussed my intent to use the GameSalad engine as my initial development platform. After reading several reviews, I decided to try it for myself and see what I could do.
I downloaded the application and placed a background I created in the frame, and the a sprite on top of it. I assigned behavior to the sprite, allowing it to be moved using the Arrow keys.
I decided I’d learn faster using guided tutorials to become familiar the concepts and methods available. As I mentioned in my previous post, I came across a series of Tutorials on YouTube that described how to make 4 distinctly different games, supplying all of the images, sound effects and music to allow a novice to follow along. I’ve gotten through 2/9 of the series.
Note: I did run into an issue in Lesson 2, the sound effect that was supposed to play when pressing the menu button to change to the “Whack a Monster” game didn’t play. Looking at the comments, several other people ran into the same problem. I tried to troubleshoot this several ways:
When I removed Change Scene Behavior, the sound played. I tried changing the order of the “do” actions and that didn’t make any difference. I tried creating a different rule with the same settings, but that didn’t work either. I tried researching the problem on GameSalad’s forums, but couldn’t find any further information.
At the time, I didn’t think to create a separate project and test this one feature with a different set of assets, but may give that a try later. It wasn’t important to the core functionality of the game, so I let it lie and went on to building the “Whack a Monster” scene.
So far, I’ve been introduced to a number of new concepts employed by the GameSalad engine:
Scenes: This is where the action takes place, can be used to represent different “screens” (i.e. menus, level stages, etc.).
Actors: This can include backgrounds, sprites, or any objects that the player might interact with. They can have rules assigned to them to dictate their behavior.
Behavior: These control what a actor does, and can be used to animate the image, play a sound, change something in the environment and so forth.
Media: Image, music and sound effect files in various formats which you’ll include in your game. Can be assigned to Actors and placed in Scenes.
Of all of these, Behaviors are the most complex element and will require a lot of review to understand how to use and troubleshoot them.
How are large environments handled? i.e. suppose I have a level that spans multiple screens, do I just create a giant background image? Or is a separate scene for each screen? If the later, can scenes be grouped or nested to help organize them (e.g. lumping all scenes from one “level” together)?
Update: October 2, 2014
I did attempt to troubleshoot the bug mentioned in the note above. To rule out the possibility that this had anything to do with the game assets used in the tutorial, or the setup of the project itself, I started a brand new project with a new image and sound file.
Just like in the tutorial project, I found I could change the scene, or play the sound when the actor was touched. If both were listed, the scene would change, but the sound wouldn’t play, regardless of which came first. The only way I could get the sound to play was by removing or disabling the change scene behavior.
According to the manual (see Windows Creator 0.10.0 manual, page 21), behaviors are supposed to be executed sequentially (top down). Keep in mind that I did check the “run to completion” flag.
After doing some research, I found another post on the official GameSalad forums which described the same issue I had. I posted a detailed response which I won’t repeat here, but long and the short of it is that this seems to be intended behavior: all sounds stop when the scene changes.
I can think of a few different ways to handle this:
- Use an older version of GameSalad (10.4 or earlier, which is what worked for Matt P., author of the tutorial videos)
- Find some way to handle the actions sequentially rather than simultaneously (play the sound until it finishes, then change the scene)
- The last option would be not to change the scene at all, instead, move the camera to a different region in the same scene.
The first option doesn’t seem like a good one as it runs the risk of introducing stability issues which have been addressed in the latest version.
The second option might work, maybe figure out a way to either add some sort of delay to the Change Scene behavior to prevent it from executing immediately, or perhaps add a delay between the sound playing and the scene change? I’ll have to test this when I got home.
As to the final option, this seems like a hack (and probably a bad one) as each scene has its own attributes (size, background color etc.) so that would force me to use the same ones for both the menu and the level.