Microsoft Demos Three Platforms Running the Same Game
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.
This is my sig. There are many like it but this one is mine.
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.
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.
You do not have a moral or legal right to do absolutely anything you want.
So now pc games will be Dumbing down to the phone level.
And If you think that deus ex 2 was bad with that then this may even worse.
And will this lock out user maps and mods.
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.
* I guess it's more likely some c++ libraries with .net bindings.
Let's see where to start....
1. If you are writing different libraries for each platform -- that's not 100% code re-use
2. 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 have platform specific bits, you merely have very high code reuse, not 100% code reuse.
Nerd rage is the funniest rage.
Indeed. "Cross-platform" for an extremely narrow definition of "platform".
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.
Have you ever played a Flash game with a joystick or a gamepad? On any machine without a keyboard or mouse? How about a Flash game that makes use of 3D hardware?
Yeah, that's what I thought.
dom
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.
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.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
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.
The headline should read "Microsoft Demos Three Microsoft Platforms Running the Same Game".
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).
and lets you resume from that spot on whichever platform you happen to pick
My take was a little different. "oh, so they finally got it to work the way it's expected to work? Congrats.
1) use the same save game format
2) use the same controller layout
3) be network gaming compatible
is this soooo much to ask?
I work for the Department of Redundancy Department.
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.
I know the 'real' game studios all use C++, so I understand where you're coming from, but this is MS. This is their new strategy for even more dominance.
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.
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 each other at close range will almost instantly result in at least one corpse, not a prolonged gunfight. I'm sorry if that's not something your console allows you to experience, it's great fun and leads to very tense and exciting matches :D
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.