NOTICE Notice: This is an old thread and information may be out of date. The last post was 376 days ago. Please consider making a new thread.
Results 1 to 8 of 8

Thread: ReJoin Plugin / Real Live Timming

  1. #1
    Newer Member Jimmy's Avatar
    Join Date
    Jan 2012
    Location
    Brno
    Posts
    15

    Question ReJoin Plugin / Real Live Timming

    We have the endurance league, we ride a few races per year. We need to rejoin plugin. Can you advise us?

  2. #2
    Registered Tripp's Avatar
    Join Date
    Dec 2010
    Location
    Sweden
    Posts
    278

    join as a spectator

    Quote Originally Posted by Jimmy View Post
    We have the endurance league, we ride a few races per year. We need to rejoin plugin. Can you advise us?
    rejoin in a race you can set in multiplayer ini search spectator spectator you set before go in to rf lobby and server settings must allow it

    Only drivers that have set spectator can join a race session then can spectators take over a car in pit for example

    Allow Spectators="0" // Whether to allow spectator clients to join the server.
    Spectators When Closed="0" // whether spectators are allowed to join closed sessions
    Allow Passengers="0" // Whether to allow spectators to join a car as a co-driver/passenger. If set to 1 and Allow Spectators is set to 0, spectators will be kicked from the game during the Race Session.
    Allow Spectator Chat="1" // Whether to allow spectators to send chat messages

    set from 0 to 1 and test if a driver have lost connection he can always join a race as spectator if he was out and race and get a dnf im not sure then is the race over for the team ?

  3. #3
    Staff marrs's Avatar
    Join Date
    Oct 2010
    Location
    Arnhem, The Netherlands
    Posts
    109
    The only way to allow people to rejoin is to run the race in a practice session. There are plugins to do that. I wrote one of them, and over the years it has been used to host up to 24 hour events at sim-racing.org and RaceDepartment. It is open source, and you can find the code here: https://bitbucket.org/marrs/rfactor

    Probably you need to have a developer on your team to make this work, as I am fully aware that I did not make this code particularly easy to use and I have limited time to support leagues that use it. That said, I don't mind answering questions about it.

  4. #4
    Registered Lazza's Avatar
    Join Date
    Oct 2010
    Location
    Australia
    Posts
    3,452
    OP hasn't been here since September... but ok...

    I've always been surprised no one ever made a plugin/program that acted as a proxy for all connections. So you connect to the server in practice/qual/warmup, but you're actually connecting to the proxy, which then joins the server on your behalf and passes all information between you. If you get disconnected in a race it sends enough, and whatever is needed, to keep the server happy while waiting for your reconnection... then 'reconnects' you with the session.

    Of course it wouldn't be straightforward (first working out how to make the server happy in a driver's absence, then getting the client in a position where it can resume), but there seemed to be plenty of knowledge (generally, and regarding rFactor protocols) that would enable such a project to work. But if it never did, I can't see it happening now with rF2 around.

  5. #5
    Staff marrs's Avatar
    Join Date
    Oct 2010
    Location
    Arnhem, The Netherlands
    Posts
    109
    I think you over estimate the amount of public knowledge about the protocol.

    Also, really having a proxy in between would double everybody's lag.

    That being said, I would love to help out to build some way of clustering servers to enable failover (and/or a larger amount of cars on a server).

  6. #6
    Registered Lazza's Avatar
    Join Date
    Oct 2010
    Location
    Australia
    Posts
    3,452
    Quote Originally Posted by marrs View Post
    I think you over estimate the amount of public knowledge about the protocol.
    That's possible, yes

    But there's also a lot of talent, and enthusiasm, we used to have in the rF1 community that has since moved onto rF2 or other games (or, indeed, out of gaming completely). I got the impression there was enough knowhow to fill in at least most of the gaps, and when I heard some leagues or groups had got rejoins working I pretty much assumed this is what they were doing.

    Also, really having a proxy in between would double everybody's lag.
    Not really, because it's not a physical proxy server - just a program acting as a proxy. 99% of the time it would purely be passing data to/from the game server, so it receives player data through the public interface and sends it on to the game server's assigned data port. The outgoing server data would just go the opposite way.

    The only time it would need to 'step in' and actually do something is when it hasn't received data from a player for a set time, in which case it occasionally sends something to the server to say, "hey, I'm player X, I'm still here and my car is... um... sitting next to the track, or near the pitlane, or wherever." One of the difficulties would be how to handle a rejoin; if reporting that the server is in a race session stops the game client from even trying to connect you'd probably have to intercept the server's status reporting so it says it's in practice or whatever would work, then you need to update the client on the fact it's a race session (bearing in mind the server can already tell the client to change sessions; it happens every time the session does change, even if you're in the middle of loading the track when it happens) and then get the client up to speed on the current race status, possibly car condition (tyres and fuel especially), and presumably have them resume from the pits so you don't need to go overboard with placing the car somewhere more specific. You'd probably need a client side plugin to help with all this, too.

    This rare activity aside, most of the time the proxy service would just be passing through data with a little bit of checking, so adding very little lag especially in comparison to that already present for remote players.

    However, this is all conjecture on my part, I'm not claiming to have the ability to get something like this going, I just thought someone would have. As I said earlier with rF2 having rejoins and providing a better driving experience, even if it still has many annoying bugs or half-baked features (of course rF1 was never fully finished either) I don't think there would be enough push for anyone to bother getting this working in rFactor. Especially if the practice-session based workarounds are good enough to replicate racing conditions.

  7. #7
    Staff marrs's Avatar
    Join Date
    Oct 2010
    Location
    Arnhem, The Netherlands
    Posts
    109
    The existing rejoin plugins were not done by reverse engineering the protocol. They use an entirely different approach, namely running the race in a practice session and using a plugin to keep track of the score. A practice session has the advantage that you can always rejoin. As you say, that is good enough. Problem solved! Another problem that is solved, at least by the solution I wrote, is that it saves the race each lap, so even when the server crashes, you can still resume (the software simulates a full course yellow in such cases, having the whole field restart behind the safety car).

    rFactor 2 obviously solves the rejoin issue for race sessions. It still does not solve server crashes though, so some leagues, even with rFactor 2, run additional software to resume after a server crash.

    Back to the proxy. I agree with your story, but I was not thinking about a proxy to solve clients from getting disconnected (as I already solved that in the software mentioned above). I was thinking about redundantly running multiple servers to ensure that if one server crashes, the race continues without anybody noticing anything. That would be cool, as I can tell you all kinds of stories about server crashes, up to data centers being under a DoS attack while we were running a 24 hour race. There, the backup saved us as we were also saving that backup on a folder that was being synchronized with multiple servers. So at one point we even resumed a race on a completely different server in another data center.

  8. #8
    Registered knackko's Avatar
    Join Date
    Oct 2010
    Location
    France, Bretagne
    Posts
    49
    Quote Originally Posted by marrs View Post
    The only way to allow people to rejoin is to run the race in a practice session. There are plugins to do that. I wrote one of them, and over the years it has been used to host up to 24 hour events at sim-racing.org and RaceDepartment. It is open source, and you can find the code here: https://bitbucket.org/marrs/rfactor

    Probably you need to have a developer on your team to make this work, as I am fully aware that I did not make this code particularly easy to use and I have limited time to support leagues that use it. That said, I don't mind answering questions about it.
    Hi, I tried to build it from bitbucket repository but I don't succeed after several hours. I admit that I'm not a java/eclipse master
    Is there another way to get this plugin for rfactor without building it? thanks !

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •