Hacker News new | ask | show | jobs
by aras_p 4324 days ago
> What is the deal with software being hard to release as 64-bit?

(disclaimer: I work at Unity)

It is a button toggle problem, if the code does not do nasty things (like casting between a pointer and a 4-byte-integer -> all works until pointers are not 4 bytes). Or if a code depends on, for example, inline assembly (VisualC++ remove that in 64 bit). Or if the code generates code at runtime, for example JavaScript engines - for 64 bit they need to generate different code.

In Unity's case, the biggest holdup, of all things, was WebKit (used for asset store window & some other things). Turns out, there's no 64 bit webkit for Windows (or there wasn't a while ago). We had to replace Webkit with Gecko, which was quite involved task.

1 comments

On OS X switching from 32 to 64 bit also means no longer being able to use many Carbon APIs.

I would imagine that cross platform software is more likely to use the Carbon APIs because they are procedural and often a bit more low-level than the “modern” Cocoa equivalents.

From what I've seen, I think Unity draws the UI non-natively, using it's own UI system, but I could be wrong. I'm basing this simply on the fact that it looks exactly the same on OSX/Windows.

I actually like their UI quite a lot (as a programmer), and love the fact that the Editor can be extended while it's working.

Correct - we draw all the UI ourselves. Yet, we did indeed have a lot of dependencies on Carbon APIs for all sorts of different things like handling rendering into windows or fullscreen contexts, getting images from WebCams, input, etc. We had to rewrite quite a bit of that code to move to 64-bit. A problem with that is that often the replacement APIs have only been introduced in more recent OS X versions (which have always been trying to keep long backward compatibility with old systems), which means that in several places we had a choice of maintaining two separate code paths or dropping functionality in 32-bit. Or releasing 64-bit versions later when we could safely drop backwards compatibility with old OS X versions. This was not the biggest reason for us to take long to support 64-bit, but it was one.