HapticService for Mobile devices

As a Roblox developer, it is currently impossible to create haptic feedback for mobile devices using HapticService

I just checked wiki and saw nothing about mobile devices regarding HapticService.
From what I see it doesn’t seem like this can be achieved using HapticService, since it uses the UserInputType, and there is no UserInputType for mobile vibratory motor, just gyroscope and accelerometer.

This game would be able to make great use of mobile compatible haptic feedback.

com-video-to-gif

An example of a use case for HapticService: for this game would be that whenever the player’s ship gets severely damaged, the phone will vibrate.

I talked with the creator of this game and one thing he said stayed on my mind, which is that this game is mobile oriented. Considering the relatively low amount of fully mobile compatible games I think it’d be great if there would be more features available for mobile devices which could help creators make optimal gameplay experiences.

HapticService compatibility would be one of them. Haptic feedback makes a game more responsive to the player, depending on the use cases. If used well, it could also add better immersion.

Some examples of other games which could benefit from this would be: Dragon Riders, Natural Disaster survival, Super bomb Survival & Work at a Pizza Place

I believe that adding HapticService compatibility for mobile devices can make more engaging gameplay for mobile games and would encourage content creators to make more mobile oriented games.

132 Likes

I support this. I was making a game for iOS like 1-2 years ago and having HapticService back then would’ve been a great effect to add to the game.

22 Likes

Do phone games actually use haptics? It seems like it would get annoying.

As a user I definitely would uninstall roblox if every other game was vibrating whenever I pressed a button. Which is exactly what people will do with this.

14 Likes

It would, of course, be intended to be used responsibly, such as if we send a notification to our players, maybe a little vibration. I would enjoy this, and many mobile apps use haptics in their games.

19 Likes

You can do some neat UI effects just like iOS does such as the feeling of bounces wen you swipe down a UI element etc.

10 Likes

It would get annoying and it could only be used for a limited amount of things.
However, I do agree with it adding immersion for the things you would be able to use it for.
Developers would have to use it responsibly if they wanted to keep players rather than annoy them.
But, I do support this feature and it would be nice to have.

I was also talking to the user who made Mast (whom I made a nomination thread for). He said that this would be a pretty cool feature for Roblox to add. It’s a great example of what HapticService for mobile devices could be used for.

9 Likes

https://developer.apple.com/ios/human-interface-guidelines/interaction/feedback/

Mobile is a very difficult platform to get haptic correct on.

17 Likes

I would like this for increased damage feedback on mobile

10 Likes

I would still like this feature looked into. Roblox is one of the leading free games on Apple and we should be able to use the latest API available that other games on the platform utilize, in this case Haptic Feedback.

11 Likes

I would love to see haptic feedback functionality, this would allow us to give the mobile users extra feedback, for example: I hold down on a button, my phone vibrates a little and gives me some audio feedback, the menu pops up a little bouncy and I can then use the menu. Instead of just holding on the button, a menu opens, boring.

Just like we can do this with controllers, why can’t we with phones?
User feedback is something that I think is really important, if you want a good “user interface” it’s not just about the design itself. But other stuff too. A good interface needs to be appealing to use.

Having haptic feedback would allow developers to create a more streamlined experience across all of iOS, like the homescreen icons when you hold down on them. I’m not sure if other operating systems like Android have an alternative to this.

14 Likes

Was this ever addressed? Currently looking at doing this for an FPS game that just passed 2M visity… Mobile is a little more than half our audience and haptics on mobile should really be looked at for this reason! We at LEAST need Apple device support!

16 Likes

Bumping this, kind of surprised Roblox doesn’t already have this

16 Likes

This is now supported in 538 and up.

34 Likes

It seems like mobile devices use Gamepad1 for HapticService. Can this be documented somewhere?

Seems like on my iPhone 13 Pro, all 6 VibrationMotors are supported according to IsMotorSupported, but only Large and Small seem to do anything. Are different motors supported by different devices?

5 Likes

The short answer is that the existing API is device-centric (gamepad-centric really). Calls to SetMotor Large/Small will keep working, but we are thinking about modernizing the API and extending it to more devices. Most mobile devices only have a single motor and less haptic features than iPhone 13 Pro, thus I recommend to abstract away from specific hardware to general effect patterns.

13 Likes

Thank you so much! This was one of my feature requests as an Accelerator back in the Spring of 2019 :pray:

8 Likes

Can you explain what exactly you mean by abstracting away to general effect patterns? What would an example of this be?

2 Likes

I like this addition, but I would have greatly appreciated if:

  1. There was an announcement made before implementing this feature, to let us adapt our game to mobile vibrations. In fact, my games uses vibrations for controller, but the addition of this for mobile caused some inconvenience that I could have anticipated a notice was made before. For example, a user reported that music playing on the phone’s background is lowered while it’s vibrating, which is very annoying.
  2. There was a specific vibration motor enum item for mobile vibrations, or a different input type to trigger vibrations. Currently, as Phoebe said above, the vibration input type is set to Gamepad1, which is very confusing, and caused vibrations, which were intended to be felt on controller, to be on mobile as well, which is not always pertinent or even worse, disturbing.
8 Likes

E.g. instead of “SetMotor Large Left of Gamepad1 to 50%”, you would “SetEffect SmallExplosion Direction”, which then internally gets interpreted for each platform.

8 Likes

Upvote. The documentation of HapticService is poor in other ways too - vibrationvalues is not explained and it’s not clear whether :SetMotor needs to be called again to end the vibration.

4 Likes