Không có cách tiêu chuẩn hóa.
Các thiết bị khác nhau có khả năng và giới hạn rumble khác nhau.
Phần lớn các thiết bị không hỗ trợ "phản hồi lực" thực tế (ví dụ: Vô lăng khi va vào lề đường / ổ gà sẽ cho phép lập trình viên đẩy lùi về một góc cụ thể) nhưng chỉ ầm ầm theo một hướng không kiểm soát / tùy ý.
Vì vậy, hầu hết các lực lượng phản hồi các tính năng nêu trên MSDN / DirectX và các API khác chưa bao giờ thực sự cụ thể hóa trong thực tế trên thị trường sử dụng hoặc có kém và / hoặc như phi di động triển khai các nút điều khiển "thông minh" (phong bì, lặp lại, vv) như không thể sử dụng đến mức trong thực tế, các nhà phát triển thường bị buộc chỉ sử dụng các điều khiển BẬT / TẮT trực tiếp với việc thực hiện hiệu ứng của riêng họ.
Các thiết bị tiên tiến hơn cho phép phản hồi lực điều khiển bằng servo cần API tùy chỉnh vì API đầu vào chung không hỗ trợ các tham số cần thiết (góc chính xác, lực chính xác, giới hạn, v.v.).
Việc thêm các công nghệ mới nổi như găng tay cảm giác VR vào hỗn hợp làm cho các API chung đó thậm chí còn thiếu hơn.
Việc thực hiện phổ biến nhất là với hai động cơ DC có tải không cân bằng mỗi cái, một động cơ nặng hơn động cơ kia và không có điều khiển tốc độ chính xác.
Tối thiểu bạn có quyền điều khiển bật / tắt đối với chúng và có thể thực hiện một số điều khiển công suất giới hạn PWM nhưng không điều khiển tốc độ chính xác. Bạn không biết tốc độ và độ rung kết quả sẽ là bao nhiêu. Các bộ điều khiển khác nhau có động cơ và trọng lượng khác nhau sẽ chạy ở tốc độ khác nhau cho cùng một cài đặt.
Các động cơ phải quay lên đầu tiên và yêu cầu toàn bộ sức mạnh trong một chút thời gian sau đó có thể được chuyển sang chế độ thấp hơn. Độ trễ spin up hạn chế rất nhiều khả năng đáp ứng.
Các bộ điều khiển thường được cập nhật một lần trên mỗi khung hình cho bạn tần số cập nhật khoảng 20Hz đến 100Hz. Điều này giới hạn độ phân giải của điều khiển PWM của bạn vì bạn không muốn động cơ bị đình trệ ở cài đặt thấp nhất. Và bạn không biết động cơ của bộ điều khiển người dùng cuối có thể đi thấp đến mức nào trước khi ngừng (dừng) để bạn cần có mức an toàn tốt.
Một số yêu cầu hệ thống đặt giới hạn hơn nữa về những gì bạn có thể làm với chúng.
Các thiết bị di động thường chỉ có 1 động cơ rung và PWM có thể không thực hiện được do quán tính thấp từ kích thước của trọng lượng và tốc độ cập nhật chậm. Hệ thống có thể lọc thêm để tránh lạm dụng hoặc thậm chí có thể làm hỏng (giới hạn bóng bán dẫn trình điều khiển công suất và gai cảm ứng) hoặc chỉ là một hệ thống con GPIO thực sự chậm.
Trên thiết bị di động, bạn có thể bị giới hạn hoặc muốn giới hạn bản thân "rung trong khoảng X * 50 mili giây" mà không có PWM.
Một số thiết bị và bộ điều khiển mới hơn có một điện từ được điều khiển như loa bởi sóng âm thanh tốc độ mẫu thấp. Chúng cung cấp cho bạn nhiều quyền kiểm soát hơn nhưng hoàn toàn khác biệt với các bộ điều khiển phổ biến hơn.
Vì tất cả những khác biệt này bạn có thể muốn trừu tượng hệ thống rung để chơi một số hạn chế về trình độ cao vĩ mô ảnh hưởng bởi tên trong một-và-quên chụp hình thời trang: PlayVibration(player, "Got Loot");
, PlayVibration(player, "Heavy Fall");
, StopAllVibrationFor(player);
, ...
Sau đó, bạn sẽ phải tạo hiệu ứng rung ở mức độ thấp và mã điều khiển rung thích ứng với từng nền tảng riêng lẻ .
Ngay cả đối với một trò chơi âm nhạc, việc gọi một lần PlayVibration
cho mỗi nhịp cũng dễ quản lý và kiểm soát hơn khi bao thanh toán tạm dừng trò chơi và các vấn đề về đồng bộ hóa lại một trình tạo hiệu ứng định kỳ thông minh.
Mặc dù các thiết bị có tiếng ầm ầm điều khiển bằng điện từ thực tế có thể được xử lý như thiết bị âm thanh và sử dụng API âm thanh do lo ngại về pin, điều này có thể chạy theo quy định của hệ thống nếu điện từ liên tục được cấp nguồn / hoạt động . "Mức năng lượng 0" có thể không giống như "Tắt điện từ" vì vậy ngay cả khi đó cần có sự chăm sóc đặc biệt.