L10: How Counterstrike Works (Time in Distributed Systems)

Поділитися
Вставка
  • Опубліковано 6 вер 2024

КОМЕНТАРІ • 71

  • @gamedevdan9694
    @gamedevdan9694 2 роки тому +12

    A few points about being "Shot by ghost", this is an accepted trade-off because like you know in networking because you are dealing with latency (time) between machines that the best you can do is "hide it" by making certain trade offs. In very fast paced games like Counter-strike doing any sort of "speculation" on the world update (extrapolation) creates more inconsistency, and is not viable. Valve even experimented with this early on and turned it off because it was way too error-prone. you cannot predict what a player will do in an instant in fast paced games, but only does it in the case of packet loss because at that point the inaccuracies matter less than the loss of data, that and it has no way to interpolate between two last known positions. Valve also solves this by increasing the amount of interpolation delay by ticks (3 packets) such that there is less of reason to try to "guess". That is how bad extrapolation is in a real-time, and fast paced game when the player can move any direction at any time or just stop completely.
    The notion of simply just using extrapolation to solve this "peekers advantage" and "hiders disadvantage" is noble but almost futile when you are "siding with the shooter" instead of the mover. trade-offs must be made when dealing with time... networks need to just be faster :(

    • @DistributedSystems
      @DistributedSystems  2 роки тому +3

      Fascinating -- thank you for the inside peek! (As you can probably tell, I have no insider experience here -- I was merely using what I could learn from reading public stuff, and combining it with my experience to try and teach some ideas about time in distributed systems...)

    • @gamedevdan9694
      @gamedevdan9694 2 роки тому +2

      @@DistributedSystems Absolutely! It is very thought provoking stuff indeed. Thank you for providing your knowledge and experience as a course for free! We need more computer scientists like you.

  • @nikhiltaneja6673
    @nikhiltaneja6673 3 роки тому +7

    Awesome lecture. Just wanted to point out that we don't call it speculation, we call it physics interpolation in game development terminology. Similarly, we call it authoritative server architecture where one centralized server updates clients' world

    • @DistributedSystems
      @DistributedSystems  3 роки тому +5

      Thanks! As you can tell, I've never worked in the videogame world. Good to learn the proper terminology. (I always find it fascinating how different subspecialties of CS come up with similar concepts and give them different names. This is very common between databases and operating systems -- which have a lot of conceptual overlap.)

    • @nikhiltaneja6673
      @nikhiltaneja6673 3 роки тому

      Yeah I get it, that is why I am here to learn these concepts :)

  • @elli6220
    @elli6220 5 років тому +20

    Came from 3kliksphilip, great video! Also, I think one potential issue with sharing the keystrokes p2p is DOS attacks against other players.

  • @jb3689
    @jb3689 6 років тому +11

    These lectures are fantastic - can't wait for more!

  • @dmitriylevy7865
    @dmitriylevy7865 3 роки тому +1

    LOVE the fact that you used counterstrike as an example!

    • @DistributedSystems
      @DistributedSystems  2 роки тому +1

      It was fun playing the game a bunch to figure it out too... :-)

  • @royalgoose
    @royalgoose 3 роки тому +1

    Chris, thank you so much for your public service by releasing this course for free. I'm constantly amazed at the quality.

  • @MrZerged
    @MrZerged 2 роки тому +3

    This was great! Please don’t give up on making videos on this topic, you are excellent

  • @conduit242
    @conduit242 5 років тому +3

    I think you’ve *maybe* oversimplified TrueTime a touch here (maybe necessary for the audience and who am I to tell you anyway!). TT delays operations over a drift window before committing operations as I read the paper, creating a fundamental floor on the tick cycle for an individual state machine. Essentially, it sacrifices operation frequency for network roundtrips. It’s a bit hard to disagree with this approach when you compare it to Raft alternatives of the otherwise same design like CockroachDB, particularly over the WAN. Of course, it’s even more fun to mix the methods and even diversify with them 😉😁. Great presentations!

  • @jasonwang3739
    @jasonwang3739 6 років тому +1

    Great video, please know that people like me really appreciate your videos, and please don't give up on doing your courses.

    • @DistributedSystems
      @DistributedSystems  6 років тому

      Thanks!
      I've not given up -- just multitasking as a stay-at-home dad. (And it turns out these videos take a while to get right.)

    • @gunhound45
      @gunhound45 6 років тому

      Distributed Systems Course (www.distributedsystemscourse.com) Good to hear :) I cant wait to watch the rest of the course, you are a great teacher!

  • @Cneq
    @Cneq 3 роки тому

    I'm surprised these videos have such little views I've been learning I.T on my own for the last year and I'm starting my Bachelor of I.T in a couple of weeks and these videos have been a great help to have a head-start when some of these subjects eventually come up.

  • @vinayaksangar1928
    @vinayaksangar1928 2 роки тому

    Very great lecture. Much recommended..

  • @xuyang6721
    @xuyang6721 6 років тому +1

    Thank you Chris for all your hard work preparing such excellent series of videos. I've learn a lot !

  • @kumarc4853
    @kumarc4853 3 роки тому

    One word: Awesome!

  • @juozasjuozas
    @juozasjuozas 4 роки тому

    CSPromod was way ahead of its time. In contrast to CSGO it had death prediction, which meant you had your bullet shot and kill in the same frame. In CSGO your shots are being without a delay, thus implying a prediction of some sort, but NOT when it comes to applying killing shots. There is always a delay in your frames based on your ping. On the other hand death prediction would potentially lead to situations, in which players in tense situations might perceive being denied of should-kills (in a literal resurrectional manner) as the enemy had his kills being processed earlier by the server and mutual kills are not possible. Neverless i would take death prediction any day as i lose less time on verifying kills and sudden ressurections at least imply, you wouldve hit your shot ( a feedback you wouldnt receive otherwise)
    Thank you for the video!

    • @DistributedSystems
      @DistributedSystems  4 роки тому

      Huh, I'd not heard of CSPromod before. Fascinating. Thanks for the pointer!

  • @mugensekai
    @mugensekai 2 роки тому +2

    Ah yes this reminded me of my competitive gaming days. The what about the enemy / lag compensation reminds me of `frame_interpolation` or for short interp an ex_interp for you 1.5/1.6 players. ex_interp 0.1 is illegal, 0.01 is legal :)

  • @mbsfk
    @mbsfk 6 років тому

    Awesome that these are still ongoing!

  • @hieuluu2834
    @hieuluu2834 5 років тому +1

    thank you for creating this series

  • @spider853
    @spider853 5 місяців тому

    Sadly you can't send packages directly, because of IP leak. only through relays

  • @m13m
    @m13m 6 років тому +3

    Thank you please keep uploading

    • @danilsalin4932
      @danilsalin4932 6 років тому +1

      Yes, totally agree. Great video, thank you very much.

  • @andreip9378
    @andreip9378 Місяць тому

    Very good video!

  • @Kisme-e9f
    @Kisme-e9f 2 місяці тому

    23:39 where we can find those paper? I can't find them...

  • @kiberpress
    @kiberpress 3 роки тому

    Thank you very much for interesting material. I like the way you present it

  • @manuszmark
    @manuszmark 4 роки тому +1

    12:55 - Reminds me of Westworld

  • @patelanshul
    @patelanshul 6 років тому

    Awesome lecture and explanation, thanks !

  • @DamianSzajnowski
    @DamianSzajnowski 5 років тому +2

    Holy shit, the getting shot after already being behind cover makes so much sense now!

  • @hechen236
    @hechen236 5 років тому

    Nice series! Can't wait for more!

  • @prafbond
    @prafbond 4 роки тому

    Please create more such video on distributed systems.

  • @apostyle
    @apostyle 2 роки тому

    So you mean there are movements from other players that we don´t actually see because the system doesn't consider it necesary or game changing.

  • @striker865
    @striker865 6 років тому

    This was a great talk, thanks for sharing!

  • @ulkoalex
    @ulkoalex 5 років тому

    Great video, thanks! Also, can we use game ticks instead of number for logical keystrokes timer? e.g. ticks from the start of each round

  • @CharlesHydronium
    @CharlesHydronium 5 років тому +6

    3kilksphilip was here

  • @MyCarDriving
    @MyCarDriving 2 роки тому

    Amazing lecture, very engaging :)

  • @weiwenang1302
    @weiwenang1302 6 років тому +1

    can you do Consistency and Replication??

  • @john_rambo_27098
    @john_rambo_27098 4 роки тому

    Hi Chris, thanks in the first place for the amazing videos and effort; however, I would request you if you can give some pointers to me in terms of books, videos, articles, blogs etc as I want to start distributed computing from scratch; something like a distributed computing 101 and ahead. I would wait for your advice.

    • @DistributedSystems
      @DistributedSystems  4 роки тому +2

      Hopefully these videos are a good start. ;-)
      There are zillions of papers if you enjoy reading papers. Start at conferences such as SOSP or OSDI for some of the best of them. You can learn a fair bit (assuming you can get through them, some are quite challenging) by studying papers such as Paxos Made Simple, The Byzantine Generals Problem, End-to-End Arguments in System Design, MapReduce, The Google File System, Bigtable...
      There are multiple class syllabuses and slide sets online. Also many excellent professors and researchers have posted talks on UA-cam. There are also multiple textbooks on the topic -- although I've not read any (so I can't tell you how good they are).

  • @violethazeviolethaze
    @violethazeviolethaze 5 років тому

    Great video! Also, I am glad to know that you are the creator of binary bomb! That is fantastic, I really enjoyed it, haha!

  • @algorithmimplementer415
    @algorithmimplementer415 3 роки тому

    Thanks for the video. Is there any implementation of vector clock?

    • @DistributedSystems
      @DistributedSystems  3 роки тому

      Not sure what you are asking -- are you asking if video games make use of vector clocks? Or are you asking if there are open source libraries which do vector clocks for you? Or something else?

  • @egor.okhterov
    @egor.okhterov 10 місяців тому

    What's your rating in the game? 😀

  • @vaporbabe3779
    @vaporbabe3779 6 років тому

    Can you do a video about leader election algorithms? This channel is great!

    • @DistributedSystems
      @DistributedSystems  6 років тому +2

      Thanks! I'll add it to my list of potential topics. :-)

  • @katopz
    @katopz 5 років тому

    I'm hungry for more!

    • @DistributedSystems
      @DistributedSystems  5 років тому +1

      Me too! I mean... I'm working on it, hope to have something to release soon. ;-)

  • @MrInsanepotato
    @MrInsanepotato Рік тому

    nice...

  • @amarnathjv
    @amarnathjv 4 роки тому +1

    Rush B

  • @Putper
    @Putper Рік тому +1

    looks like Valve will be changing how the tick system works with the new port to the source 2 engine:
    ua-cam.com/video/GqhhFl5zgA0/v-deo.html

  • @tr233
    @tr233 4 роки тому

    Now i know why CIG with Star Citizens suucks

  • @joo02
    @joo02 4 роки тому

    So ppl still play that game?