Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

suraj.sun writes with this excerpt from Engadget:
"Microsoft's Eric Rudder, speaking at TechEd Middle East, showed off a game developed in Visual Studio as a singular project (with 90% shared code) that plays on Windows with a keyboard, a Windows Phone 7 Series prototype device with accelerometer and touch controls, and the Xbox 360 with the Xbox gamepad. Interestingly, not only is the development cross-platform friendly, but the game itself (a simple Indiana Jones platformer was demoed) saves its place and lets you resume from that spot on whichever platform you happen to pick up."

Technically thats same platform, different devices. Cross platform would be if they had the running on iPhone, Windows 7, Playstation and Linux. THAT would have been impressive (not to mention newsworthy).

We expect them to be pushing studd across their own platforms. Not news.

Yep, you beat me to it. I was going to comment... how is this cross-platform? It's all Windows technologies and.NET. That's hardly cross-platform. Show it to me on Windows, Linux, Mac, Wii, Xbox and PS3 and that'll be something to post an article about.

Funny thing about the "cross-platform" comment is the employee is admitting something that MS has tried to obscure from consumers: Their different product lines are not using the same OS. Techies have long known that Windows Mobile isn't anything like Windows desktop or their Xbox 360 OS. Whereas their competitor Apple is using OS X variants for their computers, iPhone/iPod Touch, and now the iPad, MS has tried to leverage the "Windows" name brand by putting it on different software in name only.

Aren't all three platforms based on.NET with variances in the build for the specific architecture? They've done in essence what Sun has been trying (and succeeding in numerous ways) of building for one platform and distributing to many..NET is Microsoft's JAVA. This isn't surprising, it is EXPECTED!!! Ok, done with my rant. Please, move along....

Even shows the code loaded into Visual Studio. He's not talking to "consumers". And since when did Microsoft ever claim, even to consumers, that all there OSes were the same on all devices? Consumers couldn't care less about whether a phone OS is the same as a PC OS.

Even shows the code loaded into Visual Studio. He's not talking to "consumers". And since when did Microsoft ever claim, even to consumers, that all there OSes were the same on all devices? Consumers couldn't care less about whether a phone OS is the same as a PC OS.

Technically Microsoft haven't claimed that it was the same OS on all devices.

They've used a similar name for totally different products and let ignorant tech "journalists" (if you can call them journalists) do the rest. Though I note they haven't exactly gone out of their way to correct these tech "journalists".

Technically thats same platform, different devices. Cross platform would be if they had the running on iPhone, Windows 7, Playstation and Linux. THAT would have been impressive (not to mention newsworthy).

We expect them to be pushing studd across their own platforms. Not news.

The device is part of the platform, so it is cross platform, just weakly so. OTOH, I have no idea why you think what you describe would be 'newsworthy.' I can run a GUI app with OpenGL written in python on my Mac, Windows, and Linux

That sounds insightful, but it's not. First off, PC's, the Xbox, and Windows Mobile devices all run completely different operating systems. There is no common Windows kernel that they all use. So they ALL are different platforms. Second, radically different hardware can be considered to be a different platform even if the OS is the same. The software that you can use on a 3 inch screen is going to be a lot different that what you would use on a 15 inch screen.

Interestingly, not only is the development cross-platform friendly, but the game itself (a simple Indiana Jones platformer was demoed) saves its place and lets you resume from that spot on whichever platform you happen to pick up."

Great! Can't wait til they have this at the BlackBerry app store.

Oh, you didn't really mean what we normally mean by "cross-platform" then?

A simple demo game written on a Fedora system runs perfectly on Ubuntu, Debian, Mandriva, Mint, Arch, and a few dozen others, but nobody paid for a press conference.

Yeah, well, that's part of the problem, isn't it?

It's only a slight exaggeration to suggest that the Linux distros that have money, visibility and marketing muscle don't do gaming - or don't do gaming particularly well. PulseAudio fixes and workarounds [fedorasolved.org]

No, rather PC games are becoming console games because that is what gives publishers the most revenue. Why keep supporting a game with user maps when you can release a new game with a few new weapons and maps and charge the full price? Why allow for mods when you can release DLC?

Its already started - Supreme Commander 2, which I hoped would be a perfect extension of SupCom1.. turns out to be dumbed down game designed specially for the XBox. I've heard comments from people that they won't even bother pirating it, let alone buying it.

