View Full Version : OpenGL on the Mac - vindicated at last!
princec
12-11-2003, 03:58 AM
A quick scan through the logs since the MacOS release shows me a failure rate of about 1% for MacOS users (and who knows why, as there appears to be nothing unusual about the failed ones).
Overall, seeing as Mac downloads are absolutely staggering - I get about 1 a minute at the moment since the release yesterday - the failure rate has plummeted to 10%.
So - you can see, there is a method to my madness, and OpenGL has turned out to be a wise choice of API in the end - for me. I'll be sticking with OpenGL for the foreseeable future, with absolutely no plans to move to DirectX.
Also, my use of Java seems to have been vindicated as well. The Mac users already have Java installed with their OS, and Mac Java performs excellently. I just have a few issues to make the Webstart version for Mac work properly but I can't sort that out until I actually own a Mac which ain't going to happen any time soon. (Hey, and how about that - I wrote a game for 3 platforms but have only actually seen one of them)
(I must say I don't really count Linux users, they're just there for kudos, as they're tightwads in general)
This means the next game I develop will run on all three platforms for zero - and I mean zero - effort. Have a think about that! Most developers spend several weeks getting their stuff to work on the Mac, and several more weeks getting it to run under Linux. I've got a whole new market for nothing! You know it makes business sense :D
Cas :)
Justiciar
12-11-2003, 04:43 AM
Originally posted by princec
A quick scan through the logs since the MacOS release shows me a failure rate of about 1% for MacOS users (and who knows why, as there appears to be nothing unusual about the failed ones).
Overall, seeing as Mac downloads are absolutely staggering - I get about 1 a minute at the moment since the release yesterday - the failure rate has plummeted to 10%.
Failure rate? Of games being able to be played? What was the rate before you released for Mac?
Originally posted by princec
This means the next game I develop will run on all three platforms for zero - and I mean zero - effort. Have a think about that! Most developers spend several weeks getting their stuff to work on the Mac, and several more weeks getting it to run under Linux. I've got a whole new market for nothing! You know it makes business sense
I agree with you about the good business sense, and being able to target multiple platforms. Java is my 2nd choice for doing dev work, with C++ being, uh, like 15th or something (do I even know 15 languages? hmm...)
So, making a guess, you did your engine in java, and your graphics through the OpenGL libraries?
Anthony
Siebharinn
12-11-2003, 05:21 AM
What percentage of your sales were for Macs? Do you have any way of tracking that?
princec
12-11-2003, 05:26 AM
The failure rate on Windows is 35%. The Mac failure rate has crept up a tiny bit, to 5%. Pat gets the same problems with his entirely ordinary PTK games so we must assume that 5% of users really do something very strange to make a game not work. Maybe a desktop enhancer, he says. Who knows?
And yes, you'd be right that it's Java and OpenGL. I always knew it would be a winning combination :)
Sales == 0 of course, but that's the curse of Alien Flux. It's tracked in exactly the same way as the Windows version (being, of course, exactly the same code).
Cas :)
patrox
12-11-2003, 05:44 AM
Yes, we have these weird problems too. We got complete user reports and hardware profiles that we sent to ATI, and they can't reproduce the problems on the exact same computers, they have no clue either. Might be some sort of antivirus, desktop enhancer or something.
pat.
gilzu
12-11-2003, 06:14 AM
Goose Chase uses DX, but i thought you'd like to hear this one.
I had a client who had problem with Device initialization. the device just couldn't be initialized. it was found, verified for every feature, system was ok but couldn't be initialized.
then, before making another possible patch, i get an email from him that Zone Labs Security (aka zone alarm) was interfering with the loading and now it works. Needless to say that Goose Chase doesn't contact anything on the net, and that about 70% of the computer i tested it were using zone alarm (including my own).
ggambett
12-11-2003, 06:46 AM
Originally posted by princec
The failure rate on Windows is 35%.
[...]
And yes, you'd be right that it's Java and OpenGL. I always knew it would be a winning combination :)
[...]
Sales == 0 of course, but that's the curse of Alien Flux.
Don't you think your three statements are somehow related?
I still can't understand how can you say "the failure rate on Windows is 35%" and "Java and OpenGL is the right technology" in the same post! Multiple personality? :) For me, if 35% of the people who download the game can't even run it, it's clearly not the right technology!
I want my games to be portable, too (Win32 + Mac + Linux), and I've assumed that the right way to do it is with a 3D abstraction layer using OpenGL in Mac and Linux and Direct3D in Windows. Period.
princec
12-11-2003, 06:57 AM
Have you ever considered that the failure rate of Direct3D fresh-install-XP machines might actually be considerably higher than you think? I don't think I've ever had a retail game that ran under D3D without first having to install new drivers. Of course, they tend to come with the drivers on the CD. But you get my drift?
Without logs, you can't tell me one way or the other...
I wish someone doing a D3D game would get some stats together so we can put an end to the speculation.
Cas :)
Siebharinn
12-11-2003, 07:39 AM
- princec -
Have you ever considered that the failure rate of Direct3D fresh-install-XP machines might actually be considerably higher than you think?
I'll bet you lunch that the failure rate for D3D on a fresh-install machine is lower than the failure rate for OpenGL on the same machine. At least with DirectX, you might get the correct drivers right off the bat.
princec
12-11-2003, 07:46 AM
I'm almost certain to lose lunch over that one - what I'm asking is for the percentage difference, not who the winner is. If box-fresh Windows machines only have working D3D drivers on 80% of installs then it's really a no-brainer, for me - with the zero-effort Mac and Linux support. Most people in here truly have no understanding just how difficult a cross-platform abstraction layer actually is to get right, especially once you start doing cleverer 3D stuff.
Cas :)
Siebharinn
12-11-2003, 08:12 AM
I guess I don't see your point. If D3D is only on 80% of machines, then what is a no brainer?
gilzu
12-11-2003, 08:14 AM
Cas,
you're missing the point here.
the point isn't who's better, the point is that you have a game which doesn't work on 35% of the installed computers.
I'm not suggestion OpenGL is bad, i'm suggesting that the 35% failiure is (REALLY) bad. It could be that you're doing something wrong with the code since its really not like OpenGL not to work at this kind of precentage.
anyway, when it comes to the bottom line, the costumer wont buy a game that doesnt work on his machine. By your figures, youre losing more than 35% (more due to the word of mouth).
princec
12-11-2003, 08:35 AM
No, we're absolutely certain we're doing OpenGL 100% correctly. 35% of machines don't come with drivers, which is what we are detecting. Absolutely no-one has had a failure from any other reason apart from sadly owners of laptops with ATI 128s in which have no working drivers. Fortunately they are very rare.
What I'm saying is, until somebody shows me that Direct3D has a hugely better success rate, it's not worth me supporting as I'm getting another couple of markets - one of which is equal in size to the PC market in its own strange way - for no effort. My own suspicion is that Direct3D fails 20% of the time. It's a slight improvement but not by much. In the balance of things, I don't think it will be worth me ever supporting Direct3D.
A perspective to put on this: Digital Eel's latest two games will likewise fail on 35% of machines that try it. As will any other OpenGL game. There are a lot of them about. Are they doing so badly?
Cas :)
Jeff Greenberg
12-11-2003, 09:03 AM
No, we're absolutely certain we're doing OpenGL 100% correctly. 35% of machines don't come with drivers, which is what we are detecting.
<snip>
My own suspicion is that Direct3D fails 20% of the time. It's a slight improvement but not by much.
Make sure you take into account not only the absolute difference in failure rates (which would be 15% by your estimation), but the relative difference as well....
If we go with the figures of 20% failure for D3D and 35% failure for OpenGL, that means the failure rate for OpenGL is almost TWICE the failure rate for D3D, or nearly a 100% difference. Hardly a "slight" improvement.
I'm not saying I have any info on D3D that would support the 20% figure, but by your own estimation you are excluding quite a few potential buyers.
princec
12-11-2003, 09:06 AM
Well, we might be -- were it not for the fact we're targeting much less casual game players than, say, most of the devs here in Dex. It's probable that we're not losing 35% of sales as I suspect that the kinds of people with no GL drivers aren't the kinds of people that pay for games like Alien Flux, or our forthcoming titles.
But still - c'mon, somebody do some D3D logging and lets get some numbers on it. It'd be funny if it was 35% failure for D3D as well :)
<edit>And it's worth saying here that the difference between 1% and 2% is also 100%; you should only really be looking at the success rate change: 80/65 is only a 23% increase in success, not 100%.
Cas :)
Dan MacDonald
12-11-2003, 09:52 AM
Originally posted by princec
This means the next game I develop will run on all three platforms for zero - and I mean zero - effort.
Sounds like a job for PTK!!! ;)
Cross platform, and you get to use C++!
Fenix Down
12-11-2003, 09:56 AM
Originally posted by princec
This means the next game I develop will run on all three platforms for zero - and I mean zero - effort. Have a think about that! Most developers spend several weeks getting their stuff to work on the Mac, and several more weeks getting it to run under Linux. I've got a whole new market for nothing! You know it makes business sense :D
You do realize that C++ itself is 100% portable right? When you combine that with a cross platform library like SDL (as I'm doing right now) which also gives you FREE access (you seem to like to use that term :)) to OpenGL FYI, you should have almost no problems porting to MAC or Linux (or Unix). Yes, it's not 0 effort because you may have a few compiler hickups, and you have to incorporate the SDL endian conversion functions into a few places in your code to port to MAC (can someone give me ONE good reason why PCs and MACs don't use the same endian system?). Still, it might be more like a few days than several weeks (I'll let you know when I actually do it. And that'll be when I get a MAC. And that'll be I have no idea when :)). I doubt it would take more than a few hours at most to port to Linux because I've done that once before. It would probably take me more time to install SDL and remember how to use KDevelop than to actually port the code. :)
Last time I did it the only major issue I had with Linux was that I use ASCII files to store stuff like animation data, and windows tacks on \r\n to the end of a line. Linux only uses \n so all my text files ended up with \r at the end of each line (when opened in Linux). I had to write string cleaning function to remove the \r. But I don't see how Java would be able to save me in that respect. Anyway, good luck with your stuff. I just wanted to defend C++ a little, since you like to push Java so much. :) I personally don't have anything against the Java language itself, I like it actually. But the bulkiness of Java and its not-so-great gamedev support + OpenGL issues (in windows) weigh too much against it in my eyes.
princec
12-11-2003, 09:59 AM
Ah, but you need 3 compilers and 3 operating systems handy...
Cas :)
patrox
12-11-2003, 10:18 AM
with lwlgl too ;) :rolleyes: ( i really don't know who said java was multiplatform , what's his name ? :D )
pat.
ggambett
12-11-2003, 10:19 AM
Originally posted by princec
Ah, but you need 3 compilers and 3 operating systems handy...
Mr.io Software
Cross-Compiling games from Linux to Windows since 2003 (TM)
:D
Hint : MinGW
Seriously, Cas... if you're happy with that 35% failure rate, that's OK with me, I just wanted to help... you just seem to enjoy being unsuccessful, rejecting every piece of advice before considering it.
princec
12-11-2003, 10:23 AM
You appear to have mistaken me for a brilliant programmer :D
If I was clever enough and not so lazy, I'd have written the game in C++, and used DirectX, and maybe even an abstraction layer. But I'm not clever enough, and I am lazy, so that's that :P
Cas :)
BitBoy
12-11-2003, 10:59 AM
Originally posted by princec
Well, we might be -- were it not for the fact we're targeting much less casual game players than, say, most of the devs here in Dex. It's probable that we're not losing 35% of sales as I suspect that the kinds of people with no GL drivers aren't the kinds of people that pay for games like Alien Flux, or our forthcoming titles.
Aren't you missing something here. You only get statistics (by "phoning home") from the people that actually download and install your game, which I suppose are the people that are interested in action shooters (i.e. less casual games). Doesn't that mean that the failure rate among the demographic that you're targeting is indeed 35%?
I assume here that people with no interest in action games don't download Alien Flux, which (to me) seems like a valid assumption...
princec
12-11-2003, 11:14 AM
There's arcade games, and there's arcade games, isn't there?
Look at the various action titles on download.com under the "arcade" category (which I already know is a pretty poor distribution point for many games from my conversion rates analysis). They vary all the way from hopelessly pathetic wastes of time to isometric 3d death fests.
But... it doesn't matter, I've got tons of Mac downloads, so I don't care :P
Cas :)
princec,
Considering the fact that Microsoft is discontinuing it's support for Java starting next month, that 35% could actually start rising as time goes on!
Also, regarding your homemade sound effects, I haven't played a recent version, so maybe they are better than you describe, but there are tons of sites that offer royalty free sounds very cheaply. Not that mine are the best, but I got all of my sounds, including music, for less than $70. Just a suggestion :-)
princec
12-12-2003, 09:16 AM
We've never used the MSVM, only Sun Java. Which you may be interested to know will be shipped on approx 50% of all new machines next year thanks to Sun's incredible marketing and distribution efforts with Dell, HP, IBM, etc. And not forgetting it's already present on all OSX Macs now too.
And even if it isn't shipped, we ship with a special cut down VM, or have the option to natively compile our code (which actually makes it slightly faster and smaller to download too, but it's a big hassle).
Cas :)
patrox
12-12-2003, 09:41 AM
Don't forget that java will also ship on microwaves and washing machine soon, people will be able to play AF while they do their laundry!
pat.
:D
princec
12-12-2003, 10:17 AM
Play deathmatch vs. the toaster!
It'll kick your ass, and burn an image of the weather forecast on your muffins!
Cas :)
elias
12-12-2003, 12:40 PM
Not to forget that linux actually begins to have excellent mac-like java support. SUSE 9 includes the latest SUN JRE and preconfigured JWS support in the browsers.
- elias
princec
12-12-2003, 12:54 PM
Bugger Linux users! In the last 900 logs I've had (since 1 December) only 3 were Linux, and 1 of them was you anyway!
And talking of which, we must make Webstart work with LWJGL on the Mac. Urgently.
Cas :)
Siebharinn
12-12-2003, 01:54 PM
- princec -
And talking of which, we must make Webstart work with LWJGL on the Mac. Urgently
What happened to zero effort cross-platform deployment?!?
<ducks>
Dan MacDonald
12-12-2003, 02:19 PM
<throws stale pizza crust at Sibeharinn>
Fire Starter! ;)
princec
12-12-2003, 02:27 PM
Webstart's the icing on the cake. And it's probably going to be Elias' or Pat's problem :P
Cas :)
bernie
12-16-2003, 06:55 AM
princec, your main problem is not opengl. It's Java. Your game still doesn't run on my computer.
patrox
12-16-2003, 07:42 AM
I think the main problem is the .... controls :D
pat.
princec
12-17-2003, 02:47 AM
*sigh* no, the problem is not Java, it's OpenGL. Send me your log files and I'll hunt through them for clues :/ I reckon we can get it working. What card have you got etc etc.?
Cas :)
patrox
12-17-2003, 04:17 AM
Well openGL is not a problem as a matter of fact, i've been selling more alien flux affiliates than any other affiliate games i placed on my site ( and i have some that run on p133 win95 ... ) guess what ? it's not all about convertion ratio, it's also about the volumes of downloads :)
1% of 100 downloads vs 0.5% of 2000 downloads ?
which one would you pick ?
pat.
bernie
12-17-2003, 10:04 PM
It worked when it was alpha. Then the release stopped working. Probably it is regional settings in windoze. In hungarian we use decimal coma and not decimal point. We write the date with points not slashes, etc, etc. :)
Unfortunately the default msvcrt.dll handles this wrong, too. :(
princec
12-18-2003, 02:16 AM
AF is 100% regionalized. You can type your name in in Greek if you feel like it, so I don't think that's the problem. I suspect broken GL drivers. Send logs!
Cas :)
svero
12-18-2003, 02:59 AM
Well I'm not sure OpenGL and java really represent much benefit in terms of cross platforming over c++ and directdraw. Obviously directdraw is not well supported on mac (or is it?) but for my engine the stuff that's os specific is like 10 functions at a very low level.
It was a bit more effort to port the engine to mac due to the use of other windows specific classes, but the engine wasn't originally written with portability in mind and we didn't absolutely need to use those classes. We just chose to thinking it unlikely when we started that we'd be porting.
I plan to release all our games for Mac sometime over the next few months. A lot of the work has been done already. And of course going forward it will be very low effort to get new stuff running with the cross platform lib already in place. In fact the way things are designed it would be pretty easy to support opengl on the windows platform as well if there was some benefit I could see.
Siebharinn
12-18-2003, 03:38 AM
Cas, could you post a top ten list of driver problems that you've been seeing? I'm using Torque, which is OpenGL based, and your 35% failure rate really has me concerned.
princec
12-18-2003, 03:42 AM
1. No drivers installed (95%)
2. Ancient bit of shit hardware with useless drivers (3dfx, older S3) (4.9%)
3. Actual broken drivers with no fix available from manufacturer (ATI 128 Mobility shipped with a whole load of laptops) 0.1%
Nearly all problems can be fixed with a simple download.
Cas :)
patrox
12-18-2003, 04:35 AM
All you have to do is tell your downloaders :)
People can't figure it out by themselves.
if ( nodrivers( ) ) MessageBox( "Install the dribers, etc... please" ) ;
Does the trick.
pat.
gilzu
12-18-2003, 05:31 AM
Originally posted by patrox
All you have to do is tell your downloaders :)
People can't figure it out by themselves.
if ( nodrivers( ) ) MessageBox( "Install the dribers, etc... please" ) ;
Does the trick.
pat.
why not go a step further with a dialog box saying:
"It seems that you don't have the latest OpenGL drivers that are needed to run the game, would you like to download them?"
and a yes/no where yes sends you to the dl page.
patrox
12-18-2003, 06:02 AM
That's already what we do ;) and we event went farther than that...
pat.
princec
12-18-2003, 06:49 AM
For windows XP anyway. I don't know how to determine what card is present in 98, ME, or 2K yet that doesn't rely on complex APIs (eg. DX8). It's just a case of looking in the registry.
Cas :)
Nick Bischoff
12-22-2003, 05:52 AM
Originally posted by patrox
I think the main problem is the .... controls :D
pat.
I really did laugh out loud.