An MMORPG - Can we do it? Our plan.
-
- Posts: 5
- Joined: Fri Feb 16, 2007 7:48 am
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)
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
If you want modern rendering techniques learn how to make them or go to the engine next door =p
-
- Posts: 331
- Joined: Sat Sep 02, 2006 4:11 am
- Location: Michigan
- Contact:
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.
ENet uses reliable UDP so you wouldnt have that problem.omaremad wrote: However a dropped/lost packet might lead to devstating consequences (people dying on a client but not being sent to others)
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.
-
- Posts: 5
- Joined: Fri Feb 16, 2007 7:48 am
Exactly what i was trying to say.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.
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...However a dropped/lost packet might lead to devstating consequences (people dying on a client but not being sent to others)
-
- Admin
- Posts: 3590
- Joined: Mon Oct 09, 2006 9:36 am
- Location: Scotland - gonnae no slag aff mah Engleesh
- Contact:
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.
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
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
-
- Posts: 7
- Joined: Fri Feb 09, 2007 5:12 pm
Hello,
Im trying to design a mmo .
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
Im trying to design a mmo .
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
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!
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!
-
- Admin
- Posts: 3590
- Joined: Mon Oct 09, 2006 9:36 am
- Location: Scotland - gonnae no slag aff mah Engleesh
- Contact:
^^^
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.
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
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
check out my MMORPG dev blog http://yammogame.blogspot.com/
im over 13 years old so it may get finished
im over 13 years old so it may get finished
-
- Admin
- Posts: 3590
- Joined: Mon Oct 09, 2006 9:36 am
- Location: Scotland - gonnae no slag aff mah Engleesh
- Contact:
Also, based on your desktop background, you're not married, which ought to help.ErUs wrote:im over 13 years old so it may get finished
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
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way