2 registered members (Akow, tomaslolo),
1,536
guests, and 12
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Make MMOLove, not MMOWar.
[Re: Tobias]
#225857
09/06/08 12:40
09/06/08 12:40
|
Joined: Oct 2004
Posts: 4,134 Netherlands
Joozey
Expert
|
Expert
Joined: Oct 2004
Posts: 4,134
Netherlands
|
Well, like I said is what the first page says: ENet is NOT intended to be a general purpose high level networking library that handles authentication, lobbying, server discovery, compression, encryption and other high level, often application level or dependent tasks. That's why I think it's not suitable.
Click and join the 3dgs irc community! Room: #3dgs
|
|
|
Re: Make MMOLove, not MMOWar.
[Re: Joozey]
#225948
09/06/08 20:28
09/06/08 20:28
|
Joined: Jan 2004
Posts: 2,013 The Netherlands
Excessus
Expert
|
Expert
Joined: Jan 2004
Posts: 2,013
The Netherlands
|
Hello there 3dgs community. Long time no post from me, I've been busy with other projects I really don't have the time to read this entire thread, but I just want to comment on some things. Forgive me if this has been said before. - Security Fixes (ie: the ability of a dummy GS client to crash ANY GS server) Only in nonencrypted mode. A dummy client can not crash a server when you use encrypted mode for sending. Invalid packets, i.e. packets that don't come from a server or client of your project are then detected. That's right, but for performance reasons you don't want to encrypt everything. So I consider this problem not solved. It is very important to note that switching to another library in the way that jcl envisions is not a solution either. The problem (as I mentioned several years ago when I found this flaw) is at the core of the 3dgs network architecture; if you use another network library to implement the functionality of "updating variables by index", you'll still have the same problem. The only way to fix it "properly" is to break with the current 3dgs MP programming model. Something I don't think conitec would like to or should do (from a commercial perspective, not a software engineering one). The current model is pretty good for newbies (although it does regularly lead to confusion). What I propose is that conitec or an independent company/contractor develops a plugin binding RakNet, but with a new (well thought out) programming interface that is more suitable for large scale multiplayer games. This way you won't have issues with backwards compatibility and avoid licensing issues with RakNet (conitec only distributes a binding plugin, RakNet dll must be gotten from jenkins software). Such a plugin should use the more traditional programming model where the user sends "packets" and not "variables". Packets can be inspected by user code upon receiving them (to check what kind of packet it is, and then to see if it is within the range of allowable values). Basicly just stay close to RakNet's interface by writing a thin C-style layer over the C++ RakNet library. I have written such a plugin and it works well but unfortunately I am not allowed to distribute it.
|
|
|
Re: Make MMOLove, not MMOWar.
[Re: Oxy]
#226001
09/07/08 06:40
09/07/08 06:40
|
Joined: Aug 2000
Posts: 1,140 Baunatal, Germany
Tobias
Moderator
|
Moderator
Joined: Aug 2000
Posts: 1,140
Baunatal, Germany
|
The MP concept is not the problem. You need not use it, if you want not to send variable or entity updates, just send packets and dont send variables and switch off entity updates. But for beginners starting with MP, the concept is good.
I think what's lacking was encryption/security that seems implemented now, and then server to server communication. Updating only clients in range is not necessary I think because I'm with Excessus here, this can be programmed by the user.
|
|
|
|