Silverlight Hack

Silverlight & related .NET technologies

About Me

Welcome to Silverlighthack.com.  This is a site where you can find many articles on Silverlight, Windows Phone 7 and .NET related technologies.  

My name is Bart Czernicki.  I have been working with computers since 1988 and have over 12 professional years in the IT field focusing on architecture, technology strategy and product management.  I currently work as a Sr. Software Architect at a large software development company.

Below is the cover of my new book that shows how Silverlight's unique RIA features can be applied to create next-generation business intelligence (BI 2.0) applications.

Silverlight 4 Business Intelligence Soft 

Contact: bartczernicki@gmail.com

View Bart Czernickis profile on LinkedIn

NONE of the comments or opinions expressed here should be considered ofmy past or current employer(s).  The code provided is as-is without anyguarantees or warranties.

Software Entrepreneurship Track - Tracking a Microsoft .NET based startup

Outside of my fulltime job, I have a couple of projects I am working on in my spare time.  Both of these projects of course are RIA (Silverlight) ideas that are currently little side projects but hopefully will turn into something more.  I have worked in over 4 environments that I would consider startups.  All 4 have been acquired or sold while being an employee there.  As an employee, I have gained a great deal of experience while dealing with the many benefits and drawbacks while working in startup surroundings.  However, most of it comes from an internal perspective.  As an employee, you don't see a lot of the external events going on and sometimes the big picture.  Until you look at the startup process from an external vantage point do you appreciate what it takes to take an idea and mature it into a successful business.

I wanted to write about a great resource for Microsoft based startups from a high level vantage point.  This article focuses on one company's technical implementations of a new business model.  I am not affiliated with it in any way and all this information is what I have found out from tv, podcasts and web searches.  Why is this on my site? The information below is a great way of looking at a technology from another angle for a startup.  Furthermore, its based on .NET; how can you go wrong?

Several months ago, I watched several entreuprenurial shows on the MOJO channel.  One of the shows was called Start-Up Junkies which followed the start of the company called Earth Class Mail.  The company featured was trying to develop a system to make postal mail available online and easy to manage like e-mail.  The show mainly focused on the business plan and raising capital for the business.  It essentially was a reality show on a startup.  You have all the drama, hardships and the roller coaster ride of a startup well on display in the 8 episodes.  If you have Mojo as part of your cable/satellite, you can catch re-runs of the show.  However, it's just easier to watch all the episodes at your leisure on Hulu.  After watching all the episodes several months ago, some of the insight in the episodes kept repeating in my head.  So I decided to write about some of my thoughts on it.

 

