Category Archives: software development

XNA, XBox 360 and the decline of computer science

I promised some more comment on the conference on XNA game development last week. It was a fascinating event, not so much because of sparkling content (though it was good), but because of the underlying themes. This conference was for the academic community, both students and lecturers. The idea was to promote the adoption of XNA on computer science courses. Presenters included members of Microsoft’s XNA team, Nick Burton who is a graphics programmer from Rare, and Peter Molyneux from Lionhead.

XNA is Microsoft’s new framework for games development. It is a .NET wrapper for DirectX, and a replacement for the earlier Managed DirectX libraries. You can create games for both Windows and XBox 360. The initial target is student and hobbyist developers, and the development kit is free except that to deploy to an XBox 360 you have to join the XNA Creator’s Club, for a modest subscription fee. Even then, you cannot distribute your 360 game except as source code to other club members; you would need to find a publisher or get the game on XBox Live Arcade. A future XNA studio product is planned which will target professional developers.

There is an obvious benefit to Microsoft if it can establish XNA in universities. It gets students familiar with the Visual Studio/Windows platform and helps foster the next generation of Windows and XBox 360 game developers. But what’s in it for the universities?

Here the context is important. There is a crisis in computer science, with dramatic falls in the numbers of students applying for courses. I spoke to Rob Miles, lecturer in computer science at the University of Hull. “The number of people applying to courses across the country has dropped by something like 40% over the last few years,” he told me. Including games programming in the syllabus is a bit of sugar to attract new students. “It will help me motivate students to want to learn to program,” said Miles.

Microsoft says XNA will help to address another crisis, this time in the games industry itself. Developing a game has become extraordinarily expensive. The industry has moved towards the Hollywood model of big-budget titles that can make or break their publishers. Gamers on the other hand complain of too many sequels, lack of innovation, and poor gameplay. Microsoft likes to talk up XNA as the future YouTube of games, recovering the community and excitement that was around thirty years ago, in the days of the BBC micro and other home computers.

Here XNA is competing with Flash, which already has a considerable community of game developers. XNA is vastly more powerful than Flash, but for small, easily deployed games Flash has many advantages including cross-platform support and browser integration.

Is XNA just another hobbyist game programming tool, likes others including AMOS and STOS (for the Amiga and Atari ST), or more recently DarkBASIC? There is a range of opinions here. Peter Molyneux enthused to me about XNA, saying it is “a fast, efficient, better language” than earlier more compromised tools, and “built with ambition in mind,” so that XNA programmers can create the next Populous (the game which made Molyneux his fortune).

On the other hand, Molyneux undermined his evangelism by also stating that C++ remains the language of choice for professional development. If this is the case, then XNA will always be a hobbyist niche, which implies that serious students of game programming should not waste too much time on it.

Not everyone takes this line. The Rare team has spent time with XNA and appears genuinely impressed with its capabilities. Nick Burton showed us both the dramatic reduction in code and the impressive performance of XNA code. While Rare is not yet using XNA commercially, it does expect to do so in a few year’s time. This might be some sort of mixed code, using XNA for game logic and C++ for graphics heavy lifting, or might be pure XNA. A factor for Rare and any professional game studio is the extensive C++ code library which it has built up over the years, which makes any quick move to another platform out of the question.

My view is that the productivity win makes XNA or something like it inevitable in games development at every level. Timing is another matter, and C++ will be hard to shift.

Finally, a couple of hot snippets of game gossip. One is that Rare is working on a Live Arcade title. I got the impression that it is fairly well advanced, though nothing is yet formally announced.

The other is that Molyneux talked up innovation in Fable 2. He told me that it has an unique and surprising feature which he had to fight to include, and which will be unveiled in March at the Game Developers Conference in San Francisco.

Microsoft’s XNA site is here. Note that if you want to develop in XNA, you are well-advised to get hold of the wired XBox 360 controller. It is a decent controller and works nicely with XNA both on Windows and 360.

Technorati tags: , , , , , ,

Installing XNA Game Studio Express on Vista

Yesterday I attended a conference on XNA game development. More on that soon; but first a quick note on what happened when, fired with enthusiasm for XNA, I installed the release build of XNA Game Studio Express on Vista.

