|
Posted on 08.14.06 by Mike K @ 6:06 am
I tend not to go off on news topics, but ‘ehh… today’s special. No doubt you’ve heard about Microsoft’s big news that’s making Indie developers all giddy. $99 a year to “activate” an Xbox 360 so that you can test your games on it. Sounds great, but there’s 1 little thing that could pose a problem for some. … Alright. Nothing against C# as a language, ’cause I’m sure it’s a great and efficient once you get used to it. However, despite Microsoft’s big shiny banner of cross platformness (Windows and 360), it’s a *bit* of a kick in the teeth to anyone thinking/working cross platform where it matters. PS3 and Wii. Which, of course, means C++. Now sure, it’s my understanding that classic kits do the C++ thang just fine. But it gives Microsoft an interesting advantage. Anything “cool” developed on this new platform of theirs will likely stay on Xbox. Porting to the Wii or PS3 becomes a heck of a lot more difficult, when you have to change the language. Not to mention, your choices of open source libraries like libogg, libvorbis, libpng, zlib, and many others becomes quite short. Or rather, it looks like that time you’ve saved by using a “better” language like C# will now be spent porting any favorite libraries you have. Eeek! Alright, the popular ones probably have ports, but you get the point. I’m sure glad to have ruined the celebration. Filed under: Stuffing and Technobabble and Opinion Comments:
|








Well, DirectX is already pretty platform specific, no? With PS3 on a linux based platform, it’s theoretically possible for them to leverage mono, but I have no idea if that would ever work.
In terms of libraries, you’d be surprised and there’s really no reason why any library has to be ported to c# to be useful for a .net application. The mono effort has helped a lot with getting wrappers and ports of popular open source projects, but creating a managed wrapper around an unmanaged dll is not that crazy difficult and depending on how it’s done is not necessarily going to kill performance either. Besides, a lot of those libraries are already baked into the platform so you don’t need to create a dependency nightmare.
I think the biggest win for the platform is actually the migration of pure “script” to “managed” code. So much of the code for games these days is actually done in script languages like python, lua or torque script and by running in a managed .net runtime you could see a huge performance boost. Several of those script syntaxes are also prone to errors that make debugging very difficult and end up wasting a lot of time. .Net is pretty rugged and should improve productivity considerably in terms of reducing the amount of debugging necessary as well as making debugging easier.
I welcome our new .net overlords.
Comment by Andrew Douglas — August 14, 2006 @ 8:39 am
Yeah, you’re right about DirectX being not all that portable, but as far as the structure of a cross platform engine is concerned, that’s just something you do. Each platform has it’s own graphics API, and as part of your design, you abstract away the graphics calls so you can drop in platform specific draw code. So no matter which platform or API it is, to see stuff in a game, you still draw meshes, objects, particles, and you move a camera.
At least until you need to change the language it’s coded in. Then it becomes a matter of maintaining two code bases, since your common PC, 360, Wii, PS3 and Mac OS X code can no longer live together.
The means the issue is engine code, as in physics, in game objects, behaviors, and such. Everything that isn’t the actual display. In a system that uses a scripting language for behaviors (LUA, Python), it’s true if there’s a port available, it’s less of a big deal. But there’s still the risk of this port, for the same reason, being out of sync with the original code base, and having it’s own bugs.
If Microsoft was the ruler of the console industry, I’d be happy to go 100%. But with the uniqueness of the Wii, the brand powerhouse that was the PS2, and even the Mac, despite BootCamp and Parallels, it’s still opportune.
Comment by Mike K — August 14, 2006 @ 7:24 pm
why, WHY must companies forever push their own standards instead of improving/supporting established ones? hasn’t ANYONE learnt from betamax??
Comment by raigan — August 21, 2006 @ 8:06 pm
i have learnt from betamax
Comment by yes — September 5, 2006 @ 5:58 am