Their goal is to own everything connected to apple. The more locked in you are, the more power they have to strong arm people into using their overpriced machines.

Metal leaves people no more "locked in" than they were before.

Without a shadow of a doubt, a game programmed using the Metal API is probably a lot harder to port to Windows, Linux and/or Android than one programmed with OpenGL.

I'm not a Apple hater, but facts are facts. Based on Apple's desire for absolute control of it's platform, I feel Metal's underlining plan is to assist in facilitating their control more so than it is to give people a new "innovative" API. What Cas said is pretty much dead on my feelings about this situation.

I think the longterm plan is to attempt to get more iOS exclusive devs by doing what Cas said and "half ass" supporting OpenGL in the future, making metal the more desirable option under iOS. By doing this, as long as Apple can control the majority of the market, devs who have to pick one or the other due to time or money constraints will end up picking iOS in order to secure more sales.

Yes, I know OpenGL will still be supported, my question is simply; how well? I'd bet money the iPad 6 or 7 will just so happen to run Metal "400% faster!!!!" than it can run OpenGL. They will tout that it's because Metal is "so innovative" when the reality is they crippled OpenGL.

Of course if you make the decision to use metal then porting your game to another target will be more work. The same will hold if you use any API on any device/platform that isn't available on all desired targets. Who cares? The only interesting questions are:

1) Does platform X have enough market share to be interesting or am I going to gamble of the fact that it will around the time of a products release release? If no then stop.2) If a platform supports a "standard" and "custom" APIs for similar functionality is it worthwhile to use the custom? Either moves from impossible to meet target or adds enough extra polish to make the effort worthwhile.

If this specific situation has any impact on OpenGL then that means that OpenGL is weak. (Have I mentioned that is a pile of shit?)

iOs openGL drivers are actually quite good. There is also been good extension for gaming. Depth textures, instancing, pvrtc, srgb textures, msaa, framebuffer discard, programmable blending and vertex texture fetch. I bet they have supported these extensions just to make Android ports lot harder.

The LLVM development is good. Metal would be good too, if they'd just released an open spec for it, but I suppose what's most likely to happen is that Those In The Know will spot what's going on here and in general with DX12, Mantle, and Metal and wisely create a brand new successor to OpenGL in the same vein. But seriously, don't doubt my words on what they're planning to do with OpenGL. They've got a long track history of doing exactly this. Examine their motives, history, and ability.

Again. I have zero interest in Apple products. Nor can I say that Apple's corp. strategy always makes sense to me. But give them credit. They've been pretty good at making compute devices "sexy" to joe average. The is useful to us developers. And in recent years they've been quite good at open source. Statistically everybody reading this is profiting from Apple (via WebKit) and in general browsing the web, 80% of user are on a WebKit based brower. Go go Apple. On "metal" making open doesn't making any sense. It's a fixed-hardware API.

Without a shadow of a doubt, a game programmed using the Metal API is probably a lot harder to port to Windows, Linux and/or Android than one programmed with OpenGL.

Then don't use Metal to make your game! How many times must it be said. OpenGL is not going anywhere! Where in the heck would it even "go"? Objective-C is staying. C is, effectively, staying. OpenGL will stay, as well.

With Metal, all Apple is saying is, "Hey, do you want a more streamlined, consistent way to do low-level graphics work for our latest mobile chipsets? If so, this is the thing for you!" You'll still be able to deal with the mess that is OpenGL (not a mess that Apple made or will make, by the way, but simply a mess that has always existed) if that is your heart's desire.

There is absolutely no reason why, if you care about developers, you'd support this fragmented system whereby you're happily coding in an object-oriented language, and then are forced to dive into the tedium that is C, turning your code into an inconsistent mess, simply because you want to work with low-level graphics. Apple is, thank God, finally moving away from this. And actual Apple developers are psyched, not because they're Apple fanboys who know nothing about programming, but because they've been asking for this for a long time. Core Graphics and OpenGL have long been extreme headaches to the Apple development community. Apple is now solving the problem, while allowing the old system to continue to exist. How can this possibly be interpreted as a bad thing?

