Openpad is a c++ library that allows you to make your game playable using a smartphone as a controller. Users can download the openpad client iOS and Android apps, automatically connect to a game on the local network, and play. No network code or socket programming required, openpad handles all that for you.
Creating multiplayer games using openpad is simple and easy. Implement a few callback methods, run the server, and you're good to go.
Openpad gives you complete control over the controller layout. Player controls are completely customizable, and you can even change the controls during the game. Using a smartphone as a controller means anyone can play.