Game Development Community

Networking

by Joshua Horns · in Torque 3D Professional · 10/02/2010 (5:12 am) · 7 replies

I've been looking into a tech solution for an MMO server framework (I'm designing the database schema and writing the networking code, server side).

My question is, what project should I be looking at as far as the networking interface from torque?

The basic use case is as follows:

Connect to a remote socket (TCP and UDP) and transmit data to and from the remote server.


I would prefer to use Torque because I own a professional license and therefore can dig in the code. My other option would be Unity (which has a nice interface via .NET sockets).

Again, since I've already paid for T3D I'd like to use T3D. Could anyone point me to the project? I've searched within the code files briefly but thought I'd ask the community before I really dig.


#1
10/02/2010 (5:47 am)
I've done all this and have it working quite well, my suggestion is for you to read all the code yourself.

It would take too much time and digging to make a comprehensive post about all the aspects of mmo networking in torque3d.

You might want to reconsider making a mmo if your not willing to do this.
#2
10/02/2010 (5:53 am)
Quote:I've done all this and have it working quite well, my suggestion is for you to read all the code yourself.

It would take too much time and digging to make a comprehensive post about all the aspects of mmo networking in torque3d.

You might want to reconsider making a mmo if your not willing to do this.

Chris gets better at self aggrandizement (1).


Now to the point. The implication of your post is that the networking code is interspersed throughout the code. This is an answer to my question in itself.

A clean interface would be a "networking project" which is used throughout a torque solution. If this isn't the case it might not be worth it to consider Torque, which is (in case you were so eager to lecture you forgot to comprehend my post) the point of my OP.

Thanks for starting my return to the forums on the right foot.
#3
10/02/2010 (6:15 am)
Yeah, you can do that. You create a TCPObject to send those types of messages across the connection. Its quite robust, it lets you make your own netcode framework if you're used to more bare-bones TCP connected messaging.

You can also use the PackUpdate and UnpackUpdate functionality to maintain sync between clients and servers, which is one of the main cool features about torque out of the box.

If your game is a straight-up-and-down themepark MMO, id suggest using unity with that add-on (i forget what its called, this isn't a unity forum, i am sure the unity forums thoroughly examine the ins and outs of making an MMO using that product), but if your game has any action elements, or does anything weird (out of the MMO norm) Torque is good because you can program it to taste unlike Unity where you are basically stuck with whatever you can make with that.
#4
10/02/2010 (7:15 am)
Devin,

Thanks for the info. I checked out Unity's site and saw the add on I think you were talking about.

I'm not making a game, exactly. My intent is to make a back-end server solution (framework) which will use one of the two front-ends to develop a game.

I'd say the MMO framework project you were talking about is close to my goal, however I am going to make a few design choices differently (language, db, etc). It's a learning experience and the hope is to make something viable in the end.
#5
10/02/2010 (8:09 am)
Honnestly, I have played with torque since 1 year and half and in term of networking, I found it very powerful.
The networking is very optimized and really easy to use once you dig a big into it.

If you are really interesting on how it works look in Google for tnl and you may found articles on the torque network part. This could be a step to understand the source code.
#6
10/02/2010 (9:23 pm)
From what I've seen, because everything under the sun seems to be derived, directly or indirectly, from NetObject, this can give the impression of the net code being spread out. E.g. Player implements its own scoping and packUpdate/unpackUpdate, but the template is pretty much the same overall. There is a nice article in TDN about it here.
#7
10/03/2010 (12:35 am)
Perhaps you should take a look at the Torque MMO project. I hear they have the source code changes already. Just doing a compare against it's source and the base engine source might help you learn exactly what you need to be thinking about. The Torque MMO project is like a Minon's of Mirth backend. Good luck, I found it a very good learning experience.