Jump to content

Mac OS X Misconceptions: A Developer's Attempt to Educate...


SyntheticFrost

Recommended Posts

Now I want to start this off by being clear here. This is NOT a troll thread. I am an active developer for BOTH Windows 7 and Mac OS X. I have a lot of years under my belt for both systems. I'm not here to outright bash Windows.

 

The simple truth is that most every cliche constantly repeated on the internet today about Mac OS X is either outdated, or was never true in the first place. Let's look at the one most people on this forum would think:

 

"OS X is behind Windows in gaming."

 

While this one still holds some validity, it's not so clear cut anymore. The current version of Mac OS X comes with the OpenGL 3.2 rendering engine. This is what every OS (including Linux) besides Windows uses to render their 3D games. And OS X's OpenGL 3.2 is the equivalent of Direct X 10.1.

 

To further this argument, Mac OS X will have OpenGL 4.2, the Direct X 11 equivalent BEFORE the next OS ships. And since Macs run the exact same Intel, AMD, and nVidia chips now, OS X isn't so far behind anymore.

 

While not directly connected, I feel I should point out that the iOS used on the iPad and iPhone is a stripped, cut-down version of OS X, and it's gaming scene is in full gear.

 

 

 

"Windows is better at 64-bit stuff than OS X."

 

I don't even know where this one came from. This one was never true.

 

I'll start by describing what exactly going 64-bit means. Going 64-bit DOESN'T means applications are faster. In fact the vast majority of 64-bit apps are SLOWER than their 32-bit cousins. The transition from 32-bit just added more lanes to the proverbial highway. The speed limit didn't change. There's just more lanes for all the traffic at the cost of requiring more memory to handle it.

 

But that also means developers now have to work harder at threading their apps.

 

One of the biggest performance bottlenecks in computing today is that apps that aren't threaded to use all the lanes a 64-bit computer offers often all try for the same lane. This is what causes the vast majority of the hiccups and hangs we experience when we click on things. the processes get backed up because they aren't smart enough to realize the lane next to them is empty.

 

But anyway, enough with the explanation.

 

To be blunt, Mac OS X had 64-bit support first. The IBM PowerPC G5's in the Power Mac and iMacs were released in 2002. The only competing chip Intel had at the time was the short lived server-grade Itanium. AMD was the second to get consumer-level 64-bit chips on the floor with it's Opteron and Athlon 64 CPUs.

 

It wasn't until 2004 that Intel jury-rigged the Pentium 4 with a 64-bit instruction set, and later released the Core series (which is an evolution of the Pentium 3, not the Pentium 4) in January of 2006.

 

The PowerPC G5 in the iMacs went pretty much unchallenged in terms of 64-bit competition for close to 5 years. However that was as far as IBM got for a long time, and the G5 stagnated. The 32-bit competitors had passed it in raw performance long before Apple finally decided to switch to intel in 2006.

 

_________

 

 

As far as the OS side of things, while it's true that Windows XP 64-bit was released in 2001, it ran 99.9% of everything in a 32-bit execution layer. It didn't even have a 64-bit kernel, and it only ran on the server-grade Itanium chips at the time.

 

Mac OS X 10.3 Panther, released in 2003 was the first consumer grade OS on the market to truly support a 64-bit instruction set. Later versions of OS X gained more and more 64-bit support over time, gaining basic 64-bit application support in Tiger, complete 64-bit app support in Leopard, and finally achieving full 64-bit support with 10.6 Snow Leopard's 64-bit kernel.

 

Windows Vista was Microsoft's first real foray into true 64-bit support on the consumer level, and Vista flopped because of a universal lack of 64-bit drivers to carry it, among other annoyances. To be fair, most all of Vista's failings were fixed, but it was a major blow that kept 64-bit Windows out of the majority of the consumer market until Windows 7 showed up.

 

The truth is OS X was running a more diverse range of 64-bit apps long before Windows. And 64-bit apps on OS X are quite a bit more evolved on OS X because of it.

 

Because OS X was running a 64-bit execution layer on top of it's 32-bit kernel with next to zero overhead, OS X was making full use of the PowerPC G5, and later the Intel Core series chips for years before Windows 7 got a decent hold of the 64-bit market. Developers were used to writing 64-bit apps by the time OS X finally got it's 64-bit kernel in 2009, the same year Windows 7 launched, and thus never had the set back Vista had.

 

Development on OS X is a lot more refined compared to Windows 7. Especially when it comes to the multi-threaded apps of the 64-bit era.

 

OS X has a threading library called Grand Central Dispatch.

 

http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/12

 

Currently, Windows 7 developers have to either manually thread their apps for the added lanes, or use the threading tools supplied with the game's engine. Mac OS X's GCD brings multi-threading to the OS level. Developers no longer have to manually thread their apps. At least not to that degree.

 

On OS X, Developers only have to tell the process what to do, not where to go. The OS can automatically decide where the process is going based on how many lanes are already active. It's a monumental leap, And Windows 7 has nothing like this, currently.

 

Though very little of this matters to SWTOR. The HeroEngine that SWTOR uses is single-threaded. It doesn't support multi-threading, let alone 64-bit capabilities.

 

