the market hungers to return to a programming paradigm in which the developer can interact much more DIRECTLY with the hardware without a bloated CPU bound OS or graphics API in the way.
Yeah, because all of us really want to go even more backwards in terms of having to deal with the BARE METAL (read: weird fucking behavior) of all of these cards. The current situation with OpenGL is far from ideal, but it's a damned sight better than having to rewrite my code all the time every time for each new device that comes out.
The last chunk of the article talks about the magical ~physics~ that this sort of thing will enable, because real-time raytracing is the the future right? Right? Guise?
If Apple does indeed end up ditching OpenGL (not that they were doing a great job of keeping up with the core API until recently, though they did keep new extensions rolling in steadily), it'd be more proof of them being shitty to engineers and the rest of the development community as a whole.
To be fair, the Metal API is a lot more straightforward then OpenGL, and OpenGL is far from being "write once run everywhere". Each OpenGL platform, GPU and driver comes with its own set of quirks and problems. I do not think that vendor-specific APIs are the right way, but the current OpenGL situation isn't that much different. I would have hoped that Apple shows some real progress on their OpenGL implementations instead of writing their own API though.
That's probably why Apple didn't announce Metal for the desktop.
With tight vertical integration with the hardware, and no contention for multiple apps/windows drawing to the screen, the iOS platform is ideal for this.
What I find fascinating, in general, is Apple's rise as a gaming powerhouse.
Take SpriteKit. It didn't exist until it was announced at WWDC 2013. Up until that point, the functionality offered by it was largely either hand-rolled by the developer, or achieved via framework (e.g., Cocos2D). I think Apple realized that they could capture more mind-share and confidence if they offered their own first-party framework offering.
Fast-forward a year later, and we have an enhanced SpriteKit (i.e., light sources, field forces, per-pixel physics, inverse kinematics), and of course the newly-announced SceneKit (3D scene rendering for casual games), Swift and Metal... all within a year!
With regard to Metal, Tim Sweeney had this to say after the Zen Garden app demo:
"There are thousands of objects being rendered here in a scene that we couldn't have dreamed of building, prior to Metal delivering a 10 fold increase in rendering efficiency. To have this level of graphics capability on iPhone and on iPad now is a stunning breakthrough. We're proud to have been a part of it. Of course, we'd love to share this with you, so as soon as iOS 8 is available, we'll be making Zen Garden available in the App Store for free."
Adopting Metal for reasons of extra performance is one thing. Completely eliminating OpenGL ES support from iOS has no excuse other than shutting off Android, so that would be a pretty nasty move from them. I hope they don't do it. Forget about Android users - it's iOS developers that should be crying foul if Apple intends to do that, as it will force them to live in an iOS-only world whether they like it or not.
"as it will force them to leave in an iOS-only world whether they like it or not."
I think you meant "live", but you could get leave to work in there as well. It would certainly take a lot to convince me to develop something for the iOS ... gated community.
Who said anything about completely eliminating OpenGL ES? SceneKit writes to OpenGL, OpenGL views are pervasive, WebGL is turned on in Safari, CALayers are OpenGL backed. Metal just lets you tweak the render pipeline.
From a company that funded Khronos for OpenGL ES and shared canvas/webkit with the world, this would be the wrong direction. WebGL success is largely hooked to OpenGL and its use on mobile as OGLES and WebGL are based on the same base spec. The OpenGL battle was just won with mobile, why replace that?
Agreed. I've been excited at the notion that OpenGL was becoming the de-facto low level graphics API (if you want any multi-platform compatibility), and then Apple throws this new thing out to re-fragment the market.
I'm actually surprised (after reading his bio) by this article. Did I completely miss the point of Metal? It sounded like more similar to low-level console platform APIs than to OpenGL or DirectX.
Which, realistically, is what Apple needs. The iOS platform is becoming one of the de-facto big players in the portable console market. Console-level APIs are a logical extension.
Insert speculation about Apple TV as Wii competitor here.
OpenGL is about two decades of amalgamations and mistakes that needed to be cut out of the working spec. And as a result we have more low-level APIs that are now vendor specific, such as Metal, AMD's Mantle, and so forth...
The downside is we're now at risk of losing an open standard API. OpenGL is bad, and yes, it needs to be retired. But without an mature alternative development costs will only grow.
All of this reeks of the worst kind of anti-competitive behavior and its time for an investigation.
Keep in mind, that Microsoft, Apple, Samsung, nVidia, AMD, Intel, will keep having support for OpenGL (ES or other versions). And it is still the simplest way to write code for multiple platforms at the same time.
Of course, each of them tries to "bind" you by offering some extra speed or features and make it hard for you to publish to other platforms. But at the end, I believe that OpenGL (ES ...) is the only thing that will survive :)
It is very much like client-side web apps. Adobe wants you to use Flash, so you would have to buy Adobe Flash. Microsoft wants you to use Silverlight, so you would have to buy Visual Studio. Oracle wants you to use Java, etc ... But at the end, Javascript remains. It is not prefect for everyone, but it is "open" and free to implement, free to develop without paying anything to anybody.
I might be way off here but the idea that metal et al have anything to do with enabling ray tracing seems absurd. The cards still are hardware optimized for triangle rasterization, the api doesn't change that.
Provocative title, but probably overstated. SceneKit uses OpenGL directly with shaders and deferred rendering. Metal seems likely to become more mainstream as engine developers adopt the tech, but there are going to be lots of developers who are overwhelmed with writing glsl shaders, let alone significantly altering the render pipeline.
This is tragic news. Instead of working on an open cross-platform solution, they create their own proprietary crap. This must die. Vote with your money.
[+] [-] angersock|11 years ago|reply
Yeah, because all of us really want to go even more backwards in terms of having to deal with the BARE METAL (read: weird fucking behavior) of all of these cards. The current situation with OpenGL is far from ideal, but it's a damned sight better than having to rewrite my code all the time every time for each new device that comes out.
The last chunk of the article talks about the magical ~physics~ that this sort of thing will enable, because real-time raytracing is the the future right? Right? Guise?
If Apple does indeed end up ditching OpenGL (not that they were doing a great job of keeping up with the core API until recently, though they did keep new extensions rolling in steadily), it'd be more proof of them being shitty to engineers and the rest of the development community as a whole.
[+] [-] flohofwoe|11 years ago|reply
[+] [-] United857|11 years ago|reply
With tight vertical integration with the hardware, and no contention for multiple apps/windows drawing to the screen, the iOS platform is ideal for this.
[+] [-] Arjuna|11 years ago|reply
Take SpriteKit. It didn't exist until it was announced at WWDC 2013. Up until that point, the functionality offered by it was largely either hand-rolled by the developer, or achieved via framework (e.g., Cocos2D). I think Apple realized that they could capture more mind-share and confidence if they offered their own first-party framework offering.
Fast-forward a year later, and we have an enhanced SpriteKit (i.e., light sources, field forces, per-pixel physics, inverse kinematics), and of course the newly-announced SceneKit (3D scene rendering for casual games), Swift and Metal... all within a year!
With regard to Metal, Tim Sweeney had this to say after the Zen Garden app demo:
"There are thousands of objects being rendered here in a scene that we couldn't have dreamed of building, prior to Metal delivering a 10 fold increase in rendering efficiency. To have this level of graphics capability on iPhone and on iPad now is a stunning breakthrough. We're proud to have been a part of it. Of course, we'd love to share this with you, so as soon as iOS 8 is available, we'll be making Zen Garden available in the App Store for free."
[+] [-] _random_|11 years ago|reply
[+] [-] m_eiman|11 years ago|reply
For Apple, pretty much all of them. SceneKit, SpriteKit, HealthKit, CloudKit, … The list is long.
[+] [-] leejoramo|11 years ago|reply
[+] [-] higherpurpose|11 years ago|reply
[+] [-] hga|11 years ago|reply
I think you meant "live", but you could get leave to work in there as well. It would certainly take a lot to convince me to develop something for the iOS ... gated community.
[+] [-] bradshaw1965|11 years ago|reply
[+] [-] drawkbox|11 years ago|reply
[+] [-] krisdol|11 years ago|reply
[+] [-] bluthru|11 years ago|reply
Is this really much different than programming for a console?
[+] [-] ctdonath|11 years ago|reply
[+] [-] jkrems|11 years ago|reply
[+] [-] Pxtl|11 years ago|reply
Insert speculation about Apple TV as Wii competitor here.
[+] [-] cek|11 years ago|reply
http://www.anandtech.com/show/8116/some-thoughts-on-apples-m...
https://ilikecode.wordpress.com/2014/06/03/what-impact-ios-m...
[+] [-] thrillgore|11 years ago|reply
The downside is we're now at risk of losing an open standard API. OpenGL is bad, and yes, it needs to be retired. But without an mature alternative development costs will only grow.
All of this reeks of the worst kind of anti-competitive behavior and its time for an investigation.
[+] [-] GioM|11 years ago|reply
[+] [-] _random_|11 years ago|reply
Agree, let me just grab my quantum physics engine and spin up my realtime ray-tracer and build a next hit game in a month.
[+] [-] fulafel|11 years ago|reply
[+] [-] IvanK_net|11 years ago|reply
Of course, each of them tries to "bind" you by offering some extra speed or features and make it hard for you to publish to other platforms. But at the end, I believe that OpenGL (ES ...) is the only thing that will survive :)
It is very much like client-side web apps. Adobe wants you to use Flash, so you would have to buy Adobe Flash. Microsoft wants you to use Silverlight, so you would have to buy Visual Studio. Oracle wants you to use Java, etc ... But at the end, Javascript remains. It is not prefect for everyone, but it is "open" and free to implement, free to develop without paying anything to anybody.
[+] [-] gfodor|11 years ago|reply
[+] [-] unknown|11 years ago|reply
[deleted]
[+] [-] stuaxo|11 years ago|reply
[+] [-] Vanayad|11 years ago|reply
[+] [-] bradshaw1965|11 years ago|reply
[+] [-] alex_duf|11 years ago|reply
[+] [-] freehunter|11 years ago|reply
[+] [-] Executor|11 years ago|reply
[+] [-] billjings|11 years ago|reply
[+] [-] dottrap|11 years ago|reply
[+] [-] mantrax5|11 years ago|reply
This is the reason Metal isn't introduced on Mac. They're waiting. Waiting until their Macs run on ARM.
I'm not saying it'll happen tomorrow. It may take a few years.
[+] [-] Argorak|11 years ago|reply
[+] [-] le_meta|11 years ago|reply
[deleted]