Page 5 of 5

Posted: Mon Mar 19, 2007 12:39 pm
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...

Posted: Mon Mar 19, 2007 4:57 pm
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)

Posted: Mon Mar 19, 2007 9:57 pm
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.

Posted: Tue Mar 20, 2007 6:13 am
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.

Posted: Tue Mar 20, 2007 7:06 am
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...

Posted: Sat Mar 24, 2007 9:45 pm
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.

Posted: Thu Aug 23, 2007 12:22 pm
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

Posted: Fri Aug 24, 2007 10:18 pm
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!

Posted: Mon Aug 27, 2007 1:58 pm
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.

Posted: Fri Sep 07, 2007 10:15 pm
by ErUs
check out my MMORPG dev blog http://yammogame.blogspot.com/

im over 13 years old so it may get finished :P

Posted: Tue Sep 11, 2007 12:39 pm
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.