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."
Though he also said the games use the same texture data.
How much space, then, will a typical cross-platform game take up on my phone?
In soviet Russia, God creates you!
How about 100%?
Have you never played a Flash game online? It uses the same code on all platforms and it picks up where you left off even if you switch platforms.
What's the big deal?
http://lkml.org/lkml/2005/8/20/95
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.
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?
Caveat Utilitor
That is...uhhh...um...truly a horrible spokesman.
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.
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.
So..., does this mean they'll sell me the same game x times?
Nothing new, you have to pay their tax everytime you buy a new machine already. It's the continuation of their business model. The new thing is introducing a cloud that, omg, allows you to take your data with you.
If you have platform specific bits, you merely have very high code reuse, not 100% code reuse.
Nerd rage is the funniest rage.
internet drm will kill cell phone games as costs are very high for data in some areas and I don't think the cell phone networks will like phones that are on the network 24/7 useing data.
Ok, if it doesn't run on any non-Microsoft platform, it's not cross platform. Nice try Microsoft. Better luck next time.
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.
people have been doing this for years via XNA... that crappy indiana jones games is the demo platformer that comes with XNA and compiling for XBOX, Windows, or Zune is just a series of #ifndef XBOX blahblah #endif... save/resume files that work on all platforms isn't impressive: text files have worked on lots of platforms for a while now ;)
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.
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.
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.
This isn't really a big deal, all they had to do was create an environment that can run on multiple platforms, and then run the game under that environment.
Takeing civ 4 as guide no phone will have the power run it at any good speed also the small screen will make it hard to play.
Give me a portal to my xbox360 and make the device a good gamepad,with all the controls there. Being able to play MW2 on a portable phone/psp type device would rock!
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).
That reminds me of the Simpsons episode where Lisa comes out with a new doll called Lisa Lionheart. In response to this the Malibu Stacy company wheels out new Malibu Stacy dolls. Well not really new. They just have new hats.
Right now MS is desperately trying to keep their mobile developers. Most of them are leaving for other platforms because there is far more potential to make money. Their mobile platform has been stagnant for a long time in IT years. With Windows 7 Phone a year away and the quiet acknowledgment that Windows 7 Phone Apps will not run Mobile 6.5 apps, MS is trying everything they can to keep developing from abandoning the platform. "Look you can make one version of a game that will run on Mobile, XBox, and desktop. Isn't that neat?"
Well, there's spam egg sausage and spam, that's not got much spam in it.
So you are saying you are a Java programmer?
Its interesting that they did not also show it on the Zune HD as "Platformer" is also available for it as well.
when it runs on linux, unix or CBM then I'll be impressed
I'm sure cross platform (as in computer/console/handheld) can work well for some games but for many games I expect it will not be awesome. There is an inherent imbalance between the platforms, for example input devices. 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. Balancing some cross platform games may require too many compromises to make it fair across platforms.
--
Perpenso Calc for iPhone and iPod touch, scientific and bill/tip calculator, fractions, complex numbers, RPN
this isn't cross-platform, it's an example of an incestuos codebase. Cross-platform means your code can cross os boundaries too. Java, python and perl are examples of cross-platform computing.
boycott slashdot February 10th - 17th check out: altSlashdot.org
Depending on what you're doing, most if not all can be accomplished with OpenGL and GLUT.
I most certainly have the source to a pong clone that will compile on OSX, Linux, FreeBSD, and Windows out of the box. Not even an ifdef.
Of course, EVERYONE uses 'frameworks' unless they are writing raw assembly and not using any linker libraries.
From my standpoint, there is no platform specific code, unless you count the command line required to start the build (its simple, single source file, didn't even bother with a makefile)
Screen resolutions are irrelevant to me, it just scales, if you were to put it on an iPhone, you'd need good vision, but thats easy enough to remedy without special treatment for the iPhone if you choose to give up things on desktop PCs.
Graphics hardware and input differences are taken into account by using OpenGL and GLUT. Note, these are native on OSX, OpenGL is native in windows, GLUT not so much, of course neither are native in FBSD or Linux, but again, everyone uses frameworks of some sort. So MS calls them Frameworks and I call them shared library, while technically different they are for practical purposes the same thing.
Most certainly wrong, you are not able to do so. You may move the binary and run it, but it most certainly IS being recompiled. Thats part of what the Common Language Runtime does, unfortunately you're confusing MS marketing with reality, this leads me to believe you know even less about development than you realize. I could actually do the exact same thing as you are doing with C# source code and a wrapper to kickstart the process. It'd have to be a .NET wrapper since getting a batch file to run on WinMo isn't something you can do out of the box.
From my perspective, I've dealt with #1, 3, 4 and 5. I can do #2 with a java wrapper probably if I thought it mattered, but it really doesn't, its just not that big of a deal right now. It'd be nice to move across platforms without anything special, but currently it would be retarded. Games (and 'business apps' typically have different resource requirements for diffferent platforms like this. Its retarded to include 3 gigs of ultrahigh resolution textures, lightmaps and models when publishing to a mobile device. When one texture has about 12 times the resolution of the screen, its rather pointless. You're going to distribute multiple packages anyway so your PC users can have their 3 gigs of high res textures and you're going to distribute one for your WinMo users that have 5 megs of textures and models that are more than high enough resolution for display on your 320x240 postage stamp screen. Effectively making the quest for #2 fucking retarded.
My point is that really, none of this shit matters to anyone serious.
This shit from Microsoft is entirely to get crappy incapable programmers using MS dev tools to produce more things that businesses are tied into using MS platforms for. We can sit around and debate it, but the only people who think this is different are those that don't understand development in general, and those are EXACTLY the people MS wants to hit with this sort of thing.
I'm sorry, what was the point?
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
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.
What are you using for graphics, sounds, storage, etc. on each platform?
graphics - you can generically define graphic sets based on DPI. scaling, layout design. it is not difficult to play with different resolutions. as for audio; worst case; you have PCM audio.
You're doing this without a bunch of #ifdef's?
yes!
How are you accounting for different screen resolutions, graphics hardware, touch capabilities, and other hardware difference?
very good design. :)
but seriously - a good architect design can allow you to dynamically detect, load and work with functionalities across platforms. abstraction is dangerous - as it typically defines a common denominator. like web technologies are being dynamic in the way they work (ref: RESTful) - you can do the same with programming.
i've been working with mobile platforms for 10+ years and i've played with almost every platform out there. i avoid .NET and Java like the plague for mobile applications - the end results are very slow and just doing deliver what i want from a programming environment.. sure, i need to do more effort - but the results are better.
this is what i do for a living as well. if you want to discuss more offline - you can reach me via the contact me section on my website.
Just like the World Series entirely inside the US.
Is it my mistake or all three said "platforms" doen't include Linux?
Or Mac OS X?
Or *BSD?
Or Solaris?
Or Symbian?
Or Android?
Or Iphone?
Or Maemo?
Or ReactOS?
Or PS3?
Or Wee?
Well, I omitted Amiga and others, but the picture is clear: they're having a ball inside their parking lot.
So, basically, if I ever buy one of these fine M$ products, does it get convenient to buy the others?
What a novel idea!
90% shared code? so what? (Score:-1, Troll)
is it me - or are some of the slashdot moderators total idiots? either apple or microsoft fan boys. when i was your age you were probably still in diapers. obviously they miss the point. oh well.
I agree, There is nothing special about running with or without a game controller.
Other than that it's the only choice for players 2, 3, and 4. Only player 1 can use a keyboard and mouse.
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?
Taxation is legalized theft, no more, no less.
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?
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.
This is the new world order - dumbed down for the phone is next.
These days we make the point instead of mocking those less intelligent than us who don't see it, grandpa.
as for audio; worst case; you have PCM audio.
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?
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 Windows Mobile, while it might be easy to give out the 3 models of iPhones and the 3 generations of iPod touches, what about the million different names for the same Android phone? The T-Mobile G1 is known in some parts as the HTC Dream or the Era G1, and that is just one of the many Android phones. Mix that with different capabilities (a G1 is going to have different capabilities than a Nexus One which is going to be different than a Motorola Backflip) and you have a platform where you don't know if something as demanding as a game is going to work well or at all and who wants to spend money on a download that might not work.
Taxation is legalized theft, no more, no less.
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.
Unless it can run on OSX and Linux as well, a consumer game is NOT 'cross platform'. Apparently, their development platform needs some work.
"I believe in Karma. That means I can do bad things to people all day long and I assume they deserve it." : Dogbert
it runs on anything with a Java 5 or better JRE.
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.
cross platform:
Windows, Windows and Windows.
yipee!
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?
So how well did the Pong clone work on the iPhone? the Palm Pre? Windows Mobile?
Yes everyone does use frameworks -- but none of those frameworks are as seamless or cross platform as you imply.
So how do you handle the difference between the touch screen interface of the iPhone/iPod Touch and non touch screen devices?
And you have a poorly thought out app that no one would want...
And you're still not taking into account text entry, hardware that doesn't support OpenGL, etc. Have you actually written any software for the iPhone or Windows Mobile?
Who ever said anything about batch files?
So what platform are we suppose to use? I did the whole C things for a decade, played around with Objective C, and for low level programming I still use C on WinMo. C# and the whole .Net platform is a godsend compared to C.
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?
it is only after a long journey that you know the strength of the horse.
If you're writing cross-platform code, which may even use different APIs, there will still be more high level code than low level code (in quantity). A lot of this depends on the design of the abstraction that helps adapt between the platforms. With this in mind, I can easily see 90% being obtainable on ANY complex system where there is a lot of high level code.
What Microsoft is likely referring to is that they don't have to change 90% of their low-level code too. This means they have pushed the abstraction further down into the low-level code using directx et al.
i already wrote native code that works with 100% shared code on different plattforms!
Yeah, on both Intel and AMD!
The simpler the game, the easier it is to pull it off. E.g. a game that only needs one button and basic OpenGL, is very easy to port everywhere.
Any sufficiently advanced intelligence is indistinguishable from stupidity.
Already happened with J2ME-based games. Despite most phones using the same JVM, you can never be sure if certain features are available on a particular phone, what quirks it'll have, how it'll perform, whether or not it'll have enough memory, and so on. The solution is basically to have different versions of a game for different classes of phone, buy lots of phones, do lots of testing, and have plenty of special-case code to handle quirks of particular phones.
It's not impossible to do. It just creates an unreasonably high barrier for entry. That goes with the other unreasonably high entry barriers - dealing with networks, dealing with phone manufacturers, dealing with signing, and so on.
That's why the only J2ME phone games are from large, pre-existing publishers. No-one else can afford to do it.
I see games running on three platforms all the time--XP, Vista, and 7. There's cross-compatibility at work for ya!
Playing something on 3 windows based machines isn't cross platform.
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?
--
Stay tuned for some shock and awe coming right up after this messages!
Fuck you man, I say, fuck you! You must be some kind of fool, you. WM is no worse than it ever was, no worse than it ever was.
This makes life easier when touch becomes a popular feature on laptops and desktop computers, for example.
Wanted: witty unique signature. Must be willing to relocate.
No, your point was just stupid and pointless. "Whoopdy do, I can run a compiler on different platforms, what's so great about this new-fangled thing?!".
What's new, dimwit, is these are big, full featured games and in this particular domain this is something people haven't been able to efficiently do until now - phone, PC, console with 90% shared code.
Q. What would you do if you had a million compilers?
A. Two chips at the same time
The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
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.
...they were running Final Fantasy XI?
I work on cross platform games for ps3/xbox/windows, and am quite unimpressed by the 90% number. In my experience, even including ps3 specific spu code paths, platform specific code accounts for maybe 2% of all our code. If you count scripts as code, then more like 1%. The number of programmers actually working in this code is less than 10%. We use a single visual studio project for all platforms.
We can save games to a network server and reload them on any platform. These things are not hard to do compared to actually making a game.
As far as mobile platforms go, the amount of work required to make art that meets vastly different memory footprints and performance limits while still looking good eclipses any programming work required.
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.
-- "I never gave these stories much credence." - HAL 9000
Why is this special? This Indiana Jones demo (sourcecode, artwork and everything) is installed automatically as a demo project in Visual Studio when you install XNA. Only difference is that the current XNA release supports Zune instead of Windows Mobile 7, but I guess Windows Mobile 7 and Zune don't differ that much as a platform.
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".
I never got far in Deus Ex 2, but I really would have liked to. 7 minute level loads on a PC which was top-of-the-range at the time is just outrageous.
Still, you've mentioned Deus Ex, and now I'm going to have to hunt for the installation disk...
Finally had enough. Come see us over at https://soylentnews.org/
The same Linux demo could also be compiled on *BSD, and other unix-like environment (as long as SDL is available).
Windows XP/7, Windows Mobile and XBox might be different, but they all share some code (Xbox being a fork of NT/2000, for example), and present some common API (just the way all POSIX-compliant unices behave comparatively).
(But in fact, the same demo game could also be recompiled for the above Microsoft platforms, and a few games consoles, thank to the openness of SDL).
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
"A simple demo game written on a Fedora system runs perfectly on [other Linux operating systems], but nobody paid for a press conference."
"Unless the game was developed using the Allegro library. Distributions that switched to PulseAudio broke sound in Allegro games because PulseAudio does not like unsigned 16-bit PCM."
Am I the only one who totally had a "tried to game on linux" flashback when I read this?
The XBox is not a fork of Windows at all.
Says in 2006 the Microsoft which want to show itself as a serious console and want to demarcate from PC platform. (I haven't kept up to date with their latest info)
Back in 2001, in every interview (including sources mentioned here on /.) the XBox1 developpers were telling that XBox1's OS is a cousin of the windows family, with pretty much the same amount of evolution between it and Win2k, as the amount which went between WinXP and Win2k.
Of course, back then, they where whoring to catch as many developers as possible, and it was in their interest to present the Xbox1 as "a Windows variant, with a different, fullscreen D3D-oriented interface".
Now, let's look at it : Xbox1's system exports Win32 apis and Direct3D (but no windowing, although nobody give a damn about that on a console). In my book, that's enough to qualifiy (from a potential developers point of view) as sufficiently Windows-alike.
(Xboy 360 is further down on this branch of the evolutionary tree, but still share as much API as possible)
Windows CE also export similar API (although a different kernel underneath), so after a recompile and some tweaking, it's possible to get the same source-base working on it too.
(And some lazy ports of games for Dreamcast were done that way, targeting the available Windows CE platform, instead of the native Katana platform (or the homebrew KOS) )
Ergo : Saying that a game is "cross-platform" because it runs on 3 different flavours of Windows, is akin to saying that some software which runs both on Linux and *BSD distros is "cross-platform".
Real cross platform would be working on several completely different platforms. Like working on Windows, Mac OS X, GNU/Linux, Android, etc...
Which, incidently, *is* possible to achieve using technologies such as SDL and OpenGL.
(And for the record, will also be possible on webOS palm smartphones, according to the info available on their "plugin-development kit")
But that's not something you'll ever hear from Microsoft, because *gasp* it's a standard which could be used on non-Microsoft controlled source of revenue !
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
wake me when that is Linux, Windows, and Apple cross-platform. Windows phone and the xbox are just underpowered computers with microsoft os.