Humble Weekly Bundle: Roguelikes 2 (Including AWL!)

  • LDG

    A Wizard’s Lizard is included at the Pay What You Want tier of the current Humble Weekly Bundle!

    Tell your friends :D

  • Jammer

    Man a weekly of roguelikes? So long free time, nice knowing you.

  • Patron


    I told all my friends to get the game and then download my tool to hack it. If I couldn’t convince them at full price, maybe they will get it at pay-what-you-want.

  • I just came here to congratulate you guys after receiving my weekly Humble Bundle email.

  • Patron

    Told my friend whom I’ve been trying to convince to buy the game since… well… 2013?..

    Let’s hope for the best! :D

  • LDG

    Hooray! Thanks for the <3

  • just got AWL via HiB. looks interesting! but, gamepad support doesn’t seem to work. i’m running ubuntu linux 12.04 64-bit.

    my gamepads work in almost all the other games (with various issues/workarounds depending on the game engine) i have, which is at least 30 titles. i guess many/most of those are unity or SDL based, however, it seems you guys are using chromium-crosswalk (?) as a platform/engine, and i’m not sure if i have any other titles using that.

    like any normal linux user, i tried to diagnose the issue a bit by intercepting the udev calls and printing the args/return values to see what was up. as far as i can tell chromium is detecting my gamepads properly in all the modes i tried. however, i can press ‘A’ (or any/all other buttons/sticks) all day long on any/all connected pads at the intro screen to no effect. i’ve tried using 1 pad, all 4, xpad vs. user-space driver, nothing seems to work.

    here are the sysattrs and such that are fetched by AWL when i have a single, official MS wired-USB xbox 360 controller attached:

    devnode=(null) key=ID_INPUT_JOYSTICK ret=1
    devnode=/dev/input/event6 key=ID_INPUT_JOYSTICK ret=1
    devnode=/dev/input/js1 key=ID_INPUT_JOYSTICK ret=1
    devnode=(null) sysattr=id/vendor ret=045e
    devnode=(null) sysattr=id/product ret=028e
    devnode=/dev/bus/usb/002/035 sysattr=idVendor ret=045e
    devnode=/dev/bus/usb/002/035 sysattr=idProduct ret=028e
    devnode=/dev/bus/usb/002/035 sysattr=manufacturer ret=©Microsoft Corporation
    devnode=/dev/bus/usb/002/035 sysattr=product ret=Controller

    note that in this case js0 is a logitech keyboard – sometimes having that attached causes issues with some games. but i tried without it attached as well, so there was only one js* device (js0, an xbox 360 pad) and there was no difference in behavior. further, based on the way chromium is enumerating the gamepads i don’t think it would have a problem with js0 not being a valid gamepad – it properly ignores it along with tons of other non-gamepad input devices in /sys.

    note that this test program works for me in both firefox (36) and chrome (41):

    whereas this one does not; in FF it just seems to do nothing, in chrome it says the gamepad API is not supported …

    it’d be nice if there was some feedback about what, if any, gamepads chromium/AWL thinks are attached and/or if it thinks gamepad support is enabled or not.


  • i poked around a bit more, and it looks like AWL (or some .js library it uses) is calling navigator.webkitGetGampads(), which (in my case) returns a list of 4 things, where elements [0], [2], [3] are undefined, and element [1] is a valid gamepad (maybe because it is /dev/input/js1). then, it looks like the caller just returns the [0]'th element without any checking/iteration, which seems bad. i guess a simple fix/improvement would be to iterate and return the first non-undefined element.

    i did try monkey-patching navigator.webkitGetGamepads() (using a console / remote debugging) with a wrapper that overwrote element [0] with element [1], and that did fix things. but i don’t know how i’d make that horrible hack permanent. maybe shove in some extra startup .js code somewhere?


  • LDG

    @Loof78 Thanks for posting such a thorough debugging! You’re right, blindly choosing the first gamepad isn’t great. I’ll make sure to look into that and provide a fix in the near future.

    We’re using NW.js (previous node-webkit) to package up our game for desktop. I don’t have much experience with chromium-crosswalk, but I image it’s similar.

Log in to reply