Speed

ingenious.applicationsingenious.applications Member Posts: 102
edited March 2013 in Working with GS (Mac)
Greetings everyone,
I'm in the final stages of my development so I would prefer to avoid having to rebuild a chunk of my app if possible. I'll explain the scenario.

I currently run Mac OS X 10.6.8, so that means the only version of GS I can use is .9.94. I understand that I cannot publish unless I upgrade both of these, which is possible for me by going to a friend's home, downloading the most recent version of GS on his Mac book, and then publishing, so I don't think that is a concern. The problem I just came across while testing a new addition to my app is that as the game progresses, it seems to get slower.

In more detail...
I currently have one city set up (out of roughly 50 or so intended) until I figure out all the kinks and then it will mostly be a copy-and-paste job for the other cities' behaviors. I also currently have around 80 attributes that are used at different points of gameplay (I was not very capable with tables until recently). Each "day" that passes in the game, things like city status, your amount of money, etc changes. Around the 200th day, the app appears to slow drastically. The app does not have very many animations at all and the scene I am on when the slowness occurs (the main/map view) has no animations at all.

Would the problem most likely result from the use of timers? I'm not quite sure I understand how timers could be "easily" swapped out, reading some of the optimization posts, but I understand that may be the route I have to go...(hopefully not). Does the number of attributes currently in the game have a large bearing on this? If I were to place my app onto my friend's mac, which is much more powerful and up to date than the weak mini I'm using, would that solve the issue with the newer version of GS?

Thank you in advance for any advice

Comments

  • tatiangtatiang Member, Sous Chef, PRO, Senior Sous-Chef Posts: 11,949
    What kind of diagnostic testing have you done?

    Have you started on day 200 to see if the slowdown occurs after only a few days but when the day number is high?

    Have you removed certain actors and/or attributes and run the game from day 1 to see if it still slows down on day ~200?

    Have you tested via adhoc installs, via the iOS Viewer, and via Preview? Does the slowdown occur on all three?

    Can you send the file to someone using a faster Mac and the newest version of GS Creator? What happens on that computer?

    How many timers and constrain behaviors do you have on the main gameplay scene?

    New to GameSalad? (FAQs)   |   Tutorials   |   Templates   |   Greenleaf Games   |   Educator & Certified GameSalad User

  • Thanks for getting back to me and sorry for not replying by now. Anyhow, I spent a couple hours tonight going through and tearing out some timers and replacing them with optimized build. There are still a dozen or two timers left in my app, but most of them are just to do some singular task like change a scene .5 seconds after a button is clicked....so I wouldn't think those timers would have any bearing on overall performance. I tried to replace them, but all attempts failed.

    One of the timers I was able to replace, however, was part of the main scene I referenced in my issue...and that calculated three different times and performed actions based on those times and other variables. I've since tested the app (still with only the 1 city out of 50ish) up to past day 300 with no notable performance drop.

    Being that I have an outdated OS and GS version, it was my understanding that I could not do adhoc testing or use the iOS viewer with xcode.

    I could test things out on my friend's mac, but since the performance has returned, the issue is off my "critical" list for now, but I will be testing it in that manner soon enough (I also imagine there are new features (ex: Universal Binaries...however they're used) to implement and test once I start using the newest version of GS.

    As far as constrain behaviors go...I only have two that I can think of off-hand that exist within the "main" scene.


    Thanks for your input
  • tatiangtatiang Member, Sous Chef, PRO, Senior Sous-Chef Posts: 11,949
    Glad to hear you were able to make some improvements to performance.

    To replace an after 0.5 seconds timer, you would do this:

    When Touch is Pressed
    .....Change self.touchTime (real) to self.Time

    When self.Time>self.touchTime+0.5
    .....Change Scene

    New to GameSalad? (FAQs)   |   Tutorials   |   Templates   |   Greenleaf Games   |   Educator & Certified GameSalad User

  • Here's what I was doing for the (actually .25 second) timer...

    when pressed
    -set "startTime" (real attribute) to self.time

    if startTime > 0
    AND
    if self.time > startTime+.25
    .....change scene

    I tested a handful of times, but I couldn't get it to work properly, so it's still using the "after .25 second" timer.
  • tatiangtatiang Member, Sous Chef, PRO, Senior Sous-Chef Posts: 11,949
    That should work. I have the same rules (make sure the rule is set to ALL conditions) and it works:

    image

    New to GameSalad? (FAQs)   |   Tutorials   |   Templates   |   Greenleaf Games   |   Educator & Certified GameSalad User

Sign In or Register to comment.