Apple announces new graphics API: Metal

[quote=“Rayvolution,post:59,topic:49208”]
Metal leaves people no more “locked in” than they were before.

[quote=“TifantaWorld,post:61,topic:49208”]

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?)

Oh: and like I said in that other thread. All of these Apple moves are going to benefit all us since they’re going to be pumping even more cash into LLVM development.

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.

Cas :slight_smile:

That works for me. Kill off OpenGL in it’s current form and give me a portable thing for the next five years. Then kill that and so forth.

It’s just irritating after years of the sheer sense and convenience of having an open standard world+dog is trying to foist proprietary standards on us again. It’s like 3dfx never happened. Sheesh.

Cas :slight_smile:

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.

No, not on opening Metal itself, but developing an open API standard that embodies the general techniques used by Metal. Possibly with a bit more of a nod towards where less specialist hardware is.

Cas :slight_smile:

Making Metal to specific hardware is where they can get performance. Tiled deferred renderer with hidden surface removal combined with high resolutions make the platform performance characteristic really different and special. If you get control of fast on chip memory within tile you can do lot of stuff that would not be possible otherwise. http://www.geomerics.com/wp-content/uploads/2014/03/SIGGRAPH-2013-SamMartinEtAl-Challenges.pdf

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.

Cas :slight_smile:

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.
[/quote]
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.
[/quote]
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.
[/quote]
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.

Cas :slight_smile:

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).

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.

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.

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.

[quote=“princec,post:75,topic:49208”]
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?

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.

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.