Friday, June 01, 2007
Silverlight For Game Development?
So what is Silverlight, and what does it mean to you?
Microsoft recently unveiled Silverlight, which many have chalked up to being their answer to Flash. Microsoft states that " Microsoft® Silverlight™ is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web."
Version 1.0 of Silverlight is in Beta now. The 1.0 version is effectively a VM for JavaScript with some nice media-streaming capabilities. Anybody who has tried to get JS working identically across multiple browsers knows how useful that could be. But that isn't what really excites me. Version 1.1 is currently in alpha, and this is the one that could be really fascinating for indie game developers --- and for players.
You can take a look at the roadmap and see what interesting things are in store --- and are already in the alpha. Or you can just download the runtime and alpha SDK yourself. I have, but I haven't gotten too deep into the documentation yet. Or you can just play the game "Digger," created with the 1.1 Alpha, to get a glimpse at a quick-and-dirty "Boulder Dash" clone created in Silverlight. Or a game of Chess. (You can see other samples - and download the source code - HERE.)
Silverlight 1.1 offers some core .NET functionality across multiple platforms (Windows and Mac, initially, though the Mono project has committed to getting it working on Linux as well), multiple browsers (IE, Firefox, Safari, and Opera). So it's basically another VM --- like Flash and Java. It's the "right once, run everywhere" idea... which was never completely realized with Java (the joke, "Write once, debug everywhere" is painfully accurate sometimes).
So why bother? When I first heard about this, I thought, "Okay, but so what? We've already got Flash. And Java applets may be losing ground, but they are still around. What does this offer? Why should I care?"
I'm not certain I have a definitive answer yet. But here are some reasons I'm intrigued:
Microsoft Will Be Pushing Its Adoption
While not everything the juggernaut supports becomes ubiquitous, but I expect there's a pretty reasonable chance of Silverlight becoming as common as Flash within the next two to three years. I have never felt this to be the case with Java. The runtime is fairly compact so far - around 4 megs right now for Silverlight 1.1 Alpha.
Multiple Language Support
Silverlight 1.1 supports C#, VisualBasic, JavaScript, and Python (specifically IronPython). Again... PYTHON! I love Python! In addition, MS has committed to IronRuby and VBx support in 1.1 as well. No offense to ActionScript fans, but it'll be nice using a real programming language to make web apps & games. (I don't really know ActionScript myself, other than looking through syntax and tutorials - but I've heard a few tales about trying to get game animations working and timed properly that sound... annoying.)
Porting to Web Made Easy?
This is an offshoot of the Multiple Language Support idea, but here's a theory. Particularly in casual games, it has proven very useful to have a scaled-down web version of a game. It can act as advertising for the full version, serve up ads for ad-based revenue for freeloaders (like me) who might never buy the full version, and pull traffic to your site. That can be worthwhile.
Unfortunately, with Flash this meant re-writing your game using ActionScript. While porting a downloadable game to the web will undoubtably require rewriting some portions of it, if you write it in one of the supported languages, in theory a good portion of your game code will work as-is. Maybe not graphics, but game logic, AI, and so forth might simply work.
Digital Rights Management?
I know, I think of DRM as a four-letter word, too. Fundamentally it isn't a bad thing, but it's too often being used abusively (IMO) to trash consumer rights. However, I have heard numerous complaints from Flash game developers about their games being "lifted" from their sites and put on other unscrupulous sites out there. I don't know how well it will work with games, but Microsoft states in the Silverlight FAQ:
"For content providers, Silverlight will support digital rights management (DRM) built on the recently announced Microsoft PlayReady content access technology on Windows-based computers and Macintosh computers."Can this be used to protect your game? I don't know enough about it to say. But maybe.
It Provides Competition for Flash
Even if you have no interest in using Silverlight, some competition for Flash will be a good thing for everyone. Well, except Adobe, I guess. But for Flash developers and for customers who use Flash applications (which is, like, EVERYONE who goes online these days), it may help push things for the better.
There are plenty of arguments going both ways as to what's going to happen in the upcoming Flash vs. Silverlight war. Flash definitely holds the home field advantage at this point - its been around for years and is on nearly every PC that connects to the web.
But from a customer perspective, do they really care if a game is running under Silverlight or Flash? Probably not. The biggest problem will be achieving enough of a widespread distribution of applications (and some "killer apps") - like Flash did - so that almost everyone already has it installed and won't even realize what technology is running under the surface when they watch a streaming video or play a web-based game.
Having not spent much time with it yet, I don't have enough information to make a judgement yet. Especially since version 1.1 is still only in alpha. But one prediction I don feel confident in making is that things are gonna be getting interesting for web-based game developers.
(Vaguely) related bits of ascii data masquerading as coherant thoughts:
* How to Earn $8000 a Month By Making a Free Flash Game
* 20 Ways To Make Money Making Indie Games
* Picking Apart Flash Element TD
Read or Post Comments On the Forum!
Labels: Biz, programming
