Phân tích cấu trúc được thực hiện trong các trò chơi như thế nào (ví dụ: xây dựng cây cầu, Dig hoặc Die và 3D)?


11

Từ những gì tôi hiểu, một hệ thống giàn tương tác điển hình sẽ cần các tính toán đáng kể vì mọi thành phần đều ảnh hưởng đến toàn bộ hệ thống. Tôi nghĩ rằng bạn có thể tùy ý dừng lại ở một số lần lặp nhất định với chi phí chính xác trong mô phỏng, nhưng tôi không biết liệu đó có phải là cách tiếp cận mà các trò chơi này sử dụng không (trò chơi xây dựng cầu là một ví dụ về hệ thống giàn). Mặt khác, các trò chơi như Dig hay Die có một hệ thống cấu trúc khá phức tạp cũng tính đến mô-men xoắn (tôi tin) và nén và rất nhanh và hoạt động trên các hệ thống rất rộng. Tôi đoán các tính toán cơ bản có thể giống nhau, nhưng nếu không tôi quan tâm đến cả hai cách tiếp cận.

Các bạn có biết làm thế nào chúng được thực hiện? Họ có giới hạn tùy ý hay họ hoàn toàn sử dụng một thuật toán khác nhau? Ngoài ra, tôi đoán bất cứ điều gì các bạn nghĩ ra đều có thể được áp dụng cho các hệ thống 3D nhưng nếu không hoặc nếu không rõ ràng thì ít nhất hãy đưa ra manh mối về cách bạn có thể sử dụng nó cho 3D vì tôi quan tâm đến điều này cho cả 2D và 3D Trò chơi.

Tôi biết tôi không nên cảm ơn ở đây nhưng tôi thấy không công bằng khi không cảm ơn bạn vì đã dành thời gian cho bạn, tôi hy vọng đoạn này không bị xóa.

EDIT: Nếu tôi đoán, tôi sẽ nói Dig hoặc Die lưu trữ vectơ cho mỗi khối và sau đó chạy thuật toán lặp đến mức độ chính xác thêm trong mô phỏng là vô nghĩa đối với các giới hạn của hệ thống (ví dụ: hệ thống sẽ quá lớn để không sụp đổ dù thế nào), do đó, nó bị giới hạn bởi số lần lặp bán tùy ý (vì nó dựa trên ứng dụng). Nhưng tôi có thể sai.


Nói tóm lại, vâng, thông thường đó là phép lặp, với bước thời gian và số lần lặp có thể được điều chỉnh cho tốc độ so với chất lượng. Cũng có thể thiết lập một ma trận lớn và đáp ứng tất cả các ràng buộc cùng một lúc nhưng điều đó có thể khó khăn hơn rất nhiều và không thực tế hoặc không thể trong một số tình huống.
Alan Wolfe

Câu trả lời:


5

Tôi là nhà phát triển của Dig hoặc Die, vì vậy tôi có thể cung cấp thêm một chút chi tiết về vật lý trò chơi

Quả thực điểm quan trọng nhất là các màn trình diễn, vì trong trò chơi, bạn có thể xây dựng hàng ngàn khối vật lý, và điều quan trọng là tôi có những thứ khác phức tạp hơn để mô phỏng (mưa / nước) vì vậy tôi có thể dành rất ít thời gian CPU cho vật lý xây dựng .

Vì vậy, tôi thực sự đã làm một loại ... tôi không biết, một thuật toán cá nhân tùy chỉnh không chính xác lắm, nhưng nó hoạt động đủ tốt cho trò chơi. Tôi có 1 vectơ cho mỗi giao điểm khối (vì vậy mỗi khối được liên kết bởi tối đa 4 vectơ, mỗi vectơ ở mỗi bên của nó). Mỗi khối có một "trọng lượng" và "đẩy" các vectơ xung quanh nó (bằng nhau) để tổng cường độ của vectơ bằng với chiều cao của nó. Khi một khối được neo xuống đất, tất cả các lực / trọng lượng được đẩy vào nó sẽ không bao giờ bị "đẩy lùi", do đó, tự nhiên với đủ số lần lặp, toàn bộ hệ thống sẽ tìm thấy sự cân bằng. Trọng lượng / lực sẽ sắp xếp "dòng chảy" đến các điểm neo và quản lý các thay đổi rất tốt trên cấu trúc. Bạn có thể xem kết quả tại đây (với mục "Kính Eiffel" ingame): nhập mô tả hình ảnh ở đây

