gamedig / node-gamedig

Query game servers and not only! Node.JS/Deno or Bash (via the CLI).
https://www.npmjs.com/package/gamedig
MIT License
587 stars 143 forks source link

feat: Support torque game engine based games #559

Open skylord123 opened 3 months ago

skylord123 commented 3 months ago

What is this feature about? Torque Game Engine based games such as Tribes 2, Blockland, and Age of Time all run on older Torque Game Engine (which is the predecessor to Torque 3D).

Would be nice to support querying these servers.

Additional context/references I uploaded the source for TGE v1.2 and the query source code is here (Age of Time is based on v1.2): https://git.skylar.tech/skylord123/TorqueGameEngine2005/src/commit/4f5d1133b87cb39928506bec5160965fa1c2ed7f/engine/game/net/serverQuery.cc

Here is the source for TGE v1.5 (which Blockland uses): https://github.com/ldarren/tge-152-fork/blob/master/engine/game/net/serverQuery.cc

Tribes 2 runs on TGE before it was released so probably closely matches TGE v1.2.

The official Age of Time server can be queried at 45.148.165.55:28000

Dedicated Blockland server: 45.148.165.55:28300 Other servers for BL can be found at https://blockland.us/browse.php

CosminPerRam commented 1 week ago

Looks very promising, thanks for the provided great documentation around it, will have a try at it soon.

Both 1.2 and 1.5 have this defined

// This is basically the server query protocol version now:
static const char* versionString = "VER1";

and it seems that the files are exactly similar, so there shouldn't be problems around querying specific version of the game engine.