At least I tried. You have to install Visual C# Express first (since for some reason XNA does not work with the grown-up Visual Studio 2005). That’s OK since it works side-by-side. Visual C# Express went on OK, but setup for XNA Game Studio Express failed towards the end of the install with an error about a file that could not be run. The install then rolls back completely leaving you with nothing.

I ran msiexec with logging to see more detail. Here it is:

Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. Action: RegisterWithCSExpress, location: E:\, command: “C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\VCSExpress.exe” /installvstemplates

It occurred to me that even an install without the templates might be of some use, or perhaps I could manually install the templates. So I ran up Orca (MSI editor), opened the InstallExecuteSequence table, and deleted the RegisterWithCSExpress action (yes, I’ve wrestled with MSI before).

The hacked install ran OK, and to my surprise the templates were present. This might be because of the earlier failed install, or because I also ran:

VCSExpress.exe /installvstemplates

from the command line. This command, which tells VC# Express to refresh its template cache, is the one that fails. On my system it causes VC# Express to crash, which is why it trips up the XNA install, but it appears to install the templates before it crashes so it is kinda OK.

My official advice therefore is not to try and install XNA on Vista, but the above may help if you are determined.

Microsoft knows about problems with Visual Studio on Vista; we are promised a “Vista Support Update” next year. In the meantime it does mostly work if you run it with elevated permissions.

I noticed that the Microsoft folk were running XNA on Vista yesterday.

JetBrains OMEA going free and open source

Prior to my current experiments with the IE7 RSS platform, my blog reader of choice was Omea Reader. However, despite the popularity of RSS, Omea Reader somehow never made it beyond a small niche, as I know from my own web stats. The company has just announced that the product is now free and will become open source.

Oddly, I can’t find a valid url for the announcement, though it turned up in my blog reader. Here’s the quote:

After collecting your opinions and having long internal discussions, we have finally decided to move Omea Pro into the open source domain.

This will definitely take some time, but the first step has already been made – from now on, Omea Pro is available free of charge.

Thank you for your input, and you are welcome to contribute to Omea Pro development when it goes open-source.

— The Omea Team at JetBrains

I am sorry that Omea Reader has not been a big commercial success, especially as I admire the work JetBrains is doing with its Java IDE IntelliJ IDEA and with ReSharper for Visual Studio. Even so, a big thank-you to JetBrains for doing the right thing and open-sourcing OMEA rather than freezing it as so may companies do with their abandoned products. I think the Omea code will be interesting as a .NET sample project even for those who do not want to use it. I will be intrigued to see how much PInvoke code is in there.

As an aside, one thing I notice when I talk to IDEA users is satisfied they are with the product. They feel it gives them an edge over competitors working with more popular tools like Eclipse and NetBeans. By contrast Eclipse users almost always have some grumbles. Same with NetBeans though I don’t hear so many complaints since version 5.x.

The death of SVG

This is not news; but I’ve just come across Adobe’s end of life notice for its SVG viewer. Adobe was a key supporter of SVG, which is the W3C standard for vector graphics and animation embedded in web pages, until it acquired Macromedia and with it the rival but proprietary Flash technology. The demise of the Adobe viewer is a shame for SVG supporters since it was the best available. All very predictable, though I’m not impressed by the reason given in Adobe’s FAQ on the subject [pdf]:

There are a number of other third-party SVG viewer implementations in the marketplace, including native support for SVG in many Web browsers. The SVG language and its adoption in the marketplace have both matured to the point where it is no longer necessary for Adobe to provide an SVG viewer.

In this context “matured” must mean “critically ill”, with Adobe’s announcement the killer blow (though let’s acknowledge that SVG was making limited headway even before the merger). The real reason comes a little further down:

You may also want to consider converting your SVG application to an Adobe Flex® application.

It’s easy to understand Adobe’s decision, though let me close with a question. How much harder would it be for Microsoft to establish WPF/E, if the industry had settled on a W3C standard rather than the proprietary Flash?

Technorati tags: , , , , ,

Developing from prototypes, and Microsoft vs Adobe