Oh, my god, he's displaying this and he has all these #ifdefs and "copies of projects" within his workspace and a "shared resources" folder for the game. Is that the future of cross platform? That's more like the PAST of cross platform. The way to do this is to create interfaces for the same object and implement that using different devices. What you don't want, ever, is to have all this different execution paths through your code using #ifdefs to instruct the compiler to compile each and every one of them separately.

Yeah, i do not get it. What is so special about this? Looks primitive to me, and you still do not have a cross platform solution yet. I can make that game even easier and truly cross platform....HTML, Javascript and CSS. Sure there needs to be some hacks to support broken browsers like IE, and yeah it will run in a slow browser like IE, but it the same code runs on Windows, OSX, GNU Linux, Iphone OS (touch, ipad, iphone), Blackberry, Windows BMW 7 Series (sorry could not resist), Solaris, Palm Web OS, etc...

I guess you've never actually used XNA, but feel qualified to talk about it regardless.

The reason you have ifdefs in XNA projects are not because you need to ifdef everything from the graphics API to the networking API and so on. The ifdefs exist, because the different platforms it works across have different capabilities. You do not have an XBox 360 controller on Windows 7 phones, and you do not have a touch screen or keyboard on the XBox 360, the fact is the platforms DO have differences and they simply have to be catered to one way or another, the method used really works just fine and has no disadvantages- go and actually have a play with XNA rather than just whining about it.

The doesn't detract from the fact though, that all your rendering, networking, audio, concurrency, IO, physics, game code and so forth are shared between them.

A lot of people are talking it down as been there done that, but has it really? Well no, it hasn't. The great thing about Xbox live is the profile system and how everything connects back to it- they're just taking that across other platforms, you should be able to buy a game on XBox live arcade and play it wherever you are and that's the goal, simply put this hasn't really been done yet. The closest we've had are flash games and other web based games, but they're limited in performance, and are limited in ability. Even the likes of Steam hasn't stepped away from Windows yet, and only just seems to be creeping across to the Mac, there's no sign of it going to Linux, or phones, or media players, or consoles any time soon, if ever. This is a big deal, because it means you can continue to play your games wherever you are, and it makes it piss easy for developers to do it, you no longer need graphics abstraction layers and so forth like you used to.

Really, if this is not cross platform, and if this is the way of doing things in the past then tell me, where can I find a phone, console, and computer that let me play the same game and move between them without having to manually copy saves, without having to buy a different copy of the game for each platform, without having to care about anything technical, and which makes full use of graphics hardware and isn't some crippled web implementation of something.

What's that you murmured? no such thing currently exists. So this IS in fact a major step forward? thought so.

I love how Slashdot goes idiotic about things when Microsoft is involved, but if this was Apple they'd be masturbating all over the screen because Apple has created something else that "just works" even though when it's Apple it's inherently crippled, and uses a dated horrible language like Objective C.

Oh, if only you had not posted as anonymous coward, I could have dazzled you with my wisdom...

You do not have an XBox 360 controller on Windows 7 phones, and you do not have a touch screen or keyboard on the XBox 360, the fact is the platforms DO have differences

We can appreciate that. But you should not allow the API to the hardware to go beyond the input classes of your game. There is always going to be a point where the hardware events (keyboard press/release, controller press/release) are read or proces

You can work fine without #ifdefs anyway you spin it. If you control the platform then you should have an API that lets you explore the capabilities of the system. After that it is as easy as switching in the classes.

It's not the time anymore where a virtual call takes so much of your CPU that you have to revert to #ifdevs. And if you still need #ifdefs because the capabilities do not map to specific modules/classes then the design is worthless.

Where can I find a computer (OS) console and phone all made by the same company.... there is only one Microsoft, all allegedly run "Windows", and give the same (or similar) experience, and all were designed to be compatible with each other.... so my question, is why did this not work before?!

For those nerds equally confused, I'm pretty confident that they just mean the hardware platform, since all devices seem to be using some kind of Windows &.NET. So the software platform is more or less the same. It just shows how you can store and load save games from the.NET using different hardware platforms.

Even so, how is it news? I could understand if Apple were to show OS X running well on non-Apple hardware, and implying that it may be legally allowed in the future. That's news. Windows and Windows programs have been running on myriad hardware combinations for years, with few problems (if we ignore Vista). This is not news.

