3 điểm bởi GN⁺ 2024-02-29 | 1 bình luận | Chia sẻ qua WhatsApp

Giới thiệu về Rapier

  • Rapier là bộ công cụ vật lý 2D và 3D được viết bằng ngôn ngữ lập trình Rust.
  • Hướng đến các ứng dụng như trò chơi điện tử, hoạt hình và robot học cần vật lý thời gian thực.
  • Nhanh, ổn định và hỗ trợ hành vi xác định giữa nhiều nền tảng một cách tùy chọn.
  • Cung cấp các tính năng như va chạm và lực của vật thể cứng, ràng buộc khớp nối, sự kiện tiếp xúc và cảm biến, tính năng snapshot, hành vi xác định giữa nhiều nền tảng có thể bật tùy chọn, cùng với JavaScript bindings.
  • Rapier được cung cấp miễn phí theo giấy phép Apache 2.0 và được phát triển bởi công ty mã nguồn mở Dimforge.
  • Có thể ủng hộ dự án thông qua GitHub Sponsors.

Ý kiến của GN⁺

  • Rapier có thể là một giải pháp phù hợp cho nhiều lĩnh vực cần mô phỏng vật lý thời gian thực nhờ tận dụng tính an toàn và hiệu năng của Rust. Đặc biệt, nó được kỳ vọng sẽ hữu ích trong phát triển game hoặc mô phỏng robot.
  • Vì được cung cấp dưới dạng mã nguồn mở, Rapier có khả năng tiếp tục được cải thiện với sự hỗ trợ từ cộng đồng, đồng thời cũng thuận lợi cho người dùng tự bổ sung tính năng hoặc tối ưu hóa.
  • Công cụ vật lý dựa trên Rust mang lại lợi thế về an toàn bộ nhớ và xử lý đồng thời, nhưng bản thân ngôn ngữ Rust có độ khó học tương đối cao, nên các nhà phát triển hoặc đội ngũ cân nhắc áp dụng cần tính đến điều này.
  • Những công cụ vật lý khác cung cấp tính năng tương tự Rapier gồm có Bullet, PhysX và Havok; điều quan trọng là so sánh đặc điểm và hiệu năng của từng công cụ để chọn ra engine phù hợp với yêu cầu của dự án.
  • Lợi ích khi chọn một công cụ vật lý dựa trên Rust là hiệu năng và độ ổn định, nhưng so với các engine vật lý dựa trên C++ đang được dùng rộng rãi, hỗ trợ từ cộng đồng hoặc tài liệu có thể còn tương đối hạn chế.

1 bình luận

 
GN⁺ 2024-02-29
Ý kiến trên Hacker News
  • Có người đã phát triển một trò chơi nhiều người chơi trực tuyến bằng cách sử dụng engine vật lý Rapier. Dù vẫn chưa có chế độ chơi đơn, họ đánh giá API được triển khai bằng ngôn ngữ Rust là rất vững chắc.

    • Trò chơi hoạt động theo cách người chơi lần lượt va những con sâu vào đội đối phương để chiếm ngọn đồi.
    • Có thể xem trò chơi và mã nguồn logic vật lý/trò chơi trực tuyến.
    • Họ dự định sẽ viết một bài đăng về trải nghiệm phát triển.
  • Có người đã nghiên cứu sâu về Geometric Algebra trong vài tháng và cho rằng nó có thể mang lại cách làm việc trực quan, ngắn gọn trong nhiều dạng hình học khác nhau.

    • Họ thắc mắc liệu có nên dùng Geometric Algebra làm nền tảng cho một engine vật lý hay không.
    • Có một vài thư viện Rust liên quan, nhưng vẫn chưa nhận được nhiều sự chú ý.
  • Có người đã viết hướng dẫn về plugin Bevy, và cũng đã viết về Bevy XPBD.

    • Bevy XPBD là một lựa chọn thay thế thú vị trong hệ sinh thái Bevy.
  • Có người hy vọng Dimforge có thể dùng nalgebra và Rust để thay thế Eigen và C++ trong lĩnh vực robot.

  • Có người từng có kinh nghiệm xây dựng engine vật lý vật thể rắn từ vài chục năm trước, nhớ lại rằng việc dùng DAG là giải pháp tốt nhất để ngăn vật thể bị lún xuống mặt đất.

    • Họ thắc mắc không biết vấn đề này hiện nay đã được giải quyết hay chưa.
  • Có người cho rằng điều này xác nhận định kiến rằng đã có nhiều game engine được làm bằng Rust nhưng chỉ có số ít trò chơi thực sự được phát triển.

  • Có người đã tạo một bản demo web bằng Rapier, và thích việc nó có thể chạy cả phía máy chủ lẫn phía máy khách, đồng thời có thể triển khai dự đoán và hiệu chỉnh ở phía máy khách.

    • Họ nhắc đến các ưu điểm như tài liệu tốt, còn mới và kích thước bundle nhỏ.
  • Có người nhận xét khả năng tương tác JavaScript của Rapier là rất tốt.

  • Có người đã làm một trò chơi web đơn giản bằng Rapier, trong đó máy chủ tính toán vật lý và trạng thái thắng thua để ngăn gian lận.

    • Trò chơi là một lời tri ân tới trò chơi arcade điện tử cũ của Taito mang tên "Ice Cold Beer".