Tôi đã sử dụng thành công Farseer để phát triển một trong các trò chơi của tôi bằng cách sử dụng XNA. Trò chơi chạy như một sự quyến rũ trong Windows và WP7. Tôi hiện đang làm việc để chuyển trò chơi của mình theo số IOS sử dụng Monotouch và Monogame. Tôi đã thành công biên soạn và sử dụng Farseer cũng trên phiên bản đầu tiên của trò chơi của tôi được chuyển qua Monotouch và Monogame. Tất cả đều hoạt động tốt ngoại trừ buổi biểu diễn. Trò chơi chạy chậm hơn nhiều trên thiết bị iPhone. Tôi đã thực hiện một số điều tra mã và có vẻ như nút cổ chai chính là là Farseer. Nó trở nên thực sự chậm khi nó phải quản lý nhiều hơn 5-6 cơ quan với một vật cố định gắn liền (vòng tròn).Thay đổi Farseer Physics Cài đặt động cơ để cải thiện hiệu suất
Đọc các tài liệu tôi nhận thấy rằng để điều chỉnh Farseer tôi có thể thay đổi giá trị từ lớp tĩnh Thiết:
Performance
Để nhận được nhiều nhất của động cơ, bạn nên cố gắng và làm theo hướng dẫn bên dưới:
Bật chế độ ngủ Ngủ cho phép bạn có số lượng lớn thi thể trên thế giới. Nó cũng có thể làm tăng sự ổn định của động cơ vì các chuyển động nhỏ trong một chồng các thân không lan rộng trong ngăn xếp. Một cơ thể ngủ có ít chi phí, vì vậy cho phép nó được khuyến khích.
Disable CCD tục Collision Detection ngăn chặn đường hầm nhưng với chi phí thực hiện. Nếu bạn không gặp vấn đề với đường hầm, bạn nên tắt tất cả CCD.
Giảm thiểu số lượng các vị trí và vận tốc lặp Một số lượng lớn các lần lặp làm cho động cơ ổn định hơn với chi phí hiệu quả. Bạn nên tinh chỉnh các giá trị để phù hợp với trò chơi của bạn.
Tin xấu là nếu tôi thay đổi bất kỳ giá trị nào của lớp đó, dường như không có gì xảy ra. Tôi cố gắng để thay đổi các giá trị như sau:
EnableDiagnostics = false
VelocityIterations = 6
PositionIterations = 2
ContinuousPhysics = false
Tôi cũng thử với giá trị thấp như VelocityIterations = 1 nhưng không dường như thay đổi ....
Bất cứ ai đã thay đổi giá trị lớp Settings để cải thiện màn trình diễn?
Bạn có thể thử đặt câu hỏi này trên http://gamedev.stackexchange.com/. Vì cộng đồng của nó tập trung đặc biệt vào phát triển trò chơi (với sự tập trung dường như cao của các nhà phát triển XNA), bạn có thể nhận được câu trả lời tốt hơn ở đó. –
Mono rất chậm.Có rất tốt có thể không có bất kỳ cách nào để thay đổi các thiết lập đủ để tiết kiệm cho mình. – ClassicThunder
Không đúng sự thật ClassicThunder, Mono và Monotouch thực sự có hiệu suất ngay cả trên iOS. Tôi đã giải quyết được vấn đề và tôi phát hiện ra rằng Farseer không phải là vấn đề lớn nhất về vấn đề này. – John