• Advertisement

Archived

This topic is now archived and is closed to further replies.

MMORPG ? for someone

This topic is 6438 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Ok, right now i''m not really a programmer perse...i mean yeah i know the languages, but mostly i''ve done application programming, and i''m sick of my job, and since i''m only 19 i say i should have some fun...so me and some friends are looking at making a MMORPG (massively multi-player online role playing game). Now my question is how hard is it to write something like this. Now when i''m asking, i don''t want to run anything like Everquest, we''re looking at Ultima Online type graphics and feel...and i know there''s some emulators out there, but they don''t really do what we need them to do, so i''m going to write one for us. How hard is it to do this, and what types of things would be used to handle all of the information? Another question we have if anyone knows this, is what types of files are used for the maps in a game like Ultima Online, and also graphics files...i know they''re all stored locally on the users hard drive with the client, but i don''t know how they''re stored. And lastly, how hard is it to write a client for a game like this? The world is just an illusion, thought is the reality of our existence.

Share this post


Link to post
Share on other sites
Advertisement
I think Ultima Online was in production for about 2-3 years. So I would say you have your work cut out for you.

Share this post


Link to post
Share on other sites
quote:
Original post by packerfan

Now my question is how hard is it to write something like this.


On a scale of 10... 9
quote:

Now when i'm asking, i don't want to run anything like Everquest, we're looking at Ultima Online type graphics and feel...and i know there's some emulators out there, but they don't really do what we need them to do, so i'm going to write one for us. How hard is it to do this, and what types of things would be used to handle all of the information?


The style of graphics used in UO is refered to as isometric ,you can find a forum on this board for that, as well as some very informative articles contributed by some nice people)
quote:

Another question we have if anyone knows this, is what types of files are used for the maps in a game like Ultima Online, and also graphics files...i know they're all stored locally on the users hard drive with the client, but i don't know how they're stored.


The UO file format is proprietary. There are some reference sites on the net for accessing the data in these files, and someone has written a "browser" to let you view these images.
Basically you take all of your image data and put it in one file, then you write an index file. When you want to access an image you read the index file and then open the image file seeking to a specific location. Alternately you could store both the index and image data in the same file.
quote:

And lastly, how hard is it to write a client for a game like this?


The client is about 40% of the total work (using an isometric engine on the client). The server would take the longest to design/code/test/debug.

Hope that has helped some,


Dave "Dak Lozar" Loeser

Edited by - Dak Lozar on June 27, 2000 3:11:46 PM

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
We have developed a programming toolkit called BYOND for this purpose. It''s freely available at http://www.byond.com. It can''t handle graphics as fancy as UO, but it does some nice things and takes care of the networking and interface for you. Perhaps it may be of some use.

Good luck!

Share this post


Link to post
Share on other sites
When I read your post first time I guessed that you''ll get flamed, because of newbie hatre/guru rulez attitude.

Good luck.

Share this post


Link to post
Share on other sites
have any of you guys actually tired to make a mmorpg? why is there this theory that they are hard to make? its basicly a RPG with a client/server program thrown in there. i am 13 years old and i have already written a working mmorpg demo (with only three functions so far, moving, talking, and fighting). a few friends and myself have been testing it for the past few weeks, just to get some of the bugs out. i'll have some screenshots up soon (thats, as soon as i can get a couple of friends to help me test again).

the only thing i lack is artwork. mmorpgs require MASSIVE amounts of artwork. that will be the only problem for me.

and by the way, it took me about 2 hours to write a isometric engine with collision detection. (but, i had done some squarebased engines before that i recycled some of the collision code from)

Edited by - gameprogrammerwiz on July 1, 2000 4:43:59 AM

Share this post


Link to post
Share on other sites
Ummm... I suggest making an RPG first, then working on an MMORPG when you think you''re ready. UO isn''t exactly as easy to remake as Tetris...

- DarkMage139
"Real game developers don't change the rules. Real game developers don't break the rules. Real game developers make the rules!"
"Originality (in games) is the spice of life!"

Share this post


Link to post
Share on other sites

A MMORPG is "just" an RPG with a client server model strapped in... I''m not trying to flame anyone, but I''m currently working on one, and they are VERY different beasts. You''ve the issues of what functionality the server will support, and what the client will support, and then you''ve the design of the server itself. Which is complicated by the simple requirement of "massive". I''ll give you a hint though, massive means more than about 20 people on a LAN. I wouldn''t call it massive until you''ve got thousands of simultaneous users.


Well you''ve got your bandwidth requires: huge. Then you want to make the server scalable right? Well that means making it so that you can cluster it across multiple machines. You might also want to use a database server to store your maps and user info since you''ll basically be writing one before you''re done, and this of course helps you make it so that the "server" doesn''t have to physically be just one machine, since you want to loadbalance the suckers so a crash isn''t catastrophic, and so you can take systems down for maintenance.


There are lots of issues to designing a high load server, and if you design it like you would be inclined to design a single player RPG, don''t expect it to work very well once you crank up the load to "massive" levels.


But hey, after all its just a "RPG with client/server code added in afterwards."


Excuse the sarcasm.

Share this post


Link to post
Share on other sites
you're making this harder than it sounds...

