GithubHelp home page GithubHelp logo

mako88 / dxx-tracker Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 0.0 2.08 MB

Simple Tracker for DXX-Rebirth.

License: MIT License

PHP 7.89% CSS 4.21% C# 73.83% Shell 0.39% HTML 13.68%
dxx-rebirth tracker

dxx-tracker's People

Contributors

mako88 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

dxx-tracker's Issues

How to set up in Ubuntu?

Trying to get the tracker working in Ubuntu, but I gcan't figure out how to build it from the source here. The website portion seems to be running OK...

Tracker registers D1X games but not D2X

Screen shots are attached with packet captures showing bidirectional UDP traffic with tracker IP. UDP stream contents shown. Tracker seems to only register D1X even when selecting all.

D1X listed
D1X working pcap
D2X not listed
D2X not working pcap

Web page not displaying games.

Hi there - pulled the repo from git and the server.php instanced is running fine and logging games from hosting clients - other clients can see the games in the ingame browser when pointed at my local tracker.

The web page loads fine, shows that the backend process is running fine but never retrieves a list of games from the sqlite database. If I run games.php manually there is no ouput either.

I noticed that the web page on the main tracker at http://dxxtracker.hopto.org/ also didn't show any game output when I pointed my client there and hosted a game.

Thanks in advance.

Send All Games in Bulk Packets

Send the game list in packets with a max size of MTU: 1500 bytes. Send an initial packet telling the number to receive, then in each packet tell the client which in the list it is (so the client can check if it missed any).

Tracker is offline

The tracker at http://dxxtracker.hopto.org appears to be gone. This is affecting anyone trying to play multiplayer on Rebirth 0.59 and later.

Please let me know if you would like any help/assistance getting this up and running again.

Add Log

Log all incoming and outgoing packets with timestamps and info received/sent.

Convert $peer for IPv6 support

Make sure that the $peer returned by stream_socket_recvfrom is in the correct format for stream_socket_sendto when using IPv6.

Multiplayer Issues

I am not able to get a two pc's on different networks to join into a game together unless I use Hamachi. Both PC's can host and be seen on the tracker but cant see each other or other games on the in game list. LAN also works well. Just TCP connection without the aid of Hamachi is the issue.

Packet String Improvements

So here's the changes I'm thinking packet-wise (let me know what you think): When a client hosts a game (packet 21), they will recieve back 21GameID with the GameID of their game. When they want to unregister a game they'll send 22GameID with their GameID to unregister (the tracker will check both the port/IP their sending from AND the GameID they send to makes sure that a host can only remove his own game. This should make it impossible for someone to spoof an IP/port to remove a game since they'd also have to know the GameID of the game to remove).

When the tracker recieves 22GameID, it will reply with 22-0, 22-1, or 22-2. 22-0 means the game unregistered succesfully. 22-1 means the GameID wasn't found (or didn't match the IP/Port), and 22-2 means the IP/Port wasn't found (or didn't match the GameID). (This could be simplified to just 22-1 for success and 22-0 for not-success if you'd rather).

When a client sends 26GameID to hole punch, if the GameID isn't found, it will recieve back 27GameID (the ID of the game they tried to hole punch).

Finally, if a host is updating a game, he will include the c=GameID key in the value string so that the tracker knows it should be updating. Otherwise, it will create a new game. (So for instance, if the tracker gets 21b=HEADER,z=BLOB, it will create a new game, but if it gets 21b=HEADER,c=GameID,z=BLOB it will update the game with GameID). This will also be double checked by both IP/Port AND GameID to prevent abuse.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.