SHWotever/MotoGP-18-UDP-Telemetry

Is it real-time/live telemetry?

Opened this issue · 7 comments

Hi zegreatclan,

Sorry for creating an "issue", as this is the only way I have found to reach to you in order to ask a question.

My current understanding is that SRT does provide telemetry only if you finish your lap (so not real time).
Could you confirm that MotoGP18 is streaming through UDP in real time?
I'm asking this as I want to create a ~6DOF simulator dedicated for motorcycle and looking on multiple paths: Milestone games (hopefully with your UDP telemetry if real time), GPBikes (UDP Proxy does provide what I need), upcoming Bike Sim Experience (some of my questions asked here).

Looking forward to get your answer :)

I'm also wondering what software have you used to sniff the traffic and reverse engineer the data frames? Was it Wireshark? some other software?

Hi ! Yes the telemetry is real time (but not sent at all when online)
I used a custom software made myself for the purpose, it's working a bit like cheatengine but dedicated to UDP analysis.

Nicolas

Thank you very much for answering so quickly!

I was actually planning to give a try with cheatengine and memory hook techniques but seems like it's worthless, now that you have done the job :D

Benoit

Another question: Would you have the frequency of the UDP stream? how many times per second do you get the frame?

I don't know whether you have a Steam account, but I have raised some questions at SRT side on their steam page (without mentioning your hack, :P ): https://steamcommunity.com/app/845210/discussions/0/3362406825547351487/

According to them, UDP stream has some holes that makes their job harder as they need to create/guess some data in between timestamps. Depending on how much it is inconsistant, it would lead to inability to use the data in real time with a low delay (small buffer)..

Have you met the same issues?

No I did not had issues, but SRT is a cross platform tool (android ...) so indeed telemetry has to go through network (and even worse for this case ... wifi !) and by design udp is a send and forget protocol with no assured ordering and distribution. I'm reading between the lines but I assume mobile devices and physical network are the main issues they are talking about, But when you collect it on the same computer (loopback) it will avoid most issues IMO.

I would say don't bother too much about it, at worse you can discard known as invalid packets. Lot of games uses UDP and motion platforms uses it too. The platform has a latency too (movements are not instant) and it will probably hide any potential "holes" , it requires some better estimations than just my "feeling", but i'm almost certain it's the case.

For instance lot of simtools plugin are running at very low fps, plugins are made by community with very low knowledge about code efficiency and optimization, but it's still a platform of choice for many motion platforms

Yes I have actually completely missed android & wifi "layers" in this scenario ..

Then, their only way would be to get a local agent on the host encapsulating UDP data and piping this into a TCP session towards their android app.

But hopefully my usecase would stay local, at least wired only so I'm not going to stress much about it for now :)

How fast is the frequency of UDP packets stream you have been able to get from MotoGP18? Is it something you can change?