Without a shadow of a doubt, a game programmed using the Metal API is probably a lot harder to port to Windows, Linux and/or Android than one programmed with OpenGL.

Then don't use Metal to make your game! How many times must it be said. OpenGL is not going anywhere! Where in the heck would it even "go"? Objective-C is staying. C is, effectively, staying. OpenGL will stay, as well.

With Metal, all Apple is saying is, "Hey, do you want a more streamlined, consistent way to do low-level graphics work for our latest mobile chipsets? If so, this is the thing for you!" You'll still be able to deal with the mess that is OpenGL (not a mess that Apple made or will make, by the way, but simply a mess that has always existed) if that is your heart's desire.

There is absolutely no reason why, if you care about developers, you'd support this fragmented system whereby you're happily coding in an object-oriented language, and then are forced to dive into the tedium that is C, turning your code into an inconsistent mess, simply because you want to work with low-level graphics. Apple is, thank God, finally moving away from this. And actual Apple developers are psyched, not because they're Apple fanboys who know nothing about programming, but because they've been asking for this for a long time. Core Graphics and OpenGL have long been extreme headaches to the Apple development community. Apple is now solving the problem, while allowing the old system to continue to exist. How can this possibly be interpreted as a bad thing?

Normally you wouldn't interpret it as a particularly bad thing. However we know that Apple are not "normal". Look what's happened to Java and Flash in the Apple ecosystem. Rosette. Eventually Carbon. An inconvenience to developers and users, but ultimately, forcing you to adopt the technology they want you to use. Perfectly reasonable for them to do so, and doesn't generate quite enough whining and anger to make them really do it any other way. Apple are actually quite ruthless at deprecating tech they don't want any more - they regularly break their OS and old stuff stops working.

So all I'm saying is... there's nothing wrong with Metal, the API, itself. But the bigger pictures is that we should probably be somewhat concerned that they've chosen to develop it and keep it tied to their specific hardware and APIs. Let's face it, OpenGL performance on phones and tablets is really pretty irrelevant in the grand scheme of things... they're powerful enough for anything you might conceivably want to play on the existing hardware... so what are they up to. What's their long-term plan. I suspect it's a more concerted takeover of the living room, and continuing merging of OSX with iOS. OpenGL's future on OSX looks shaky.

Wait, what happened to Java? Apple basically stopped maintaining its own JVM at 1.6. What's wrong with that? Oracle provides one. Does Microsoft maintain its own JVM for Windows?

And as I explained earlier in the thread, Flash was notorious for running like crap on Apple machines (causing crashes/instability, making the fans spin up just from watching a simple little video online). This was the case for years. It was only after Apple introduced the iPhone and Adobe finally had a meaningful platform to lose that they decided to change their tune. Too little, too late, as far as Jobs was concerned. Not to mention the fact that Flash was, and is, basically a dying technology anyway.

Quote

Rosette.

Are you talking about Rosetta? That was a compatibility tool in OSX that allowed users to run old apps from the PowerPC days on new Intel machines. Not sure how that's relevant here. If you've got a Mac and it's not Intel at this point, you're living in the stone age.

Quote

Eventually Carbon.

Carbon was only supposed to be a stop-gap for porting OS9 and earlier software when OSX was first introduced. It's been almost 15 years. I don't think we need to lament the death of Carbon.

Would you rather that Apple had not provided Rosetta and Carbon to ease the transition into a completely new paradigm for Mac OS? I'm not really understanding the main thrust of your critique.

Quote

An inconvenience to developers and users, but ultimately, forcing you to adopt the technology they want you to use. Perfectly reasonable for them to do so, and doesn't generate quite enough whining and anger to make them really do it any other way. Apple are actually quite ruthless at deprecating tech they don't want any more - they regularly break their OS and old stuff stops working.

My word! Apple wanted users to adopt OSX? Burn them at the stake!

Quote

