These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

Macintosh

 
  • Topic is locked indefinitely.
 

Native Mac App

Author
Chromite Amora
Caldari Provisions
Caldari State
#1 - 2014-02-06 14:56:18 UTC
It's well known that Eve for Mac is just a wrapped Windows version. I do not know much about coding or porting games to different platforms but wouldn't it be relatively cheap for CCP to hire a small team of Mac developers to build a true native Mac version? The source code is already written so wouldn't it be fairly easy to just rewrite the game for OSX?

Feedback from anyone who knows about developing and coding is welcome to educate me on this.
Mercrutio en Daire
The Miners Club
#2 - 2014-02-06 23:25:44 UTC
I can't tell you anything about the actual code for EVE, but I gather that the game is written using DirectX. DirectX is from Microsoft who intentionally keep it exclusive to Windows. Their intent is to force anyone interested in using a program written with DirectX (i.e. EVE) to migrate to Windows.

On some level it would be possible to rewrite EVE using OpenGL (which is just about the only competitor to DirectX, is free, and is much better in every measurable way). This would allow a version of EVE to be compiled for any operating system, assuming there aren't any other Windows exclusive libraries lurking about. However, it is highly impractical.

First, OpenGL programming is very different from DirectX. All of the programmers would have to be retrained, and any in-house coding standards would have to be rewritten. That's probably enough reason to not do it right there, considering the time and money lost. And no, it isn't feasible to maintain a different version for Windows using DirectX and everybody else using OpenGL, as there would inevitably be an issue where one library would have no issue rendering something, and the code simply couldn't be written to do the same thing using the other library.

Second, it isn't a trivial job to reprogram. The graphics calls are deep in a game as complex as this. I haven't a clue what the source for EVE is written in, although I can guess it's a derivative of C or somesuch. Regardless, the entire rendering loop would have to be rewritten, which would be a major overhaul in a perfectly maintained/modular source. Given the length of time EVE has been around and the amount of complexity, I'm guessing it isn't ideal. In other words, I would guess between 75% and 85% of the code would have to be rewritten from the ground up.

Trust me, I wish it would happen as much as anybody, but don't expect it.
Marsan
#3 - 2014-02-07 00:13:32 UTC
I doubt it's as bad as that as DirectX, and OpenGL have a lot in common. Basically you stub out the directx calls, and reimpliment the calls in opengl. Then you debug the issues that are caused by that. Then you fix the performance issues. Then you QA it. Release an alpha. Fix all the bug that only happen on customer's configs..... It's not really hard per say. It just takes a very long time.

Former forum cheerleader CCP, now just a grumpy small portion of the community.

Chromite Amora
Caldari Provisions
Caldari State
#4 - 2014-02-07 00:35:39 UTC
Thanks for the replies. Sounds like it's another Flash vs HTML5 type deal. Straight
Zan Shiro
Doomheim
#5 - 2014-02-07 05:58:03 UTC
Chromite Amora wrote:
Thanks for the replies. Sounds like it's another Flash vs HTML5 type deal. Straight



bit more complicated than that.

To be a pure native mac ap it be conversion to cocoa. As a cocoa developed app pulls on the features of the mac os more in depth.


Even for "simpler" apps this is complicated. I know of text editors for a more simplistic example that don't do this. its why many windows to mac os apps (not games...normal stuff) use cross platform tricks like QT platforms. While its not the wrapper most know and hate (I will admit its better) its still not mac app in the purest sense. Some do this passably...others it jsut goes to crap fast.
Marsan
#6 - 2014-02-07 16:31:20 UTC
Ouch conversion to cocoa that's a whole other ball of wax/rat hole, but not really needed. A lot of the mac stability issues would go away with an opengl eve client compiled with some sort of a wrapper to interact with which ever OS it was running on. Sadly that's never going to happen until the day that CCP sees a gaming platform they want to port the Eve client to. That platform is not Macs, and Linux Desktop. Both Macs, and Linux Desktops are stagnant. Meanwhile the PC desktop is in decline. What is increasing is IOS, Andriod, and ChromeOS which aren't able to run even our hypothetical Opengl client currently. Maybe if the steambox takes off in a big way or Google pulls some 180 with Chrome OS native apps CCP will port things to OpenGL.


PS- Honestly I think CCP would be better off supporting a given release of wine on Macs than the current client. As my roommate has a macbook which he runs eve on and he has more stability issues than my Linux laptop. (Outside occasional outright breakage of wine in Eve.)

Former forum cheerleader CCP, now just a grumpy small portion of the community.

Vincent Athena
Photosynth
#7 - 2014-02-07 23:43:52 UTC
One thing to consider is the wrapper translates the DirectX calls to OpenGL on the fly. This would seem to imply that for every DirectX call made by the client there is an (sequence of) OpenGL calls that do the same task. That could be the starting point for an OpenGL client.

Know a Frozen fan? Check this out

Frozen fanfiction