OS X also boasts better memory handling. While it's true that OS X has a habit of needing slightly more RAM than Windows, OS X is much, much better about giving back the RAM it takes when an application is closed or left idle.

 

Windows is notorious for "eating" RAM. Failing to recycle RAM after a program is closed. And this RAM is lost until the next reboot. This rarely happens on OS X for the most part.

 

_________

 

 

"Windows is easier to make games for"

 

If you read the full OS X review posted above, along with its predecessor OS X 10.5 review, you'd see that OS X actually has a whole lot of things under the hood such as Grand Central Dispatch, DTrace, a kernel debugger much more advanced than the debugger used for the Windows 7 kernel, and a host of other things that make OS X a net gain over Windows in terms of developing tools.

 

OS X is just plain easier to develop for because the tools are straight up nicer.

 

Anyone who's tinkered with iPhone development will tell you that with all the App Store restrictions aside, the iPhone is FUN to develop for. Well, the iOS is a stripped down OS X. All the tools you know and love are right here.

 

It's not easier. Windows just happens to be the dominant OS, but if you haven't noticed, it's market share is rapidly decreasing. There's a reason for that.

 

________

 

 

Now, I'm not here to say "Windows 7 sux!". In fact, I LIKE the new development tools they're previewing for Windows 8, and the Windows 7 APIs are a lot, lot nicer than they have been in the past. Windows 7 is a decent OS. But it's not the best. Not anymore.

 

All I ask is that you give this a proper read before you start trolling.

 

 

 

Further Reading:

 

http://arstechnica.com/apple/reviews/2007/10/mac-os-x-10-5.ars

 

http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars

 

http://en.wikipedia.org/wiki/64-bit

Edited by SyntheticFrost
Link to comment
Share on other sites

To me its all about Market share mate. Honestly I dont care which is better on a personal level. the Issue is that OSX only holds around 10%* of the total PC Market, while Windows holds around 85%* of the Market. It simply makes more sence to write for the Majority.

 

*Estimates based on a quick internet search

Link to comment
Share on other sites

Ok. I read it. I can even concede you might be right. So what? Why is this on a gaming forum? You don't talk about games at all, never mind SWTOR. This should be on some fancy developer blog where people might care.

 

True. But I did mention this...

 

...Though very little of this matters to SWTOR. The HeroEngine that SWTOR uses is single-threaded. It doesn't support multi-threading, let alone 64-bit capabilities.
Link to comment
Share on other sites

Thanks for writing this. I'm indifferent on the PC/Mac debate because I own a PC I built for gaming and a macbook I bought for work, but man do I know nothing about development at all. It was really interesting to read your perspective and it was written in a very easy-to-follow manner.
Link to comment
Share on other sites

Thanks for writing this. I'm indifferent on the PC/Mac debate because I own a PC I built for gaming and a macbook I bought for work, but man do I know nothing about development at all. It was really interesting to read your perspective and it was written in a very easy-to-follow manner.

 

Thanks. If you have any more questions, don't hesitate to ask. All I wanted from posting this was for people to stop and actually start questioning "why?" and "how does it really work?"

Link to comment
Share on other sites

To me its all about Market share mate. Honestly I dont care which is better on a personal level. the Issue is that OSX only holds around 10%* of the total PC Market, while Windows holds around 85%* of the Market. It simply makes more sence to write for the Majority.

 

*Estimates based on a quick internet search

 

What is more users.... Windows, or both Windows and Mac? People assume it costs a fortune to make a Mac version when it just simply does not... Mac support for SWTOR has nothing to do with whether or not its profitable to do so... of course it is, or Bioware and EA wouldn't have released so many Mac games.... it comes down to personal bias in the management staff, as well as using a customized HeroEngine that was made for Windows only.... and that its been under development for a long time.. stated back when it was less sure of a good choice to go with a Mac version. They made a choice and stuck with it... and are in a good position to take a "wait and see" approach at the moment. If they do not actually release a Mac version in the next 6 to 12 months.. then I'd be more apt to believe its just stupidity on the part of decision makers at Bioware working on the game. Sure WoW had Mac support from day 1, but they also had a lot of very experienced Mac programmers on staff and Bioware does not... they pretty much only outsource ports, and most of their recent mac versions have been Cider ports (which is basically just running the Windows version anyways)

Link to comment
Share on other sites

You need developers familiar with the strange non portable mess called Objective C. You can write most of the game in C++, but if you want to keep it portable (and you really want to), you cannot really take advantage of any of the "good" features of Mac OS/iOS.

 

And you need to use Apple's IDE Xcode. The latest version is the most messy IDE I have seen in a long long time, designed by a lunatic with window fobia, and coded by a bunch of inbred monkeys (judging from its frequent crashes, horrible performance and barely working debuggers). The first somewhat advanced "text editor" with recommended specs of 8GB RAM and SSD for somewhat enjoyable experience (until memory leaks catch up even with that amount of memory). :rolleyes:

 

And so on an on. Apple support for developers is miles behind Microsoft, it will take them years...if ever, to catch up.

 

To put it simply, the best thing about modern Macs is that you can run Windows on them.