Make it happen for Civ 5, so I can play the same game on the TV at home, switch to the laptop when the wife wants to watch TV, then switch to the phone in the bathroom at work! My life would be complete.

Well, in all seriously, I don't care what they do to it graphically. The game would be just as much fun if a grassland was a unanimated green square, mountains were gray, etc. Civ 1 was 320X200 wasn't it? My phone has a better screen, and more processor/RAM than my 486/33 where I played Civ1. I have no idea how CPU intensive the math that calculates all the moves and AI logic is in Civ4 though.

I can see where this is news for Microsoft, king of platform-specific APIs. For those of us accustomed to developing using, say, SDL and OpenGL, this isn't news at all, as a properly written program using said libraries will need literally zero changes between several platforms. The input bit is tricky, but 90% reuse is low, I would think.

I'm going to ignore the mostly inflammatory content of your post, because there is a valid point in there -- that the complexity of a lot of operations are underestimated by those unfamiliar when they are heavily exposed to the end product. On that count, I agree.

However, in this instance, at least, the concern is misplaced. I do have experience with cross-platform development, including any game-related subsystem you care to name (video, audio, mouse/kb/controller input, networking, file/data access, et cetera). The problem IS a trivial one if it is planned and accounted for, rather than a last-minute decision.

For 99% of development studios, it goes something like this: use DirectX, porting is a nightmare. Use SDL/OpenGL, porting is changing less than 5% of your code (and for non-'exotic' applications, 0%). Some things are -designed- to allow portability; it should be no surprise that they enable it. This is quite simply a field that UNIX-alikes have been dealing with for a long time, and Windows applications have not.

Wow, they actually got a.NET program working on several different microsoft operating systems!
Now, seriously, where's the news?.NET runs on a virtual machine. It's just like showing a Java game that "magically" works on several differnet PLATFORMS (and with Java they can be called platforms, a program running on several different microsoft products can hardly be called cross-platform).

Wow, they actually got a.NET program working on several different microsoft operating systems! Now, seriously, where's the news?.NET runs on a virtual machine. It's just like showing a Java game that "magically" works on several differnet PLATFORMS (and with Java they can be called platforms, a program running on several different microsoft products can hardly be called cross-platform).

Well, I can see one obvious difference. Say, can you write a game in Java that will readily run on any of the major gaming consoles out there, with no need for the player to muck around with anything (like, say, installing Linux on PS3)?

God almighty, their code base is more fragmented than I ever imagined.

Even at the worst of the "UNIX wars", if you had to rewrite as much as 10% of your code to get it to run on (say) AIX, SunOS, and System V that meant you'd done a really bad job of isolating the platform-specific parts of your code. If Microsoft can't keep their code bases in sync when they control all of them and they have incentive to do so, they're really slipping.

There are enough zealots on this site to be unimpressed, regardless of the achievement. They're the type of people who'd be "unimpressed" if you had a microsoft mobile platform running WoW with a "pathetic" 90% code sharing.

This story reminds me of a text book I once purchased that was about cross platform programming using windows. What I failed to realize until after I purchased it was that the platforms were Windows 95, 98, NT 3.51 and NT 4. Also what is so impressive about saving data that is not dependent on the platform, or are microsoft still simply dumping memory and calling it a file format?

our game engine has about 10% of platform specific code, and it runs on about 6 platforms (and we actually count windows, linux and mac as 1). it's actually pretty standard. especially in this case, probably all the input, filesystem, memory, threading apis are pretty much the same (they're probably still doing 3 different renderer implementations). is anyone really impressed by this?

Ok, I actually think this is kind of cool. But I would quibble about the way they use #if's on the code. In general, you should avoid #if PLATFORM (the video shows #if WINDOWS_PHONE) and instead do the conditional on a particular feature. So instead:

I agree,
There is nothing special about running with or without a game controller. It sounds like the only thing "new" here is Windows Phone 7 Series. So they got the game to compile for the phone? Whoohoo! Good for them, I never imagined it to be possible.

If your game is not rated M, it will have plenty of poor people among its players. This is because in developed countries with child labor laws, kids are poor people who rely on an allowance from their parents or below-minimum-wage seasonal lawn care work during the summer. It's better to sell 1 copy of a game for 800 Microsoft Points than not to sell any copies at all.