So all I'm saying is... there's nothing wrong with Metal, the API, itself. But the bigger pictures is that we should probably be somewhat concerned that they've chosen to develop it and keep it tied to their specific hardware and APIs. Let's face it, OpenGL performance on phones and tablets is really pretty irrelevant in the grand scheme of things... they're powerful enough for anything you might conceivably want to play on the existing hardware... so what are they up to. What's their long-term plan. I suspect it's a more concerted takeover of the living room, and continuing merging of OSX with iOS. OpenGL's future on OSX looks shaky.

Apple has almost always been a vertical business (there was a very brief period where you could actually buy "generic" Apple machines, but let's forget put that aside for a moment!). They have always been involved in the design of the hardware and the software for their machines. The A7 chip isn't just some third-party chip used in every phone on the market. It's a chip designed by Apple. One can assume they design these components primarily because they want to be able to control the overall design of their phones, the form factor, and all of that. They don't want to have design tied down by the available third-party hardware.

You may not like that Apple does things this way. But they have, nevertheless, almost exclusively done things like this for as long as they've been in business. Metal is designed specifically to--at least as far as Apple argues, and I won't attest to the veracity of their claims here--unlock the potential of the A7 chip, and presumably future chips in that line.

Maybe you think they're stretching the truth here! Hey, that would be a great thing to investigate! But can we please stop assuming that every action Apple takes is some nefarious plot? The situation is obviously different for them than it is for most other mobile device manufacturers.

Honestly, I feel like a lot of the critiques about the proprietary nature of the Apple ecosystem mostly boils down to "open for open's sake." There's tons of "open" stuff out there for you to use. Why does Apple's stuff have to be open? Just use other stuff! There's tons of it out there!

I'm not concerned about the "why" or the "shoulds" here - my interests are "where are they going" and "how is that going to affect my development". I'm only bothering to develop for Macs right now because it's easy for me. If it gets any harder than it is at all right now already - I'm not going to bother any more as the costs will outweigh the benefits but the benefits will nonetheless be gone, so I'll be needing to predict when/if I'm going to have to ditch a % of my revenues.

Wait, what happened to Java? Apple basically stopped maintaining its own JVM at 1.6. What's wrong with that? Oracle provides one. Does Microsoft maintain its own JVM for Windows?

Originally, though, Apple had provided library extensions to allow creation of fully integrated OS X applications. Eventually, they ditched that bridge code. That's a much bigger deal than discontinuing maintenance of their own JRE. In fact, I wish they never would have done -- instead simply providing the bridge library (and perhaps helping with the native L&F).

Quote

And as I explained earlier in the thread, Flash was notorious for running like crap on Apple machines (causing crashes/instability, making the fans spin up just from watching a simple little video online). This was the case for years. It was only after Apple introduced the iPhone and Adobe finally had a meaningful platform to lose that they decided to change their tune. Too little, too late, as far as Jobs was concerned.

I fully agree that Adobe did a horrible job WRT both security and performance, though it was hardly limited to OS X. Only Windows received full attention from a performance stand point.

Quote

Not to mention the fact that Flash was, and is, basically a dying technology anyway.

Given it's ubiquity, and the popularity of Flash games at the time, it's hard to argue that Flash was "dying" when Apple made the decision not to allow it on iOS. HTML5 might have eventually caught up (though, in some ways, it arguably still hasn't done so). Still and all, I believe that the rise of mobile, and Adobe's inablility to play on that field, has been the main reason for Flash's decline.

I'm not concerned about the "why" or the "shoulds" here - my interests are "where are they going" and "how is that going to affect my development". I'm only bothering to develop for Macs right now because it's easy for me. If it gets any harder than it is at all right now already - I'm not going to bother any more as the costs will outweigh the benefits but the benefits will nonetheless be gone, so I'll be needing to predict when/if I'm going to have to ditch a % of my revenues.

Cas

This is exactly my point (I was just arguing from the Apple developer's side). If Apple makes it too complicated to support their OS, I'm dropping it without a second thought.

This goes back to what I was saying, while it'll be harder for us to dev on their OS it also makes it harder for their core Apple devs on other OSes, and I believe thats on purpose to make those guys drop Android. meaning... if Apple plays their cards right, they can get some more exclusive developers, and I believe this is what they're trying to do. They're gambling the idea that their platforms have a powerful enough user base they can generate exclusive content, so the average Joe who has no idea how all this works will buy their product over the competition because they have games/software that no one else does and Apple, now owning the API, has a stronger stranglehold on technology as a whole.

I'm only bothering to develop for Macs right now because it's easy for me.

I have a question: Are you currently making your games for Mac natively in Objective-C? I was under the impression that you created your games in Java. If that's the case, then they will remain as portable as they ever were. How does this affect you?

Originally, though, Apple had provided library extensions to allow creation of fully integrated OS X applications. Eventually, they ditched that bridge code. That's a much bigger deal than discontinuing maintenance of their own JRE. In fact, I wish they never would have done -- instead simply providing the bridge library (and perhaps helping with the native L&F).

And Apple did this because of Java's glaring security problems. Why should they support Java by pre-installing a JVM (even Windows doesn't pre-install a JVM, by the way) when it threatens to make the system vulnerable? It seems to me that Apple spent years going above and beyond in trying to support these technologies (they also used to pre-install Flash as well as update it through their centralized system updates, which I can't recall Windows ever having done). It seems to me that you're beating on them for not continuing to break their backs bolstering other companies' technologies, when other companies (Microsoft, anybody?) go unmolested in that regard.

Quote

Given it's ubiquity, and the popularity of Flash games at the time, it's hard to argue that Flash was "dying" when Apple made the decision not to allow it on iOS. HTML5 might have eventually caught up (though, in some ways, it arguably still hasn't done so). Still and all, I believe that the rise of mobile, and Adobe's inablility to play on that field, has been the main reason for Flash's decline.

Apple didn't make this decision until 2009. The iPhone came out in 2006. If I remember correctly, the decision came as a result of hardware acceleration taking off as the new paradigm in video delivered over the web. Also, with the advent of HTML5, it was a foregone conclusion that Flash was going to be on the way out. Apple didn't want poorly optimized Flash games to take over the App Store, reducing the battery life of their devices, causing crashes, or whatever else. It was only after Apple made the decision to ditch Flash entirely, by the way, that Adobe tried to fix the situation. It was only then, of course, that they had a reason to not take Apple for granted.

This is exactly my point (I was just arguing from the Apple developer's side). If Apple makes it too complicated to support their OS, I'm dropping it without a second thought.

The fact that you think Metal makes it any harder to support iOS than it was before proves that you don't really know what you're talking about here. Before, you were working with Apple's C-based OpenGL libraries mixed into your Objective-C code. That was a discipline that you were never going to carry straight over to Android. Now, you will presumably be using the Metal APIs in Swift. You will still not be able to carry this discipline straight over to Android, but at least your code will be consistent now. That reads, to me, like an improvement. If you want to complain about something, complain about the fact that Apple isn't using Tegra chips like everyone else. But if you complain about that, then you're pretty much complaining about Apple's entire raison d'etre. They've always been vertical. They've always been into the hardware and the software. This is nothing new. It's what Apple does. It's what makes them unique.

The reality is that most small-scale developers are going to be using third-party engines/platforms to do the heavy lifting when it comes to porting their games. That's just reality if you're running a barebones operation. Can you honestly say that you are currently natively developing for both iOS and Android? If so, I applaud your efforts, but that is an extremely uncommon scenario for a small-scale developer.

And the thing is, iOS developers could say the same thing! They could say, "Ugh, it's a pain in the butt having to port my game over to Android! All this stuff is so different from what I do when developing for iOS!" Why is the onus on iOS to conform? Because it's not "open source" or whatever? Give me a break.

Well it is a bit more than that. I wouldn't really mind Apple if they treated developers who wanted to develop for them, but didn't have the resources, with a little bit more respect.

There is nothing wrong with Metal, but Apple has done more than its fair share making an exclusive market out of their brand. I can barely stand exclusives on the consoles. With a growing amount of indie developers budding, exposure is more important than any other aspect. The fact Apple keeps repetitively doing this across, well, everything it does just makes it harder for developers to develop for the widest audience.

Can I really fault Apple for trampling on our weakness?

Well, no, they are a business after all... However, it leaves a bad taste in developers mouths if Apple does this again. I really don't think it is bad for developers to be a wee bit cautious of this move. Regardless of how helpful to the Apple developers it might be.

You're blaming Apple for that? How about you blame the Android marketplace which is demonstrably worse than the App Store in the financial metrics that matter to developers? The average App Store customer spends more money on apps than the average Android marketplace customer. It's a rather large difference, too, last time I checked. And while the App Store isn't completely free from this sort of thing, Android has a much larger problem with games being ripped off wholesale, even using the same exact game resources. These are two major reasons why iOS is a preferred ecosystem for many developers, and it has nothing to do with Apple making things harder for people.

The cost of entry for Apple is way higher than Android, but this is beside the point. I see this argument is wrapped around one post. Pirates vs. a secure marketplace.

Honestly, both markets have their faults. I can't disagree. Android is plagued by lots and lots of games and pirates cluttering the market. Apple has barred a lot from getting in so less games and applications enter the marketplace. This problem still lacks an elegant solution. Developers are being shafted, users are being hoarded, and the major players like Google, Apple, and Amazon still make money. This environment is just bad for developers and users, and honestly that is the core of my discomfort with this.

Developers are being treated like middlemen, but for exposure, we bear with the decisions made. In a perfect development cycle, stability of technology is the most important thing. However, the major shifts by these companies pull us into these loyalty wars. In its core, it is developers crying out "What about us?" We just want a stable solution to reach a widespread audience. In that regard, I think Android is the lesser of two evils.

But hey, regardless of what we say... I suppose we just have to "deal with it," right?

The cost of entry for Apple is way higher than Android, but this is beside the point. I see this argument is wrapped around one post. Pirates vs. a secure marketplace.

Honestly, both markets have their faults. I can't disagree. Android is plagued by lots and lots of games and pirates cluttering the market. Apple has barred a lot from getting in so less games and applications enter the marketplace. This problem still lacks an elegant solution. Developers are being shafted, users are being hoarded, and the major players like Google, Apple, and Amazon still make money. This environment is just bad for developers and users, and honestly that is the core of my discomfort with this.

Developers are being treated like middlemen, but for exposure, we bear with the decisions made. In a perfect development cycle, stability of technology is the most important thing. However, the major shifts by these companies pull us into these loyalty wars. In its core, it is developers crying out "What about us?" We just want a stable solution to reach a widespread audience. In that regard, I think Android is the lesser of two evils.

But hey, regardless of what we say... I suppose we just have to "deal with it," right?

Developers are being "shafted"? The App Store created a brand new cottage industry overnight. No one's going to argue that Apple's engaging in altruism here, but there's a huge difference between a mobile app ecosystem not existing, and not generating lots of jobs for developers, and what we've got in the App Store as it is.

I think what a lot of this boils down to is simply harping on "openness" for its own sake. There is nothing innately good about platforms, programming languages, and so on, being "open." This is one thing I really wish people in the programming/dev community would stop harping on so much. You may think there's a "loyalty war" going on here, but that's a personal, individual choice that I see tons of programmers make for themselves every single day. Oracle, Apple, the dude who created Ruby, or whomever ... none of these entities are telling you to engage in ideological warfare with other "camps." And yet I see so much of it, driven completely by the programmers themselves.

The bottom line is that it's not Apple's fault that Android app consumers spend significantly less dough on apps. It's not Apple's fault that piracy (largely because of the "openness" of the platform) is rampant on Android. Should it be any big surprise that iOS app releases are typically prioritized over Android versions? You stand a far better chance of getting a return on your development dollar in the App Store ecosystem. If things pan out, then you port to Android. Again, not Apple's fault. People don't do this just because they happened to have a few iMacs lying around and think, "Huh, maybe I should just do this in iOS ... oh crap! I'm locked in now!" It's such a silly analysis that I don't really know what else to say about it.

But sadly dickhead like RS of FSF do. People buy into their BS which encourages irrational behavior even in adult programmers.

Honestly, I think the Mac/iOS programming community may be the most drama-/ideology-free of the bunch. Ruby programmers, by comparison, are some of the worst. They constantly jaw about what a positive, almost therapeutic, experience it is to use their elegant, magical, spiritual programming language, but really spend most of their time spewing bile about Java. I dig Ruby, but get tired of that whole aspect of the culture really quickly.

Java's just made getting stuff to run on MacOS a smidgen easier than having to do it in C++. All my code however is based on top of LWJGL, which in turn, is a thin veneer over OpenGL. The same goes for most libgdx projects. It's worth keeping an eye on.

Mac revs for us are approx 6.5% of our totals... it won't hurt to lose it, much.

Should it be any big surprise that iOS app releases are typically prioritized over Android

Actually... in the circles I move in, that's no longer the case. Android is thoroughly beating iOS for revenues, as it inevitably always would. 4-5 years ago it was something like 100:10:1 for iOS:Android:WP7 amongst mostly everyone I knew... now it's 10:100:1. I wonder if Apple's new "rules" and "improvements" to the App Store might help reverse some of this trend.

Well, in your circles it may not be the case, but it is very much the general reality. iOS accounts for something like 70% of download revenue. iPhone users download fewer apps, but spend far more on them. Android users expect everything for free or extremely cheap, and they generally get it, to the detriment of developers.

Well, in your circles it may not be the case, but it is very much the general reality. iOS accounts for something like 70% of download revenue. iPhone users download fewer apps, but spend far more on them. Android users expect everything for free or extremely cheap, and they generally get it, to the detriment of developers.

While that may be true, it's a very broad statement that probably doesn't tell the whole story.Android's target demographic is a lot wider than Apple's, so naturally the market is different in general.

But can we really say that app revenue is all that different if we focus on games and top-end phones for example? And do these stats include things like add revenue (still an important source of revenue)? Many Android devices don't even ship with Google Play; is content revenue from those devices counted in these stats?

It's difficult to directly compare Apple with Android when it comes to app revenue, so I have to say that I'm more interested in real life experiences there than general statistics.

While that may be true, it's a very broad statement that probably doesn't tell the whole story.Android's target demographic is a lot wider than Apple's, so naturally the market is different in general.

But can we really say that app revenue is all that different if we focus on games and top-end phones for example? And do these stats include things like add revenue (still an important source of revenue)? Many Android devices don't even ship with Google Play; is content revenue from those devices counted in these stats?

It's difficult to directly compare Apple with Android when it comes to app revenue, so I have to say that I'm more interested in real life experiences there than general statistics.

Well, the entire point of even bringing up this comparison is to answer the question, why are so many developers prioritizing iOS releases over Android releases? I don't think it can possibly be because these people are "locked in" to Apple's proprietary ecosystem, as others have suggested. Given that most, if not all, of the financial comparisons I've seen between iOS and Android seem to heavily favor iOS as the more profitable platform, I've got to believe that this has something to do with it. Even if, by some strange magic, this differential happened to be untrue or inaccurate, developers at least seem to have the impression that they will make more money on iOS. Why would that be? Is Apple throwing money at the companies who run this analysis?

All I know is that, as long as Android development is possible on Macs (and it, indeed, very much is), Mac-based developers will never have to choose between iOS and Android. The platform problem would only explain why Windows-based developers are, perhaps, locked out of iOS development. It doesn't explain the opposite situation.

The reason why developers have historically prioritised iOS are: a) it came out first and created the market b) a lot of people made a lot of money at it... in the goldrush years. A goldrush is an appropriate description of the iOS market. and c) iOS is somewhat easier to code for, there being far, far fewer devices to support.

The Android market - just the reasonable phones which use Google Play - now dwarfs the iOS market, and the customers aren't the cheapasses they once were. The little birds tell me that iOS started to fall behind at about iOS 5 and I'm quite prepared to believe their figures. In fact just a few months ago we totally stopped targeting iOS for one of our game ports to concentrate on the Android version because it'll literally make about ten times the money.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org