Universal Binaries... REALLY CLOSE!

PhoticsPhotics Member Posts: 4,172
edited November -1 in Working with GS (Mac)
So, I've been porting BOT to the iPad and I've discovered some really interesting things...

1 - GameSalad now adjusts touch data relative to the camera zoom. It's awesome. I could totally build a sniper game now.

2 - I ran an iPad game on my iPhone 4... worked perfectly... aside from the screen ratio issue.

GameSalad only has to add a few more features to make this work...

Expandable camera... for scrolling games, the camera size could adjust to match the screen ratio.
Xcode changes — It's not hard to make a universal binary with Xcode, just some info.plist stuff.
Resolution Independence — I'm not sure if this is an issue, as GameSalad already supports it, but an old iPod Touch would likely have trouble running iPad sized graphics.

I don't see why this has to wait until the fall. If GameSalad exported to Xcode, I'm thinking that I could probably make a Universal Binary GameSalad game today.

My most successful app is The Unofficial GameSalad Textbook and that's a universal binary. I think a universal binary can help for sales, as the app appears in both the iPhone and iPad categories.

Comments

  • InLikeFlynnInLikeFlynn Member Posts: 171
    I've noticed GS users are asking for other features first, and GS is happy to deliver, but I suspect some people underestimate the value of universal apps.

    Universal apps tend to die off the charts more slowly or not at all. The combined sales of iPhone and iPad apps help keep them afloat.

    This is approximate, but Apple values sales something like this as far as chart spots go:
    Current day sales 8X + yesterday 5X + day before 3X+ then 2X....

    So if you sell 8 games a day for 4 days to iPhone owners, but I sell a universal app for 8 plus 2 a day to iPad owners we get:

    iPhone only score: 144
    universal score: 180

    This will rank me higher on the chart and give me more visibility, meaning I'll sell more off the charts than you: it's a compound effect. Selling more apps = higher on the charts = more visibility in the app store = sell more apps.

    Plus if a user finds two apps that do the same thing, only one is universal, guess which one they'll want to buy? More and more people own ipads now, so this will continue to have a stronger effect.

    Unless you're selling Angry Birds and you can maintain top spots for both apps, universal apps mean more sales overall than 2 separate apps because higher ranking on the charts means exponentially more sales.

    I don't blame GS at all for not implementing this yet because users seem to ask for other features first. At least we know they're planning it for the fall.
  • quantumsheepquantumsheep Member Posts: 8,188
    I have to agree. I was thinking myself how close they already are when I can test my iphone games on my iPad...

    Universal binaries would be incredibly useful, especially to our potential players. It's another step towards legitimacy and fairness in their eyes, I would argue.

    Features that benefit our customers, in turn, benefit us.

    Features that benefit just us, and not our customers, will not help us.

    QS

    Dr. Sam Beckett never returned home...
    Twitter: https://twitter.com/Quantum_Sheep
    Web: https://quantumsheep.itch.io

  • PhoticsPhotics Member Posts: 4,172
    I think they might be debating internally about what's the best way to handle UI elements when the camera can change ratio.

    I noticed that they recently changed Mac Publishing. There was a bug. If I set a UI element to be a certain amount of pixels from the edge of the screen, it wouldn't work. The positioning would be off. Now, when I publish iPhones games directly to Mac, I notice that the app has black bars on the side — even when not in Full-Screen mode. I hate that, but I think that might be related to Universal Binaries. The game was fixed to an 8:5 ratio - which is relative to the 1280x800 standard. It seems that's pretty much the target for Mac games.

    That's where things get tricky...

    iPhone / iPod Touch - 3:2
    iPad - 4:3
    Mac OS - 8:5
    Android - Insanity:Craziness

    So, what's the best way to make a game adapt to all those screen sizes?

    Possibility #1 - Device detection

    • If iPad is true then goto scene iPad

    The problem with this is it puts a lot of work on the developer. GameSalad is supposed to be easy. So while it would be easy to simply add device detection and then let the developer create multiple scenes, that's not really efficient.

    Possibility #2 - Adaptable Camera

    If UI elements are positioned relative to screen elements, then it doesn't really matter what the screen ratio is. A 64x64 button is just placed 32 pixels from the screen edge. However... device detection would still be necessary. The reason... buttons on the iPad don't need to be twice the size because the player still has the same finger size.

    Possibility #3 - Scalable Layers

    So, if the UI should stay a fixed size, what if the individual layers could be zoomed? That would create awesome possibilities, but I imagine that's not something easy for GameSalad to implement. (Although, "layer functions" is listed on the roadmap.)

    So ideally, GameSalad should support all three possibilities, but #1 & #2 could be implemented quickly. That would give developers strong options for creating universal binaries.
  • InLikeFlynnInLikeFlynn Member Posts: 171
    Scalable layers is a good idea. I'd always thought we'd have to use a device type attribute in all rules to do with scaling and positioning. Hopefully if they do that we can pick how the each layer is justified. Most scenes would probably be center justified in the middle of the screen, but I can think of times where I'd be more concerned with how things align along a certain edge of the screen.
  • PhoticsPhotics Member Posts: 4,172
    GeoffB said:
    Most scenes would probably be center justified in the middle of the screen, but I can think of times where I'd be more concerned with how things align along a certain edge of the screen.

    Yeah, camera alignment is another useful option. Right now it's fixed to the origin. Although, the camera can be positioned. There are some things that can be accomplished with math.

    Basically, I think the debate goes like this... Would you rather have robust Universal Binary features or would you rather have Universal Binaries as soon as possible?

    Personally, I think GameSalad should launch this feature earlier. Here's the current list for Summer...

    • GameSalad 1.0
    • GameCenter achievements
    • In-app Purchase
    • GameSalad Marketplace
    • GameSalad Cookbook
    • Targets: cleaner portfolio management and publishing
    • Scene editor improvements
    • Layer functions
    • Sprites
    • Splash screen options

    On that list, what's the most important to me? I think Game Center achievements are useful for generating sales, but I think universal binaries are more important. The most important thing in marketing an app is getting listed highly on the iTunes app store. I think universal binaries are very helpful in making that happen... even more helpful than Game Center achievements.
  • firemaplegamesfiremaplegames Member Posts: 3,211
    I just made a Universal App with a buddy of mine. Definitely not an easy task!

    One app, 3 sets of graphics for: the older iOS devices, Retina Display devices, and the iPad.

    With Corona I can detect the device and determine which graphics to use. That's easy enough. Like you said, the hard part is positioning everything.

    If it is just a static app it's one thing - just rearrange some HUD elements. But with a game it becomes tricky to automate stuff other than that.

    The iPad screen is much larger so you need to account for different animation speeds, enemies that are 'hiding' at specific coordinates need to be adjusted for, Interpolations need to be longer, etc. etc.

    Let's say you wanted to Interpolate a box from the left side of the screen to the right.

    On the smaller devices you can say Interpolate from 0 to 480 over 3 seconds. Now you can make that more dynamic by saying Interpolate from 0 to Screen.Width over three seconds.
    That would work on smaller devices and iPads

    But the three seconds now becomes an issue. It will be too fast on an iPad.

    It's hard for that to just be automatic and dynamic. It will present other issues that will affect the design of the game. Subtle balancing issues present themselves.

    However, I absolutely agree that Universal Binaries are very important.

    I am curious to see how GameSalad will implement it!
Sign In or Register to comment.