Tick là gì ạ?

Tick là gì ạ?

Nhiều lần em nghe thấy mọi người dùng từ “tick” này rồi. Ví dụ, mọi người sẽ nói các game demo được ghi lại trong 16 tick, hay là các máy chủ chạy trong 64 tick nhưng các máy chủ thực sự tốt thì sẽ chạy trong 128 tick.

Em không biết chính xác tick là gì. Tại sao việc có năng lực cao hơn 2 bất cứ cái gì sẽ tốt hơn? Em thấy nhiều bài nói về việc yêu cầu Valve thêm máy chủ có tick cao hơn, nhưng thực ra thì một cái “tick” cao hơn sẽ làm được gì?

Bình luận
Chấp nhận

Tick là gì?

Để hiểu nghĩa của tick đầu tiên bạn cần có hiểu biết sâu về vòng lặp game. 

Trong một vòng lặp game tiêu chuẩn bạn có 3 chức năng chính:

  1. Xử lý dữ liệu đầu vào của người dùng
  2. Cập nhật tình trạng trò chơi
  3. Hiển thị ra màn hình

Những bước này sẽ được lặp đi lặp lại trong game. Trên vòng lặp có các sự kiểm soát để 2 thứ khác nhau của phần cứng (như là các máy tính để bàn) không chạy vòng lặp ở các tần số khác nhau. Cái này cũng quan trọng trong các thiết lập máy chủ-máy khách như Counter-Strike để tất cả các máy khách  hoạt động đồng bộ. Một tần số tickrate được sử dụng để điều khiển nhịp độ cập nhật trạng thái trò chơi.  Một tickrate có tần số là 60 sẽ cập nhật trạng thái trò chơi 60 lần mỗi giây. Bạn thường thấy số này xuất hiện dưới các tên khác nhau như ticks, tickrate, ticks trên giây và tps

Lưu ý là việc hiển thị lên màn hình thường được điều khiển một cách khác nhau  (thường thấy là 60 frames một giây, hay 60fps) . Các vòng lặp phức hợp sẽ cố để tách riêng tickrate và frame rate, vì vậy thời gian xử lý dữ liệu dài hơn không hề gây ra việc giật trong trong đồ họa. Mặc dù chúng đã được liên kết, nhưng cũng rất quan trọng để hiểu rằng việc cập nhật game (kiểm soát bởi  tần số tick trên giây) khác với việc cập nhật màn hình (được đo bởi tần số frame trên giây)

Một số các game online như là Titanfall có tần số tickrate thấp hơn  nhiều (chỉ 20). Điều này có nghĩa là mỗi giây trò chơi sẽ được cập nhật 20 lần và được hiển thị lên màn hình 60 lần (giả sử như frame rate là 60 fps)

Tick cao hơn làm được gì?

Một tần số tick rate cao sẽ tăng tính phản hồi của game bởi vì hành động của bạn (di chuyển, bắn …) sẽ được phản ánh trong trạng thái game đều đặn hơn. Tuy nhiên, nó cũng đòi hỏi khắt khe hơn với máy tính/máy chủ và hệ thống máy khách tiềm năng của bạn.

Giữa tick rate cao hơn với các máy tính cấp thấp hơn có thể xảy ra xung đột. Cũng tương tự, phụ thuộc vào netcode (cái có thể được tối ưu hóa cho 60 chứ không phải 100+) bạn có thể gặp các lỗi khác với việc đồng bộ, các vấn đề về số thực dấu….

Vậy, tóm lại, một tần số tick rate cao hơn sẽ mang lợi lợi ích nếu các máy khách có thể theo kịp (với CPU và băng thông). Nếu không, chúng sẽ bị đơ nhiều hơn và gặp nhiều vấn đề khác hơn là khi dùng máy chủ 60 tick. Cùng vậy, chi phí sẽ cao hơn cho các máy chủ hoạt động với tần số tick rate cao hơn (thêm chi phí băng thông, vì bạn sẽ cập nhật các máy khách thường xuyên hơn).

Các trò chơi khác với các máy chủ chuyên dụng sẽ có mức tick rate thấp hơn 60 nhiều, vừa là để tăng lượng người chơi (thấp hơn đồng nghĩa với việc nhiều người có thể chạy game mà không bị lỗi hơn) và vừa là để giảm chi phí. Các trò chơi này sẽ mang lại cho ta cảm giác chúng không phản hồi được nhanh như các trò chơi/máy chủ có tần số tick rate cao hơn, cái mà không đáng kể khi xét đến việc ta đang nói về tần số cập nhật là 20 hoặc 60 lần mỗi giây. Dù gì thì trong một giây bạn có thể nhấp chuột bao nhiêu lần được chứ?

Nếu muốn đọc thêm về cái này, mình có vài link cho bạn:

  • Netcode – có vài đoạn tham khảo về tickrates
  • Vòng lặp game – đọc cái này nếu muốn hiểu về cơ chế chung tickrates and frame rates được sử dụng trong bất kỳ một trò chơi nào
  • 10 Tick Rate trên Battlefield – sự phản đối kịch liệt từ các trò chơi chạy với tỉ lệ tick rate thấp hơn.
Đã trả lời vào August 24, 2016
Bình luận

Dễ hiểu mà bạn. Một “tick” tương đương với một khoảng thời gian bé nhất để công cụ trò chơi hoạt động – tức là trong một giây trò chơi có thể di chuyển được bao nhiêu bước khác nhau. Với một tần số tick cao, trải nghiệm game có thể mượt hơn hoặc thực tế hơn, nhưng cũng đồng thời với nó là chi phí cao hơn của năng lực dành cho việc xử lý.

Trong một ngữ cảnh khác, thì tick là một sự kiểm đếm của việc bạn lấy bao nhiêu “mẫu” từ một kịch bản thực tế (về lý thuyết). Bạn càng lấy nhiều mẫu thì dữ liệu càng đỡ thay đổi thất thường.

Đã trả lời vào August 24, 2016
Bình luận

Đáp án của bạn

Với việc gửi đáp án, bạn đã đồng ý với Chính sách dữ liệuCác điều khoản của chúng tôi.