In the past week I've also embarked on some changes to the webclient's structure that should ensure much, much faster processing on the server end. This is important because the goal is for the difference between handling DS clients and handling web-based clients to be as low as possible. So while working with a project that showed very high CPU usage (albeit for understandable reasons), I've started on big changes under the hood of the webclient's server-side core.
To make a long story short, the extreme case I've been testing showed that the server processing for webclient connections isn't as efficient as it could be--not by a long shot. While this looked fine in "normal" games, even in Space Station 13, in games with a high framerate or large view size the performance was much worse. Obviously the server will always do more work for each webclient connection than it would for a Dream Seeker connection, by the nature of this model, but there are parts of the model that were ripe for improvement and darn it, I'm improving them.
At a rough estimate, phase one of my structural changes--which isn't even complete yet--has cut CPU usage about in half, and that combines with some other speed improvements for something like 60% total savings.
As part of my ongoing plans, one of my goals is to move more of the map processing to the client. This would be the grunt work, like sorting icons, which can be done on the client end as long as it has the right info. (I do not intend to move to a DS-like system of managing Appearances. Not if I can help it, anyway.) This part needn't be complete before the next beta release, but I expect it will have a further dramatic impact on the server.
Other goals I have in mind:
- Update the way logins are handled. (This is a high priority as it's been requested by several people.)
- Make the hotbar easier to override, hide, or even expand with new commands.
- Improve communication with the outer "host" page, so that the game can for instance be expanded like it can here on byond.com.
- Improve the D-pad to allow for a translucent overlay mode.
- Allow TTF fonts (if they have the right bitflag for it) to be used directly, and add support for WOFF.
- Improve the styling options so it's easier to get a consistent look for a world.
I should have a good chunk of time to work on all of this stuff coming up, and expect to be pretty busy with it for a while. As always I welcome questions and feedback, and your continued help with bug reports. There are of course still bugs to fix and those will also take a high priority.