Quartz Composition Translation/Compilation/Anything Else

mindoftea's picture

Hi,

I am an independent computer programmer working on a game based in Quartz. I had planned to submit it to Apple as an iPad app, but you can probably imagine my expression when I had coded 4500 patches, and then discovered that my source for thinking that Quartz Composer was supported on the iPhone/iPad OS was false...

So what I would like to do is translate my Quartz Composition into an iPhone/iPad OS compatible language such as Cocoa and/or OpenGL. Is there any easy way to do this, or must it be done manually? My time is pretty much free.

Advice of any kind would be greatly appreciated.

Thanks, mindoftea

gtoledo3's picture
Re: Quartz Composition Translation/Compilation/Anything Else

Manually re-implement using different frameworks, which probably won't do what you want in quite the same way (or maybe, not as well).

Arggh. A function that should be there already. So obvious, it hurts.

cybero's picture
Re: Quartz Composition Translation/Compilation/Anything Else

Cocoa & OpenGL ES, pretty much manual all told.

If you look at the more like this links at the bottom of this thread that should point you further in the right sort of direction.

As it happens your question prompted me to look at my site's content referring to this question and I found one page set with contradictory content, so thanks for forcing me to thoroughly update that page set.

I hope that wasn't the source that misdirected you.

mindoftea's picture
Re: Quartz Composition Translation/Compilation/Anything Else

Thank you both very much for your advice. Considering the size of my program and the difficulties of translating it, I have decided to give up the iPad idea and instead publish it as a Mac OSX dashboard widget. I've hit a bit of snag, though because I don't know how to include Kineme plugins (in the case the spooky patch) within a dashboard widget. Is there any way to do this easily?

dust's picture
Re: Quartz Composition Translation/Compilation/Anything Else

that sucks you did all this work in qc to build a game for the ipad. as of right now you found that it isn't possible, but maybe in the near future. time will fix this problem. unfortunately for now you will have to recode everything. little by little the iphone sdk is getting things that are in qc like with ios4 acceleration framework and open gles 2.0 specification lets you now use glsl shaders like in qc.

honestly making something like a sprite for the ipad isn't a easy as it is in qc. there are how however some projects out there making things easier for iphone ipad programing like cocos2d, unity3d, and openFrameworks. these projects abstractly put a layer on top of opengl es making it easier to rapidly program. if you are familiar with quartz core and core animation in cocoa then programing a simple game for the iphone shouldn't be to hard.

i suggest unity3d for any 3d 1st person shooter types of games all though after watching some wwdc 2010 movies there is a lot of stuff you can do with just UIKit in reference to game programming.

as per your dashboard widget your going to have to make an installer that will install the appropriate plugin in needed with your distribution. you may want to consult kineme as im not sure about the license agreements they have with there plugins in regards to distribution. a simple web page with instructions on how to download and install the plugin from kineme may be all that is required but it is possible to build a packaged installer that will put the plug where it needs to go. i suggest maybe buying quartz builder as it wraps the plugins up in the bundle for distribution automatically.

cybero's picture
Re: Quartz Composition Translation/Compilation/Anything Else

As far as I'm aware, if you are wanting to use 3rd party plugins with a Dashboard widget then they will have to be preinstalled, unless you have licensing permission to distribute an installer , which you'd have to create without the direct use of the Dashboard deployment .

I wonder if one could deploy a Quartz Composer plugin as a bespoke XCode widget plugin. Dashcode, otherwise does not read the Quartz Composer plugin as an installable / importable resource. However, it is easy enough to simply create a Dashcode application using a composition that entails 3rd party plugins. See the rough and ready example attached .

I can't comment as to efficacy of the Spooky patch, though there are those [dust, toneburst spring immediately to mind] who love the 'wireless' transmission of data between compositions and no doubt both compositions could [I'm guessing here] be run in the same widget.

Regards 3rd party plugins see the attached project. It's just a working proof of concept. It was built to use GL Tools and is also rendering a Mesh, if you aren't running 10.6, just open the .qtz and re-save and you'll never get told that you are lacking the Mesh Renderer again :-)

PreviewAttachmentSize
TrackBallGLStructure.zip1.56 MB

cybero's picture
Re: Quartz Composition Translation/Compilation/Anything Else

Forgot about Unity, dust, deffo a good call for getting OpenGL ES versions of games going, and bang on target about the bundling of installable plugins.

Of course the actual plugins can't be bundled in Dashcode at all in quite the same way as one can directly bundle together plugins in Quartz Builder.

The example I've attached above, for instance, requires that the GL Tools plugin is already installed, but thereafter the example widget runs AOK.

dust's picture
Re: Quartz Composition Translation/Compilation/Anything Else

i think with k core you can enable plugins to work with dashcode. at least i was able to get my apple script plugin working in dashcode. once the plugin has been enabled to be used with dashcode your all good just disregard the screen that says un safe and build anyways.

mindoftea's picture
Re: Quartz Composition Translation/Compilation/Anything Else

Wow, that would be great, thanks!

mindoftea's picture
Re: Quartz Composition Translation/Compilation/Anything Else

Ok, after some experimenting, I was able to use the built in OSC patches to replace the function of the spooky plugin. I know it's not exactly what they were intended for, but it works, so is there any reason I shouldn't use it? Thank you all.