Actions script is a dynamic interpreted, and it significantly limits its performance. Writing cross platform c++ code is significantly harder.* (Although, if you use a compilers by the same vendor it makes things easier.)I guess this demo was about to showcase their cross-platform gaming libraries. I guess 10% non-shared parts were responsible for the different user-interface controls.

Nothing is going to be native C++ on Windows anymore. Microsoft is only interested in using.NET, probably C#, for *everything*.

Its their new lock-in. Developers write in C# and find their code only works on Microsoft platforms. Then they look at their developer tools and features MS has packed in there and think "I don't know/not interested in writing code that works on alternative platforms", as Ballmer grins and rubs his hands together.

It is a while since I last looked at it, but doesn't the glib/gobject system provide automatic memory management. It is pretty grotesque to use in C, but a Java/C#-like language could be written to target it (there are some pre-processors, but they aren't really ideal). Its one of thsoe projects that would be worth doing if I had the skill to do it, but I don;t really have time to learn how to do right now (as opposed to posting on/., which is of course a wonderfully productive use of my time).

Nothing is going to be native C++ on Windows anymore. Microsoft is only interested in using.NET, probably C#, for *everything*.

This isn't true. If it was, Visual C++ wouldn't be significantly developed anymore, and nor would be native Win32 APIs.

In practice, though - Visual C++ 2010 has got a bunch of C++0x features, with more probably to follow in next release; Windows 7 added a new native Ribbon API (to be backported to Vista soon) - not yet replicated on.NET, in fact - and a Web service API for C++ (both client and servers). As.NET gets ParallelFX, VC++ gets Parallel Pattern Library. Etc...

Yes, I know. I'm a C++ dev myself and I see so much effort being placed in C# (and so much "can we do it in C# please, please can we, can we" from the other devs) that we're most definitely a niche in Microsoft now. Sure VC++ is still developed, but not like the.net tools. Sure, we have WWS (but only for Windows 7/Server 2008r2, you can get it for the older platforms, but it'll cost you a lot of cash).

And yes, I know of the Ribbon as the MFC thing that no-one else has, but there are lots of them available

its so much easier to usw that there are a hundred frameworks designed to make writing your C# apps simpler. Think about that.

Most game studios do use C++, often with a Lua scripting end. Sure there are some C# code used, but so too is javascript, python, and many others. Its not the primary language for games by a long stretch.

Mono, wake me up when its a) not full of bugs, b) contains all the good stuff C# devs use today.

The trouble with XHTML5+SVG is that there isn't a good IDE for it, probably because most of the people who care and have the skill to do anything about it like using text-oriented editors, and aren't really interested in making browser games and so on. However, since both Google and Apple would probably quite like to get people to leave flash and silverlight, maybe they should try to get a GSOC (or similar) project going to work on it. There are already FOSS vector-art editors, what is lacking is easily tyi

Flash is the platform. It's not a particularly efficient one on Windows, let alone any of the places where an inferior knockoff is provided. You can get halfway decent performance on OSX (from what I hear) and you get almost that good of an experience with Linux on x86_64... Or in other words, ugh.

i've been writing code across many platforms with 100% code reuse - more importantly, not using a runtime - all my applications are native. just write a few basic entry points; put the platform specific points in a library and then all your applications link against this. you then end up with native binaries for each platform - just distribute. this is not news - most developers have been able to do this for years (including myself). i can build applications for windows, linux, macosx, iphone, windows mobile, symbian series 60/uiq, palmos, moblin, maemo et al by doing this and i've been doing it since 2003.

Let's see where to start....

1. If you are writing different libraries for each platform -- that's not 100% code re-use2. You're not "just distributing" the same binary for each platform.3. What are you using for graphics, sounds, storage, etc. on each platform?4. You're doing this without a bunch of #ifdef's?5. How are you accounting for different screen resolutions, graphics hardware, touch capabilities, and other hardware difference?

I've never programmed games for either the PC or mobile but I do write boring old business apps for Windows Mobile industrial devices. I'm able to target Windows Mobile and take the same app and run it flawlessly on the desktop -- without a recompile.

If you are writing different libraries for each platform -- that's not 100% code re-use

sure it is. if you use libc - is that code re-use? i have done a library for a generic platform for developing on top of. it is a library; that as a developer you dont have to write - you just use it.. just like openGL, libc, mathlib et al

