One thing that we all worry about when producing games with Gamesalad is performance. Even with the new LUA-Free engine coming soon, we would all still like our games to be fast now.
AcceleratedGames has made a great list of 31 useful optimization tips to use in your indie games. Collected over time by searching through the Gamesalad forums, coming up with some themselves, and exploring GameSalad help websites.
31 Gamesalad Optimization Tips
1. Uncheck “Preload Art” on as many actors as you can.
2. Uncheck “Movable” for every actor that doesn’t have the “Accelerate”, “Change Velocity”, “Collide”, “Move”, “Move to”, or any of the rotate behaviors.
3. Use the “Interpolate” behavior instead of the “Move”, “Move to”, and “Change Size” behaviors whenever possible.
4. Use the “Rotate” behavior instead of animations.
5. Turn every attribute under the physics tab in the actor editor to 0 on actors who do not need it.
6. If the actor is not going to be seen, change their “Visible” attribute to false.
7. Instead of using the “Change Image” behavior, use “Change Attribute” and change the self.Image to the desired image’s name.
8. Images should be the same size as the actor using them and double the size if you are using Resolution Independence.
9. Change any image that is about 10 pixels more than 8, 16, 32, 64, 128, 256, 512, or 1028 to which ever of these numbers are closest.
10. If an image file is large or is a background, have the actor that uses the image use the suggestion in number 7 instead of having the actor start initially with the image.
11. All images should be 72dpi.
12. Save all images as PNG-24 or PNG-8
13. Save all images as PNG-8 unless they have any transparent or translucent object in them.
14. Don’t use the color changer within GameSalad unless necessary.
15. All images should be divisible by 4.
16. Make sure your image creator is set to 8-bits/channel.
17. Don’t use the “Display Text” behavior wherever possible.
18. Try not to use so many global attributes and use tables wherever possible.
19. Try not to use timers. See http://forums.gamesalad.com/discussion/44707/timers-are-for-chumps-gs-optimization-tips
20. Limit constrains and if you do need to use it, make sure that they are on the top of your code.
21. Make your own pause instead of using the behavior. See http://gshelper.com/stop-motion-on-custom-pause-gamesalad-tutorial/
22. If an actor is not being used again in the same scene, destroy it.
23. If you have a game that goes on forever like Jetpack Joyride, Temple Run, or Jay & Silent Bob in Too Fat to Fly, make sure you either move or destroy actors that pass you by using these rules:
Landscape gameplay: If attribute game.MainCharacterPositionX > self.Position.X + (game.Screen.Size.Width/2)+(self.Size.Width/2), then destroy or move.
Portrait gameplay: If attribute game.MainCharacterPositionY > self.Position.Y + (game.Screen.Size.Hight/2)+(self.Size.Hight/2), then destroy or move.
24. You do not have to recycle actors that would be destroyed in the first place, like bullets.
25. Use music at your own risk because it will decrease performance.
26. Delete all unused rules, groups, behaviors, actors, attributes, images, and sounds.
27. Don’t save more than 3 attributes at once.
28. Don’t update all Game Center Achievements/Leaderboards at once unless their is no movement in the scene at that time.
29. Make an initial scene that looks like your splash screen to load attributes and log in to Game Center
30. If you can, unlock actors to constrain to the actor directly. See: http://gshelper.com/gamesalad-performance-tip-1-2/
31. Test your game using Instruments to see the memory, cpu, frame rate, leaks, battery usage, and a lot more.
[Thanks to AcceleratedGames from the Gamesalad Forums]