Động cơ vật lý có thể xử lý nhiều người thu hút?


9

Tôi đang kết hợp một trò chơi sẽ được chơi chủ yếu với lực hấp dẫn ba chiều.

Điều đó có nghĩa là nhiều hành tinh / sao / mặt trăng hoạt động thực tế, và vẽ đồ thị và dự đoán đường đi trong trường trọng lực.

Tôi đã xem xét một loạt các động cơ vật lý, chẳng hạn như Bullet , tokamak hoặc Newton , nhưng dường như không có cái nào phù hợp, vì về cơ bản tôi phải viết lại động cơ trọng lực trong khuôn khổ của chúng.

Bạn có biết một động cơ vật lý có khả năng đối phó với nhiều cơ thể tất cả bị thu hút lẫn nhau không?

Tôi không cần quản lý phối cảnh, hoặc kết xuất, chỉ là vật lý cốt lõi. (phát hiện va chạm sẽ là một phần thưởng, cũng như động lực học cơ thể cứng nhắc).


Nền tảng của tôi là về vật lý, vì vậy tôi có thể viết một công cụ sử dụng tích hợp Verlet hoặc RK4 (hoặc thậm chí tích hợp Euler, nếu tôi phải) nhưng tôi thích ứng với giải pháp trên kệ hơn.

[sửa]: Có một số tài nguyên tuyệt vời để mô phỏng vật lý các vấn đề cơ thể trực tuyến và trên stackoverflow


7
Bạn có thể đơn giản sử dụng Bullet và từ chối lực hấp dẫn tiêu chuẩn của nó bằng cách nào đó không? (ví dụ: tránh gọi áp dụngGravity, gọi setGravity với vectơ bằng 0, sử dụng BT_DISABLE_WORLD_GRAVITY ...) Chỉ vì hiệu ứng mong muốn của bạn xảy ra là một dạng trọng lực không có nghĩa là bạn cần có thể đạt được nó thông qua API "trọng lực" của động cơ vật lý cơ bản.
Neverender

Bạn có thể sử dụng một số loại lò xo nghịch đảo
Roy T.

1
@RoyT. Một lò xo trên mỗi se có một lực tỷ lệ với d trong khi trọng lực là d ^ (- 2) (thậm chí không d ^ (- 1)). Bạn có thể nhận được quỹ đạo từ cả hai, nhưng với các đặc điểm rất khác nhau. Nếu bạn chỉ có nghĩa là sử dụng một ràng buộc dựa trên khoảng cách được cung cấp bởi động cơ, thì có - nếu nó có một hình vuông nghịch đảo.
Kevin Reid

@KevinReid có lẽ bạn đúng, nhưng tôi không chắc là tôi nhận được lời giải thích của bạn. Bạn có nghĩa là lực lò xo phụ thuộc tuyến tính vào khoảng cách và trọng lực là phụ thuộc vuông góc?
Roy T.

1
Osmos là một trò chơi nhỏ tuyệt vời. điều tốt nhất tôi có thể tìm thấy là cuộc phỏng vấn này
brice

Câu trả lời:


2

Tôi không nghĩ rằng bạn sẽ có thể sử dụng một động cơ vật lý thời gian thông thường vì ba vấn đề cơ thể sẽ không cho phép quỹ đạo ổn định.

Bạn có thể kéo động cơ vật lý ra khỏi Stellarium hoặc một số gói thiên văn học khác.

Tuy nhiên, tôi nghĩ rằng cách hành động tốt nhất là chỉ cần nướng trên đường đi của hành tinh của bạn và kéo chúng ra khỏi bàn. Trừ khi người chơi của bạn thực sự có thể ảnh hưởng đến quỹ đạo của các hành tinh bởi hành động của anh ta, không có điểm nào thực hiện mô phỏng đầy đủ.


Trên thực tế, viết bài toán N-body, bạn có thể có quỹ đạo ổn định. Nó phụ thuộc vào phương pháp tích hợp của bạn. Tôi đã quản lý quỹ đạo ổn định với cả verlet và RK4.
brice

Đó là một gợi ý hợp lý để tính toán trước các đường dẫn, nhưng tôi muốn tự động tạo ra các hệ thống một cách nhanh chóng và ngoài ra, các hành tinh không thực sự là điều tôi lo lắng. Tôi thực sự muốn các con tàu bị ảnh hưởng bởi trọng lực, và vì chúng sẽ nằm dưới sự kiểm soát của người chơi, không thể tính toán trước các đường dẫn.
brice

Cách để có được quỹ đạo ổn định, cho bản ghi, là tạo ra các hệ thống đối xứng. Ngoài ra, thời gian cho sự không ổn định dài hơn nhiều so với thời lượng của một trò chơi trung bình. (không ổn định trên 100 đến 1000 quỹ đạo hành tinh, trong khi trò chơi sẽ không kéo dài hơn 4/5)
brice

Để biết ví dụ về quỹ đạo ổn định, hãy xem cái này (sử dụng Verlet)
brice

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.