Survive to hardware input issue
I don't know if we can do something on our side, but the USB keyboard I was using to test the engine on some ARM board disconnected its USB plug and the game crashed because of that, also printing some X11 errors:
Built 18 glsl shader programs in 25 ms (compile: 29 in 2 ms, link: 18 in 15 ms, init: 50 in 2 ms; cache: loaded 0 in 0 ms, saved 18 in 4 ms)
Player#3935395 entered the game
]X Error of failed request: XI_BadDevice (invalid Device parameter)
Major opcode of failed request: 131 (XInputExtension)
Minor opcode of failed request: 48 ()
Device id in failed request: 0x6
Serial number of failed request: 12358
Current serial number in output stream: 12358
At the same time Xorg printed this:
(EE) client bug: Invalid path /dev/input/event7
[dix] couldn't enable device 6
(EE) client bug: Invalid path /dev/input/event5
(EE) client bug: Invalid path /dev/input/event6
I wonder if we can make a way for the engine to survive this, so when such error happens the game continues and when the player re-plugs the keyboard the game is usable again.
Priority for this is low, but I wanted to document this.
This may be something to fix in SDL anyway.
Yeah that's probably not us. With the SDL API you rarely deal with raw pointers or any such thing where you can easily crash. A stack trace would be good for certainty.