Hello!

Hello!
My name's Jos and I just came 'round to see what's happening here...

Short bio:
If been writing and making music for about a decade now and started a studying Music & Technology in 2008 (at the Utrecht School of the Arts). Since there's a big focus on software development within that study and a lot of opportunities there to combine my work with games designers I started to pick up my old hobby since childhood (the good old Logo-days), programming...

I plan to make entertaining games and test my skills in audio-design, so I can eventually develop myself into programming audio-software also.

My 1st question:
I can say I really got the basics in hand for C and C++. But what the hell... I'm still working in this stupid Xcode-console window or in Terminal. I made some text/number-based games but how do I get out of Xcode? I want to make real OSX-apps!

I read a LOT on the internet about SDL, OpenGL, Carbon, Cocoa, Qt, GLUT, Stem and even did some reading on the id Tech engines (just for fun). But it all still comes down to this IMO weird combination of Objective-C and C++.

So what's your opinion, what are your tips 'n tricks?

PS: It's a pain for me to get SDL running in Xcode 4 without the templates libsdl.org provided normally for earlier versions.

To get started on making native OS X GUI applications, you'll probably want to learn about Cocoa and Apple's way of doing things. This might be a good starting point. Whichever one of those APIs you choose, though, you'll learn a lot of concepts that are applicable to all of the others, so if you start running into limitations, it's not too big a deal to switch to a different framework.

If you want to make real Mac apps, then Cocoa is the way to go. If for now you just want to do games, you can do that and almost completely avoid having to use Obj-C and Cocoa if you want. Roughly speaking, the standard approach will involve some Obj-C/Cocoa to setup your main window, maybe handle some file stuff, etc, but you can really write the rest of the entire game in C or C++ if you want, which makes it nicely cross platform if that's important to you.

Another question is how dirty you want to get your hands. For instance, if you wanted to do 2D games and aren't shy of learning Obj-C, you could hop on the Cocos2d bandwagon and never have to learn the nitty gritty details of OpenGL.

If you're in it for the long haul with general purpose app building in mind but a current focus on gaming, you can't go wrong with learning Obj-C and OpenGL. It's a steep learning curve, but there's tons of help along the way, and the skills apply to both applications and games.

Well, let's see... My main goal is -I think- to make really unique audio/instrument-software from scratch. But a good instrument a musician can perform with needs a smashing User Interface with a lot of information. I believe much of this can be reached through some killer 2D/3D-graphics. And it would be also great to mix AI with music "composing". I would say game programming is a perfect learning school for this part of business.

But above all I find it just very awesome to create something fun (which does not run in a Unix-terminal) to give to my friends and on the internet. Also game-journalism is a big passion of mine. Because, let's be honest, all the great stuff (music, literature, design, arts) meet each other in a AAA game right?
Oh, and about the technical stuff...

Since portability is not the most important for me right now, you say to get myself some Obj-C skills now, right? I really can do some stuff in C. And since Obj-C is more a superset of C than C++... Maybe I should begin reading this Objective-C book I got lying around.

I got this nephew who is a software dev in the US. (I'm from Holland) But he's a real C#/Microsoft Windows kinda guy... So no news there...