Jump to content Jump to content

101jez101

Members
  • Content Count

    11
  • Joined

  • Last visited

Posts posted by 101jez101

  1. If you see under "Usage", there is some code. Try pasting that into a new file and save it as something like start.js

    Then back in the terminal, run the program you created using the command "node start.js"

    If your game is active and the udp config is standard amd working, you should start to see the packet data logged on screen. If you do, congrats, you are now officially a programmer!

    Now you need to figure out how to handle that data. Try changing console.log in this section to direct the packet to a function where you decide what to do with it.

    client.on(PACKETS.event, console.log);
  2. 45 minutes ago, Joebel81 said:

    What have to do whit npmjs or pypi program? i see just some code but i don't know how can use

    Google is your friend. Trial and error is the way forward. Install python mac or install node js mac. You are going to have so many questions, but if you know what to ask, you can usually find the answers.

  3. Hi Joebel81 - at the end of this journey, you will no longer be able to say "I'm not a programmer" because to achieve what you want, you will need to write a program or two to catch and slice the data how you want and deliver it to a UI you will build. 

    There are distinct areas - the first is capturing udp and converting it into human readable data. For this, you should probably use someone else's work. Try one of these maybe

    https://www.npmjs.com/package/f1-telemetry-client

    https://pypi.org/project/f1-2020-telemetry/

    The first is node js, the second is python and you can find others by googling f1 202x telemetry udp client. 

    With that up and running, you will have data. Lots and lots of data. You need to slice it up and extract the data points that you want. Remember that events are reported 20 times a second. Aggregation is super important because no one can read data of that frequency. 

    Once you have the structures you want, you need a way to display the info. You say you want the live time in a multiplayer race, but how is that displayed, on what device etc? Personally, I can't do anything else while I am driving - certainly not taking my eyes off the screen and focusing on something else. Even the radio buttons are too much for me 😊

    By the end, you will have an app and you will have programming knowledge. If this is all overwhelming, then quickly search for someone else's app and pay them some money. Don't expect it to be free because it's a lot of work building something like this. 

    My app was a journey during which first I learned more python and then I learned javascript from zero. It is built for me and displays what I wanted to see. That's all this is really - it's a vehicle for learning a whole bunch of stuff, if you pardon the pun 😁

  4. Just now, Hoo said:

    I don't think we record additional penalties on TT game side, so the behaviour you are seeing in the UDP output is probably correct. Let me know if you see this in any normal race session.

    Understood. Sorry for the lack of clarity and the minor panic. 

  5. 1 minute ago, Hoo said:

    This should fire on each penalty awarded. If you are only getting one sent per lap then this is wrong. If you can confirm this behaviour I will ask our QA team to investigate further. 

    I think on TT at least, you don't get subsequent penalties like track limits after the first one (Inc flashback which is also a penalty), unless it also affects the next lap. I haven't tested other game modes. 

     

    Even on the game itself, in TT, I think you only see the first invalidation event. I might be wrong. Usually after a marginal invalidation I get road rage and cut the next few corners and there don't appear to be any events. 

  6. 54 minutes ago, 101jez101 said:

     standalone event packet describing A) the last frameId before a pause and B) the last frameId *not* replaced.

    This doesn't necessarily have to be standalone. It could be included in the penalty packet if that was delivered every time there was a flashback. 

     

    Is there a reason why only the first penalty packet in a lap is delivered? 

  7. 2 hours ago, Hoo said:

     

    1. A mechanism to clean telemetry data of flashbacks (for instance removing/skipping the telemetry data that is being overwritten because the user is driving the same distance again after a flashback)
      • This is a bit tricky as this is a real-time data stream, so the only good data is the latest data. It might be that repeated track progress info needs to be handled within your app? The suggestion by @101jez101 of adding a flag to mark whether the current level of track progress is being repeated becomes awkward when you can do multiple flashbacks across a section of track, so not sure if that would work either. I've sent it onto the devs for further investigation, but any thoughts from your side would be welcome.

    I do understand the issues you would have flagging flashbacks / replacement frames and was thinking about the multiple, partially overlapping flashback scenarios (while repeatedly missing my braking point into turn 1 at Monza). 

     

    My best idea was that each lap you would have N lives in a counter field. Each time you flashback, that increments. Either / or that with a standalone event packet describing A) the last frameId before a pause and B) the last frameId *not* replaced.

    • Thanks 1
  8. 3 hours ago, Hoo said:

    Now is a good time! If anything is too complex to add for F1 2021 then it is still useful to know now for the future.
     

    For me the negative lap distance, same lap number on flying outlaps is not ideal. If, every time you cross the start finish line, even if in the pits or if you abort the lap, the lap number increments would be better. My current solution is a bit of a hack but I'm probably missing something. Please explain how I should identify the start of a new lap if I am. 

     

    Also, with flashbacks, a 'this is a replacement frame' flag would be useful. I get that you can't do a 'this frame is going to be deleted' flag 😊

    • Agree 1
×
×
  • Create New...