ID:1903382
 
There hasn't been a release this week, because it looks like things are pretty stable at the moment, allowing me to focus more heavily on the webclient DSification. That's been going quite well, to the point where I'm now in the process of testing various games against it.

Basically the main items left on my list for DSification are testing, and garbage collection. Everything else works: Flicks, missiles, images, and all the rest. Even the view code has been fully integrated, so atom opacity works correctly. There are a couple of minor things I still need to get to, like microlayers (a concept Dan introduced way back in 355 that still has some validity), and respecting the content order of multiple same-layer atoms on the same turf, but the big stuff is mostly done.

I've started testing against Severed World, which I've been using as a benchmark for performance, and to my delight the server's CPU usage has gone way, way down. The client's is up a little, but I think that can be refined as I go along. (The code goes out of its way not to sort icons when it doesn't have to, nor update appearance icons when it doesn't have to, so all that helps. It might be able to go a little further.) I have encountered a few bugs, in particular that the player's clothes don't show up so there's some kind of layer issue to attend to there, and I did see a mob disappear at one point. Earlier today I also found a pretty bad issue in a routine I've been relying on more and more, but once found it was an easy fix. Always the fiddly bits.

So the next phase here looks like this:
  • Verify that area appearances are working
  • Add appearance garbage collection
  • Add microlayers
  • Add something to track contents order
  • Test with multiple games and attend to any bugs found
  • Test ISOMETRIC_MAP and SIDE_MAP formats
  • Profile and optimize the client
  • Deal with various other outstanding webclient bug reports
If the first run of DSified webclient beta testing goes well, I probably won't wait very long to start working on 509--which will introduce a raft of new appearance features.

(Sadly, my enthusiasm for color matrices went a little too far because it appears that can't be done easily, at least not outside of the webclient. Shaders may be the answer if I can ever figure them out. Color matrices are still on my wish list and I may try to add backend support anyway in the hope of a future ability to do this, but we'll see.)

One of my other hopes for 509 is to resolve the longstanding sort issues with SIDE_MAP and ISOMETRIC_MAP by introducing a proper topological sort. I have a cool hybrid concept that should be a lot more workable than the naive approach (which is to say, my previous attempt at a topological sort), in which whole sections of the map are calved off and sorted in smaller groups anywhere a seam can be found. It's been kind of a longtime obsession of mine so I'm excited to get to a point where that's possible.
omg dude that is like so cool
Don't forget about a webclient only option! :O

Anyway, good work - looks like you have made some progress.
lol
Thank you for the continued work, Lummox. Looking forward to getting to see your DSification progress soon!

I'd be super stoked if there was even an extremely crude OpenGL shader interface accessible from our end in the webclient.
The really unfortunate part about the webclient being WebGL and DS being DirectX is that the shader support is completely nonstandard between the two. Developers would have to either write shaders in Cg or write an HLSL and a GLSL shader program depending on the connection of the client.
Good job Lummox keep up the good work! Everything is looking swell for those who use the webclient!
Wouldn't hurt to have shader access for the webclient. Heck, my current focus is the webclient at the moment (which wouldn't hurt to use GLSL).

While the map control uses WebGL, I'm still going to provide a WebGL Support library to enable a nice interface for using WebGL features. Thanks to the way JavaScript works (even through JSON), it has made it possible to do. :D

I should be able to have a version of the support library up soon. No release date yet, but I'll let y'all know.