Mailing Lists: Apple Mailing Lists
Image of Mac OS face in stamp
OpenCarbon (was: Apple and Gaming: being constructive)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

OpenCarbon (was: Apple and Gaming: being constructive)



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:

http://www.devworld.apple.com/documentation/QuickTime/INMAC/SOUND/ tp_snd33_snd33add.17.htm

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:

http://www.quesa.org

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:

http://www.prosper.com

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


References: 
 >RE: Apple and Gaming: being constructive (From: Nabil Maynard <email@hidden>)
 >Re: Apple and Gaming: being constructive (From: Geoff Stahl <email@hidden>)
 >Re: Apple and Gaming: being constructive (From: Jean-Francois Roy <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2011 Apple Inc. All rights reserved.