You're not "just distributing" the same binary for each platform.

unless there is a universal "thick binary" standard; you are going to have to ship different binaries. thats how it is.

That's not the worst case. The worst case is XNA's solution "XACT", where you have to precompile all audio assets into your solution. You can't synthesize audio at runtime, which means no chance of text-to-speech.

i avoid.NET and Java like the plague for mobile applications

Then how do you target BlackBerry and Android, both of which use Java? Or how do you justify to your boss the lost sales from not targeting these platforms?

I most certainly have the source to a pong clone [for OpenGL and GLUT] that will compile on OSX, Linux, FreeBSD, and Windows out of the box. Not even an ifdef.

What controls are used for the second paddle in this Pong clone? If a gamepad, then since when does GLUT support gamepads? If another computer, then since when does the same networking code work without modification (not even WSAStartup()) on Windows?

Depending on what you're doing, most if not all can be accomplished with OpenGL and GLUT.

And you said you could target Palm. Palm just released a native SDK for the WebOS a few days ago. OpenGL is not public yet for the Palm Pre and doesn't work on most Windows Mobile devices -- especially not the industrial ruggedized devices. Exactly how many of those platforms that you bragged about above have you actually programmed for?

I most certainly have the source to a pong clone that will compile on OSX, Linux,

In games where precise control offers an advantage, say a shooter, a player with a mouse may have an advantage overs someone with a controller. Can the game be designed to level the playing field by introducing automatic assistance in aiming , yes, but that limits a players ability to prevail with better skills

Rifles in the real world are much less accurate than a mouse. I'm a little tired of hyper accurate mouse targeting "skills" being the centerpiece of shooter mechanics. How about some more strategy? Console games have been branching out with soldiers, planes, trucks and tanks, all of which adapt well to gamepads. Even games with 100% auto-aim can work, look at Warhawk. How can you even say "skill" when everyone has different machines running at different frame rates with different mice, and differing ne

Rifles in the real world are more accurate than they are made to be in the games. For instance, IRL it's possible to hit a person-sized target at 300 meters with a simple M-16, while in a game, you'd be happy to do that at 100m, and might even need some optics to pull that off. So yeah, it's already hard to hit a moving target a at a long distance, there's no need to also have to fight an inferior input device while doing this.

Also, in any "realistic" game like Rainbow Six or SWAT two people bumping into ea

There are a good number of people I know (including a few riflemen in the Marine Corps) who would most definitely disagree with your first statement. It's more of a matter of the ability of the shooter, not the accuracy of the rifle. The US Military has some highly accurate rifles, when put in the hands of the right shooter.

It's not just military marksmen. When I was at school, being more than one bullet diameter away from what you're aiming at was considered pretty poor even with the Number 8 target rifle [wikipedia.org], which was the least accurate thing we shot in the school range and didn't have a telescopic sight. That equates to sub-pixel accuracy in a typical shooter. Of course, this wasn't shooting from the hip, but a lot of games like Counterstrike aren't either - you're mainly shooting from a steady position.

It was not Microsoft who claimed that it was cross platform. They were never trying for that. Eric Rudder explicitly said in the video how this was a demonstration of the "commonality of the platform across all of their offerings". This was just a demonstration of that, plus the use of the Live services to link that save games (which was the only thing that got any audience reaction).

The integration over the net sounds like a nice feature, but if it cannot also save locally then this is just another version

Fragmentation will kill cell phone games before networks do. The reason why gaming has thrived on consoles is because it takes the guesswork out of knowing how a game is going to play. PC gaming has always had flaws where no one knows -how- their game is going to play. So the system requirements recommend a 3 Ghz P4 CPU, ok, would a 1.6 Ghz Pentium Dual Core run it? What about an 2.7 Ghz Sempron? The same thing is going to happen to cell phone games, especially on simi-open platforms such as Android and Win

What kind of MS apologist are you? WM has pretty much been stagnant since 5.0. Even you admit that. While their competitors like Blackberry, Apple, Google, and even Palm have been making advancements, MS has stood still with incremental and cosmetic upgrades since 2005.

Now MS is finally making advancements to their mobile platform. But any apps you may have developed in the past for WM will not work. It isn't a simple recompile either. Windows 7 Phone is expected to finally launch in December at best