18 ms·
Three years of Metal
- greatgib 6y agoHundred of lines to be proud of a shitty stack! Because all of that for not even be able to run on Linux...
- wltprgm 6y agoThey mentioned Vulkan and OpenGL but no sign of supporting Linux, anyone knows why at all?
- account42 6y agoA common trend I see is that game developers tend to target one platform after another instead of developing cross-platform from the start. This lowers the initial cost, but increases the additional cost for each platform as less of the previous implementation can be reused. This leads to thinks like the discarding Vulkan because it's somewhat harder than Metal for the macOS port and then having to still do the Vulkan work for Linux which may cost too much for the expected Linux sales even thoug the the difference between Metal and Vulkan might have easily been covered by the Linux income.
- pjmlp 6y agoTraditionally in the industry many studios focus on a specific platform and there are agencies whose whole business is to do ports. GNU/Linux just doesn't provide revenue to make it worthwhile. https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam https://store.steampowered.com/hwsurvey/Steam-Hardware-Softw...
- account42 6y agoNow that is a bleeding generalization. As long as Feral is in the Linux market we know that Linux ports can be profitable. There have also been developers that have provided sales numbers for their Linux ports and for many of them porting has been a success. Maybe that won't be the case for all games, but low market share does not tell you much. Remember that the platform-specific cost - even with rewriting the renderer - of a game will in most cases be dwarfed by design, voice acting, localisation, marketing, etc which all are already covered by the existing target platforms. Your assertion is also not well defined since "worthwile" could mean profitable (which will be the case for third-party porting companies) or more profitable than other development efforts.
- greatgib 6y agoMaybe my rant was a little bit too short . But to understand, one has to know that Roblox used to be working well enough on Linux through Wine. Then, up to the current day: "Roblox anti-cheat started detecting Wine and would force the game to quit." More details here: https://roblox.fandom.com/wiki/Roblox_on_Linux https://roblox.fandom.com/wiki/Roblox_on_Linux
- nexuist 6y agoI have been a ROBLOX player since 2009. The Linux anti-cheat began to be enforced because practically no-one used the Wine port for honest gameplay; it was almost always to do some kind of memory manipulation or for script kiddies to execute exploits. Not many people outside of the ecosystem are aware but ROBLOX was actually really late to the concept of dividing client and server responsibilities. It used to be that one client could actually propagate changes out to all the others; therefore if you could manipulate memory you could arbitrarily execute code (within the sandbox) on all other players. There used to be popular scripts like Person299's admin commands that could be injected into any server and allow the exploiter the ability to run chat commands like "kill/<user>" or "ban/<user>" (self explanatory). Only a few years ago did they introduce RemoteEvents and ServerScriptService which finally allowed developers to ensure some code could only execute server side, and properties like FilteringEnabled which blocked clients from propagating local game changes out to the server and everyone else. This broke hundreds of thousands of old games, which was probably why they held off, but nowadays any new games are using these new features to prevent easy exploitation like in the past. My guess is they have nothing against Linux now, because they have implemented proper security, but the only thing stopping them are the technical challenges, and there are not enough people in their target demographic who use Linux to make porting worthwhile.
- spdegabrielle 6y agoIs the existence of Metal a direct result of OPENGL failing to respond effectively to DirectX?
- akmarinov 6y agoI think the main reason for Apple to go with Metal was that OpenGL has a lot of legacy baggage that they didn't want to support with their custom hardware. And also being able to synergize hardware and software, which they love doing.
- greggman3 6y agoThere are arguably 3 equally valid reasons 1. You think you can do better whoever thinks they can do better and has the power to make it happen will. 2. To be able to control your own path Standards take forever to come to consensus. If you control it you can do whatever you want. 3. To lock developers into an API and therefore make it expensive to port. I'm sure there is plenty of software that would ship on more platforms if shipping on those other platforms was no work. This reason was brought up with Microsoft introduced DirectX. It's no different for Apple. I'm not saying either Microsoft or Apple are doing it for that reason but it's still a valid reason.
- simonh 6y agoI know I'm swimming against the tide on this, but I really don't think (3) is a significant factor. Apple knows very well that all the top tier games and graphics applications are going to be cross-platform. That's just a fact. They really can't afford to put significant road blocks in the way of getting those games and apps on to their platforms. That would be a massive foot gun. Also you can't with a straight face say on the one hand Metal makes is much easier to run an app or game across all Apple's platforms, and on the other argue it imposes an excessive cost on porting apps to their platforms. If I'm developing a top tier game and want to port it to MacOS and iOS, does Metal make it harder because it's different from the system on other platforms, which in reality were different enough in the OpenGL ES days anyway, or does it make it easier because I get access to all Apple's platforms in one go? It might make it harder in some very specific cases, but a lot easier in many others so it's really a wash.
- dwrodri 6y agoI'd really enjoy a detailed writeup on why the graphics industry has been so fragmented. I'm not a graphics programmer myself, but from the outside looking in, OpenGL looks like it has fallen victim to design-by-committee. If I had to guess, the "big" players want to propose changes to the API which are closely reflect ideal usage of their own hardware. This typically upsets another big player, so the compromise is that both changes get added to OpenGL and the users are caught in the crossfire. I think in an ideal world, Vulkan would have arrived years earlier and became the central standard that succeeded where OpenGL failed. However, Vulkan is the phoenix which arose from the ashes of AMD's Mantle API in the mid 2010s. Thus, Apple chose to do what Apple does best: eschew common standards for their own proprietary solution which only works for their platform. It seems they've made this gamble with graphics and their structuring their machine learning ecosystem to be quite similar. From a computer architect's point of view, seeing all of this diversity reminds me of the days of the console wars. Architects were willing to make crazy (at the time) design choices with their system architecture and developers were expected to learn how to leverage it to the best of their ability. Hopefully someone with more experience than I can comment on whether these educated guesses amount to anything.
- saagarjha 6y ago> Thus, Apple chose to do what Apple does best: eschew common standards for their own proprietary solution which only works for their platform. Note that Metal preceded Vulkan.
- robert_foss 6y agoActually, Vulkan was created by AMD (under the name Mantle) in 2013. Apple surely was aware of this, yet wanted to go their own way.
- pjmlp 6y agoWhen Mantle was created Vulkan wasn't in sight. Mantle became Vulkan when Khronos realized they weren't going to be able to deliver anything worthwhile using, and AMD gently gave Mantle to Khronos . Metal was already on their way when this decision took place.
- TonyTrapp 6y agoMaybe it's just me but when a write-up about a porting process keeps repeating "it was a breeze", "the results are great", and maintenance is "effortless" and not a single negative point or writing about something going wrong - it feels fishy to me. Maybe their API abstraction is really good, which could explain it - but there's hardly any words spent on that (and if that's the case, THAT would be absolutely worth writing about, and not a specific API itself).
- gigatexal 6y agoYeah. Stay in this industry long enough and you’ll realize that there’s no silver bullet API that is just magic and perfect. It’s good to be suspicious.
- WrtCdEvrydy 6y ago$10 says this guy got told by the developers it was a breeze so he'd leave them alone.
- simonh 6y agoForm the article: >I got the port that rendered most things in a suboptimal fashion running in about 10 hours in a single day, and spent two more weeks cleaning up the code... So the author is a developer. How do you want to transfer me the $10?
- WrtCdEvrydy 6y agoDamn, cashapp or paypal.
- simonh 6y agoIt's all good ;)
- auggierose 6y agoUsing Metal IS a breeze. Three years ago I had no experience whatsoever with GPU computing. I learnt it through Metal, and it was a great experience with very few hiccups.
- pjmlp 6y agoFor the TL;DR; crowd, > If you come from Direct3D or console world, you may take every single one of these for granted – trust me, in OpenGL every single one of these is unusual and is met with excitement, especially on mobile where you are used to dealing with occasionally broken drivers, no validation, no GPU debugger, no GPU profiler that is helpful, no ability to gather GPU scheduling data and being forced to work with a text-based shader language that each vendor has a slightly different parser for. This is the main pain point with any Khronos API, just doing paperwork for standards and then let the partners come up with something, which most of the time just don't.
- MrBuddyCasino 6y ago>> One other important aspect is Metal implementation is much simpler than a Vulkan one – more on that later – so in some sense I’d prefer a Metal -> Vulkan wrapper instead of a Vulkan -> Metal. Read this so often that it seems to be the consensus by now. I used to think "why doesn't Apple just hop on the Vulkan bandwagon and everyone will be happily united under one API", but given that Metal came before Vulkan, and it still has better DX, Apple was right. What excuse does Vulkan have being the second iteration on the same concept, but still be more tedious?
- auggierose 6y agoI guess because they reused Mantle, which was older.
- unsigner 6y agoIt's design by committee, and it is pulled apart by multiple different hardware vendors.
- coldtea 6y agoI've read the blog and got interested in Roblox (basically, WTF it is? A game company? A game engine? Something like Steam?). First, there's no clearly visible direct link to the company page from the blog (the logo doesn't take you there but to the start of the blog). Second, I removed "blog." to get to the main roblox.com page, and it's a form to sign up without saying WTF this is. The closest thing to this is an "About" page -- which is still so cryptic, I don't have any clear indication what they do. And I cared enough to go through this and read some of the About text. The average person landing on their page / blog wont care that much. P.S. I still don't know what they do. Looks like a game store. Or not.
- dindresto 6y agoIt's basically a game which people use as a basis for custom games. I never fully understood it either, but my little brother used to love it.
- m12k 6y agoYou are not in their audience, because you're not a (pre-)teen. It's a mobile 3D game which also serves as a kind of platform and hub for accessing user-created mini-games. If you think Second Life for kids, you're not too far off the mark. The recent hit Fall Guys bears more than a passing resemblance to a lot of Roblok's more popular mini-games.
- vaccinator 6y agoInstall Roblox studio, make a game and then publish it on Roblox... Then anyone can play it.
- phendrenad2 6y agoI suspect that Roblox enjoys being a product that gets new users by word-of-mouth, so they can slack on the web presence. And Roblox is a game that lets you also build levels, including surprisingly advanced programming, for other users to play. It's very popular with a constantly refreshing demographic of 13-20-somethings.
- singemonkey 6y agoMy 7 year old niece knows what Roblox is.