Về các điểm xuyến, tôi mô phỏng nó bằng cách nhân các lực được truyền theo chiều ngang. Nó không hoàn hảo nhưng đủ để cảm nhận sự khác biệt lớn giữa việc xây dựng theo chiều ngang và chiều dọc

Nhưng thành thật mà nói tôi không thích hệ thống của mình nhiều như vậy, trong một số trường hợp, nó không chính xác lắm; chủ yếu là vì tôi không quản lý việc nén và mở rộng. Có lẽ có một cách để thực hiện một mô phỏng chính xác hơn so với của tôi mà không cần nhiều CPU, nhưng kỹ năng (và thời gian) của tôi về nó rất hạn chế nên tôi đã làm những gì tôi có thể :-)

(PS: bạn đoán là rất tốt :-))


4

Cá nhân tôi đã thành công tốt với Thư giãn lặp đi lặp lại . Tôi nghĩ rằng nó tuân theo các định luật vật lý khá độc đáo khi xử lý các vật thể được tạo thành từ các khối tổng hợp. Tôi tin rằng loạt BridgeBuilder dựa trên một phương pháp như vậy, mặc dù tôi không có nguồn nào để xác nhận điều này.

Thư giãn lặp đi lặp lại được sử dụng rộng rãi cho các vì kèo , nhưng tôi đã mô phỏng thành công các vật thể rắn lớn (bê tông) với nó: nó khá đơn giản là một vì kèo, có các khớp mang tải thay vì quay tự do.


Điều thú vị là thư giãn là một kỹ thuật để giải quyết các vì kèo tĩnh, vì vậy nó là chính xác. Về mặt đó, nó được sử dụng để tính toán lặp lại một sự dịch chuyển mang lại một cấu trúc về trạng thái cân bằng.

Nhưng giá trị gia tăng cho một trò chơi (nơi chúng ta quan tâm đến môi trường động, bởi vì các cấu trúc cân bằng tĩnh, nhàm chán) là chúng ta có cơ hội thực sự thay thế các khớp của cấu trúc giữa mỗi lần lặp, dựa trên các ràng buộc được tính toán cho đến nay . Bạn nhận được hai lợi ích chính:

  • Bạn có một cấu trúc động, phản ứng chính xác với mọi nhiễu loạn bên ngoài
  • Bạn có một cấu trúc đáp ứng chính xác để mất các thành viên hỗ trợ (nghĩ rằng việc tháo gỡ nhanh không có kế hoạch) bằng cách chuyển sự căng thẳng của nó sang các thành viên khác. Thật sự khá thú vị khi xem dòng chảy căng thẳng được di chuyển khi các khớp bị gãy trong một sự kiện dây chuyền
  • Bạn có một mô phỏng phi tuyến tính! Giải thích thêm về ý tôi muốn nói:
    Thông thường , phân tích tĩnh làm cho giả thuyết biến dạng nhỏ , trong đó cấu trúc không di chuyển ra khỏi trạng thái ban đầu. Trong các giới hạn này, phân tích tĩnh là chính xác vì các khớp không thực sự bị dịch chuyển nhiều. Nhưng khi cấu trúc biến dạng dưới sức nặng của sự sụp đổ, bạn sẽ nhận được kết quả chính xác cho đến khi kết thúc với một mô phỏng phi tuyến tính, trong khi bạn sẽ chỉ nhận được trạng thái không hợp lệ từ một bộ giải tuyến tính

Thư giãn lặp đi lặp lại khá đơn giản để đặt tại chỗ, Ổn định số . Tôi đã sử dụng sơ đồ RK4 một cách thành công để đạt được sự ổn định với các cấu trúc rời rạc lớn. Hạn chế là nó thường có độ cứng khá nhỏ vì lý do hiệu suất, vì vậy đôi khi có thể cảm thấy khá giống thạch mềm.

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.