I wish to write games for osx, I have reasonable knowledge about most of the technologies involved except .net.
Does Unity force me to use .net? Can I use cocoa/objective c for game logic instead?
I really do not have the time nor patience to learn .net and wish to avoid doing so if at all possible.
While unity is based on .net or more specifically mono, you don’t have to deal with mono all that much. Unity offers three language choices: C#, Javascript, and Boo. There isn’t all that much difference between the three functionally. Some differences in how things are declared etc. It’s really the Unity APIs that do all the work. They are incredibly well documented. If you have a good background in C, C++ or the like it shouldn’t take any time at all to get into it.
Do it anyway. You don’t have to learn it all, just the parts you need, which probably won’t be much. I’d guess, from reading the forums the last couple of years, is mostly what people learn from .net is just the String class, followed by I/O functions if you want to read and write files. That’s probably about it for most people.
But I presume its possible to integrate with osx? say I have an Cocoa array contact names that I wish to pass to Unity? There must be some kind of communication possibilities, in which case surely I could write much of the logic in objective c, and only use javascript for manipulation of Unity API. Am I on the right lines?
You could do something like this I think (not sure) but you would have to pay extra for plugin support. It’s really easy to migrate over to Unity JavaScript tho. Just grab up the demo and hit the APIs.
Well, sort of…you can write plugins like that if you have Unity Pro, but they’re not cross-platform, and not intended for general game logic, but for adding specialized features that can’t be done any other way. 99.9% of the time you’d want to do all scripting in Unity, which is a lot easier than Objective-C anyway.