Hi All, I figured as long as we were talking about this subject
again, I might as well throw another idea out there :-P I think my
partner and I have a mountain of work ahead of us. We are done with
some big projects, but, I keep hitting this:
Apple is getting pretty adamant about this whole deprecation thing.
I ran into this because I am working on a standard sound loader, that
will take ogg vorbis or mp3 blocks, say 1024 bytes at a time, and
loop them in a sound channel (because I got messages from several
people saying that we can't rely on MoviesTask() for unstuttered
playback). It will take me a few hours to make I guess, since I have
code to load any file into a SndCommand right now.
The dilemma is, even in 2007, I am just getting started with parts of
Carbon that Apple considers obsolete. Do I drop what I am doing and
use Core Audio? I don't know. We have years invested in the Carbon
sound manager, so switching is nontrivial. The task is almost as big
as porting to, say, windoze. And this is perhaps 5 or 10% of our
engine.
I don't know how many people are in this same boat, but maybe it's
time to start an open source project, say OpenCarbon or OpenCharcoal
or something so we don't get sued. Basically it would be Carbon
wrappers over Cocoa, basically like what happened with Quesa, where
they made a Quickdraw 3D wrapper over OpenGL:
Except this would preserve Carbon. We'd include OpenCarbon.framework
instead of Carbon.framework. For now, we can just forward any Carbon
APIs that haven't been deprecated yet, and build wrappers for
everything else, with the eventual goal of building
OpenCarbon.framework without Carbon.framework. While we are at it,
we would make Carbon wrappers over the windoze APIs, so Carbon apps
could be ported more easily to PC and double the market for Mac games.
For now it would be game-oriented, so would have basic windows and
menus, input devices, full screen, sound, etc, but would leave
printing/applescript/controls, things of that nature for later.
Now I suppose this might seem like a bit of a waste of time, but the
truth is, my partner and I have to do this anyway. IMHO, wrapping an
API can often be easier than rewriting existing code. Our engine
does everything the average shareware game will ever need, and
honestly more, and I can visualize how to wrap the Carbon functions
we need. So the challenge is not as big as it seems, if the focus is
narrowed to just getting one of our games to run on the new
framework, which would most likely get many other games within reach
of running also. We could also include methods to expose the
underlying Cocoa objects so that people would have a path to migrate
to Cocoa in the future, which Apple has failed to provide, except for
rare instances like DMGetDisplayIDByGDevice(), CreateCGContextForPort
(), QDBeginCGContext(), etc.
And maybe Carbon is a dead technology. Honestly though, I haven't
felt compelled to switch to Cocoa. It's an alright API I guess, but
it feels to me like something written by Sun or hp or something. In
other words, it doesn't feel like a natural extension of Carbon and
the Mac, but more like, a different environment altogether. That's
fine for the next generation of programmers, but it's always felt to
me that Carbon was being dumped due to political reasons, not
technical ones, and that's not something that motivates me to throw
away something I built with my bare hands over the last decade. Why
should I do all this work to get what I already have? The answer is,
I shouldn't. And neither should anyone else.
The $64,000 question is, how will this project be supported? I'm
happy to set up a template that forwards Carbon, and even work on a
few APIs here and there, but it will take several thousand hours to
make a library like this. It would be nice to have a little funding,
either donation based, or a front to provide "support" for the
library at $100 a pop or something. What we need is something like:
Except more for underwriting and donating, not loans. Like, people
could commit to donating, say, $20, and the transaction wouldn't
happen until some minimum was reached, say $5,000. Does anyone have
any experience with this sort of thing? Is there a possibility of
Apple funding this project at a large savings over doing it in-house
(kind of like outsourcing), or at the very least providing matching
funds? They could have their cake and eat it too by finally being
able to deprecate Carbon and move on, without alienating their
developer base.
Well, lemme know what you think :)
------------------------------------------------------------------------
Zack Morris Z Sculpt Entertainment This Space
email@hidden http://www.zsculpt.com For Rent
------------------------------------------------------------------------
If the doors of perception were cleansed, everything would appear to man
as it is, infinite. -William Blake, The Marriage of Heaven and Hell
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Mac-games-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden