ID:1703070
 
Can anyone think of a way to include two different dynamic light systems in one game, with one being shown to DS client and one being shown to Web Clients?

My current lighting system uses one lighting object for each turf. This lighting object is displayed at FLY_LAYER and uses atom.blend_mode = BLEND_SUBTRACT, which doesn't work in the web client. In this case, I'd like to fall back on a standard dynamic lighting system, which uses one semitransparent black overlay per turf.

I have no problem writing both into the same game, the question is how to display one to one group of players, and the other to the other group? This is essentially the same as the old question about having different invisibility groups.

With recent updates, is there now a way to do this? Is there a particular quirk of the Web Client that would hide certain objects?

I think you should try /images and seeing what happens :)
Is there a way to use images without having to make one per turf? (The trick of swapping areas won't work, I need areas for other purposes). I can't imagine having to output (world.maxx * world.maxy * world.maxz) images to each web user as they login, or constantly outputting for(image in view()) whenever they move.

It would be great to maintain a list of about 16 images of varying degrees of shade, and tell the turfs to use one of them whenever they update their lighting. That would mean I wouldn't have to output all the time or handle millions of images. That being said, I see no way to tell an image to display at multiple locations without using it as an overlay, which will display to all users.

With something as CPU and memory intensive as dynamic lighting, I'd rather investigate other possibly less expensive methods first.
Current work-around:

Set the RGB shade system to use invisibility = 1, give DS clients see_invisible = 1.

Set the Web shade system to only use black overlays, and set their blend_mode to BLEND_SUBTRACT.

Web Clients won't see the RGB shaders.
Web Clients can't use BLEND_SUBTRACT, so it defaults to BLEND_DEFAULT, which means the black will be overlaid (normal shading).

DS Clients will see the RGB shaders.
DS Clients will properly handle BLEND_SUBTRACT. Subtracting a black icon does nothing. DS Clients won't "see" the web shade system.

One million more objects generated per 1000x1000 map.
In response to IainPeregrine
IainPeregrine wrote:
Is there a way to use images without having to make one per turf? (The trick of swapping areas won't work, I need areas for other purposes). I can't imagine having to output (world.maxx * world.maxy * world.maxz) images to each web user as they login, or constantly outputting for(image in view()) whenever they move.

If you're using areas to capture entered and exited events for certain regions, there are alternatives that exist that can provide the exact same functionality, namely Forum_account's regions library. Using the alternative can allow you to use area swapping for your dynamic lighting.

If you're using areas to display graphics, then I guess you're SOL in that department unless you come up with a clever way to manage area overlays.

It would be great to maintain a list of about 16 images of varying degrees of shade, and tell the turfs to use one of them whenever they update their lighting. That would mean I wouldn't have to output all the time or handle millions of images. That being said, I see no way to tell an image to display at multiple locations without using it as an overlay, which will display to all users.

yeah. unfortunately.