Humble Weekly Bundle: Roguelikes 2 (Including AWL!)
A Wizard’s Lizard is included at the Pay What You Want tier of the current Humble Weekly Bundle!
Tell your friends :D
Man a weekly of roguelikes? So long free time, nice knowing you.
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.
Told my friend whom I’ve been trying to convince to buy the game since… well… 2013?..
Let’s hope for the best! :D
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 , ,  are undefined, and element  is a valid gamepad (maybe because it is /dev/input/js1). then, it looks like the caller just returns the '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  with element , 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?
@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.