At some point, the GameSalad developers are going to run out of numbers. With the 0.9.7 update, the software is inching even closer to the 1.0 mark — out of beta. According to the GameSalad Roadmap, the software is supposed to leave beta this Summer. With less than a month left in the season, will the schedule stay intact? After checking out 0.9.7, I’m a bit skeptical. Only three new features were introduced — iOS Keyboard, Device Clock and Debugger. Although, these additions do create new possibilities for game creators.
Two of the biggest games right now are CityVille and FarmVille. And with the 0.9.7 update, now I can use GameSalad to create a similar game. With access to the device clock, GameSalad games now has a point-of-reference. Previously, if you quit a GameSalad game, it wouldn’t know how much time transpired since the last time you played. But now that there are attributes for year, month, day, hour, minute, second and millisecond, GameSalad games can have cool new features…
- Day and Night cycles
- Christmas Day Celebrations
- User Events and/or Character Stats (Birthdays, Character Age)
- Alarm Clock
There’s a problem with this though. There are seven different clock related attributes. That makes it cumbersome for calculating when specific game events occurred. As an example, what if a Tomato was planted on December 10, 2011? If the tomato plant needs to be harvested in three days, what happens if I return to the game one month later? On January 10, 2011, the game might be confused if only a few attributes were checked.
- If I only used the day value, the game thinks nothing happened.
- If I only use the day and the month, the game might think I went back in time.
That means to properly monitor the growth of the tomato plant, I’d have to use day, month and year. This would be easier if GameSalad had a Unix Timestamp value — the number of seconds since January 1, 1970. But with the new debugger, I could see that GameSalad has trouble with large numbers. GameSalad loses count around 100,000,000,000. Here’s an output from the debugger…
Log(Actor: Actor 1): 10
Log(Actor: Actor 1): 100
Log(Actor: Actor 1): 1000
Log(Actor: Actor 1): 10000
Log(Actor: Actor 1): 100000
Log(Actor: Actor 1): 1000000
Log(Actor: Actor 1): 10000000
Log(Actor: Actor 1): 100000000
Log(Actor: Actor 1): 1000000000
Log(Actor: Actor 1): 10000000000
Log(Actor: Actor 1): 99999997952
Log(Actor: Actor 1): 999999995904
Log(Actor: Actor 1): 9999999827968
Log(Actor: Actor 1): 100000000376832
Log(Actor: Actor 1): 999999986991104
Log(Actor: Actor 1): 10000000272564224
I’m not sure why 100,000,000,000 is a problem. If it was an issue with 32-BIT values then wouldn’t the numbers get screwy around 2-3 billion? I’m not sure. It’s quite a confusing matter. GameSalad runs in 64-BIT, but iOS is 32-BIT. Maybe the developers used some trickery to push some more digits, but then it breaks down. Regardless, GameSalad is actually bad with more than six digits. Even though the debugger was accurate with 11 digits, I’ve had trouble with more than six. That’s why I keep my GameSalad game scores under a million. Maybe that’s why the Unix Timestamp isn’t available.
I’m confused as to why GameSalad went this route, as Apple has lots of documentation on the matter. Apparently, Xcode has just the solution for this issue… initWithTimeIntervalSince1970. I’m not sure why this wasn’t implemented. Maybe GameSalad wants to hide scary coding stuff from developers. Maybe it was a technical limitation with the GameSalad software. I’m not sure.
This confuses the next update of The Unofficial GameSalad Textbook. I’m not sure how to explain timestamps, not when it’s so cumbersome to create one. Maybe GameSalad will improve this feature in the 0.9.8 update. I think that a single timestamp attribute would improve the software. There’s also some chatter about a memory issue. I haven’t seen it, but this might force GameSalad to release a quick update. With the beta almost ending, and technical issues to resolve, the pressure is on.
But meanwhile, I’m still using the software like usual. I look forward to presenting my next GameSalad game!