MS kills Xbox 360/PC cross-platform development
extremetech.com
extremetech.com
As a developer/analyst/admin that works primary in the MS application/data realms, I'm bummed out that MS can't communicate with developers and seems very disfunctional vision-wise. But as someone who also uses OSS software and OSS OSes, I'm not tied to their whims. Neither are a growing number of my clients...
Apple for example takes a different route: they have shorter support spans, but rarely invalidate whole technology stacks. Cocoa is still alive and kicking after all those years.
How is Cocoa still alive and kicking? How is that different from something like VB6?
Cocoa on the other hand is still the foundation of almost all OS X and iOS programs.
Carbon programmers beg to differ.
(Full disclosure: I was always a Cocoa guy, so this isn't sour grapes. But if you were paying attention to the OS X development scene as a whole, it was really shocking how fast Carbon went from being more actively developed and having support for more things than Cocoa to being thrown straight into the dumpster.)
By iterating on non-compatible releases, you're forced to run on the upgrade/rewrite hamster wheel to take advantage of that feature the last version didn't quite have but should've.
Joel Spolsky coined it "fire and motion" http://www.joelonsoftware.com/articles/fog0000000339.html
"Think of the history of data access strategies to come out of Microsoft. ODBC, RDO, DAO, ADO, OLEDB, now ADO.NET - All New! Are these technological imperatives? The result of an incompetent design group that needs to reinvent data access every goddamn year? (That's probably it, actually.) But the end result is just cover fire. The competition has no choice but to spend all their time porting and keeping up, time that they can't spend writing new features"
XCode and (Snow) Leopard? No such luck.
Now, you do mention the Linux alternatives, which seem to be the most stable... if you can get around any infighting of QT... Gnome/KDE... etc et al.
But it doesn't seem particularly "fair" to imply that this is something of a risk when you choose Microsoft.
They do give not-so-subtle hints to hand over to them the cha-ching, though, when they EOL old versions of XCode - but that's usually the most you're going to encounter. So works Apple in general.
And if you happened to bet on those technologies instead of Carbon, you're probably very happy with that. Well, unless you were writing Cocoa apps with Java, which was pushed as a peer to Objective-C in much the same way that Carbon was presented as a peer to Foundation and AppKit. Those technologies all got killed pretty viciously, even though Apple at various points actually seemed to be promoting them over Objective-C/Cocoa.
Apple axes stuff faster than Microsoft is even capable of moving. Looking directly back from their current technology stack, it looks like mostly smooth sailing, but that's because you're not looking at the wreckage to the left and right.
(Bonus points: Remember when Apple were all about Garbage-Collected Objective-C until they weren't and suddenly ARC was the new hotness?)
XCode and (Snow) Leopard? No such luck.
You can compile for Leopard and Snow Leopard by dragging the appropriate SDKs into /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/The only major piece to go away was Carbon, which was pretty much just for OS 9 backwards compatibility to begin with.
I use many of the same classes and techniques in iOS today that I did in the very beginning of learning OS X programming.
Option 1. Use a third-party abstraction library to make the same code work on every platform. Unity [1] is a popular commercial solution. FOSS solutions include jMonkeyEngine [2] (oriented toward PC games) and libgdx (with a focus on mobile) [3].
Option 2. Instead of writing for Windows, write for Wine. If your program runs in Wine, it should run in Windows (the reverse, alas, is not necessarily true). And you also get support for any platform Wine runs on, including not just Linux, but apparently Intel Mac [4].
[1] http://en.wikipedia.org/wiki/Unity_(game_engine)
[2] http://en.wikipedia.org/wiki/JMonkeyEngine
The situation is no different for other software vendors.
That is how commercial software works.
This email was sent out to DirectX/XNA MVPs today:
The XNA/DirectX expertise was created to recognize
community leaders who focused on XNA Game Studio and/or
DirectX development. Presently the XNA Game Studio is not in
active development and DirectX is no longer evolving as a
technology. Given the status within each technology, further
value and engagement cannot be offered to the MVP community.
As a result, effective April 1, 2014 XNA/DirectX will be
fully retired from the MVP Award Program.
There’s actually a fair bit of information packed in there, and I think some of it is poorly worded. The most stunning part of it was this: “DirectX is no longer evolving as a technology.” That is a phrase I did not expect to hear from Microsoft. Before going to “the sky is falling” proclamations, I don’t think this is a death sentence for DirectX, per se. It conveys two things. Number one, DirectX outside of Direct3D is completely dead. I hope this is not a shock to you. Number two, it’s a reminder that Direct3D has been absorbed into Windows core, and thus is no more a “technology” than GDI or Winsock. The message said “DirectX is no longer evolving as a technology.”
That is definitely not true in any way, shape or form.
Microsoft is actively investing in DirectX as the unified
graphics foundation for our key platforms, including Xbox
360, Windows Phone and Windows. DirectX is evolving and
will continue to evolve. For instance, right now we’re
investing in some very cool graphics code authorizing
[sic] technology in Visual Studio. We have absolutely no
intention of stopping innovation with DirectX,
and you can quote me on that.Updated: Microsoft has emailed Promit Roy to say that the first email was in error, and that “DirectX is evolving and will continue to evolve.” Like Roy, though, we’re still musing as to why it took a leaked email for Microsoft to clarify its stance on DX and XNA.
*gobble up and monopolize
Plus as a game developer, if your game is successful enough to need to build a bigger engine, wouldn't it make sense to just rewrite it on top of C++/Direct3D anyway?
Otherwise a few fixes here and there to a game you've written in XNA will still continue to run on Windows/Xbox. I mean, you can still run VB6 apps for example and that runtime DLL is almost 15 years old :-).
The Dishwasher, Elysium [EDIT: actually called Dust: An Elysian Tale], Eufloria (the first version), Terraria, Magicka, Skulls of the Shogun, Bastion, Breath of Death VII, Weapon of Choice, Fez, Sol Survivor, and The Harvest, to name ones that I can remember off the top of my head.
This doesn't include games in the pipeline that are being built in XNA.
EDIT: Forgot Penny Arcade's On the Rain-Slick Precipice of Darkness 3 and 4 (forthcoming).
> XNA was Microsoft’s toolset for cross-platform game development between the Xbox 360, Zune (when applicable), Windows Phone 7, and PC titles.