Scoble describes a common development scenario. The design team do a prototype GUI of your new app using the tools they know best – Flash or Director, usually on a Mac. This gets handed to the dev team who then try to replicate it in C++ (or VB or C# or even I guess Java).

The mismatch here is that something which is easy in Flash may be difficult or misguided in some other environment. Wouldn’t it be better if the developers and designers were working on the same platform? That’s what Microsoft is betting on with its Expression suite. Projects can be moved between Visual Studio and the designer tools, so the two teams can work on the same code. It sounds good, though I don’t like the idea of working up prototypes into finished code. You could even argue that keeping designs in Flash and final code in C++ is healthy, because it prevents that kind of shortcut.

Adobe’s answer is that you can just keep it in Flash. That’s what Apollo is all about – using Flash as a cross-platform runtime outside the browser. Alternatively you might keep it in the browser and not bother with the desktop app at all.

There’s a lot at stake here – as Nat Torkington notes, we are talking about “possible successors to the Win32 throne.” It’s not surprising that Microsoft is investing so much effort in this space. Adobe’s John Dowdell says it is “not invented here” syndrome, and that Microsoft “could have just compiled to the very capable, and very proven, and already massively-deployed Adobe Flash Player,” but it is naive not to see the strategic advantage in owning the platform. That said, Dowdell makes a good point about Microsoft’s poor track record when it comes to cross-platform software.

Realistically Microsoft will not kill Flash, but it might give it some competition, which I would welcome. I’m also looking forward to the small cross-platform .NET runtime Microsoft is talking about, though sadly it did not turn up in the just-released CTP.

Technorati tags: , , , , ,

WPF/E preview is out – but no cross-platform .NET for now

Microsoft has posted a CTP (Community Tech Preview) of Windows Presentation Foundation Everywhere, a cross-platform browser-hosted runtime for XAML, its XML GUI language. There’s a download for Mac as well as Windows, but sadly one of the most intriguing aspects of WPF/E is not yet included. You can code the CTP with JavaScript, but the promised cross-platform .NET runtime is not in this release. It is still planned though:

After the December 2006 CTP, we will also enable a managed code programming model using a subset of full CLR that will enhance the programmability side of the browsers to enable more performant and more scalable Web applications.

The quote is from the WPF/E Architecture Overview, which is a great place to start if you want to know what’s in WPF/E.

See also this interview with Forest Key from back in March, if you have not read it already.

I’ve downloaded but not tried the samples yet.

Postscript: Mike Harsh has some more info and a sample WPF/E video on his blog. The humour in the video is somehow typically Microsoft…

Technorati tags: , , ,

Installing Delphi 2006 on Vista

This was a major struggle on the pre-release versions of Vista. I’m happy to say it is much easier on the final release, though I haven’t done extensive testing as yet. I ran the install, which seemed to hang until I realised there was a dialog behind the master setup screen which was waiting for an OK. It installed .NET Framework 1.1, then appeared to hang again. I actually clicked Cancel on the master setup, and bizarrely that seemed to kick into life the next stage of pre-requisites (.NET service pack, Visual J# etc).

I applied BDS2006 Update 2, which at first wouldn’t recognize my BDS 2006 edition. I then realised the update was not being elevated. Update 2 is a Windows installer patch, so I opened an admin command prompt, and applied the patch with msiexec /update. That worked fine. Finally, the hotfix rollup went on smoothly when run as administrator.

My aim is to discover if there is any need still to run XP. My second aim is to keep UAC fully enabled. It’s going OK so far.

Technorati tags: , ,

Vista hyperbole and reality – and what happened to the pillars of Longhorn?

At the official Vista launch yesterday (UK version) Microsoft’s UK Managing Director Gordon Frazer called the launch of Vista, Office 2007 and Exchange 2007 Microsoft’s “biggest launch to business ever,” following up with further extravagances such as “a new era in business computing.”

Clearly these launches are exceedingly important to Microsoft, but I doubt they will prove the most significant in its history. Maybe that honour should go to Windows 95, which saw off the threat from OS/2, or maybe Excel 5.0 and Word 6.0 in 1994, which as I recall was the end of serious competition in spreadsheets and word processors until the Sun-sponsored Open Office in 2002. Or maybe the arrival of Microsoft .NET in late 2001, which has proved a remarkably successful answer to Java for server-side computing.

Success for Vista will be more about maintenance than breaking new ground. Success will be persuading businesses to upgrade from XP, or dissuading those with Windows fatigue from switching to the Mac. Office is the same. I mostly like the bold new user interface in Office 2007, though I’m suspicious of Microsoft’s motives, but where can you go when you already dominate the market? Staying still will be a big achievement.

That said, I am impressed with what Microsoft is doing with SharePoint, its portal technology. At the launch we were shown how this can aggregate diverse sources of information. I consider business mashups behind the firewall to be a big growth area, and SharePoint is well-placed to benefit.

What about Vista? It’s a decent product, but I’m anticipating much anguish in the first months after its launch. Two reasons: drivers, and UAC. Many drivers for Vista are not yet done, many will never be done. Users will try to upgrade and find stuff does not work, or even worse their systems will not be stable. They will blame Microsoft, and Vista will have to live down a bad reputation. Then after a year or so the drivers will be there, the OS will have had a few fixes, and the world will realise that it is actually pretty good.

The second reason is UAC (User Account Control), the new security feature which means users run with reduced privileges most of the time. UAC is a genuine step forward in security, but breaks many applications. Some will turn it off and lose the security benefit, others will suffer the compatibility issues. In a year or two maybe software vendors will have fixed their applications to play nicely with UAC.

I’ve been using mostly Vista for several weeks. It is more enjoyable to use than XP, but there are still annoyances which leave you wondering what its creators were thinking. For example, Vista Media Center is excellent – though I had to switch off Aero to stop it flashing – but why does the music library apparently forget its index from time to time, so all your albums disappear for a while?

Other things are just not done yet. I plugged in a SmartPhone and couldn’t figure out why Vista could only see it as a storage device. Answer: Windows Mobile Device Center is still in beta, and has to be downloaded separately.  

Little things perhaps, and your annoyances will be different from mine, but they spoil the overall effect. And if I were running a business network, I would leave it at least six months before rolling it out.

Overall I still think .NET Framework 3.0 is more significant than Vista or Office 2007, though it was hardly mentioned yesterday. It includes, after all, the two remaining “pillars of Longhorn”: Windows Communication Foundation and Windows Presentation Foundation. It is these that may support Microsoft’s platform through to the next generation of applications, even though they were invisible at yesterday’s event.

Technorati tags: , , , , , ,

CollabNet Enterprise Edition now free for up to 15 users

CollabNet has announced a free version of its CollabNet Enterprise Edition, a team development suite which includes source code management (with Subversion), project tracking, issue tracking, mailing lists and discussion forums. It is part of a new community initiative called Open CollabNet.

Given the small size of many development teams, a free 15-user license is generous. A snag is that you have to install Red Hat Enterprise Linux 3, which is not free. It’s still a good offer. Note that there is also a Community Edition for open source projects, used by a number of well-known projects includings Open Office, Java.net and NetBeans.

Technorati tags: , ,

Salesforce.com: WS-* is dead

Today I spoke to Adam Gross, Vice President, Developer Marketing at Salesforce.com. His company has recently announced that during its third quarter, API transactions (driven by web services) surpassed CRM page views on its service for the first time. I asked Gross whether Salesforce.com would move towards the WS-* standards as its evolves its API.

“We’re very big advocates of SOAP and WSDL,” he told me.  “We’re probably the largest users of SOAP and WSDL in any business anywhere in the world. That said, my sense is that WS-* is dead. There is not a lot happening in WS-* that is being driven by customers and use cases, and there is not a lot that is being informed by what we’ve learned from “Web 2.0″. I question its relevance.”

How then will Salesforce.com solve problems like those which WS-* addresses, such as as reliable messaging? “If any part of WS-* has promise it’s reliable messaging, but I’ve been part of the web services technical community since late 2000. We’ve been talking about reliable messaging standards since then. That’s close to seven years. You have to wonder if the WS-* process is going to reach a meaningful conclusion.

“Instead, we’re going to see more organic innovation and best practices. There is no standard for AJAX. There is no standards body. It’s community-driven rather than vendor-driven, and that’s been very successful. I keep an open mind, but I think that WS-* and the people who are working on it need to start showing their relevance.”