ไม่มีวิธีมาตรฐาน
อุปกรณ์ต่าง ๆ มีความสามารถและข้อ จำกัด ที่แตกต่างกัน
อุปกรณ์ส่วนใหญ่ไม่รองรับ "กำลังป้อนกลับ" (เช่น: พวงมาลัยที่เมื่อกดปุ่มขอบถนน / หลุมบ่อจะอนุญาตให้โปรแกรมเมอร์ผลักกลับไปยังมุมที่เฉพาะเจาะจง) แต่ก็ดังก้องไปในทิศทางที่ไม่สามารถควบคุมได้
ดังนั้นฟีเจอร์ Force Feedback ที่กล่าวถึงใน MSDN / DirectX และ API อื่น ๆ ไม่เคยปรากฏจริงในตลาดผู้ใช้หรือมีการใช้งานที่ไม่ดีและ / หรือไม่พกพาของตัวควบคุม "สมาร์ท" (ซองจดหมายซ้ำ ฯลฯ ) จะใช้ไม่ได้จนในทางปฏิบัตินักพัฒนามักจะถูกบังคับให้ใช้ตัวควบคุมเปิด / ปิดโดยตรงกับการใช้เอฟเฟกต์ของตนเอง
อุปกรณ์ขั้นสูงเพิ่มเติมที่อนุญาตให้ป้อนข้อมูลด้วยแรงป้อนกลับแบบบังคับต้องใช้ API ที่กำหนดเองเนื่องจาก API อินพุตทั่วไปไม่สนับสนุนพารามิเตอร์ที่จำเป็น (มุมที่แน่นอน, แรงที่แน่นอน, ขีด จำกัด และอื่น ๆ )
การเพิ่มเทคโนโลยีที่เกิดขึ้นใหม่เช่นถุงมือความรู้สึก VR ลงในส่วนผสมทำให้ API ทั่วไปเหล่านั้นขาดไปมากกว่านี้
การนำไปใช้ที่พบบ่อยที่สุดคือมอเตอร์ DC สองตัวที่มีน้ำหนักไม่สมดุลแต่ละตัวน้ำหนักที่หนักกว่าตัวอื่นและไม่มีการควบคุมความเร็วที่แม่นยำ
อย่างน้อยที่สุดคุณสามารถเปิด / ปิดการควบคุมได้และสามารถทำการควบคุมพลังงานPWM ที่จำกัดแต่ไม่สามารถควบคุมความเร็วได้อย่างแม่นยำ คุณไม่รู้ว่าความเร็วและการสั่นสะเทือนที่เกิดขึ้นจริงจะเป็นอย่างไร ตัวควบคุมที่แตกต่างกันมีมอเตอร์และตุ้มน้ำหนักที่แตกต่างกันซึ่งจะทำงานด้วยความเร็วที่แตกต่างกันสำหรับการตั้งค่าเดียวกัน
มอเตอร์ต้องหมุนก่อนและต้องใช้กำลังเต็มที่สักครู่จากนั้นจึงสามารถ PWM ไปที่การตั้งค่าที่ต่ำกว่า ความล่าช้าหมุนขึ้นอย่างมาก จำกัด การตอบสนอง
ตัวควบคุมมักได้รับการปรับปรุงหนึ่งครั้งต่อเฟรมโดยให้ความถี่การอัปเดตประมาณ 20Hz ถึง 100Hz นี่เป็นการจำกัดความละเอียดของการควบคุม PWM ของคุณเนื่องจากคุณไม่ต้องการให้มอเตอร์หยุดการตั้งค่าที่ต่ำที่สุด และคุณไม่ทราบว่ามอเตอร์ของตัวควบคุมผู้ใช้สามารถไปได้น้อยเพียงใดก่อนที่จะหยุด (หยุด) ดังนั้นคุณต้องมีความปลอดภัยที่ดี
ข้อกำหนดของระบบบางอย่างทำให้มีข้อ จำกัด เพิ่มเติมเกี่ยวกับสิ่งที่คุณสามารถทำได้
อุปกรณ์มือถือมักจะมีมอเตอร์สั่นเพียง 1 ตัวและ PWM อาจไม่สามารถทำได้เนื่องจากความเฉื่อยต่ำจากขนาดของน้ำหนักและอัตราการอัปเดตช้า ระบบอาจกรองเพิ่มเติมเพื่อป้องกันการละเมิดหรืออาจเกิดความเสียหาย (ขีด จำกัด ของตัวขับเคลื่อนพลังงานและการเหนี่ยวนำแหลม) หรือเพียงแค่ระบบย่อย GPIO ที่ช้ามาก ๆ
บนมือถือคุณอาจถูก จำกัด หรือต้องการ จำกัด ตัวเองให้ "สั่นสำหรับ X * 50 มิลลิวินาทีโดยประมาณ" โดยไม่ต้องใช้ PWM
อุปกรณ์และตัวควบคุมที่ใหม่กว่าบางตัวมีโซลินอยด์ขับเคลื่อนเหมือนลำโพงโดยคลื่นเสียงอัตราตัวอย่างต่ำ สิ่งเหล่านี้ช่วยให้คุณควบคุมได้มากขึ้น แต่แตกต่างจากตัวควบคุมทั่วไปโดยสิ้นเชิง
เพราะความแตกต่างเหล่านี้คุณอาจต้องการนามธรรมระบบสั่นสะเทือนที่จะเล่นในจำนวนที่ จำกัด ระดับสูงมหภาคผลกระทบโดยใช้ชื่อในการยิงและลืมแฟชั่น: PlayVibration(player, "Got Loot");
, PlayVibration(player, "Heavy Fall");
, StopAllVibrationFor(player);
...
แล้วคุณจะมีการสร้างผลสั่นสะเทือนในระดับต่ำและรหัสควบคุมการสั่นสะเทือนปรับให้เข้ากับแต่ละแพลตฟอร์มเป็นรายบุคคล
แม้กระทั่งสำหรับเกมเพลงที่เรียกใช้การยิงครั้งเดียวPlayVibration
สำหรับทุกจังหวะการจัดการและควบคุมได้ง่ายขึ้นเมื่อทำการหยุดเกมและปัญหาของการซิงค์เครื่องกำเนิดเอฟเฟกต์เป็นระยะจะเป็นสมาร์ท
ในขณะที่อุปกรณ์ที่มีก้องขดลวดแม่เหล็กไฟฟ้าเป็นตัวขับเคลื่อนที่เกิดขึ้นจริงสามารถรักษาได้เช่นอุปกรณ์เสียงและใช้ API เสียงเนื่องจากความกังวลแบตเตอรี่นี้อาจวิ่งปะทะกันของกฎระเบียบของระบบถ้าขดลวดแม่เหล็กไฟฟ้าที่มีการขับเคลื่อนอย่างต่อเนื่อง / การใช้งาน "พลังงานระดับ 0" อาจไม่เหมือนกับ "โซลินอยด์ปิด" ดังนั้นแม้ต้องใช้ความระมัดระวังเป็นพิเศษ