Làm thế nào thường làm MMORPG lớn cập nhật vật lý? [đóng cửa]


12

Theo tôi hiểu, hầu hết các trò chơi lớn đều sử dụng dấu thời gian cố định để có một mô phỏng ổn định.

Về máy chủ trò chơi , họ áp đặt "tốc độ khung hình" nào? Hoặc nói theo một cách khác, những dấu thời gian cố định nào họ có xu hướng sử dụng?

Tôi biết nhiều người sẽ nói: "Nhanh như họ có thể thoát khỏi". Tôi muốn biết nó nhanh đến mức nào, nếu bạn có kinh nghiệm trực tiếp về MMORPG đã thành lập.


Bạn không nên quá chú ý đến những gì người khác làm. Những gì làm việc cho người khác không nhất thiết cũng cần phải làm việc cho bạn.
Philipp

6
EVE Online cập nhật mô phỏng mỗi giây một lần, nhưng hệ thống của nó không bình thường. Xem phần đầu tiên của bài viết này để biết thêm chi tiết: themittani.com/features/under Hiểu
Ross Ridge

1
Vì vậy, đây là một câu hỏi "hỏi về những câu đố về những trò chơi của người khác đã tồn tại" trái ngược với câu hỏi về việc phát triển một trò chơi?
Trevor Powell

2
Tôi sẽ không gọi đây là chuyện vặt - nó khá quan trọng. Thực tế là một số trò chơi có thể sử dụng tích tắc 1 giây mà tôi không biết hoặc hoàn toàn không sử dụng vật lý, điều đó rất quan trọng đối với tôi (và nó nên dành cho bất kỳ nhà phát triển nào). Đồng thời, câu trả lời của tôi cho Philipp là do hàm ý không nói ra rằng tôi đã hỏi điều này vì tôi muốn quyết định FPS của mình. Điều đó sẽ không có ý nghĩa vì động cơ của tôi có nhiều hạn chế và tôi đã biết giới hạn FPS tôi có thể sử dụng (cả giới hạn dưới và giới hạn trên).
Fabio

1
Tôi nhớ đã đọc một bài viết về Blizzard thay đổi tốc độ xử lý máy chủ WoW cho các sự kiện chiến đấu từ 400 MS một lần thành "bất cứ khi nào họ đến". Tuy nhiên, điều đó không liên quan đến vật lý, vì WoW không thực sự có nhiều thứ trong cách vật lý do tuổi của nó. Tôi cũng không thể tìm thấy một nguồn cho việc này.
Nzall

Câu trả lời:


7

Cuộc sống thứ hai thực hiện vật lý ở phía máy chủ bằng cách sử dụng Havok và khóa cập nhật lên 45 mỗi giây.

https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120

Các phiên bản trước đó vào khoảng năm 2005-2006 cho phép các bản cập nhật vật lý nổi cao như máy chủ cho phép. Một khu vực không phức tạp với một vài đối tượng theo kịch bản có thể chạy ở 800 cập nhật mỗi giây ... Để có hiệu quả và tính nhất quán cao hơn, sau đó họ đã khóa nó thành 45.

(Trong Cuộc sống thứ hai, tốc độ khung hình phụ thuộc vào CPU và sức mạnh đồ họa của từng khách hàng. Độ chính xác của thế giới phụ thuộc vào hiệu suất mạng.)


Thật vậy, điều này có vẻ hợp lý. Tôi đã tìm thấy thậm chí thấp tới 30 FPS để thực hiện công việc tốt nếu tích hợp tốt và phát hiện va chạm đủ thông minh. Bạn có biết về các MMO khác với vật lý phù hợp và dấu thời gian của chúng không?
Fabio

2
Được chấp nhận là người duy nhất cung cấp một ví dụ trong thế giới thực, nhưng tất cả đều là những món ăn ngon để suy nghĩ. Cảm ơn các bạn.
Fabio

24

Tôi đã làm việc trên một vài máy chủ trò chơi, bao gồm một bộ trong số họ cho MMO.

Nói chung, họ không có vật lý nào cả. Trong một số tình huống cần thiết về vật lý (nhảy, chủ yếu), chúng tôi cho phép khách hàng tự tính toán vật lý của mình và chúng tôi chỉ từ chối bất cứ điều gì quá kỳ quặc (người chơi di chuyển quá nhanh quá lâu, cao hơn nhiều so với họ có thể nhảy, Vân vân).

Máy chủ cũng thường không có 'dấu thời gian'. Họ thường không nghĩ về "khung hình mỗi giây". Thay vào đó, chúng tôi biết lần cuối chúng tôi nghe được từ ai đó và những gì họ đang làm sau đó, và sau đó khi chúng tôi nghe lại từ họ một lúc sau đó, chúng tôi nghe về những gì họ đang làm bây giờ, và vì vậy chúng tôi cập nhật trạng thái nội bộ của mình để phù hợp . Không cần mô phỏng nghiêm ngặt mọi thứ phía máy chủ; chúng tôi chỉ có thể ghi lại những điều khách hàng nói với chúng tôi và thực hiện một số kiểm tra để đảm bảo rằng những gì khách hàng nói đã xảy ra có vẻ hợp lý với chúng tôi.


