Game Control Plus - a new library

NOTE This is the same as the ProControl Plus library which I released on the 21st April. It has been renamed to meet Processing's library naming rules. This was done so that it would be made available through the Add Sketch menu option in the PDE. To avoid confusion I have deleted the original announcement of ProControl Plus

Game Control Plus is an updated and extended version of the proCONTROLL library created by Christian Riekoff in 2005.

This library enables sketches to be controlled by joystick, gamepad and other similar devices.

The core API of PCP is very similar to the old proCONTROLL library so makes the transition for existing users easy.

Both libraries are built on top of JInput and unfortunately which has 2 drawbacks -

(1) a device on one platform (e.g. Windows, OSX, Linux) will not be recognised as the same device when connected on a different platform.

(2) Also if you exported the application it was hard coded for a particular make and model of control device (e.g. XBOX 260 Wired Controller) so made it difficult to distribute your application.

In both cases it will involve refactoring the source code, which the end user might not be able to do.

This new library will help overcome these problems. When a sketch using this library is launched it will search for the expected control device, if it can't find it it provides the end-user with an opportunity to configure another device using a visual interface and without resorting to source code changes.

If you visit the website you will find detailed information about this library and how to use it including 3 video guides. There are also links to download the library, although you can instal it through the PDE.

If you just want to see it in action watch the second video guide.

Game Control Plus website


  • I was saddened that proCONTROLL was not working under Processing 2 and MacOS X 10.9.x and as a result I had a collection of dead sketches using game controllers on my hands, this has allowed me to bring them back to life and I love the configuration capability! Thank you for this contribution.

  • Its good to hear that my libraries are helpful, so thanks very much for making the effort to say so.

  • Not only are they helpful, but so well documented, and the Configurator is a tour de force!

  • Thanks tons for this library, my School's computer club has been wanting a processing 3 version of procontrol, now we'll be able to use controllers at our LAN parties, :D.

  • edited October 2015


    So it worked with Processing 3? I haven't had a chance to check it out yet :)

    Does that include the examples that come with it?

  • @quark: thanks for the lib; it works, as for me, with OSX 10.6.8 && P2XX with P3 && osx yosemite, java 1.8, 2 errors are fired (configurator example):: first one easy to avoid, about size (only putting this in settings()) && changing the code a little bit. second one: Class not found Exception about PGraphics java 2D processing.core

  • @quark:: and even in P2 the configurator example fires that it does not know the frame var:: cannot find symbol [javac] symbol : variable frame [javac] location: class processing.test.configurator.Configurator [javac] frame.setTitle("Game Input Device Configurator");

    (and at the beginning that size cannot be set from var)

  • @quark:: hardcoding size (800,600) && now everything ok with P2; as for the second error (frame) it disappeared, i m unable to say why!!!

  • @akenaton:: Thanks for the info will be really useful when I come to upgrade this tool for PS3.

  • @akenaton in PS2, frame is an attribute of PApplet so the error you experienced should not happen and the fact it later disappeared makes me think you made a mistake. I certainly can't reproduce the error and if it occurred under normal circumstances someone would have reported it by now.

    The error with using variables for the size cannot be resolved to be compatible with both PS2 and 3. The easiest solution would be to provide 2 versions of the configurator and see how that goes.

    Again thanks for your help. :)

  • @quark

    as for P2:: that 's sure && i never got it till now; why i get it once, god knows... as for 2:: for P3 its easy to solve forP2 :: is it really important?? set hardcoded size to... thanks && cheers!!

  • @akenaton yes I could hard code the window size so it would be compatible with PS2 and 3. Unfortunately it is important to me that the window size reflects the amount of information to display, just aesthetics really :)

    The other problem is that the library uses the G4P library internally at runtime when it can't find a matching device and it is impossible to create a single version of G4P that is compatible with both PS2 and PS3. This does mean that PS2 and PS3 both require their own version of this library.

    C'est la vie :-bd

  • @quark:: i understand; so :: why not create some method (main) which returns display?? - i say that, but i have not try.. tomorrow!

  • @quark :: for the other question, ok, i cannot imagine the way to do that

Sign In or Register to comment.