Mac OS X: Game Developer's Playground
Mauro Notarianni writes: "In the Stepwise article, 'Mac OS X: Game Developer's Playground,' Troy Stephens writes, "Mac OS X has the potential to be a superb launching pad for doing game development.'
The author describes how 'Cocoa's developer productivity benefits, when combined with Mac OS X's strong support for technologies such as OpenGL and QuickTime, can empower game developers to create the custom production tools they often need in a fraction of the programmer hours it takes on other platforms.'"
is getting all the companies writing in DirectX to start using OpenGL more often. Get some more of those damn cool PC games ported! Especially the MMORPGs!
I have just started developing with Cocoa and it's really great. The "Application Builder" works flawlessly together with the "Interface Builder". It's also easy to port your *nix programs to Mac OS X. I need to take a closer look on Objective-C though, since I don't feel like using Java.
Apple is also providing excellent documentation and tutorials.
Ciryon
PS. I am actually running Mac OS X on an old iMac G3 300Mhz with 64MB RAM. And it's not that slow actually!! The 10.1 update really speeds things up! Great work, Apple!
The article is talking about internal tools though - not the final shipping product, but all the little pre-production tools that get written along the way.
Since most of these are written on a pretty ad-hoc basis without any real design, a RAD approach does make a lot of sense.
-dair
Sorry, but maybe you should read the article before you comment it. The article talks about tools for games development, not the games themselves.
Don't forget GNUStep. Also , notice that NEXTSTEP's and Apple's and GNUStep's (and pretty much the defacto) Objective C compiler is gcc. So you're saying that Objective-C limits your platform to anywhere gcc is ported ! Thats not really what I would call a portablility issue !
Now if you had pointed out that making use of High level Cocoa classes would restrict you pretty much to Apple until GNUStep caught up then you might have had a point. But Objective-C ? gcc and GNUStep-Foundation look pretty damn portable (and Free) to me, mate.
-- Oh Well
You have to realize that the box you do your developement on and the target box for the game need not be the same architecture. Many stages of developement can be done on one machine and cross-compiled to the other. I haven't tried it yet, (probably never will because I really don't have the desire to write for windows), but it would be relatively easy to set up a developement environment in Linux that builds an executable for Windows, and to launch the program for testing over a Samba share on the Windows side. So doing the same from a Mac to Windows shouldn't be that difficult.
I'm the big fish in the big pond bitch.
...yes but if more people write great apps for MaxOS, then more people will buy Macs. And the new cool iMac is a great gaming platform. Something few comment on is that it's built in wireless networking (airport) mean you could play multi-player games via 802.11. (Assuming it is supported in the games of course.) It is these 'vertical market' applications that can transform a platform.
O'WONDERWe're working on it.
To protect my pathetic bandwidth on the local server, the article is also available here on the graphics server. That should cover off any bandwidth issues.
Troy's article really does highlight the use of these environments for tools behind the scene's.. there is an older article on this as well that is linked from Troy's document.
Scott AnguishStepwise
http://www.stepwise.com
but with macs holding <4% of the market it is not a viable playground...
I know that actually reading the article will just slow you down, but if you'd bothered, the emphasis was on developer. The guy was talking about how quick and easy it was to develop tools for his Playstation development on a Mac. Not about playing games on a Mac.
It might be easier to make money in the Mac market. Almost all PC games are available via warez channels seconds after official release. Mac games are very hard to find, which makes you buy games more often since it's not worth the time searching for something you want.
War is one of the most horrible things a human can be exposed to. And one of the worlds largest industries.
The article is mostly talking about building games, and the ability to create the tools to do so.
That said, think about the market for the "highend" gamers. You know...the %4 of us that actually buy a GeForce 3 when they first come out? Many such gamers would love to move off of Windows, especially the 98 variants. While Win2k helps a lot, in the end it's still Windows. Many are pushing for Linux to be the next great gaming OS, so much so that more then a few major game companies have already targeted it (even if not completely successful, ala Loki). Linux however, has a long, long way to go (to be very, very kind).
If all the "hot new games" start coming out for Mac (even if they also come out for Windows and/or Linux), it suddenly makes Mac an extremely attractive system for gamers. Gamers of course, being the only people who own a computer that are likely to actually buy a new one before 2030...
Now, if building games on Mac is easier, faster, and thus results in better games to market sooner...
If building a game under Mac implies open standards such as OpenGL instead of DirectX, thus enabling the game to target Mac, Windows, Linux, etc without nearly so much trouble...
The math becomes easy. Develop under Windows and we sell to say, 90% of the market. Develop our game under Mac and we sell to 100% of the market (5% Mac lets say another %5 Linux/Other)...AND we get to market faster AND our development is cheaper... The choice is clear, IMHO.
My
Sorry for the obvious plug but Crystal Space is an Open Source 3D Engine that runs fine on GNU/Linux, Windows, OS/2, BeOS, AND MacOS/X. The MacOS/X port is very alive and kicking. We also have support for OpenGL now (giving frame rates of 100 FPS or more).
Crystal Space is free (LGPL license) and written in C++. It is a 3D engine but more accuratelly it is a game development platform for 3D and isometric games.
Check it out at crystal.sourceforge.net.
Greetings,
Project Manager of Crystal Space (http://www.crystalspace3d.org). Support CS at http://tinyurl.com/cb3x4
It was a spiffy little language but these days you can do most of the same things with C++ using templates and the STL, and the C++ code will be much more type safe at compile time.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
You used to develop applications quickly in VB, now Cocoa has gone above and beyond, letting you build *good* applications quickly.
The problem is you're dealing with 2 completely different kinds of technologies. One is cross-platform and relatively "free", the other is held back by proprietary code (like most Apple "innovations"). Additionally, even with the new development tools, getting QuickTime to play nicely with OpenGL is a job within itself.
DirectX is no better in the proprietary code department, but at least you can setup a few function calls that will seemlessly pull together 3D graphics, video, sound and input routines that would work on a variety of PC hardware. I just wish that the "Direct-like" projects in Linux would be more ported to Windows, and that they supported more hardware-specific calls like pixel shaders.
The whole point to a good OS development platform is that you can use one platform to develop for ALL. The Mac "market share" BS does not apply in this discussion. If you disagree, try developing a Java or C++ app on Windows with ONLY the software provided in the retail or OEM release and get back to us. You can't. Mac OS X, as with any good *nix distro, contains a full suite of dev apps. Apple's are notable because they give you a full-featured IDE, not just the compilers.
Mac OS X contains EVERYTHING necessary to write for anything right now. And yes, its a new OS and Apple hasn't documented everything with crystal clarity, but this is the first OS I've noted with intraplatform compatibility not only at the desktop level, but the developer level as well.
/.
Vos teneo officium eram periculosus ut vos recipero is.
Yes, but the only people that care about upgradable video cards are YOU PEOPLE! The people that would buy the iMac are not the kind that sit and fret over what kind of video card they have, and what their FPS is in Quake 8. I know its been said before around here, but the iMac is not designed for you, the iMac is designed for people who want to check their e-mail, surf the web, play their MP3s, print their digital photos, (insert iApp here); all on a box that don't look like the big beige monster took a crap on their desk. (/Rant)
OK, glad I got that out of my system. Personally, I think OS X is the best thing since sliced bread (and maybe even cheese in a can!). The implementation of OpenGL is 3x what it is in Classic Mac OS. My Quake 2 (yes I'm a purist) framerates jumped 20 FPS just from switching to OS X. 60+ FPS on a 3 year old system on your Rage 128 makes me a happy little camper.
11 was a racehorse
12 was 12
1111 Race
12112
It seems that few of you read the article its self. The article suggests that Cocoa is ideal for designing custom tools since it is easier to make iterative changes to the tool. It is not saying that it is the best target platform to develop games for.
Mac's are also a good possiblity for console development (PS2, Gamecube). Especially since the compiler used is frequently based on GCC. OS-X's BSD core makes it easy enough to port the tools, and provides another alternative for those who are not intrested in using Linux or Cygwin based tools. However, since most of the art tools are used on NT/W2k boxes (Such as 3ds Max), it is probably simpler for the time being to stick to Windows based environments.
END COMMUNICATION
I thought the same thing, for a few days.. until I just bit the bullet and made myself go through the little tutorials, etc. Now I am hacking away on some low level NNTL libraries to write the news-reader of my dreams.
Cheers
We recently rewrote our game tranquility, originally for SGI, to run on OS X (100% rewrite, not a port). We selected OS X over MS because of two major reasons... (1) we hate MS and (2) we love UNIX. OS X gave us the ability to completely work around a shifting (and shifty) MS playing ground... and because OS X is based on a UNIX kernel, we felt that stability and capability were superior.
We were not wrong. OS X is a blast to write games for. While our game servers are SUN (though they could be MACs)... the client internet code was written on a SUN and compiled straight away, with no errors, on the MAC. This type of simplicity and uniformaty indeed make OS X a beauty to write for.
However... we also selected OpenGL as the clients drawing system, simply because it matched the needs of the game (which was originally written in SGI GL). Apple has yet to release its version of OpenGL in source form to developers. Releasing it would help developers to support it, increase its efficiency, as well as remove a couple of the remaining problems (it IS open source, after all, but Apple has made some changes within the code). Instead, Apple seems to prefer its game developers to use its alternative (and prop. platform)... which immediatly removes porting possibilities.
Furthermore, and sadly... Apple enjoys Objective C... which quite frankly I've never been able to properly sink my teeth into. Bastardizations of a standard language such as C, into deviants such as C++ and Objective C, do nothing good for anyone. It makes porting or even rewriting difficult... and obscures readability of the code. It also wastes development time in learning a new language.
My upshot? OS X is a WONDERFUL game platform, if you ignore Apples desires and stick to the UNIX layer and standard C, as much as possible, for your designs. Specialized tools, libraries and langauge only serve to make programming more difficult.
If computer costs really factor into your decision, you don't make a living coding.
My PC environment was easily over 5K when including a laptop (bought 3 months used to save $800 off the costs), a docking station at home and the office, Win2K, Off2K Pro, Visio Enterprise Edition, Text Editors that don't suck, etc.
We may switch the office over to Macs. The OS X experiment was promissing, but the platform isn't there yet. 6 Months? Hell yeah. We do PHP/Java development. The cost of the Windows machines don't even account for the hardware to have a Unix development environment to actually work in.
Alex
He actually talked about using Cocoa / OpenStep to rapidly develop a program so he could quickly and easily map the VRAM for the PSX game he was working on, instead of having to use paper and pencil. He talks about rapid application development, that leaves one with a complete program, not a hobbled together mess of copied code. He then goes on to talk about how he loaded in some of the C++ based graphics code related to the game they were using, so he could load the textures and arrange them as if his application was a PSX.
What the article is talking about is how to use OS X / cocoa to develop back end applications for game development. OS X can also run maya and lightwave, so you got 3D rendering stuff down also. One can also spend more time using OS X to get the over all look of a game finished (UI, networking, etc.) a lot faster (and cheaper) because of Cocoa, and then after finalizing the game behavior, porting it to the more expensive and timely operating systems, such as windows.
You need to read the article again; that's not at all what he's talking about.
The author described a particular problem he had while developing a PSX game -- mapping the limited VRAM was a pain. So he wanted to write an automated graphical utility to do it for him. Using OpenStep (aka Cocoa) it took about 2 days and saved his entire team man-months of tedious labor.
This wasn't about porting some random PSX game to Macs. It was about using the language at the heart of OS X to be more productive at whatever it is you're doing. As you recall, productivity was one of the main reasons for the computer revolution (along with communication and porn, but you get the idea).
The article is not a testimonial about OpenGL performance on the Mac, nor is it a crisicism of OpenGL performance on the Mac. :-) Neither is it an endorsement of Objective-C as the best language in which to write a performance-critical game engine. (For that purpose I would personally choose either a tight subset of C++ or an OO approach to structuring C code.)
The article is about the production process, and developing tools to aid in that process -- a domain in which I can say from experience that developer productivity is far more of a priority than getting every last drop of execution speed -- particularly if you can develop tools that will make a process more efficient for several artists/programmers: the efficiency of the development process then goes up in proportion to the number of people on the team who benefit. That's where Cocoa provides much needed leverage. Objective-C contributes to the efficiency of the development environment by being an appropriately flexible OO language for RAD. IMHO, as the article states & illustrates, it's very appropriate technology for the domain of custom application development. :-)
CousinChimpy
(Troy Stephens)