An MMORPG - Can we do it? Our plan.

Discussion about everything. New games, 3d math, development tips...
StormBringer
Posts: 5
Joined: Fri Feb 16, 2007 7:48 am

Post by StormBringer »

lol. No, i don't send the data in human readable txt format..

yeah, and depending on number of players, world-size, number of objects etc. You get tons of data. That's why the server need to be smart enough just to send the most neccesary data, only to the clients that really need it...
omaremad
Competition winner
Posts: 1027
Joined: Fri Jul 15, 2005 11:30 pm
Location: Cairo,Egypt

Post by omaremad »

what about sending input data from the clients to the server which relays the data, or even p2p input transfer.

That way you dont need to send lots of floats etc....

However a dropped/lost packet might lead to devstating consequences (people dying on a client but not being sent to others)

considering you only have maybe 5 useful buttons for gameplay you wont be sending much, however on joing a game you would need to get the full state of the other clients no just their inputs. or maybe it can be on a demand basis where you only fetch data when you need to (before a battle)
"Irrlicht is obese"

If you want modern rendering techniques learn how to make them or go to the engine next door =p
lostclimategames
Posts: 331
Joined: Sat Sep 02, 2006 4:11 am
Location: Michigan
Contact:

Post by lostclimategames »

However a dropped/lost packet might lead to devstating consequences (people dying on a client but not being sent to others)


thats why you only have actions happen on the server, and in between updates use some type of dead reckoning, so lets say i hold the left key, i send that update to the server, and turn my model, but on the server it turns it "officially" so that if there is any lag, it wont effect any other player except me, and on the next update, it makes me go to were i should be, if there was no lag, than i should already be were im supposed to be.
___________________________
For all of your 3D/2D resource needs:
Image
BlindSide
Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post by BlindSide »

omaremad wrote: However a dropped/lost packet might lead to devstating consequences (people dying on a client but not being sent to others)
ENet uses reliable UDP so you wouldnt have that problem.

Guys your free to check out the source code of irrNet if that would help you, it is included in the package. Things like sending the current state of nodes upon connecting and plenty of other stuff are handled already. You will have to create a discretionary system that only sends info about nodes that are close by aswell but this wouldnt be very hard.
StormBringer
Posts: 5
Joined: Fri Feb 16, 2007 7:48 am

Post by StormBringer »

thats why you only have actions happen on the server, and in between updates use some type of dead reckoning, so lets say i hold the left key, i send that update to the server, and turn my model, but on the server it turns it "officially" so that if there is any lag, it wont effect any other player except me, and on the next update, it makes me go to were i should be, if there was no lag, than i should already be were im supposed to be.
Exactly what i was trying to say. :)
However a dropped/lost packet might lead to devstating consequences (people dying on a client but not being sent to others)
No, clients can never decide this, this has to be decided by the server, as lostclimategames said, by using the dead reckoning some "local" warping may occur during heavy lag. but this is the way to do it...
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

And note that you don't necessarily have to jump your actors directly to the server-supplied position every time you receive it. Even if exact positions are important (which is generally only the case for an fps), bear in mind that by the time the client receives the position, it's already out of date.

Instead, consider moving the position on the the client towards the server-supplied position, either incrementally, or in a one-off operation each time you receive an update. Try halving the difference unless it's under a threshold distance, in which case move it directly to the server supplied position. You'll have to play around to find a solution that works for your game.
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
Lord_Fausto
Posts: 7
Joined: Fri Feb 09, 2007 5:12 pm

Post by Lord_Fausto »

Hello,

Im trying to design a mmo :lol: .

Well, first of all i design it in my brain and this is the result:

Server architecture
- Big persistant world divided in realms and each realm in secctions.
- Each realm have 2 sections and sections are indepent servers that manage the world as independent things.
- Central server that log users in and balance traffic


Data Base Architecture:
- Players.
- Chars. They have the section Id, and when they log in I can realocate in the correct server.
- Servers(Realm and secctions).
- The World inside each secction, it mean X,Y,HeightmapType,MaskTexture.
-GenericObject.
- Object position in each secction.


For the client y use IrrWizzard convined with arras shTileTerrainSceneNode and for the network I use RakNet.


I explaint it better:
The arras shTileTerrainSceneNode can be placed an heightmap where do you want, i create different type of grayscale map and the server's data base give me what i need to put in each case.

The visible map only shows 3x3 matrix of this kind of terrains and create a message that inform me if I moved out of the center tile, if it is i move the tiles and his objects and retieve data from my servers section.

Raknet uses a sincronitzation option with objects shared, I use this to alocate objects in the terrain querying the database only for objects there are in my terrain tile and adjacents ( if u are in a border of the tile u can see)


this bring my this Netmsg

Inside tile.
IdPaquet,Secction server, X,Z,angle
Outside tile.
IdPaquet,Secction server,TX,TZ, X,Z,angle

If I attack another client y only send that I attack, server calculates and return me how damage i make. Then i don't need to send every time my stats to other clients.


And much more but not enought time xD, bye bye
krama757
Posts: 451
Joined: Sun Nov 06, 2005 12:07 am

Post by krama757 »

There is always a huge bunch of naysayers whenever someone comes up with a plan to make an "MMORPG". But, I really don't think that your desire to make a game should stop because people tell you not to try it out.

I say that the best answer you can get to this question is to try it out and see if you can get going while making the game. Within the first 3 months you will figure out where you are going and how you are going to manage to code the game.

Just make sure that you inform every person you invite to join the development effort that you are trying to make an mmorpg and that the there is a possibility of it dying off. If they are still interested in joining you, then not only do you know that there is a good chance they will be dedicated members but also you will have warned them about possible pitfalls in joining the project.

Go for it!
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

^^^
Funny++.

You get that this project, like 99.5%[1] of community MMO* is already dead, right?

[1] I charitably assume that there might be one that is actually still on track for completion. Maybe.
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
ErUs
Posts: 165
Joined: Thu Oct 07, 2004 6:13 pm

Post by ErUs »

check out my MMORPG dev blog http://yammogame.blogspot.com/

im over 13 years old so it may get finished :P
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

ErUs wrote:im over 13 years old so it may get finished :P
Also, based on your desktop background, you're not married, which ought to help. :P

Good call on using non-blocking sockets, by the way.
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
Post Reply