Sign in to follow this  
  • entries
    53
  • comments
    199
  • views
    61918

Decisions Made

Sign in to follow this  
JWalsh

495 views

Hail All,

After reading over people's suggestions, and looking at the various API's I've come to decisions regarding my attempt at a MiniMORPG. Given that it is (sorta) geared towards beginners (or at least those who's skills are as narrowly focused as mine) I want to use a language which comes with as much value added as possible. This means simple constructs, a large support library, and a familiarity with existing languages which will make it fairly easy for existing programmers of other languages to pick up.

For this reason, I will be attempting to create an MMORPG using C#.

As for libraries...Well, one thing appears to be true of all MMO's. The technology used must be bleeding edge. As well, the hardware and software requirements to develop tomorrow's MMO, must be at least on par with the MMO's of today. That means 1-2 GB of RAM, a Geforce 7600+ (Shader 3.0), etc...

For this reason, I will be using XNA for the Graphics, Input, and Audio systems of the MMO.

Microsoft has put all of their money behind XNA, in hopes of making it the next big thing. In fact, if you go to http://msdn.microsoft.com/directx it now automatically redirects you to the XNA website, clearly showing Microsoft's business strategy. Finally, for those that feel the desire to do so, my little MMO can be modified to make it runnable on the XBox360 game console. This alone, appeals to many.

As for operating system and UI technology. Well, I'm running WinXP SP2 on my machine, however with the recent release of Vista, I can, as a developer, assume that by the time my MMO is finished (most commercial MMO's take 3-5 years), in a year or so that Vista will be the predominant OS, as it is already OEM on most new computers.

For this reason, I will develop the MMO using a combination of .NET 2.0 for the XNA Game Components, and .NET 3.0 for the WPF components whenever I need a windows interface. As you'll see later, this will happen more frequently than one might assume.

As for the file structure. There is always a tough decision when determining whether to use saved files, etc...or to use a database. There are benefits to both, and the tradeoffs are many. However, given that we want this little program to be scalable to user preferences, I'm opting to go with a database. Since we're using C#, and everything so far is express, Microsoft's SQL Server 2005 Express seems the most likely candidate. Also, I've got no real Database experience, so this should be a good learning experience. (Learning is often a painful process)

And finally...2D or 3D. The answer to that for me is simple. 2D hasn't appealed to me since the days of Ultima Online. And, well, this is supposed to be a microcosm of what developers out there must go through when building their MMO's...and very few commercial MMO's are in 2D now. So 3D it is! For the purpose of making my 3D models, I'll use the freely available Blender Modeling program. Even though I've got no experience with it, and very limited modeling skills. But hey, what's success without a challenge, right?

Ok, so here's what the numbers look like.

Language: C#
IDE: XNA Game Studio / Visual C# 2005 Express
Framework: .NET 2.0/3.0
Database: Microsoft SQL Server 2005 Express
3rd Party Modeler: Blender

To all those people who are disappointed I didn't use Library X or support Operating System Y. I apologize. The truth of the matter is that at least the client for all major MMO's must run on Windows XP/Vista. And I wanted to limit the complexity of the project by requiring only a single operating system/machine.

So I opted to put the server on windows as well. Once I made that decision, the rest kind of fell into place. As I do this little project, feel free to make ports to whatever operating system and/or framework you like. What's important are the concepts. The Language, Framework, and IDE are merely bootstraps which are designed to speed development. Although it may require a bit more code, it should be feasible to do at least as well as I manage to do, using whatever libraries and OS's you decide.

I'll be posting randomly as I'm currently in travel. I'll try and post soon with the design goals of the MMO.

Cheers!
Sign in to follow this  


14 Comments


Recommended Comments

Well I ask this. Can you please not make it too API-specific (I know that's a tall order)? I request because I would like to try to take the concepts you put forth and apply them to another API or language. If necesary.

Share this comment


Link to comment
I hate the MSDN site :(. Do they even have a good API documentation online for C#, as Sun does with Java (I love the Java API docs)? I can't find it.

Share this comment


Link to comment
@jwalsh - Fantastic! Whilst I don't really intend to go through with building this myself, the fact that it's in C# means I can pick up any handy tricks from it - plus get familiar with XNA (still using MDX).

Quote:
Original post by tufflax
I hate the MSDN site :(. Do they even have a good API documentation online for C#, as Sun does with Java (I love the Java API docs)? I can't find it.


What's wrong with MSDN? It's a little bloated, but the documentation is perfectly good and the search is alright. Normally I just Google for the class or namespace I want help with and append "+inurl:MSDN". Start here. There are is also full documentation of the BCL, the .NET libraries in their entirety, replete with samples and demonstrations in VB, C# and C++/CLI. Then there are other materials.

HTH

Share this comment


Link to comment
I wish that I could take a part of this tutorial, but I can't, for the simple reason of my graphics card being hated by XNA. I wish that I could be a part of the tutorial but with a different language to program in. Can't you do a different tutorial for those with graphics card limitations?

~ tch

Share this comment


Link to comment
Great choices! I must say it fitted perfectly with what I was thinking about. From using XNA to Blender as the 3D modeler.

XNA was a must, because it has all Microsoft support and its really easy for noobs.

Hope you post fast.

Share this comment


Link to comment
Alpha, it shouldn’t be too hard to port from C# to C++, or from XNA to some other API. As with all language and API differences, there will be places where it's much easier for me to accomplish a design goal, and there will be places where it's easier for someone using a different API to accomplish the design goals. It's always a tradeoff. Unfortunately, I cannot refrain from using the features unique to my chosen API or Language. It is those exact features which lead me to choose that language and API that I did.

Tufflax: I don’t use the MSDN site. When you download a framework, such as the .NET framework, or the XNA Framework, it comes with Microsoft Help Documentation. This is what I use.

BenThereDoneThat: As I posted in the For Beginners forum. The requirements for XNA are the same for DirectX 9c, pretty much. So you should be fine to participate....if you choose to.

thechocobohunter: unfortunately, no. My time is going to be more than strapped by working on this little project. Trying to cater to every language and every API would be WAAAY over the top. =) But feel free to encourage others to port it to a different language or API.

SanityAssassin: Why thank you. Flattery will get your EVERYWHERE.

Cheers!

Share this comment


Link to comment
I'm very pleasd that you chose C#/XNA to use for this project :D.

Also, if the rumours of XNA being used with networking (on the 360, mainly) prove to be true, then we should be in for some good times.

Share this comment


Link to comment
I've been able to borrow a book on C# from my friend, and I managed to find the Class Lib. for C#, so I'm all good :)

Looking forward to the workshop!

Share this comment


Link to comment
How are you planning on tackling the network connection? I've been messing with the new GS 2.0 and the Live server platform but I haven't been able to successfully create a connection between the XNA client and the .NET 2.0 console app. I realize I could write all of the networking in the .NET realm but I'm then worried that it won't be playable on the xbox.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now