Inconsistent behaviour... behaviour.
allornothing
Member, PRO Posts: 126
This past weekend I spent a full 48 hours with GameSalad as part of Global Game Jam. My game was a success and I'm really pleased with what we made in the time, however we did find some super-frustrating GS issues that I'm hoping someone can shed some light on.
An example would be the Move To behaviour. In one of our scenes, we have a transition where we spawn an actor, and that actor has a Move To behaviour to move it on the screen in a nice way. It basically comes in from above the screen space and centers itself. The problem: around 6 times out of 10 (i.e. previewing the scene 10 times, the actor doesn't stop where it should and just continues on off the other end of the screen, like it was a Move and not Move To.
Another issue was with Timers (I know). In one scene we had a change scene kicking in after 3 seconds of pressing a button. At 3 seconds, the scene would change correctly. In a duplicate scene (another level with exactly the same 'code'), the change scene just wouldn't work regardless of how much time we specified. There was literally no reason why this wouldn't trigger, it just wouldn't. I've found this with timers quite a lot, where you specify and every/after value and it simply doesn't execute, either not running any of the nested behaviours, or running them all instantly regardless of time elapsed.
So... are these bugs in the behaviours? Interpolate seems useless at the moment too, as its results are often inconsistent.
I'm a big evangelist of GameSalad, and I recommend it to everyone I meet and work with. However it seems to be getting more and more unstable, and I'm starting to worry
An example would be the Move To behaviour. In one of our scenes, we have a transition where we spawn an actor, and that actor has a Move To behaviour to move it on the screen in a nice way. It basically comes in from above the screen space and centers itself. The problem: around 6 times out of 10 (i.e. previewing the scene 10 times, the actor doesn't stop where it should and just continues on off the other end of the screen, like it was a Move and not Move To.
Another issue was with Timers (I know). In one scene we had a change scene kicking in after 3 seconds of pressing a button. At 3 seconds, the scene would change correctly. In a duplicate scene (another level with exactly the same 'code'), the change scene just wouldn't work regardless of how much time we specified. There was literally no reason why this wouldn't trigger, it just wouldn't. I've found this with timers quite a lot, where you specify and every/after value and it simply doesn't execute, either not running any of the nested behaviours, or running them all instantly regardless of time elapsed.
So... are these bugs in the behaviours? Interpolate seems useless at the moment too, as its results are often inconsistent.
I'm a big evangelist of GameSalad, and I recommend it to everyone I meet and work with. However it seems to be getting more and more unstable, and I'm starting to worry
Comments
For example:
If self.position.x = current position + 128, stop moving works just fine. But the exact same behavior, with - 128, does not. There's no reason it shouldn't; its the exact same "code."
*shrug* for gits & shiggles I'm porting to another language right now to see how much effort it would take to do some of the things Ive desperately been trying to get working in GS, and in 2 hours I'm where it took 10 to get the same thing sorta-kinda working right in GS - and I've never used the other language/SDK before.
Hopefully the next update that we've been told is coming out soonish will fix some of these literal game-stopping issues.
Hold on - not sure I agree with you there, mate. There are FANTASTIC games made with GameSalad - Tshirtbooth, Utopian Games, Fire Maple Games and countless others have created fabulous games with GameSalad - and let me tell ya, those aren't you average GameSalad projects. Each are WAY more than "simple" games. Agreed, there are some things that need to be taken care of within GS. However, GameSalad is still the best SDK I have used to date. The main reason being drag and drop and the ability to create a fantastic game within hours (depending on your skill level) - I'm a happy GameSalad developer, especially with the new Universal Binaries.
My GameSalad Academy Courses! ◦ Check out my quality templates! ◦ Add me on Skype: braydon_sfx
UBs are cool if you live in the iOS world. Otherwise...*shrug* gimme accurate interpolation and more overall stability over that any day.
Anyways, my post probably came across a bit more harsh than intended, due to the fact that I finally got player movement working properly in my project after way too much trial & error, then put it on a device and none of it works because GS doesn't really work they way it's supposed to, at least on Android (wow, these framerates...they're awful). And yes, I'm 99.9% sure it's not something I'm doing wrong, like the OP of this thread, so whoops, my bad, let's bring the conversation back to those issues that I've also run into.
Guru Video Channel | Lost Oasis Games | FRYING BACON STUDIOS
I'm really hoping the new engine will address at least some of these basic issues, from the little we've seen of it so far it looks great (ok, fast), I'm sure that if the GS team can make such a great improvement in basic engine speed they have the skills to kill off these various bugs, I'm hopeful.
Standard caveats: I love GameSalad (etc).
8-X 8-X
In your case, I'd replace 'Move To' with 'interpolate', this should solve any overshooting issues. There are some very good alternatives to the 'Timer' behaviour listed in this thread:
http://forums.gamesalad.com/discussion/44707/timers-are-for-chumps-gs-optimization-tips Interpolate is generally very good for me, but it does have a few issues due to the last 10% of the last whole value being missing, causing various issues on small interpolations (audio ramps and alpha fades - are particularly effected by this bug). I wouldn't say it's getting more unstable, if anything I'd say it's improved a far bit, a couple of years ago it used to crash all the time on me, the last few releases feel much more solid, perhaps as you become more familiar with GameSalad and start to use more of it's functionality you start to see more of it's bugs / idiosyncrasies.
To be fair to FryingBaconStudios, his comment can be read two ways:
"Gamesalad has come a long way baby! Not so much you @pixelmetal . . . "
Which on first glance is easy to read as "GameSalad has come a long way, unlike you pixelmetal . . ."
But it can also be read as: "GameSalad has come a long way. Now this doesn't particularly apply to you pixelmetal but I really hate the following . . . "
Either way, I love a good rant !
I'm not sure if FryingBaconStudios comment is aimed at me or not, but without tooting my own trumpet too much, I'm an experienced developer with several years in AAA console and PC development. I'm not saying I know everything, but I'm far from amateur
Regardless of its UI, concept and features, GS is a fantastic tool let down by a very slow turnaround on bug fixes. Regardless of the feature roadmap, bugs such as the ones pointed out here, as well as a raft of UI issues (locking layers, deep selection on the canvas, scroll windows not remembering their previous position, not being able to select multiple actors with shift - to name a *very small few*!!!) should be marked as priority. Stability should trump features at all times, especially when Pro licences are in effect. These bugs should be ironed out quickly and incremental builds released on a regular basis.
I understand that there are workarounds (the timer thread is a great read), but if a behaviour is supposed to do X, it should do X every time. Move To and Interpolate are 'broken' IMO, as they can't reliably function - I can't use these in an app release if they aren't going to work consistently. These are core behaviours in the feature set, and they have been broken for a while it seems - GS shouldn't be prioritising monetization features and UB if the standard feature set doesn't work. I appreciate the new engine is on its way, but you can't let your existing engine go to hell in the meantime, especially when the delivery date of this new engine (and all the teething problems that will come with it) is ambiguous...
The lack of regular bug-fixes from GS on things like this is disheartening. So much of GS income is no doubt coming from the ad/monetization systems and the marketplace. I'm not interested in people selling templates to each other (I'm actually very much against it - buy a blank version of a game, fill in your name and sell = the reason the app store is full of so much derivative crap these days). While I can see the attraction in maintaining a user base that sells content to each other, it'll be the downfall of GS if they don't make the engine itself more stable and bug free. Everyone I know who has been using GS moves on before long to other engines. The glass ceiling is quite low, but it doesn't have to be GS, you can make it better!
(and by better, I mean bug-free, with smaller regular fixes, not features!!)
I'm really hoping the new engine does what it needs to do, for most people that's a faster and more efficient engine, which is certainly something to get excited about, but not as vital as a stable, predictable and reliable platform.
I've said much the same in the past, not only does the template trade encourage shovelware, but I find it depressing that you can pour your heart and soul into a project that might take months or even years, only to find that 2 weeks after release there are people selling kits that encourage others to rip-off your hard work. Yep, agreed:
"Help ! Interpolate is screwed !"
"No problem, in the next release we will be introducing Kiip"
3 months later . . . "Interpolate is still screwed !?"
"No problem, in the next release we will be introducing over-scanning"
3 months later . . . "Any news on a fix for interpolate ?"
"No problem, in the next release we will be introducing Twitter TweetSheets"
3 months later . . . "Thanks for the Twitter stuff, that's great and everything, but are there any plans to sort out the issues with interpolate ?"
"No problem, in the next release we will be introducing the GameSalad Distribution Network!!"
3 months later . . . "That's really great, but any news on a fix for interpolate ?"
"No problem, in the next release we will be introducing Universal Binaries!!"
. . . . etc etc.
)
Well think about it, were going to possibly get a whole bunch if new bugs in the next engine. So instead of fully or only putting some effort into this current one in which these bugs could have a work around, they try make sure the new engine address these.
Just an idea
But I thought new engine was being release in november so what do I know.
But I haven't come across too many bugs that are that major. It just takes a little longer to achieve the result I want.
By yeah @socks I have been waiting so long for these bugs. A lot of talk about them so I hope they don't disappoint
@Elfizm