When the media companies finally get their way and Joe and Jane Sixpack can no longer freely re-watch "It's a Wonderful Life" to their heart's desire every holiday season, there will be outrage. Angry mob: "Hey! Where are those digital rights we gave you to manage? We want them back!"
Jimmy Stewart: "Well I don't have your rights here, they're in Bill's house, and in Steve's house..."
Well of course the PRNGs in their little monkey brains are seeded differently. Otherwise, an infinite number of them sat at typewriters would all type exactly the same gibberish, and we wouldn't have any Shakespeare.
There actually are 11 kinds of people - one kind doesn't get the joke, one kind does, and the other nine are sick to death of hearing it trotted out at every bloody opportunity.
Giuliani even gave Gerry Adams a 'humanitarian award' on behalf of NYC and expressed the hope that he would force Clinton to speak to Adams even without the renunciation of violence that Clinton demanded. A few months later Adams and Co blew up a shopping mall.
Not to condone terrorism or anything, but you'd be hard-pressed to find a Manc who doesn't concede that the IRA did the city a favour by blowing up the famously ugly building in question.
ABI? Undocumented quirks? Clones? What are you on about?
OpenGL is the name of an API. Various companies make implementations for their hardware / OS, and then they pay SGI for the right to call their implementations 'OpenGL' (after passing a load of conformance tests). Mesa is an implementation of the OpenGL, it just hasn't been officially blessed by SGI (although they do support it's existance in other ways) so it can't legally call itself OpenGL.
This is true to only a minimal degree. nVidia does quite a few extensions, and they do give some access to new "stuff". In a lot of cases, it's rather minimal access though, and in other cases, it's basically nonexistent. Just for an obvious example right now, I don't know of any way to get at the geometry shader functionality via OpenGL. It simply doesn't fit well with the (current) OpenGL model.
EXT_geometry_shader4 What other stuff do you feel there's 'minimal' access to? nVidia has a history of doing real kitchen-sink extensions that expose EXACTLY what their hardware support (eg. NV_register_combiners).
ATI does far fewer extensions than nVidia, though we'll have to see whether that changes with the AMD buyout.
So far, I've found that their hardware features are well exposed. Plus, they do a nice line in hidden experimental extensions, which are good fun to play with.
It's true that OpenGL covers more of the market than I noted. It's also true, however, that of those, the only one that matters as a rule is probably the PS3. Getting a game to run decently on a phone (for example) involves a lot more than changing the way you display the graphics.
Agree. Plus, any PC game that's source-compatible with a phone is going to look crappy on the PC side. It just makes development a bit easier. So yeah, PC360 is probably the only situation where I'd expect any low-level graphics code to be shared across platforms.
Yes and no -- they certainly have a lot of information, and in some cases it's quite helpful. OTOH, they still don't cover everything -- just for one obvious example, DirectX has supported instancing for quite a while. Under OpenGL, you could sort of imitate instancing, but that's about it -- and yes, nVidia has had an OpenGL "pseudo-instancing" demo for quite a while, but if you compare it to their real instancing demo that runs under DirectX, you'll quickly find that the DirectX version is still faster.
I'm curious: when you say "every other recent console", do you have more in mind than the Wii (not to to slam the Wii -- I'm just curious what else you might have had in mind).
I was thinking of the NDS, PSP and NGC. I haven't gotten the chance to mess with a Wii, but I assume it's graphics API is just a revision of the NGC's.
There are a couple of reasons. First of all, Microsoft tailors the API to the latest graphics hardware much more quickly.
Not really. Pretty much the first thing GPU companies do upon releasing fancy new hardware is to ship new drivers with OpenGL extensions letting developers get at the new functionality. D3D only exposes new functionality when Microsoft decide to rev the API.
Second, partly as a consequence of that, you can usually do things faster under DirectX than under OpenGL, with a 2:1 speed ratio being fairly common, on identical hardware.
OpenGL makes it much easier to write low-performance code, which is why there's a common speed difference. But it's not very hard at all to make up this difference if you want to. The nVidia website has a buttload of info on how to achieve this.
Third as far as portability goes: obviously you can run either under Windows. OpenGL also gives you Linux, OS/X, and a few other markets like HP/UX and Solaris mostly mean nothing from a viewpoint of selling games. DirectX gives you the XBox, which means a lot from a viewpoint of selling games.
OpenGL's also the native API of the PS3, and the majority of 3D-capable phones. Plus, every other recent console has an API very closely modelled on OpenGL.
I don't buy the DRM angle at all. VMs offer no advantage in breaking DRM over running an OS on regular hardware.
If you tried to play back DRMed content in Parallels+Vista, Vista would immediately notice that you don't have Microsoft-signed drivers for your virtual videocard and virtual soundcard, and would politely tell you to sod off.
I am of the honest opinion that the day Mac starts bundling Vista, or selling it OEM, etc. is the day that Microsoft breaks open bottles of wines and drinks to success.
If they've got such a hard-on for Vista-on-Mac, why do you suppose they made it ILLEGAL?
If it became Apple's policy to include Vista with ever computer it would only help Microsoft.
Not if it encourages Windows users to switch to Mac. They'd have sold those guys a copy of Vista in any case, except that now their flagship OS is relegated to the status of a runtime, hosted by the users *real* OS. Microsoft doesn't like how that story ends.
...then you should make some effort to get them right.
Tip 2: Use #define a lot. No, a LOT.
Hmm, I thought consts were more the C++ way. Debuggers and IDEs are much better at keeping track of them, which makes life much easier.
// This procedure moves the bullet upwards. It's called
//NUM_BULLET_MOVES_PER_SECOND times per second. It returns TRUE if the
//bullet is to be erased (because it hit a target or the top of the screen) and FALSE
//otherwise.
Why is this function's comment describing an ENTIRELY DIFFERENT PIECE OF CODE? It should describe the function itself, NOT it's caller.
It's also very likely wrong, since the function will almost certainly be called (NUM_BULLET_MOVES_PER_SECOND*num_active_bullets) each second.
Return is_destroyed;
This doesn't compile (unless you've done something stupid with the preprocessor). Lesson: Don't use winword to write C++.
Void change_score(short num_points)
{
if (num_points < 0)
{
// maybe some error message
return;
}
Again with the editing code with a word-processor! It's 'void', not 'Void'.
And you think that in the event that num points is -ve you should MAYBE throw up an error? Seriously? Because it's a bug in the caller and not the function, it's not the function's problem right? So it's best to ignore it right?
And what's with all the shorts? You realise that shorts suck on every x86 since the PPro, right? I could understand using them in a size-critical struct, but as loop counters? Bizarre.
Teaching the basics is great, I'm all for it. But this article stinks.
They'd still have to rewire seats for power if they moved them about, so surely doing network cabling at the same time would be no great hardship. They'd only need to scatter a few switches around the plane with enough ports and capacity for the densest possible seat config.
Wifi seems like a really complicated way to move bits the few feet between the floor and the seatback.
Plus, I was under the impression that although 802.11 b/g has 11-13 'channels' there's only really 3 non-overlapping frequency-ranges. So each frequency would be fought over by 10+ APs, all stuffed inside a giant pringles-tube, all trying to shout each other down.
Development on a cellphone usually means that you have a sandboxed environment, like Java, or that you have a large, stable library like Symbian. J2ME wouldn't look right on this phone, and a immature SDK would lead to unstable, and poor performing, applications.
If the stability of the phone and the cell-network depend on well-behaved applications, then what's the point of running OSX on it? Are they saying that their much-trumpeted OS can't protect the system from misbehaving apps?
Joel Spolsky does an entertaining job of ripping another phone with poorly-designed software to pieces here.
Jimmy Stewart: "Well I don't have your rights here, they're in Bill's house, and in Steve's house..."
This may help you understand.
Well of course the PRNGs in their little monkey brains are seeded differently. Otherwise, an infinite number of them sat at typewriters would all type exactly the same gibberish, and we wouldn't have any Shakespeare.
There actually are 11 kinds of people - one kind doesn't get the joke, one kind does, and the other nine are sick to death of hearing it trotted out at every bloody opportunity.
Seconded. Consumer rights need supporting, but innovation in the games industry needs it more.
Not to condone terrorism or anything, but you'd be hard-pressed to find a Manc who doesn't concede that the IRA did the city a favour by blowing up the famously ugly building in question.
And ignore IBM's role in the Holocaust?
A CS degree is neither necessary nor sufficient for being a good programmer. In my field (videogames), I'm not sure there's any correlation at all.
It's a genuine how-to book, and a pretty good one at that. That, plus NeHe, are excellent ways to get started.
ABI? Undocumented quirks? Clones? What are you on about?
OpenGL is the name of an API. Various companies make implementations for their hardware / OS, and then they pay SGI for the right to call their implementations 'OpenGL' (after passing a load of conformance tests).
Mesa is an implementation of the OpenGL, it just hasn't been officially blessed by SGI (although they do support it's existance in other ways) so it can't legally call itself OpenGL.
This is true to only a minimal degree. nVidia does quite a few extensions, and they do give some access to new "stuff". In a lot of cases, it's rather minimal access though, and in other cases, it's basically nonexistent. Just for an obvious example right now, I don't know of any way to get at the geometry shader functionality via OpenGL. It simply doesn't fit well with the (current) OpenGL model.
EXT_geometry_shader4
What other stuff do you feel there's 'minimal' access to? nVidia has a history of doing real kitchen-sink extensions that expose EXACTLY what their hardware support (eg. NV_register_combiners).
ATI does far fewer extensions than nVidia, though we'll have to see whether that changes with the AMD buyout.
So far, I've found that their hardware features are well exposed. Plus, they do a nice line in hidden experimental extensions, which are good fun to play with.
It's true that OpenGL covers more of the market than I noted. It's also true, however, that of those, the only one that matters as a rule is probably the PS3. Getting a game to run decently on a phone (for example) involves a lot more than changing the way you display the graphics.
Agree. Plus, any PC game that's source-compatible with a phone is going to look crappy on the PC side. It just makes development a bit easier.
So yeah, PC360 is probably the only situation where I'd expect any low-level graphics code to be shared across platforms.
Yes and no -- they certainly have a lot of information, and in some cases it's quite helpful. OTOH, they still don't cover everything -- just for one obvious example, DirectX has supported instancing for quite a while. Under OpenGL, you could sort of imitate instancing, but that's about it -- and yes, nVidia has had an OpenGL "pseudo-instancing" demo for quite a while, but if you compare it to their real instancing demo that runs under DirectX, you'll quickly find that the DirectX version is still faster.
EXT_draw_instanced
I'm curious: when you say "every other recent console", do you have more in mind than the Wii (not to to slam the Wii -- I'm just curious what else you might have had in mind).
I was thinking of the NDS, PSP and NGC. I haven't gotten the chance to mess with a Wii, but I assume it's graphics API is just a revision of the NGC's.
There are a couple of reasons. First of all, Microsoft tailors the API to the latest graphics hardware much more quickly.
Not really. Pretty much the first thing GPU companies do upon releasing fancy new hardware is to ship new drivers with OpenGL extensions letting developers get at the new functionality. D3D only exposes new functionality when Microsoft decide to rev the API.
Second, partly as a consequence of that, you can usually do things faster under DirectX than under OpenGL, with a 2:1 speed ratio being fairly common, on identical hardware.
OpenGL makes it much easier to write low-performance code, which is why there's a common speed difference. But it's not very hard at all to make up this difference if you want to. The nVidia website has a buttload of info on how to achieve this.
Third as far as portability goes: obviously you can run either under Windows. OpenGL also gives you Linux, OS/X, and a few other markets like HP/UX and Solaris mostly mean nothing from a viewpoint of selling games. DirectX gives you the XBox, which means a lot from a viewpoint of selling games.
OpenGL's also the native API of the PS3, and the majority of 3D-capable phones. Plus, every other recent console has an API very closely modelled on OpenGL.
Ah, great. I'm sold. My current phone has 'fea', but I had heard the iPhone didn't have it.
As if Apple would launch a phone that didn't contain the soul of an elf.
Presumably a 'ringtones' section will soon be appearing in the iTunes store.
I don't buy the DRM angle at all. VMs offer no advantage in breaking DRM over running an OS on regular hardware.
If you tried to play back DRMed content in Parallels+Vista, Vista would immediately notice that you don't have Microsoft-signed drivers for your virtual videocard and virtual soundcard, and would politely tell you to sod off.
I am of the honest opinion that the day Mac starts bundling Vista, or selling it OEM, etc. is the day that Microsoft breaks open bottles of wines and drinks to success.
If they've got such a hard-on for Vista-on-Mac, why do you suppose they made it ILLEGAL?
A major cause of instability on Windows is flaky drivers, maybe this is your friends problem.
Presumably, Parallels has properly debugged the drivers for their VM's virtual hardware.
If it became Apple's policy to include Vista with ever computer it would only help Microsoft.
Not if it encourages Windows users to switch to Mac. They'd have sold those guys a copy of Vista in any case, except that now their flagship OS is relegated to the status of a runtime, hosted by the users *real* OS. Microsoft doesn't like how that story ends.
It's also very likely wrong, since the function will almost certainly be called (NUM_BULLET_MOVES_PER_SECOND*num_active_bullets) each second. This doesn't compile (unless you've done something stupid with the preprocessor). Lesson: Don't use winword to write C++. Again with the editing code with a word-processor! It's 'void', not 'Void'.
And you think that in the event that num points is -ve you should MAYBE throw up an error? Seriously? Because it's a bug in the caller and not the function, it's not the function's problem right? So it's best to ignore it right?
And what's with all the shorts? You realise that shorts suck on every x86 since the PPro, right? I could understand using them in a size-critical struct, but as loop counters? Bizarre.
Teaching the basics is great, I'm all for it. But this article stinks.
They'd still have to rewire seats for power if they moved them about, so surely doing network cabling at the same time would be no great hardship. They'd only need to scatter a few switches around the plane with enough ports and capacity for the densest possible seat config.
Wifi seems like a really complicated way to move bits the few feet between the floor and the seatback.
They could wire in non-standard extra-durable jacks, and rent you the necessary cable (for a very reasonable fee of course).
Agree.
Plus, I was under the impression that although 802.11 b/g has 11-13 'channels' there's only really 3 non-overlapping frequency-ranges. So each frequency would be fought over by 10+ APs, all stuffed inside a giant pringles-tube, all trying to shout each other down.
Frappe. Lots of frappe.
Development on a cellphone usually means that you have a sandboxed environment, like Java, or that you have a large, stable library like Symbian. J2ME wouldn't look right on this phone, and a immature SDK would lead to unstable, and poor performing, applications.
If the stability of the phone and the cell-network depend on well-behaved applications, then what's the point of running OSX on it? Are they saying that their much-trumpeted OS can't protect the system from misbehaving apps?