Just released my first game GeoLander, some thoughts about the project and the GameSalad
I just released my first mobile game created with GameSalad, GeoLander. It’s a modern retro-like tribute to the arcade game classics! GeoLander is now available for Android on Google Play. Go check it out and tell me what you think .
Some first impressions about the GameSalad and also some tips for the other newbies (most of the tips can be found from other posts too).
- Very easy to learn and use
- Has everything you need to create 2D games. No need to improvise or code your own solutions. Just add objects and adjust their attributes, rules and logics
- Creating simple 2D games with this tool is very fast, it'll only take you a couple of hours
- Visual and clear editor, brings me back to the Visual Basic times
- Object-oriented approach
- No need for the boring "bottom level" coding. That is of course a pro only if you don't like the bottom level coding like I don’t .
- Adding in-app-purchases and adds couldn't be made any easier
- Publishing your game is very straightforward and fast, at least for the Android
- I would assume that the GameSalad would be a great tool to educate kids to code
- Some strange bugs or features that made me waste hours (couple of them are mentioned in the Tips section of this post)
- If something isn't supported by the tool then you can't do it. You can't add your own code or core functionalities
- Debugging your project is very painful since the GameSalad doesn't have a decent debugger
- Editor could have better mass editing tools and functionalities
- APK file sizes tend to become pretty big since the GameSalad seems to add every "library" or functionality into your project, even the ones you didn’t use
- I couldn't publish to Arcade since it made my game corrupt (fonts and some gameplay functionalities)
- GameSalad’s website gives you the picture that they don’t develop this product anymore. Lots of pages with very old or wrong information (version updates, games of the month etc.). If the product is still actively developed and used I think they should update their website also. It gives quite bad first impression at the moment
Tips (things I learned the hard way during the process):
Read these optimization tips by @AcceleratedGames before you start your project: http://forums.gamesalad.com/discussion/46652/31-optimization-tips/p1 Some of those tips are great (for example 1, 2, 5, 6, 19, 22, 26 and 29), some of them seems a bit superstitious to me.
Timers aren't precise and they have a lots of other problems too. There's a great post by @domenius about the timers which helped me a lot when I tried to tackle the problems I had with timers: http://forums.gamesalad.com/discussion/44707/timers-are-for-chumps-gs-optimization-tips/p1 In GeoLander you get a time bonus that is added to your score after each level. For this purpose I needed a precise timer. Well the timers aren't precise. Depending which level you played the timer could give you 1-3 second different results between almost identical runs! Luckily I found the domenius’s post and found a solution to this problem. There is a much better way to get a precise timer than using timers. It is to use actor’s self.time attribute. I warmly recommend that everybody should read the post linked above and stop using timers if possible.
For some reason you can't save variables in your initial scene. Save attribute function doesn't work in the initial scene. I resolved this problem by moving the save attribute function to the second scene. In GeoLander you can change your initials in the first scene. If you exit the game immediately after this without proceeding to the second scene they don't get stored because of this. You need to press start and enter the second scene to get your initials stored. Of course you could solve this problem also by adding an empty initial scene that directs your game immediately to the second scene. Maybe I’ll add this solution to the GeoLander later on.
Collision shapes don't work. They don't work at all, at least not in the Windows client. I even tried GameSalad's own examples but nope. I needed a triangle collision shape for the ship in GeoLander since the ship is triangle shaped. How I managed to resolve this problem was that I spawn two invisible rectangles (the ship’s wings / and \) that constantly follow the ship. They use rectangle collision shape. They read the same input as the ship and fly in sync with the ship all the time. Quite a dirty way to resolve the problem but I couldn't come up with a better solution. Hope they'll fix the collision shapes soon.
Placing actors or letting them move too far from the visible are will cause crashes or at least so it seems to me at the moment. So you should always kill or handle your actors when they leave the visible area and you don't need them anymore. If you let them move too far this will cause crashes or other strange things to happen. Also don't place you actors too far from the visible area. This also seems to cause random crashes.