Source Engine Tick System Explained

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ธ.ค. 2022
  • Fix Your Timestep (mentioned at 6:44): gafferongames.com/post/fix_yo...
    King's Quest run: www.speedrun.com/kings_quest_...
    GoldenEye 007 run: • Statue - 00 Agent - 2:...
    OneShortEye: / oneshorteye
    This video's subtitles took 36 minutes.
    This project started around December 6.

ความคิดเห็น • 397

  • @Pinsplash

    People keep saying things along the lines of this so let me just inform you all that what happens in one engine has no bearing on another engine.

  • @izzieb
    @izzieb ปีที่แล้ว +1

    I know exactly what a tick rate is. It's how many ticks bite you per minute and it influences how quickly you get Lyme Disease.

  • @randomcommenter10_
    @randomcommenter10_ ปีที่แล้ว +49

    The Half-Life version of shounic

  • @hermitgreenn
    @hermitgreenn ปีที่แล้ว +26

    It deserves to be pointed out how unique the Goldsrc, Source and (to a lesser extent) IDTech engines are regarding how they process game logic in general. Everything, even the menus and single player runs on a server, a local server in this case. In a way. When you open Half Life 2 you effectively start a local dedicated server just for your game session. This is the reason enabling cheats is a server command, same with changing the tickrate. IDTech games tie some game logic to the frame rate even to this day whereas Source relies on tickrate. Frame rate dependent movement is why you have super bounce bugs in Quake 3 and Call of Duty 4.

  • @elijah5199
    @elijah5199 ปีที่แล้ว +7

    "Skyrim was developed by Bethesda" is one of the jabs at Bethesda ever

  • @bunslinger
    @bunslinger ปีที่แล้ว +25

    what bethesda games do is tie framerate to game logic. essentially the higher the framerate, the faster the game thinks, and the lower the slower, or framerate = tickrate. they actually fixed this problem in fallout 76, most likely using a separate parameter similar to valve's tickrate parameter in order to prevent people from getting free speedhacks via uncapping their framerate and looking at the ground, like goldeneye except to an extreme degree

  • @yiannis1236
    @yiannis1236 ปีที่แล้ว +71

    I think describing DeltaTime(DT) as the time that has passed since the previous frame would be a little more accurate. A simple implementation of an object moving based on DT would be to move the object x amount of studs DT * speed/time period.

  • @speeedrunner4218

    Doom source ports made tickrates first

  • @tomaz02
    @tomaz02 ปีที่แล้ว +55

    idk why but i have a soft spot for these type of technical explanations of video game mechanics, especially in the source engine. looking forward to see what vids u come up with next!

  • @Helperbot-2000
    @Helperbot-2000 ปีที่แล้ว

    "skyrim was developed by bethesda" lmfao

  • @p.100
    @p.100 ปีที่แล้ว

    It’s tilting to see someone talk about something you think of every day

  • @bugjams
    @bugjams ปีที่แล้ว +85

    "You won't understand what ticks until you understand the issues with the alternatives."

  • @lucialambda
    @lucialambda ปีที่แล้ว +827

    "skyrim was made by bethesda" 💀

  • @CodeF53
    @CodeF53 ปีที่แล้ว +201

    Minecraft with the Carpet mod gives an excellent demo of ticks.

  • @Whomobile
    @Whomobile ปีที่แล้ว +68

    I love how you explained this ! I didn't know things like the airboat gun or the screen shaking!

  • @WhiteDragon103
    @WhiteDragon103 ปีที่แล้ว +241

    Something else to consider: When dt is extremely small, (extremely high frame rates) floating point accuracy issues may occur, or in other words, rounding errors.

  • @kylemproductions
    @kylemproductions ปีที่แล้ว +187

    It’s worth noting that the tick system was made specifically for multiplayer. The server runs the game simulation and replicates the tick snapshots across the network so multiple source clients can view roughly the same game state. I suspect they use that model for single player simply because it’s easier to have unified game logic not because they thought it would fix bugs that are linked to framerate.

  • @saniel2748
    @saniel2748 ปีที่แล้ว +149

    Minecraft is, weirdly enough, an interesting example of such technique. As far as I know, it not only separated gameplay update and rendering update, it also puts them in completely different threads. Therefore, minecraft is like, the only game I know of, that can lag without drops in FPS. Stuff just won't move, but still render in 60fps

  • @OmegaRC59
    @OmegaRC59 ปีที่แล้ว +117

    In my experience with modding older unreal games, which are basically a really strict implementation of deltatime with the tickrate matching your current FPS, every single "high FPS issue" has boiled down to bad code, or very rarely just not enough precision. Big example in one of the old unreal games I mod, Harry Potter and the Chamber of Secrets (Classic PC adventure game if any of y'all never played it, it's actually really well made) has a lot of random high FPS bugs, most of the ones that are game specific were made by one guy who always referred to DeltaTime (the normal way) as DTime. Basically all of his equations would produce highly inconsistent results to the point we've nicknamed him DTime guy, and some of his comments very confidently stated that "DeltaTime isn't accurate" and made way worse code because he just didn't quite understand what he was doing wrong lol. Wonder if he ever learned what was wrong in these 20 years haha

  • @BakersTuts
    @BakersTuts ปีที่แล้ว +4

    Hello. I was one of those people that asked how the tick rate affects the game engine. Thank you for the video!