- Improved support for non-latin characters in online play
[Note: there are still issues when playing online with players whose names are in a different character set than yours, i.e. playing with someone named ぬ when your current language setting is English; those should be fixed in the next patch].
- Fixed issue where using the Enter key to navigate menus could cause them to lock up.
- Support some more commonly used keyboard keys in the default controls, to improve usability.
[You can now use Space/X/Z/C as Jump/Jump/Attack/Swap when using the arrow keys].
- Name entry for online play is now saved.
- Misc. crash fixes
There were two problems occurring that interfered with non-latin character support:
Our 'master' game-listing server wasn't opening files w/ the correct encoding (UTF-8), so if you tried to list a game with a non-ASCII name the server would throw an exception and never respond. This was pretty straightforward to fix, we honestly should have caught it earlier.
We were trying to be good citizens by encoding all of our strings to UTF-8 before sending them to the master server, but this ended up being the wrong move; the Haxe methods Utf8.encode() and Bytes.ofString() both perform UTF-8 encoding on their string arguments, so the characters we were sending to the server were being split into multiple code points, then those code points were being parsed as unique characters and split into multiple code points. It wasn't pretty. This one was a pain to figure out, but once we did the solution wasn't too bad; just leave the encoding/decoding to the Bytes methods we use on the network i/o buffers, don't bother trying to do it ourselves.
Thanks for reading, and stay slimy!