Ok, đây là một câu hỏi cấp độ mới bắt đầu nhưng tôi cần biết điều này, thuật ngữ "đánh dấu" đề cập đến trong bối cảnh phát triển trò chơi là gì? Nó có giống với FPS không? Cảm ơn!
Ok, đây là một câu hỏi cấp độ mới bắt đầu nhưng tôi cần biết điều này, thuật ngữ "đánh dấu" đề cập đến trong bối cảnh phát triển trò chơi là gì? Nó có giống với FPS không? Cảm ơn!
Câu trả lời:
Một đánh dấu là một đơn vị đo thời gian, cụ thể là nói đến một trường hợp duy nhất của một hành động lặp đi lặp lại (thường là một hành động rộng) trong một trò chơi, hoặc khoảng thời gian mà hành động đó tiêu tốn.
Bọ ve được lặp đi lặp lại và (chủ yếu) thường xuyên; thuật ngữ này xuất phát từ một trong những âm thanh mà đồng hồ tạo ra ("tick" và "tock").
Thông thường, một đánh dấu là một vòng lặp của một số vòng lặp, chẳng hạn như vòng lặp logic trò chơi chính. Chẳng hạn, người ta có thể nói rằng logic trò chơi "đánh dấu" một lần vào khung hoặc "trong khi đánh dấu, các vị trí nhân vật được cập nhật."
Tuy nhiên, nó cũng có thể đề cập đến các giai đoạn chi tiết hơn; người ta có thể nói rằng "đánh dấu AI trong trò chơi bị giới hạn trong 5ms thời gian xử lý."
FPS là thước đo xem có bao nhiêu khung hình (thường là kết xuất khung hình) một trò chơi xử lý trong một giây. Các mẹo và FPS không nhất thiết liên quan với nhau, tuy nhiên đôi khi mọi người sẽ gọi một lần thực hiện vòng lặp logic trò chơi là "khung logic", trong trường hợp đó, tốc độ FPS (logic) sẽ là số lần đánh dấu được xử lý mỗi giây. Điều này đặc biệt phổ biến đối với các trò chơi thực thi tốc độ khung hình cố định cho logic trò chơi hoặc vật lý vì bất kỳ lý do gì.
Hầu hết các trò chơi được thực hiện trong một vòng lặp. Cái gì đó như
def main
setup(a, bunch, of, stuff)
load(a, bunch, of, stuff)
while true do {
// <- A tick starts here
read(a, bunch, of, inputs)
call(a, bunch, of, stuff)
do(a, bunch, of, stuff)
update(a, bunch, of, stuff)
// <- A tick ends here
}
clean(a, bunch, of, stuff)
save(a, bunch, of, stuff)
end
Đó là một cách làm khá chuẩn, và trong khi kết xuất và các thành phần UI có thể được xử lý trong một luồng riêng biệt, logic trò chơi thực tế (nhấn w di chuyển con tàu của bạn về phía trước), xảy ra bên trong tích tắc này.
Đây cũng được gọi là "khung" và thường được coi là Tốc độ khung hình (không bị nhầm lẫn với các công cụ đồ họa). Tick đã trở thành một từ đồng nghĩa phổ biến để giúp phân biệt hai loại này.
Là một lập trình viên, mục tiêu của bạn là có tốc độ khung hình ổn định, ổn định bất kể là gì. Điều này giữ cho các phản hồi trong trò chơi của bạn trơn tru và hợp lý, đồng thời cho phép một mô hình (lập trình không phải đồ họa) xử lý mọi thứ theo cách thân thiện với máy tính. Thời gian đánh dấu không phải là hằng số trong các trò chơi và không có số ma thuật. Một số trò chơi là 100 khung hình mỗi giây, số khác là 1 tích tắc cứ sau 3 giây.
Một "đánh dấu" có thể đề cập đến hai điều khác nhau. Nó có thể đề cập đến một đánh dấu khung hình như bạn nói là tất cả các đồ họa hiển thị trên màn hình được cập nhật. Tuy nhiên, thuật ngữ "đánh dấu" cũng có thể ám chỉ đến một vòng lặp trò chơi. Loại đánh dấu đó là nơi mã của bạn được thực thi. Thông thường, bọ ve của bạn nằm trong một bối cảnh của một vòng lặp lặp lại sẽ tiếp tục cho đến khi trò chơi dừng lại.
Một đánh dấu thường đề cập đến một lần lặp của vòng lặp trò chơi trong đó tất cả logic được tính toán, do đó, các trò chơi thường có nhiều đánh dấu mỗi giây.
Tuy nhiên, nhiều trò chơi chạy cả vòng lặp đồ họa và trò chơi trên cùng một luồng vì đồ họa thường không mất quá nhiều thời gian để hiển thị để logic bị gián đoạn hoặc ngược lại (mặc dù các nhà phát triển đặt kiểm tra cho các tình huống như thế, như lấy chênh lệch thời gian giữa khung cuối cùng và hiện tại và điều chỉnh tốc độ di chuyển cho phù hợp).
FPS là viết tắt của F rames P er S econd, vì vậy đối với nhiều trò chơi, vâng, về mặt kỹ thuật, mỗi khung hình là một tích tắc.
physics engine update frame
quá dài để người chơi bình thường nhớ / hiểu.