Mercrutio en Daire
The Miners Club
#8 - 2014-02-09 09:44:16 UTC
In regards to the Mac versus Linux:

The only computer I can reasonably use for running EVE is a 13" Mid-2010 Macbook Pro. It isn't antiquated by any means, but it's getting older. Moreover, it wasn't really meant for gaming in the first place.

I have the current version of OSX (Mavericks? I don't memorize the names...) on here, and it runs well. When I went to install EVE though, things got bad. It was working for a while, but it ran sluggishly, even when on the absolute minimum graphics settings. And a few days ago it just stopped. I ran into issue after issue.

Finally, I decided to clean up the Linux partition I put on here and give it a go. It was almost a year out of date, so I opted to simply reformat the partition and start over, but after a clean Ubuntu min install and lxfe over the top, EVE ran in wine without a hiccup. I had to fight with the drivers to get the touchpad to work the way I prefer, but other than that it's been perfect. EVE now runs smoothly on medium graphics settings.

I find great irony in running a DirectX based program with decent graphics on out of date Apple hardware running the Linux kernel. Maybe that's just me.
Sulindra
Aliastra
Gallente Federation
#9 - 2014-02-11 13:27:21 UTC
Zan Shiro wrote:
Chromite Amora wrote:
Thanks for the replies. Sounds like it's another Flash vs HTML5 type deal. Straight



bit more complicated than that.

To be a pure native mac ap it be conversion to cocoa. As a cocoa developed app pulls on the features of the mac os more in depth.


Even for "simpler" apps this is complicated. I know of text editors for a more simplistic example that don't do this. its why many windows to mac os apps (not games...normal stuff) use cross platform tricks like QT platforms. While its not the wrapper most know and hate (I will admit its better) its still not mac app in the purest sense. Some do this passably...others it jsut goes to crap fast.


Does not have to be Obj-C(i.e. cocoa) to be native mac. It could be C/C++ and compile on the mac to be a native Mac app. Objective-C is just another language to compile against. If it can compile natively on the mac then it is native. So C/C++ or any other compiled on the mac to make a native executable is a native mac app, it's just not taking advantage of the all the objective-c stuff that Apple provides to developers to make app development fit in seamlessly with the rest of the look and feel of os x.
Tomaszewski
Sebiestor Tribe
Minmatar Republic
#10 - 2014-02-17 02:32:57 UTC
Chromite Amora wrote:
It's well known that Eve for Mac is just a wrapped Windows version.


No joke, there are actual DLL files in the 'Eve Online.app' folder. Actually whats funny is the directory structure:

/Applications/EVE Online.app/.....c_drive/windows/system32/ddraw.dll

(maybe only funny to me)

so you literally have Windows DLL's running on your mac. All of this is actually being done by what it looks like to be a stripped down on Wine. If you fire up Eve on your mac, you will see a process named 'wine server' running.

So the gaming experience just blows! This Mac App is nothing short of disgusting!!!!

ALTHOUGH from a programmatic standpoint, they are literally mixing Unix, Python, DirectX, Cocaa, Objective-C and Wine together to form a playable game... which is wickedly insane, but quite an astonishing feat that the game actually works as it does.
Dersen Lowery
The Scope
#11 - 2014-02-17 04:12:17 UTC  |  Edited by: Dersen Lowery
I'm not sure why it's such an obscure fact that OS X ships, and has always shipped, with an up-to-date Python environment (Python was first developed on a Mac, for Pete's sake!). Also, that Python is perfectly capable of calling into both Objective-C and the Cocoa libraries.

The hangup is OpenGL, which CCP is presently unwilling to commit to learning so that they rewrite all their graphics code. That's... unfortunate for us, and for our Linux brethren, but I can certainly sympathize.

Proud founder and member of the Belligerent Desirables.

I voted in CSM X!

Tomaszewski
Sebiestor Tribe
Minmatar Republic
#12 - 2014-02-18 14:43:32 UTC  |  Edited by: Tomaszewski
Dersen Lowery wrote:
I'm not sure why it's such an obscure fact that OS X ships, and has always shipped, with an up-to-date Python environment (Python was first developed on a Mac, for Pete's sake!). Also, that Python is perfectly capable of calling into both Objective-C and the Cocoa libraries.


I am unsure of the purpose of this statement.

Dersen Lowery wrote:
The hangup is OpenGL, which CCP is presently unwilling to commit to learning so that they rewrite all their graphics code. That's... unfortunate for us, and for our Linux brethren, but I can certainly sympathize.


I don't think it's learning is the problem. You hire a team of people who actually know the framework and know how to code for OS X. This means setting up a whole new project, Dev team, QA team, etc. Unless you want to play the learning game, but then you are just shooting yourself in the foot because you are taking resources away from the Windows version, etc.
Darryn Lowe
Sebiestor Tribe
Minmatar Republic
#13 - 2014-02-22 02:46:31 UTC  |  Edited by: Darryn Lowe
I'm in two frames of mind about this.

As a Mac user I want/need a Mac client this is not in question. However I know that making an OpenGL version isn't going to be easy or quick.

That being said there are MANY good reasons to do an OpenGL version.


  • Open to more platforms - Windows, Mac, Linux, Playstation, XBox
  • More platforms equals more money
  • More platforms would actually require LESS coding. Think about it. Python is pretty much on all platforms like OpenGL. Any coding for platforms would be very minimal.
  • Clients would run full speed on all platforms as there would be no performance hit from emulation
  • People would see PCs are actually crap for gaming Twisted


Given the fact that people are leaving desktops/laptops for more mobile devices having an iOS client would be awesome as well. But while the PC platform is reducing the Mac platform is also increasing and so is the Linux platform so denying a platform because of a current lack of people is removing your future user base.

I suspect CCP knows this which might be why they are making the 10.8 minimum spec change.
JP Nakamura
Union of Intergalactic Miners and Nano Assemblers
#14 - 2014-02-24 15:22:37 UTC
Darryn Lowe wrote:
I'm in two frames of mind about this.

As a Mac user I want/need a Mac client this is not in question. However I know that making an OpenGL version isn't going to be easy or quick.

That being said there are MANY good reasons to do an OpenGL version.


  • Open to more platforms - Windows, Mac, Linux, Playstation, XBox
  • More platforms equals more money
  • More platforms would actually require LESS coding. Think about it. Python is pretty much on all platforms like OpenGL. Any coding for platforms would be very minimal.
  • Clients would run full speed on all platforms as there would be no performance hit from emulation
  • People would see PCs are actually crap for gaming Twisted


Given the fact that people are leaving desktops/laptops for more mobile devices having an iOS client would be awesome as well. But while the PC platform is reducing the Mac platform is also increasing and so is the Linux platform so denying a platform because of a current lack of people is removing your future user base.

I suspect CCP knows this which might be why they are making the 10.8 minimum spec change.


I agree with all of the reasons an OpenGL client would be better however I think there is too much institutional investment to expect CCP to jump ship (just yet). When EVE first came out, I imagine they used DirectX, and have since updated the code once before, and are currently in the process of upgrading to DirectX 11. I very much doubt that just as they are in the process of implementing support for DirectX 11 they decide to reimplement for OpenGL. I would however hope that once they finish the current round of graphics updating, they take a step back and look at how much OpenGL has matured, and how transitioning to OpenGL could provide an equally bling-worthy client, while simultaneously supporting multiple OSes natively.

The current bump in OSX requirements probably has more to do with a new rev of wrapper from cedega based not he new WINE which in and of itself supposedly will be a huge boost in performance.

I'm still holding out hope for a native OSX client, but I'm not expecting it for another 5-10 years or so.

CCP: 10+ years of Harvesting players Tears  (latest efforts being Source Limited Edition, and Alliance Logo Revised Policies)

Dersen Lowery
The Scope
#15 - 2014-02-24 18:08:52 UTC
Tomaszewski wrote:
Dersen Lowery wrote:
I'm not sure why it's such an obscure fact that OS X ships, and has always shipped, with an up-to-date Python environment (Python was first developed on a Mac, for Pete's sake!). Also, that Python is perfectly capable of calling into both Objective-C and the Cocoa libraries.


I am unsure of the purpose of this statement.


There's confusion about Python being an obstacle to a native Mac client. It's not an obstacle. It's never been an obstacle.

Tomaszewski wrote:
I don't think it's learning is the problem. You hire a team of people who actually know the framework and know how to code for OS X. This means setting up a whole new project, Dev team, QA team, etc. Unless you want to play the learning game, but then you are just shooting yourself in the foot because you are taking resources away from the Windows version, etc.


That's certainly one way to do it. I'm sure it's common, but I'm not convinced that it's the best way, especially not once the initial hurdle of writing the OpenGL layer is cleared.

Either way you're "taking resources away from the Windows version," because it costs money to hire the whole new team and set up the whole new project. Alternatively, you beef up your existing teams with people who are familiar with OpenGL, and they go from working on Direct3D to working on Direct3D and OpenGL. If all the graphics guys are comfortable with both APIs, they have a better sense of how to design and implement assets in a way that works well for both. After the initial pain of ramping up and writing the OpenGL layer, it would be fairly painless. EVE is already factored to be graphics API agnostic, so that part's done.

Besides, the more developers CCP has who are fluent in multiple platforms, the easier it will be for them to adapt and react to the (rapidly!) changing landscape.

Proud founder and member of the Belligerent Desirables.

I voted in CSM X!

JP Nakamura
Union of Intergalactic Miners and Nano Assemblers
#16 - 2014-02-27 00:21:33 UTC
Lets hope the rumors of Dust on SteamBox is true, since that would push CCP for more in house Cross platform APIs.

CCP: 10+ years of Harvesting players Tears  (latest efforts being Source Limited Edition, and Alliance Logo Revised Policies)