i had 7 "friends" (although i refer to them as just "people i know"), and about 30 of their friends and their friends and so on...all of us where connected via IP: barely any lag at all. the only time i ever got any lag was when we where all in the same viewport. (it took me like two weeks to arrange all of this...i had to make a few phone calls and email/upload my mmorpg demo about 10 times)

each of my yi.org servers can handle an unlimited amount of users...however my server program hasnt been tested to the full limits. so hopefully once it's done i can get a whole boatload of people on their to test. if it crashes: oh well, i'll get a few more server IPs and split people up into "shards" (ala UO).

and a database for maps? geez. make one BIGARSE map file and include it with the game (again, ala UO).

ITS NOT COMPLICATED AT ALL!

client:
if(player has moved)
{
sendtoserver = playerlocation(x, y);
}

server
if(message has been recived)
{
if(message_id == player has moved)
{
relay new player location to all clients within the players viewport;
}
}

it works exactly like that. dont try to make things more complicated than they have to be.

i'll be on the edge of my seat waiting 3 to 10,000 years for someone to make another bloatware MMORPG. ive only been working on this for about 7 months now...take that.

but other than that, its mostly design with the player in mind. ive decided that i'm going to have about 4 servers: each with their own rules and functions. one supports PvP and one doesnt, ect.

yeah, yeah. all of you "bigshot" programmers think that this is all unorganized and sloppy...well you should see the HUGE pile of computer printouts and scratch paper sitting on my desk. i have planned this out very well, and so far i havent been dissapointed (exept for a few days where i was pissed at my code for not working correctly ).

maybe i'm making too much out of this, but i take hobbies like programming seriously (considering that programming is basicly my life now).

and i AM right. a MMORPG is a RPG with client/server. there is no other way to do this. you can try client/server (MUD, bsicly) first and then add in graphics, but this has yet to be accomplished to the best of my knowledge.

(puts on his flame-proof bodysuit and awaits a flamewar from those "bigshot" programmers.)

Edited by - gameprogrammerwiz on July 3, 2000 7:04:01 PM

Edited by - gameprogrammerwiz on July 3, 2000 7:06:31 PM

Share this post


Link to post
Share on other sites

Well first off, I should clarify that I''m not trying to flame anyone, and I''m not trying to be a know-it-all either. I''m just knee deep in this stuff right now, and have well-developed opinions. One of the points I was trying to make was that I personally do not believe that it would be easier to design a single player RPG and then upgrade it to a massive multiplayer one, for there are major design DIFFERENCES in some key parts between the two. Not that its harder , but different.


If you got something working with 30+ people, I''m impressed. I still would wager that under higher loads(say 3000?) you results may vary drastically from what you currently have. Witness poor Blizzard this week, 1.5 million copies of Diablo II sold, and Battle.Net is still groaning under the burden(not quite the same I know, but just a point).


Why are we using a database system rather than our own file routines? Simplicity. I want to have server side map files that are multi-gig if need be(not distributed to clients neccessarily). Anyway, if I have several HUGE files of information, swap will not cut by loading the entire thing into memory, and writing blocks of data and quickly indexing whats needed would be problems as well. Your production quality DB servers already do this, and are easily interfaced by ODBC, ADO, or whatever your favorite is. Another reason for a DB server is that it doesn''t have to be on the same machine that your players are logging into. It would be entirely transparent to our current setup to make 10 login/play servers on a load balanced switch/router with 2 replicated DB servers on a private backend network. No change to our simple codebase. Another serverside danger to look out for is memory leaks. Memory leaks on a server running 24/7 will eventually suck down all of the available memory, and even the best of us make mistakes(unless your using a garbage collector, then who cares .


I will grant that you are right about the RPG and the client/server being inextricably tied, but if I were designing this game to be played single on one machine, I would have made some vastly different decisions that would simplify some areas of code.


I''ve shared some the design decisions my team has made, and I would be curious to hear yours. This is a discussion board, and rather than turning into an all out flame war(which I may be provoking , how about talking about what kind design decisions some of these other people have made who are actually working on MMORPG?

Share this post


Link to post
Share on other sites
quote:
Original post by gameprogrammerwiz
+snip+
a MMORPG is a RPG with client/server. there is no other way to do this. you can try client/server (MUD, bsicly) first and then add in graphics, but this has yet to be accomplished to the best of my knowledge.
+snip+


When someone says EQ, I think of a MUD with graphics.

I agree with gameprogrammerwiz, I think that we sometimes make these things harder than it is. I have been coding Winsock apps for about two years. It could have been 4 or 5, but I always thought that it was too difficult... doh!

On the other side, I have learned some things along the way.
My last server app was a limited database server. The company used a proprietary ISAM file format. My server located and returned the data requested. I had originaly writen it singly threaded and it bombed. As this server was "hit" by a CGI process from the web, it needed to respond in a timely manner.
I then determined that it would be best if I redesigned the code to spawn threads to handle each client request, and all was well.

I''m currently writting my reliable UDP code, and "making this thing harder than it has to be."

Just remember K.I.S.S.



Dave "Dak Lozar" Loeser

Share this post


Link to post
Share on other sites

  • Advertisement