Reality Episodes and .NET stuff
The first few episodes (while still interesting to me) focus more on the finances and raising capital.  I highly recommend you check all of them out regardless of your background.  However, Episode 8 is the episdode developers/software entreupreurs will DEFINITELY want to check out. As a .NET developer, episode 8 has everything you can think of:
  • Description of re-write from LAMP -> Microsoft .NET 
  • ASP.NET Exceptions (I counted at least 4 different ones)
  • Lambda expressions whiteboarded (you gotta love that)
  • Developer & QA bug/defect meeting
  • CEO & VP of Engineering uncomfortable conversations over software deadlines
  • Deadline for a presentation
    • Multiple plans in case of failure
    • Showing less (don't push this button)
  • Recruting employees from Microsoft to the startup
  • Cross referencing of web/advertising campaign with Google Analytics & the content network (that is more in episode 7)

I am not going to go over the episode in detail.  For those who are in the software business, you will definitely want to check it out.  Just from the things I mentioned above, you should love the amount of .NET geek stuff in there for a 30 minute show!  If you are a reality TV junkie and a .net developer, you are going to love the show.

 

Enterprise Development
"We just moved to the .NET platform so that we can scale"
-- CEO of Earth Class Mail

Gotta LOVE that quote!  Even though I am passionate about .NET, I think the quote misrepresents the facts.  Let's put the quote in context.  Earth Class Mail is in the busines of providing your postal mail online by having it scanned and materializing it digitally.  They were originally written in PHP and based on the LAMP architecture.  There are gigantic sites that have millions of hits per day that obviously scale very well (in fact, some would argue better than .NET) that are written on LAMP.  That comment taken literally is completely false.  If you look at the Hulu message boards of Google online, you will see a lot of people referencing that comment and essentially making fun of it.  Ron (the CEO) even repeats the quote on other message boards :) ("...our platform is built on .NET now in order to support millions of simultaneous users").

Literally, that is a ridiculous comment.  However, let's evaluate a couple of things.  First, this is the CEO talking.  I don't know Ron, nor have I ever met him; however, let's assume that his developer skills are average at best.  He is most likely repeating talking points from a meeting with his engineering staff.  How can this be taken out of context?  Let's dig deeper into the technology they are using.  The following I am going to go over is NOT part of any of the shows directly.  Several months ago I came across the interview with Matt Davis with Scott Hanselman who was/is (?) the architect at Earth Class Mail.  This interview was done in October 2007, back in the beta days of .NET 3.5.

If you listen to the interview, you have a little more insight as to why they went with .NET and why you could argue that .NET is the platform that would scale for them.  I am going to look at it from three different perspectives.

Existing System

In the interview, Matt asserts that the original system was done by Russian contractors and completed using the LAMP architecture stack.  It was a 2 tier stack largely focusing a lot of the logic on PHP.  Obviously, there are many applications that can be built on the LAMP stack that scale and run some of the biggest online businesses today.  Matt (in the interview) and Paul Irvine who was the VP of Engineering at Earth Class mail (in the MicrosoftStartUpZOne interview) both obviously agree that the LAMP architecture could scale.  It was the orginal LAMP prototype that was not built to scale and needed to be replaced.  Going back to the original statement about moving to .NET for scaling. The comment is not too far fetched if you are scaling your business with a new system that replaces the old one.  It's technically a valid statement, even though they could have just re-architected the original LAMP system to scale.

The Technology

Earth Class Mail is in the business of providing your postal mail online to you via the web (SaaS).  This involves sorting the mail, scanning it and providing high-res images of the mail contents.  This is the key part of their business.  Obviously, there is a decent UI/graphical portion to the application(s) in the system.  Listening to the interview with Matt, you understand that they went with .NET 3.5 and WPF for some of the presentation enhancements to the system.  .NET is probably the only framework that allows you to create a rich UI experience (while still inside the IDE and using the same language) using WPF or Silverlight.  This is where I agree 120%.  While it is not clearly stated, the future presentation scalability of a system is greatly enhanced if it includes a native stack that will be improved.  WPF and Silverlight are going to be the future mainstream presentation layers for most .NET based systems.  This is exactly where the scalabiliy shines.  You have the ability to leverage a common codebase and deploy fat client applications (local, administraton) via traditional methods or ClickOnce.  If they want to provide a SharePoint web part with Silverlight with the Earth Class Mail technology, they can choose to do so.  While the presentation offerings expand, they are using one native technology under the covers as the engine.  From a UI perspective, the .NET technology allows you to scale a great deal.

The Enterprise

A large part of Earth Class Mail's business is focusing on Enterprise level deployments.  Not only are they targeting the electronic delivery of postal mail for the masses, but for entire countries and Fortune 500 companies.  In fact, during the show one of the challenges that creeps up is them dealing with an enterprise level client codename "Cheetah".  So what does this have to do with .NET scaling?  Obviously, enterprise level deployments are usually synonymous with providing deep scalability.  This is where I think .NET comes in.  Open source and RAD alternatives are great in scaling and delivering rich systems for the masses (your average end user).  This is where Microsoft is getting CLOBBERED by Google (Gmail, Docs, Maps), Adobe (Flash), Apple (iPhone).  However, Microsoft's strengths are in its enterprise level products: collaboration (SharePoint), e-mail (Outlook), Business Intelligence (Analysis Services), Enterprise Reporting (Reporting Services), database storage (SQL Server), SOA (Biztalk & WCF), etc.  A lot of these products have rich integration with each other and the .NET framework.  If your focus is on writing an app that integrates with FaceBook, iGoogle, uses Amazon cloud storage and/or works on Macs/Linux, then obviously Microsoft technologies are probably not your top option.  However, since most Fortune 500 companies are more comfortable with Microsoft based technology from the workstations all the way to the enterprise applications, using .NET is a no brainer.  The amount of scalability that can be achieved with all the Microsoft products together is enormous.

The Power of the Microsoft Partnership

Earth Class Mail has huge potential to be a multi billion dollar company.  Having them utilize the .NET platform is an obvious big win for Microsoft.  Microsoft is trying to market its tools not just for the enterprise, but for startups as well.  Earth Class Mail in return for being a partner receives huge benefits of its own.  Microsoft obviously provides its partners with technical advise, training resources and their own internal roadmap insight.  Furthermore, a Microsoft partnership goes further in opening doors for strategic growth and exposure that are not possible for a small company going at it alone.  A perfect example of this is shown in Episode 8.  Earth Class Mail featured at the Microsoft booth at the Post-Expo.  Furthermore, the CEO is invited to deliver one of the key speeches at the expo.  These are excellent examples where a strategic partnership with Microsoft goes well beyond just the technology and can open up an "enterprise geared" startup valuable avanues.

Here is a good list of all the items offered by Microsoft for startups.  Also check out the Microsoft StartUpZone for more information.

In conclusion,  scaling needs to be looked at from different perspectives other than just a literal comment.  Of course, .NET is not the only platform that can scale.  However, in terms of what the business is and who it is targeting, I think that chosing the .NET technology was an obvious and correct choice for them.

 

I just wanted to write a few notes about the show and anyone who is thinking about doing a .NET based startup or is a developer might find not only interesting but entertaining as well.

 

kick it on DotNetKicks.com

Posted: Oct 05 2008, 15:07 by Bart Czernicki | Comments (5) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: .net | entrepreneurial
Tags:
Social Bookmarks: E-mail | Kick it! | DZone it! | del.icio.us

Silverlight 2 (RC0 / RTM) - Dynamic Assembly Loading Fix

If you are utilizing the dynamic loading of assemblies (component based architecture inside Silverlight) in Beta 2, you will be in for a nasty surprise when upgrading to RC0.  Apparently, the way the Deployment class is utilized using a Singleton, it breaks some code you may have seen on several Microsoft blogs.

Specifically this line of code will fail with an InvalidOperationException ("Use the Current property to access the Deployment instance").  Below is a screen shot of Silverlight 2 RC0/RTM throwing a InvalidOperationException:

Deployment deploy = XamlReader.Load(appManifest) as Deployment;

So what can you do?  Luckily all the XamlReader load method does above is parse the AppManifest.xaml file and extract the deployment parts.  We can use LINQ to XML and do the parsing manually.

First, lets try to understand what we are doing.  The XAP package is a zip compressed file that includes our assemblies and configuration files.  One such file is the AppManifest.xaml.  In my case, I am utilizing Tim Heuer's dynamic loading example and the xap file we are downloading dynamically includes a AppManifest.xaml file that looks like this:

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="DynamicXapDataGrid_CS" EntryPointType="DynamicXapDataGrid_CS.App" RuntimeVersion="2.0.30523.6">
  <Deployment.Parts>
    <AssemblyPart x:Name="DynamicXapDataGrid_CS" Source="DynamicXapDataGrid_CS.dll" />
    <AssemblyPart x:Name="System.Windows.Controls.Data" Source="System.Windows.Controls.Data.dll" />
  </Deployment.Parts>
</Deployment>

This file is a manifest of what assemblies are included inside the package.  You can see above we downloading a xap package which includes 2 dlls (highlighted in bold above).  We simply need to get the string xaml and parse it using LINQ to XML.  Below is the code to do this:

IsolatedStorageFileStream fileStream = store.OpenFile("DynamicXapDataGrid_CS.xap", FileMode.Open, FileAccess.Read); StreamResourceInfo sri = new StreamResourceInfo(fileStream, "application/binary"); Stream manifestStream = Application.GetResourceStream(sri, new Uri("AppManifest.xaml", UriKind.Relative)).Stream; string appManifest = new StreamReader(manifestStream).ReadToEnd(); // remove this, doesn't work in RC0 / RTM//Deployment deploy = XamlReader.Load(appManifest) as Deployment; XElement deploymentRoot = XDocument.Parse(appManifest).Root; List deploymentParts = (from assemblyParts in deploymentRoot.Elements().Elements() select assemblyParts).ToList();Assembly asm = null;foreach (XElement xElement in deploymentParts){string source = xElement.Attribute("Source").Value;AssemblyPart asmPart = new AssemblyPart();fileStream = store.OpenFile("DynamicXapDataGrid_CS.xap", FileMode.Open, FileAccess.Read);StreamResourceInfo streamInfo = Application.GetResourceStream(new StreamResourceInfo(fileStream, "application/binary"), new Uri(source, UriKind.Relative));if (source == "DynamicXapDataGrid_CS.dll"){asm = asmPart.Load(streamInfo.Stream);}

Code overview:

  • Remove this line of code, this doesn't work anymore in Silverlight 2 RC0/RTM: Deployment deploy = XamlReader.Load(appManifest) as Deployment;
  • Next make sure you add a reference to the LINQ to XML namespace in order to be able to parse the AppManifest.xaml file
  • The following line of code loads the AppManifest.xaml file and extracts the 2 assembly names into a list.  Notice that all we want is the name of the assembly, which are found inside the AssemblyPart element inside the Source attribute.  You can do this outside of LINQ to XML and you can even write the code a little more expressively.
    • XElement deploymentRoot = XDocument.Parse(appManifest).Root; List deploymentParts = (from assemblyParts in deploymentRoot.Elements().Elements()
      select assemblyParts).ToList();
  • Now that we have our list of XElements we simply can iterate through them and extract the Source attribute:
    • foreach (XElement xElement in deploymentParts)
      {
      string source = xElement.Attribute("Source").Value;
  • The rest of the code is the same

In conclusion, the new Silverlight 2 RTM Deployment class utilizes a singleton which breaks the XamlReader.Load method.  In Beta 2, this code did the parsing for you.  Luckily with LINQ to XML, we can easily parse the data and extract the assembly information ourselves.

kick it on DotNetKicks.com
Posted: Sep 29 2008, 19:02 by Bart Czernicki | Comments (12) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Silverlight
Tags:
Social Bookmarks: E-mail | Kick it! | DZone it! | del.icio.us

Silverlight 2 RC0 - Important & Less Obvious things developers need to know

Silverlight 2 RC0 is released to the public.  Yay!   With this release, there are a lot of changes to the way Microsoft is doing things and behind the scenes (if you read into some of the posts) how things are going to shape up for the RTM release.  So after reading a lot of information and playing with RC0, I decided to write a small article on what is important in this release for developers.  I am not trying to rehash what other posts said, but focus on the main & important issues every Silverlight developer should know about the RC0 release.

Silverlight 2 RC0 is a Developers release ONLY

There is no non-developer runtime that is available for public deployments.  Before you go off and uninstall Beta 2, make sure you understand the ramifications of this.  RIA shops who are building Silverlight applications and have client demos or betas for clients SHOULD keep Beta 2 installed.  RC0 should be used for developer testing and getting ready for RTM.  The entire purpose of this release is just to get developers ready for Silverlight.

RC0 is "feature complete"

If you were hoping for a certain feature inside Silverlight, give RC0 a run.  Most likely if it is not in RC0, it will not be there in Silverlight 2 RTM.  For example, the two biggest features on my wishlist for RTM were: WS compliant WCF binding support and printing.  Both of these will not be in RTM version.  The nice thing is they are done adding features and changing stuff on developers.  However, the downside is that some of the features people were hoping for are not in this release cycle.

Still no official Silverlight 2 RTM release date

Microsoft has updated their release date for Silverlight 2 RTM for "later this year".  I don't know if this means Novemeber (PDC, Devconnections) or December.  However, that date could slip.  Earlier this year Microsoft was targeting a "late summer" release for Silverlight 2 RTM.  With RC0 being a "developer only" release, you need to plan your development accordingly.  This might include continuing with Beta 2 while keeping in mind the breaking changes so that your upgrade path to RTM is easy.

What is going on with Expression Suite (Blend) ?

Those who have been working with Silverlight for a while will note that with each Silverlight Beta release Microsoft released a new update to Expression Blend 2.5.  Since the RTM release is almost upon us, Microsoft has given us insight on the version of Blend that will work with Silverlight 2 RTM.  Blend 2.0 + SP1 will work with Silverlight 2 RC0 and eventually Silverlight 2 RTM.  The nice point there is that those that invested in Expression Blend 2.0 several months ago will not have to upgrade to a new version and simply will have to download the SP1 upgrade.

For those that have not purchased the Expression 2.0 Studio or Blend 2.0, it might be a good time to purchase it or plan for it in your budget.  If you do not have Expression Blend 2.0, you can:

I would recommend purchasing the Expression Professional Subscription if you do not already have an MSDN subscription and are looking to get the best value.  For $999, you get the Expression Studio 2 (699) and Visual Studio/Office/Vista, etc.  So for $300 more, you get a lot more Microsoft developer licenses.

Base Controls and additional controls

Silverlight RC0 adds a few more controls to the Silverlight 2 gallery: ComboBox, Password text box and a progress bar.  That is all the controls you should expect to see inside Silverlight 2 RTM. However, Shawn Burke a couple of weeks ago gave some additional insight on additional controls that are going to be added.  The Silverlight controls are going to be released in a similar model in which the AJAX Control Toolkit was released:

  • Controls will be posted on CodePlex (source code available)
  • They will have frequent releases (every 2 months)
  • Once the controls get baked and are heavily requested by customers, they might make it into the Silverlight Core product

This is very cool news!  Since the release cycle of Silverlight 2 (going back to Silverlight 1.1 Alpha last year) has been pretty long, it would suck if Microsoft didn't adopt his add-in model.  This is going to work out really great because it will allow the community to participate in some of the innovation of the controls and possibly speed up adoption inside Silverlight.  Plus, you get to learn from the best on control development.

Look and feel upgrade(s)

Scott Guthrie outlined in his latest article the improved look and feel for RC0 and the RTM release.  There have been additional themes released by individuals that were pretty cool but not always complete.  Scott mentioned that after the RTM release, there will be additional themes made available for Silverlight.  Hopefully this has some additional integration with Blend.   This is pretty positive news (the same way that Microsoft will add more controls after the RTM release) Non-designers don't have to struggle to create their own or rely on just third party themes.  Hopefully that is released seamlessly into the Silverlight or Expression Suite stack.

Silverlight 2 Client Runtime

Microsoft confirmed that when Silverlight 2 RTM ships, all the client runtimes will automatically upgrade to Silverlight 2 RTM from Silverlight Beta 1/2.  Once your product is ready to ship, you should be okay.  However, you want to make sure the release date coordinates with your product release.  As the runtime updates are controlled by Microsoft, your product might stop working.  Plan accordingly.

Silverlight 2 Best Practices

With RC0 and RTM probably around the corner, the codebase is pretty much done.  Now you will have a flurry of articles from the Microsoft team, MVPs and others on how best to implement certain features using Silverlight 2 RTM.  For example, printing is not available but this does not stop you from using the HTML access inside Silverlight.  Furthermore, using the MVC design inside Silverlight will become a little more refined.  Other "tips and hacks" will come over time; however, you do not want to spin your wheels for 2 weeks trying to figure out something or writing your own when either someone has already done it or someone can point you in the right direction.  In the next couple of weeks/months, Google should become your best friend for Silverlight content!

Innovation

Once Silverlight 2 is out there, it is going to be a large release of Silverlight eye candy.  I think these products will largely replace existing Web 1.0/2.0 features in small chunks.  To me, this reminds me of when the XBOX 360 came out.  The games looked a little better than the XBOX but nothing blew me away.  The next generation of games is where the innovation started.  In my opinion, the same concept applies to Silverlight 2.  Don't think just by adding a carousel, cool intro screen or some animations is it.  Think of what RIA technology inside Silverlight 2 RTM brings to life and how it can REVOLUTIONIZE a business.  The big picture risks always pay the biggest dividends in the long run. The main reason I say this is that Silverlight RIA becomes different than just a "copy" of the Flash/Flex RIA applications.

Microsoft is doing the same.  As I mentioned above, they are going to be releasing additional themes & controls (possibly other back-end libraries).  Silverlight 2 RTM is not going to end with the core library release and the innovation should continue on both sides (Microsoft's and yours).

 

Note: I have made a promise to myself not to rehash other people's ideas and provide original content with my information.  This is why I post infrequently and you will never see posts "Silverlight is out" with a download link.  Having said that, there are a lot of details and information I am omitting from this article.  For further information about Silverlight 2 RC0, check out  Tim Heuer's blog articl on this or Scott Guthrie's blog.

kick it on DotNetKicks.com
Posted: Sep 26 2008, 12:04 by Bart Czernicki | Comments (4) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Silverlight
Tags:
Social Bookmarks: E-mail | Kick it! | DZone it! | del.icio.us

Silverlight Opportunity: Challenging the game concept model (Spore)

In this article, I am going to go over the latest hot game from EA: Spore.  I plan to discuss how the value provided by the game can largely be replicated by next-gen RIA technologies into profitable business opportunities.

Spore Box

If you are a gamer (like myself), you probably are aware of the release of one of the most anticipated games for the PC.  Before I splurge some money on a game, I like to check it out reviews and see what the game is all about.  Spore for the most part has gotten pretty decent reviews from critics.  There has been some backlash about the DRM, but overall the game is very popular.  For those who do not know, the game essentially allows you to create a creature and watch it evolve from a simple organism to a complex animal.  The game has 5 phases and as your organism evolves, you play different genres of video games (2D action, 3D action, real time strategy).  However, the core feature (as well as the neatest feature) of the game is the ability to share your creature/world in the Sporepedia with other Spore creatures/environments created by other players.  Revolutionay concept, right?

This has been done before several times!  However, most people have a short-term memory.  It is kind of like Puff Daddy releasing a remix or a sample of a song from the 80's and for the current generation. Spore is exactly that; a remix of a concept already done with some glitz.  Not that there is anything wrong with that.  Spore's main difference is that it is packaged with nice graphics with social networking capabilities (sharing your creature, upload videos directly to YouTube).  Guess what?  It is incredibly popular and doing very well so far in sales as well as BitTorrent downloads (which I think in the next few months will actually become a valid gauge for PC distribution, even though it's illegal).

For those who have been playing with .NET since 1.x remember .NET Terrarium (since 2001, now in version 2).  It actually allowed you to learn .NET programming, by using .NET to program your creatures "DNA" and upload them to different environments and see how they interact with other creatures created by other programmers.  As of July 2008, the Terrarium 2.0 code is free and available on CodePlex. Terrarium is geared for programmers, so it actually had much  deeper/more open capabilities.  Spore is geared for the masses, so it has to be simpler and essentially "dumbed down" for the average user.  For example, in Spore if your creature eats a lot of meat, it will become a carnivore and dependent on meat as its food source.  Obviously, terrarium was not released as a game so that example is not 100% fair.

Terrarium

The Spore video game has been released under the traditional model.  Most of the revenue is coming from the sales of the product itself and it includes ridiculous DRM protection (limiting the user to install the game on up to three computers).  As I mentioned above, this concept has been done before.  What value has Spore added to the game?

  • Includes a very cool & easy to use creature creator
  • Allows you to upload your creatures/buildings and share it with other players (as of now, there are over 17 million objects uploaded)
  • Allows you to share videos of your creature and upload them to YouTube

Where the game exposes its weakness is the "campaign/evolution" stages of the game itself.  Each stage is a very basic implementation of some kind of video game genre.  For example, stage 1 is a simple 2D action game where your organism tries to avoid being eaten by bigger animals while looking for food.

Spore Cell Stage

This is where I think Silverlight (and other RIA technologies) can compete in this kind of video game (where the value is NOT in the graphics/immersive experience, etc).  As I mentioned above, Spore adds a lot of value on the server and services side.  The back end is essentially presentation agnostic.  It doesn't matter whether this is an XBOX game or a basic web game.  Furthermore, the social networking aspect of the game is completely abstracted from the gameplay other than translating the results of the gameplay into stored data that is presented on the web or YouTube.  Obviously, if your UI presentation is Silverlight or a fantastic looking DirectX 10 game, the back end services could all be the same.

Let's look at the gameplay and presentation.  Spore's core "action gameplay" is actually pretty simple.  It is nothing that can't be decently reproduced inside Silverlight.  Don't believe me?  For example, one of Spore's more complex 5 stages is the RTS stage.  Even that is a VERY basic RTS (RTS games in the last 10+ years have had more features).  These guys recreated StarCraft (one of the most popular RTS games ever) inside Flash!  If you played Spore, it might not look as pretty; however, the RTS action is actually a lot deeper than Spore's Tribal Stage!  Silverlight already has a particle engine, physics engine, multithreading support, etc., that allow you to create rich gameplay environments easily.  The environments are not going to rival what you can do with DirectX or even the XNA game studio but they can provide a VERY decent gameplay experience. EA asserts that you create a character, you watch it evolve and your decisions affect how it behaves in later stages.  What does that really mean?  A couple of properties transfer over?  We are not talking about a massively complex AI here.  Like I mentioned before, this has been done successfully in Terrarium in .NET 1.0 in 2001!

Spore's busines model achieves a high value through its concept and social networking services.  The loosely tied basic game genres are largely secondary here.  Spore isn't Call of Duty 4 or Crysis, where the value in the game is in the gameplay and ultra high graphics.  This is the exact place I think Silverlight can compete in....Because a lot of Spore's core and value features can be done verbatim inside Silverlight!!!  Since Silverlight is a web technology, this lends itself perfect for a lot of Web 2.0+ revenue channels and reduces distribution further.  Combining RIA technology with web advantages and using their respective advantages properly is the key in finding games that can be ported to RIA technology and will be successful.

If you need further proof, let's look at other gaming environments.  For example, let's look at console games.  The current generation of games for the XBOX 360 release "second tier" games through XBOX Arcade.  You are not going to find games like Madden 2009 for $14.99 there; however, you will find a lot of games that go beyond the graphics and are very successful through novel concepts.  One of the highest rated games on the XBOX 360 is Braid.  It is currently rated #4 out of all XBOX 360 games and an Editor's Choice on Gamespot!  Another recent release, Bionic Commando is another platform game that does some cool stuff with the bionic arm and adds value not normally seen in platformers.  You are not going to re-create Madden or GTA IV inside Silverlight.  However, as you can see from the two examples mentioned, graphics aren't everything.  Providing a great gameplay experience can be as simple as creating a concept that hasn't been created before or can be improved.

In this article I focused on Spore's gameplay architecture; however, this applies to other games where the graphics/presentation are not the primary value in the game.  RIA technologies have a chance to expand beyond simple casual gaming (i.e., www.flashgames247.com) into genres that deliver additional value through integrated services, social networking and deep concepts (i.e., RPG).  With more advertising money pouring into the web and more users spending their entertainment dollar on the web, developing serious, free or cheaper web game alternatives can become lucrative opportunities.  With next-gen RIA technologies becoming richer on all fronts, you WILL see dedicated efforts to bring some successful games from consoles/PCs/handhelds into the RIA.  That is EXACTLY what RIA technology can bring.  It's not about just random "RIA glitz" but using the "RIA glitz" to make the UI better, simpler, easier or more intuative that can rival some professional projects.  Remember, the Spore concept has been done before.  It's packaged better, simpler and prettier.  If you want a piece of the action, you should be asking yourself what concept can I bring into RIA successfully. 

In my next few articles, I will expand on this idea with other detailed examples of games where RIA technology can take a piece of the pie of the web entertainment dollar.

Posted: Sep 14 2008, 07:51 by Bart Czernicki | Comments (4) RSS comment feed |
  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Silverlight | Video Games
Tags:
Social Bookmarks: E-mail | Kick it! | DZone it! | del.icio.us