Game Development Community

dev|Pro Game Development Curriculum

Torque Master Server for Linux - call for testers

by Shaderman · 04/05/2010 (8:28 am) · 11 comments

I've written a Linux binary master server to be used with the Torque engines TGE/TGEA and T3D. This master server should be interesting for people running their own dedicated Linux server. It needs more testing but I want to release it soon for a price somewhat below $50.

If you think "WTF is that Torque Master Server doing?", let me try to explain it in a few simple words:

The Torque Master Server (tms) is a meeting place for Torque game servers and clients. When a Torque game server is started, it sends continuous heartbeats to the master server containing information about the game type it offers, if a password is needed to connect etc. A game client can query the master server with a game type and receives a list of matching servers. A game client can then connect to one of those returned servers.


Here's a short feature list:

  • It's a native executable, it's small (< 1 MB) and fast (not run through an interpreter like Perl or Python)
  • It can either be run as console application or daemon
  • Options can be passed from the command line or read from a config file
  • Logging to console, file and syslog (via UDP local or remote system) is possible
  • The server list is stored in a SQLite database and is persistent accross restarts by default
  • Timed execution of an external script or program is possible (some parameters like number of current servers and players are passed on execution)
  • 32 and 64 bit version will be available
  • The master was developed and tested with Ubuntu / Debian Linux but it should work with other systems, too (see the dependencies below)
To see a complete list of options, you can either download the man page or view a converted HTML version.

No blog without screenshot? Ok, here's an example I made with the timed execution option. I've used RRDtool to create some stats:

www.shaderman.com/Torque/master/blog-04-2010/hour.png
www.shaderman.com/Torque/master/blog-04-2010/day.png

As you can see, there's not much traffic yet on my master test server. This is where I need you! Please help me with testing and point your game to the master torquemaster.shaderman.com. You can just add it to the list of master servers. If you don't know to do this, let me know.

I didn't implement the buddyList part of the protocol yet. It doesn't look too useful to me at the moment because it isn't used by any of the stock engine examples :)

Oh and if somebody is interested in the dependencies, here's the ldd list from my 64bit executable:
linux-vdso.so.1, libsqlite3.so.0, libstdc++.so.6, libm.so.6, libgcc_s.so.1, libc.so.6, libpthread.so.0, libdl.so.2, ld-linux-x86-64.so.2

I hope you like it and please don't forget to help testing :)

Thanks,

Shaderman

#1
04/05/2010 (9:32 am)
I connected a server. I'll keep it connected for a few days. ;)
#2
04/05/2010 (11:05 am)
I will connect every day at the office and keep it running there ... see how it goes.

I for one will definitely be interested. :)
#3
04/05/2010 (4:26 pm)
The "playerList" part, I'm guessing is for when you click on a server you will be able to see the players currently playing, which most games have.

Does sound like a nice option :-), I'm sure lots of people want their own master server.
#4
04/06/2010 (5:04 am)
@eb Thanks dude :)

@Quinton Nice, every server or client is welcome :)

@Edward Sorry for that. I meant buddyList and not playerList :x This buddy list function isn't used by any of the stock engine examples, this is why I didn't code it yet. I've changed that in the blog.

I'll try to get a dedicated TGE server running the starter.fps example up tonight for testing. I wish more people would connect some public servers and do some testing like trying to connect, find their or other servers and so on.

We'll see :)

Thanks,

Shaderman
#5
04/07/2010 (9:21 pm)
hey, I just added the master server to my list. I should set the port to 28002 right?
#6
04/07/2010 (10:40 pm)
Yes Scooby, 28002 is correct.

Thanks,

Shaderman
#7
04/13/2010 (10:27 pm)
I would be interested in this too once it's for sale.
#8
02/03/2011 (6:06 am)
Now that Garage Games master server is down - I think we would all be interested in this!

I tried to add torquemaster.shaderman.com to my master server list (with port 28002) and my client could not seem to see the master server.

I will be the first to admit my test was not very scientific or thorough - I might just be doing something dumb.

Has anyone used Shaderman's very fine test master server recently?
#9
02/04/2011 (12:15 pm)
Paul, this master is hosted on a very low-end vServer which hung in some way. I just restarted the vServer and the master should be up again now. Unfortunately I don't have any Torque installation to test it atm but I hope it works again.

I'm out of Torque business at the moment but I'll try to keep the master running for you guys if the gg server is down.
#10
02/06/2011 (1:34 am)
Any chance you'll be putting the code for this out - for a price or otherwise?
#11
02/06/2011 (2:48 am)
Daniel, here's my offer: $0, no support, Licensed under GPL v3 :)

I had built this project using Code::Blocks, boost 1.42, boost.log RC4 and SQLite.

Here's the source.

Hope it's useful.