🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

MMORPG engine/server/client ?!?

Started by
7 comments, last by bmsfx 22 years, 10 months ago
Hi. Im wanna make a mmorpg in style of lineage (http://www.lineagethebloodpledge.com) I need idea''s how to start, i would need server,client idea''s and engine idea''s.. The game idea is one huuuge world with "unlimitet" users, and im not interrestet in bying engines like BigWorld and so.. well take a look at lineage website, to get idea''s what i mean. Thanks, hope someone gives me a few good idea''s.. i could sjure use some. Gun dont kill people, people kill people....
Advertisement
Do you by chance have any idea what you''re talking about? Your post sounds like you''re completely new to network programming and so on. I''d seriously suggest you to write some smaller stuff first (like, 8 player snake or whatever).

Otherwise, well. Personally, I''d start writing the server so that the server has a graphics engine as well (makes it easier to debug the server), but that the gfx engine on the server can be switched off. Of course, server and client will use the same gfx engine. Once you got a really simple server set up gfx-wise, start with the networking.

Create a UDP listen socket on the server and add simple network handling to the core game loop. Then write the client (just copy the server''s gfx engine but remove game logic stuff) and add a simple login dialog box or something. After login information has been processed, connect to the server using UDP.

From then on, you should be able to add players, NPCs and items bit by bit...

Of course this is a far from detailed plan, but there''s no point going into detail unless you really know what networking''s all about (and have written UDP network apps).

cu,
Prefect

One line of sourcecode says more than a thousand words.
Widelands - laid back, free software strategy
í have done a nit programming.

i had this idea (also used in lineage) for making the server/client side app.

[CLIENT] (user gfx client)
--
[UPDATE SERVER] (simply just check if update is availible)
--
[GAME SERVER] (map files and so)
-- --
[NPC SERVER] [DB SERVER] (npc server with all npc movements)
(db server with all info on players/items/monsters and so on)

but i also need to make a map maker to make the isometric maps (tile based) but must support high ress bmp or tga.

i was thinking about making server in delphi and client in vb or c++

we are a few to make it, (im just making the gfx (chars,mob,npc''s) and the database.

So, i was wondering, anyone maked a game similar to this, so we might get a few idea''s.

we wantet to make the game in this way

1. server
3. db server
2. client
4. npc server
5. update server

we want to use directx for the client but are unsjure about how to make the client/server able to connect (what protocol and so on to use).

Hope this might give a little picture about what i mean.

Thanks.

--------------
Gun dont kill people, people kill people....
Most MMORPGs use a modified UDP protocol. Some game events are simply to critical to trust to an unconfirmed UDP packet. Definitely use TCP/IP for the update/login/patch server.

Anarchy Online uses only TCP/IP - they''ve taken alot of flak for it, but it seems to be working ok.

I would get the game up and running (minimal functionality) in a single .exe and then split it up into client and server parts after.

A professional game programmer would never design the client interface in VB. Its simply too slow, they would use C++. Maybe VB for the level editor. I''m not saying its not possible, but if you want to lots of special fx like in diabloII, C++ is the way to go. If you want users with slower machines to be able to play your game, C++ is the way to go.

Hate to say it, but it sounds like you''re in over your head. Start with the single player functionality first, when you get that working, worry about "porting" it to a multiplayer game.

quote:
A professional game programmer would never design the client interface in VB. Its simply too slow, they would use C++. Maybe VB for the level editor. I''m not saying its not possible


I''m happy you add that last sentence, giving the VB games some recognition .

-

Anyway, I think you''re overdoing your servers here... an update server could easily merge together with a game server and the user server. -That is is you want that every server has different players.

The NPC server separate would be fine... it will take lots of bandwidth having some virtual charcaters walking around. Ofcourse this depends on your code.
www.persistentrealities.com for Inline ASM for VB, VB Fibre, and other nice code samples in C++, PHP, ASP, etc.<br/>Play Yet Another Laser Game!<br/>
VB = slow
C++ = mindmess (at least for core game engines)
C = speedy

the last 2 are a DIRECT quote from a game developer.. client apps are fine if done in C++, plus if your creating a game engine.. try to stick with as much pure C as possible as C++ just adds a lot of waste in some cases.

As far as miltiple servers.. that would all depend. When you first start out you will only need 1. If you ever start getting way too many people on your system.. well, youll need 1 main server to handle everything and delgation. Use several other servers for database admin, etc.. and make sure you cluster everything. That way if one server goes down your entire game wont go down.

As far as programming in delphi.. are you nuts??? NEVER program a commercial grade game in delphi.. same thing goes for VB.. you can not code a commercial grade game in VB either. VB is good for editors and other useful apps, but not as a full game. Unless of coarse your creating a text based rpg, puzzle game, or something along the lines of a scroller, old time TSR RPG

Something else you can do to learn how to make a client/server online game.. download the source code for an old BBS game or find the source code for a MUD along with the source for a MUD client
It really depends on what you''re doing. Of course, VB is dumb. However, if you just use C++ as a better C (or, in particular, as an OOP C), it can be _really_ useful. For example, many games have an object class tree, e.g. Attack plane inherits from Flying Unit, Flying Unit inherits from Base Unit. C++ makes representing this hierarchy much easier and saves a lot of hassle.

Just DON''T use such esoteric features of C++ as RTTI, exceptions and dynamic_cast (who uses xxx_cast anyway?).

Now of course - when all your code is inside a class, you generally have more overhead because memory access is always done in [ebx+XX] terms instead of immediate memory addresses. However, this could even have a hidden benefit: It makes it much harder to disassemble your code effectively.
For example, with IDA (a great tool) you can rename global variables really easily, but you can''t rename [ebx+XX]-type (i.e. class member) accesses efficiently (maybe this has changed with newer versions, I''m not sure). This of course holds true for both member variables and virtual member functions.

Yes, it does slow the code down tho :/

cu,
Prefect

One line of sourcecode says more than a thousand words.
Widelands - laid back, free software strategy
You''re doing C++ a disservice. If it is a ''mindmess'', then you don''t understand it properly, simple as that. People who don''t know about the languages say it "adds a lot of waste", but this is simply not true. As for saying "memory access is always done in [ebx+XX] terms" in C++... it''s absolutely no different than if you used C structs allocated with malloc. In fact, allocating a class in C++ uses malloc on every single compiler I''ve seen. This isn''t down to the language, it''s down to whether you allocate dynamically, or just have a load of globals.

I don''t want to get into a big language debate, especially as this is not the forum for it, but as far as network and multiplayer programming goes, C++ is no slower or more obfuscated than C.
This topic gets kinda off-topic, but I''ll add one statement:
No flame-war intended...

VB can be used for games. If you''re still thinking of VB and the Bitblt age, then you''re wrong. I''m happy with my game, which manages to get 500fps on my Voodoo3 and AMD500... DirectX works nicely with VB, and the time needed to debug will be a lot smaller than in C++...



www.persistentrealities.com for Inline ASM for VB, VB Fibre, and other nice code samples in C++, PHP, ASP, etc.<br/>Play Yet Another Laser Game!<br/>

This topic is closed to new replies.

Advertisement