ID:2093903
 
Several fixes are in the can already for the next maintenance release of 510. I'm planning to wait on that a few more days however, so that I can spend a little time with the webclient early next week and make a tweak that may help performance on some games. Currently, the webclient draws to the canvas every chance it gets, but it's desirable for performance to cut that way down and tie it to the timer.

But 511 has been moving forward! After some early setbacks I've finally got code in place to read a joystick, and I've mostly finished up some preliminary stuff for button/control mappings. (No UI yet; I'm not looking forward to that, and will probably even do it in a later 511 build.) I'm right at the point now where I can start hooking this up to the keyboard macro system on a hardwired basis, and then later I'll add stuff for proper button-to-key mapping.

My goal at this point is to get joystick support setup in a fairly minimal way early on, but make it expandable so I can get in there and make more changes going forward in the 511 series. This is because I want to get in a lot more of the planned features, and it's hard to say yet how many of them will need syntax or networking changes. Except in extraordinary cases, the goal is always to get all of those out of the way on the first new beta release of a new major version.

For those wondering what the control scheme will look like, I'm planning to map everything to a 16-button setup like the HTML5 spec, with two analog sticks (four axes). More modern-style Dpads that are just four buttons will map to four of those buttons, and older Dpads will map to those same buttons. To start out with, I'll just map these to the arrow keys and any valid diagonal combo will map to the normal diagonal movement keys, but that will be customizable before all this is finished.

Somewhere in there (later in the beta series), I need to add gamepad stuff to the macro system so that gamepad actions can be tied to verbs rather than just tying them to keys. User-defined "gamepad macros" will be subject to control_freak, naturally, but gamepad-to-key mappings won't, also naturally. I would like a macro setup where you can define a macro like GamepadUp+GamepadFace1+REP, e.g. where each button can act as a modifier for other buttons. How practical is this? I don't know yet.

I spent a little more time this week looking at performance metrics, too, because there are some cases where appearance data is generated at a high rate--e.g., particle systems--where I saw it just wasn't as fast as I might have expected. One of the problems turned out to be an internal routine called MakeTMovie(), called every time appearance data is downloaded by the client, which parses a text-mode animation. I found it was doing way too much work in very simple cases (like text="o"), which is about 99% of games since very few use the old text-mode support anymore. As a result now most of the meat is cut out when dealing with default cases, and I think I can probably trim that down a little more at some point. (This first stage is going in the next maintenance release, so 510 will see the benefit.)

Var access improvement hasn't been handled yet, but that's the next thing on my list after I get the gamepad stuff in a state I'm fairly happy with. I've gotten some testing done on other features that have already been implemented, although SEE_THRU is still on my list to try out.

Summer is upon us and tasty animals demand to be eaten! When you come in at night to get out of the sun and relax with some games, don't forget to throw some support to BYOND. And for everyone, Members and not-yet-Members, this is really a great time to chime in on the directions any of the new features are taking if you have any specific ideas for syntax, capabilities, or whatever. (You can check out the last few development news posts for a pretty-full list.)
Inb4 vegans tear you a new one.
*Hits the like button
Me gusta.
I'm digging all this gamepad progress & theory! Keep it up!
I'm unsure if this is something that you can do anything about, or if it's a controller to controller spec, but similar to how (Even when using a full N-key rollover keyboard) holding down something like Shift+ArrowKey+<Random Key> will not properly function, and will create annoying Windows debug noises, will controllers have any sort of similar problem?

As in, will we be able to mash 7 keys at the same time and have them all function without it capping out at like 4?
In response to Rushnut
Rushnut wrote:
I'm unsure if this is something that you can do anything about, or if it's a controller to controller spec, but similar to how (Even when using a full N-key rollover keyboard) holding down something like Shift+ArrowKey+<Random Key> will not properly function, and will create annoying Windows debug noises, will controllers have any sort of similar problem?

As in, will we be able to mash 7 keys at the same time and have them all function without it capping out at like 4?

This is a problem for keyboards largely because of how they're wired. Game controllers have never been known to have this kind of issue.
if you have a full n-key rollover keyboard, you have to make sure you have the proper drivers to take advantage of that functionality.

The Windows standard keyboard driver will generally assume common combinations that cause key ghosting are in fact key ghosting, and trigger that beep (even if they aren't).

How ever full n-key rollover and "n-key rollover" are two different things. if you check the specs or manual, you will see that it only guarantees up to a number of simultaneous presses.
In response to Rushnut
Rushnut wrote:
I'm unsure if this is something that you can do anything about, or if it's a controller to controller spec, but similar to how (Even when using a full N-key rollover keyboard) holding down something like Shift+ArrowKey+<Random Key> will not properly function, and will create annoying Windows debug noises, will controllers have any sort of similar problem?

As in, will we be able to mash 7 keys at the same time and have them all function without it capping out at like 4?

My keyboard doesn't have this problem