4
Điều này sẽ chỉ hoạt động nếu môi trường không thực hiện bất kỳ mô phỏng nào mà không có người chơi đăng nhập, phải không? Tôi thực sự đã cho rằng nó thường làm , nhưng có lẽ điều đó không quan trọng đối với hầu hết các MMO vì nó không thực sự "sống". Cảm ơn, đây là một câu trả lời bất ngờ.
Fabio

2
@Fabio Hầu hết các MMO không làm gì khi không có người quan sát - ngay cả Ultima Online, nơi đã từng có một nền kinh tế thực sự (và sinh thái) để nó ra đi trước khi được phát hành (mặc dù không phải vì lý do kỹ thuật). Có những trò chơi diễn ra ngay cả khi bạn không chơi (ví dụ: Haven và Hearth), nhưng mẹo là không có gì xảy ra cho đến khi nó được quan sát - mọi vật phẩm hoạt động đều nhớ lần cuối cùng được quan sát và tính toán những gì đã xảy ra trong Trong khi đó, khoảnh khắc bạn nhìn thấy nó một lần nữa. Vì vậy, thay vì một giá trị cập nhật mỗi đánh dấu, bạn làm perTick * ticksSinceLastUpdated- đơn giản, hiệu quả.
Luaan

1
Đừng hiểu lầm tôi; Máy chủ MMO thường sẽ có các nhiệm vụ định kỳ mà họ chạy. Kiểm tra quái vật cần được hồi sinh, xem xét các nút tài nguyên sinh sản, sao lưu trạng thái trò chơi. Thậm chí có thể một cái gì đó lạ mắt hơn nếu trò chơi của bạn có một số hoạt động thủ tục. Nhưng nó không giống như vật lý khi bạn chạy 'x' lần mỗi giây ngay cả khi không có ai xung quanh. Bạn có thể kiểm tra sinh sản quái vật vài lần một phút, ngọn (hoặc nhiều khả năng, có một chương trình bên ngoài thực hiện điều đó và chỉ chọc máy chủ để biết rằng đó là thời gian, vì vậy máy chủ có thể tập trung xử lý các yêu cầu của khách hàng) .
Trevor Powell

11

Bên cạnh những câu trả lời hay khác được đưa ra, tôi muốn thêm một thực tế là một số vật lý thường không được điều khiển bởi máy chủ hoặc thậm chí không biết về máy chủ và là một mẹo phổ biến để làm cho thế giới dường như phong phú hơn mà không cần thêm mạng vào máy chủ hoặc máy chủ xử lý bên.

Ví dụ, có thể có những mảnh vỡ bạn có thể đá xung quanh trên mặt đất hoặc thổi xung quanh trong gió tương tác với các vật thể khác, hoặc có thể bạn có thể đẩy xác chết xung quanh.

Nếu vật lý hoàn toàn mang tính trang trí và không ảnh hưởng đến chuyển động hay lối chơi theo bất kỳ cách nào, bạn hoàn toàn có thể xảy ra ở phía khách hàng.

Những người chơi khác nhau sẽ thấy mọi thứ khác nhau (như, nếu bạn bắn một cái lon xuống đất và nó bay đi, những người chơi khác có thể không thấy nó có thể bay đi) nhưng có rất nhiều trường hợp không quan trọng là trải nghiệm đó không phải là ' Tất cả người chơi đều giống nhau và việc mô phỏng vật lý phía khách hàng thực sự có thể cải thiện giao diện của trò chơi trực tuyến.


Trong một số trò chơi, nếu nó có thể bay đi đủ nhanh, nó có thể giết chết ai đó. Tôi đã từng xem các video về các trò chơi Halo trong đó một người nào đó bị giết bởi một hình nón giao thông đẩy chúng vào một vụ nổ.
Random832

Nếu bạn muốn có thể ảnh hưởng đến trò chơi, bạn có thể thêm nó vào thế giới vật lý được đồng bộ hóa, nhưng bạn cũng có thể có một thế giới vật lý không đồng bộ trong cùng một không gian! Về cơ bản, thế giới vật lý không đồng bộ có thể bị ảnh hưởng bởi người chơi và thế giới vật lý được đồng bộ hóa, nhưng nó không thể ảnh hưởng đến họ trở lại (:
Alan Wolfe

3

EVE Online, một MMO với một mảnh vỡ duy nhất và lên đến vài nghìn pla trong các trận chiến không gian lớn chạy vật lý của nó trên một tích tắc 1 Hz, được gọi là đánh dấu "định mệnh".

http://community.eveonline.com/news/dev-bloss/fixing-lag-drakes-of-destiny-part-1-1/

Cái gọi là "Bloodbath of B-R5RB" là cuộc chiến người chơi mới nổi lớn nhất từng xảy ra trong một trò chơi trực tuyến cho đến nay ("cuộc xung đột kéo dài 21 giờ liên quan đến tổng số 7.548 nhân vật người chơi và tối đa 2.670 người chơi trong hệ thống B-R5RB cùng một lúc ", theo https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.