views:

1545

answers:

10

Which technology stack is best for the creation of a two dimensional MMORPG and why?

This question is loaded, so which are the major factors would you consider for development in such a domain?

A: 

Being a .Net person, I'd say Silverlight.

  • Being a game, speed is important, so .Net's JIT compiling is a bonus. I'm not sure if ActionScript is compiled or not.
  • Lots of libraries available for .Net, geared towards game development. For example, you can implement a custom GraphicsDevice for the XNA framework, and use that.
TraumaPony
If you don't know whether AS is compiled or not, how are you qualified to answer?
Iain
Well, I'm not saying AS ISN'T compiled.
TraumaPony
it's only fair to try and get some perspective before you chime in, dude - flash .swfs are compiled, and flash boasts an incredibly robust selection of libraries, including ones geared towards game development.
matt lohkamp
A: 

If I were you I would look at your own skillset and decide what you would be better developing in.

In purely non-technical terms, Flash has a much higher market share than Silverlight right now.

One thing that bugs me about Silverlight / WPF is that there are no direct methods for drawing onto the screen, you have to create an object then add that to a parent control. This makes it quite painful for doing custom drawing. However, flash has a graphics object so you can just draw on any sprite by hand.

Mark Ingram
+15  A: 

I develop Flash for a living, so my answer should be taken with a grain of salt. I reccomend Flash for the following reasons:

  1. Size of install base. I don't have numbers for Silverlight but Flash 9 (the latest non-alpha revision) is over 90%.
  2. Air alows you to deploy to a desktop on multiple platforms with minor changes to your online code. This again increases your potential market.
  3. Size of community. Flash has been around much longer and there is a huge community developing libraries for most anything you want from animation to 3d to physics. Think of the hundreds (or thousands) of Flash games you have encountered. You will have the leverage of greater experience if you go with Flash. I searched for Flash MMORPG tutorial on google and there are a bunch of results to get you started right now.
  4. Performance of the Flash player is equal to or greater than Silverlight on tests. (see Bubblemark and GuiMark).

A little while ago I did a simple comparison that I suggest you do as well. Find the best silverlight examples that you can. Then find the best Flash examples that you can. When you compare those to one another I think the best platform becomes obvious.

James Fassett
a lot of people are calling out .NET's connectivity with Silverlight - so I thought I'd mention AMFPHP for remoting and Ming for dynamic generation.
matt lohkamp
Sorry James. Now(oct'2010) this answer seems irrelevant. HTML5 is the answer.
Gulshan
A: 

A good resource for some Silverlight content is Bill Reiss and I imagine he'll jump in here. He's got experience in casual gaming. Also check out http://www.ltbennett.com for a Silverlight 2 game and there are some on Miniclip.com as well.

Tim Heuer
+5  A: 

Ok so Tim called me out on this one, it's a tough question. I wouldn't do something that massive in Flash unless I was using someone else's engine to do the heavy lifting, I couldn't imagine writing all that myself. Of course, in Silverlight it would be a massive undertaking as well.

Let me start by discussing James' points about why he would choose Flash.

1.Size of install base. I don't have numbers for Silverlight but Flash 9 (the latest non-alpha revision) is over 90%.

I don't really think this is an issue, if people want to play your MMO they will take the 20 seconds to install what they need.

2.Air alows you to deploy to a desktop on multiple platforms with minor changes to your online code. This again increases your potential market.

Agreed, I'd like to see Silverlight be able to run standalone. Of course I don't see why you would want an MMO inside the browser anyway, so I can't argue that one too much.

3.Size of community. Flash has been around much longer and there is a huge community developing libraries for most anything you want from animation to 3d to physics. Think of the hundreds (or thousands) of Flash games you have encountered. You will have the leverage of greater experience if you go with Flash. I searched for Flash MMORPG tutorial on google and there are a bunch of results to get you started right now.

Yes, Flash definitely has more third party stuff right now that could help.

4.Performance of the Flash player is equal to or greater than Silverlight on tests. (see Bubblemark and GuiMark).

GuiMark is an odd test because of all of the text resizing it does, if you remove that Silverlight is faster, and how often are you resizing a TextBlock that needs to recalculate wrapping?

One concern I would have is protecting the data stream going back and forth between either client and the server, this is a major issue and probably even more important for an MMO because someone could develop a robot that understands the data and could subvert the game dynamics.

I see questions all of the time on the XNA forums about people wanting to create an MMO and I just need to ask if you really have a grasp for how much effort it would take to really build an MMO.

Finally, a lot of the tougher code is on the server anyway, if you get that right the client technology doesn't matter as much but I personally think that Visual Studio is a much more productive environment especially when debugging, and if your server was using .NET then you would be able to debug both client and server in a single session.

The one area where I think Flash has an advantage is on the graphics side of things and if you wanted to do some bitmap effects for lighting, spells, etc. then Flash has the superior capabilities right now.

Bill Reiss
I really don't think vanslly should have accepted this answer as Bill clearly has little idea what he's talkin about here.
Iain
Silverlight 3 has an Out of Browser (OOB) experience as one of its features, last I heard.
objektivs
A: 

Writing a mmorpg client would be such a large undertaking that I would say that learning an prototyping in both would be a very sensible thing to do if you were not sure. They both have advantages and disadvantages but it may be that ultimatly either can do the job so you just need to go with the one you are more comfortable with.

Frankly the vast majority of work for a project like this would be art assets, graphics, animations, sounds and "level" design and I imagine that the choice of platform for the client is the least important part.

John Burton
+2  A: 

As someone who has been involved in both commercial Flash and Silverlight games, I am the first to say that "Best" is very subjective. There is passion on both side of the platform fence and both technologies have their strengths.

If you are new to game development then hands down Flash wins in regards to the number of examples and frameworks available to the developer. We need more people Like Bill Reiss, Mike Snow and Andy Beaulieu showing what can be done with the technology for game development.

One thing that I believe makes writing the back end of a game in Silverlight a little less frustrating, is tooling. Visual Studio is a great development tool and makes cross platform testing a breeze. A lot of this has to do with your talent, but I have seen flash projects blow through a ton of budget just trying to debug defects. I am convinced with a mature tool like Visual Studio, we could have isolated those defect with much less effort.

One thing I believe we often forget to consider when deciding on technology is resources. From someone who has been tasked with finding excellent flash talent it is extremely difficult / expensive to assemble a deep AS3 or Flex team. This is even worse if its for a single project. Many will disagree with me, but I have found that it is a lot easier to find a few skilled .NET developer, pair them with a great interactive developer, and teach them how to build a game, then it is to find an experienced Flash game developer, and keep them busy when the game is finished.

Joel Neubeck
weird - I would say it's far easier to find competent AS3 developers and set them up alongside a single Flex guru, then it is to find a group of competent .NET developers and put them together with some Silverlight people = where are you from?
matt lohkamp
A: 

Microsoft is new to the Designer space. Adobe is, comparitively, green in the developer tool space.

Is your shope full of Artists or Developers? Which tools do you need more? Your Core competency is what will determine which to use.

Brian Leahy
A: 

Using XNA, you can develop your game and play it on your PC, XBOX, Zune and Web using silverlight with minimal changes. so I'm with XNA (Silverlight)

Osama
A: 

A MMORPG Client in Flash ? It's been done for, say, six years. Behold Dofus !

Johan Buret