Edited by Riulassher
Link to comment
Share on other sites

You know what the problem is with Macs?

Apple and with that comes their OS and policy.

 

A mac uses the same components as a PC, there is no difference between them aside from that you have one type of mac and many customized PC's.

How ever the OS for the Mac is optimized for macs only that's why it tends to run smoother.

Windows 7 supports more and the price you pay is that it's a bit slower.

If apple would support as much as windows then macs would run into similar issues since it is impossible to optimize your OS in such a way.

 

Point is You can legally buy windows 7 for your mac and dual boot and with that you can play the games, this will cost you money instead of the developer.

 

What a mac user should understand is that a gaming company isn't interested in spending their recourses because Apple wants to keep 100% control.

Who should adept?

The game developers to the small market, Apple to the game developers or the users by using windows 7 in dual boot?

 

 

Stating that the macs OS is both false and true.

 

Yes it is better for what it's specialized to do, gaming isn't one of these things.

You pay for Apples support,design and the OS.

But if you run windows 7 on a mac you basically run windows 7 on a slower machine for which you paid nearly double.

Edited by TheHauntingBard
Link to comment
Share on other sites

Also there is Kinect...:rolleyes:

 

SWTOR with kinect hahaha, I can see it already.

People raging because it isn't working half of the time wile they standing in front of their PC making the same slash move for a good two hours.

 

Even better the Sony move as your light saber.

Edited by TheHauntingBard
Link to comment
Share on other sites

You need developers familiar with the strange non portable mess called Objective C. You can write most of the game in C++, but if you want to keep it portable (and you really want to), you cannot really take advantage of any of the "good" features of Mac OS/iOS.

 

And you need to use Apple's IDE Xcode. The latest version is the most messy IDE I have seen in a long long time, designed by a lunatic with window fobia, and coded by a bunch of inbred monkeys (judging from its frequent crashes, horrible performance and barely working debuggers). The first somewhat advanced "text editor" with recommended specs of 8GB RAM and SSD for somewhat enjoyable experience (until memory leaks catch up even with that amount of memory). :rolleyes:

 

And so on an on. Apple support for developers is miles behind Microsoft, it will take them years...if ever, to catch up.

 

To put it simply, the best thing about modern Macs is that you can run Windows on them.

 

I completely agree with you on this. I do Windows, Mac, iOS, and web dev for a living, and for a long time now. I use a variety of tools from Eclipse to Visual Studio to Xcode to Flash and nothing compares to the experience of Visual Studio. I've seen visual studio and Microsoft mature since the bad days of Windows 3 and used Symantec's C compiler on the Mac. Microsoft has learned how to treat their developers over the years. That being said, I do my Windows dev from a Mac Book Pro running VMWare :D I love my OS X.

 

To the OP. 64 bit has nothing to do with threading. It's basically the amount of memory you can push through a register and typically ends up being the default size of an integer. As for threading be easier to program for the Mac it's not true either. You still need to handle data synchronization. All Grand Central lets you do is use other processor cores for computation, like your GPU. You still need to architect your app to allow parallel processing. This is not so easy especially for apps that have a UI.

Link to comment
Share on other sites

What a mac user should understand is that a gaming company isn't interested in spending their recourses because Apple wants to keep 100% control.

That's yet another misconception. Apple's only control is via their App Stores (Mac and iOS). Mac developers can still sell from their own sites, or many other web stores, or even physical boxes through retail. All distribution methods have their costs, just like Apple's 30% cut. But judging by all the (non-MMO) games going through the Mac App Store, from the likes of Ubisoft, EA, BioWare, Rockstar, 2K, it must be worth it.

 

As for iOS (iPhone/iPad), yes it's effectively the platform's only store but, Apple is still a *ton* less restrictive than consoles. And with iPad being the fastest growing game platform (according to EA's CEO), that's a win-win for developers. (And, imho, the lack of a need of anti-malware scanners, and lack of articles proclaiming "472% increase in Android malware this quarter" certainly speaks for itself.)

 

Who should adapt? The game developers to the small market, Apple to the game developers or the users by using windows 7 in dual boot?

Macs apparently don't have the numbers to encourage Mac-only development, but porting from Windows to Mac has gotten much less expensive. Even when Macs were 2% and non-Intel, big games requiring long ports would still turn a good profit. Now even small devs and indies are porting to Mac, and the market has more than doubled.

 

Apple definitely should put more resources into developer relations. No argument there. $99/yr is a bargain, but most developers would pay more to get more, and the platform would benefit. As far as Xcode, I admit it made me sad after sessions with IntelliJ IDEA (my personal fave IDE ever), but it's getting better. For example, storyboarding looks nifty, and clang and ARC are significant advances.

 

Lastly, Boot Camp. It's basically like having Windows users dual-boot Linux (if Linux cost at least $100). Sure, most of us could do it, and many semi-technical would try it if motivated enough, but no sane company would base a business off of it. In fact, more developers are porting to Mac OS, with product after product, over 5 years after Boot Camp should have (at least according to many on these forums) killed off the Mac OS games market.

Edited by ArkhamNative
Link to comment
Share on other sites

×
×
  • Create New...