|
|
|
[
Permlink
| « Hide
]
Dzonatas Sol added a comment - 10/May/07 09:51 PM
It seems it would be easier to just enable parcel level scripts. Allow the ability to drop scripts into parcels, the scripts can collect likewise collision data and react as customized.
For scripters perhaps, the it needs to be something simple enough that the majority of users wanting such functionality can do it. This would be essentially a case of creating a special prim, resizing it to fit the space you want and picking some options, all achieved on an extra edit-window tab (which would make all zones visible when selected so you can work with them).
I'd prefer parcel-based cloaking as it is probably simpler to use and less heavy on processing. And preferably operated by one single toggle so privacy could be switched on and off really quickly according to mood.
Hmm, the reasoning behind me suggesting this method is that while it is slightly more complex, it shouldn't actually be massively more complicated to implement (since collision detection and primitives already exist, this is just a special case). However, the benefits that it possesses are huge compared to simpler solutions; the ability to build your home at ground level and hide its contents from people that aren't inside it (and allowed to be inside it). The ability to split your land into distinct areas vertically as well as horizontally (or diagonally if you really want), with each area having different permissions and settings.
There are also extra benefits that are simply not possible with simpler solutions, such as building your areas in such a way that areas are culled COMPLETELY to prevent cheating in games (e.g you're running through a maze, zones with culling enabled can prevent you seeing the other side of walls too soon), or to optimise builds to give the maximum performance they can, essentially implementing a degree of intelligence that allow other games to increase speeds, but in a dynamic way that is possible in SL. Culling uses can be applied to chat too, allowing you to create a café with booths, where chat does not escape individual booths. As well as much more tightly constructed rental areas. This should overall add very little overhead for a much more powerful system than parcel-wide solutions. I can understand wanting the easiest solution so that LL are more likely to implement it, but there is the case where a solution is TOO simple, where others are more flexible and are capable of far more than simply what they originally set-out to do. I'd much rather privacy took an extra month of coding and testing and was vastly more flexible, than get a less useful solution sooner. It would be indeed a good idea to limit culling. Currently you don't even have privacy inside your own house.
I like the culling idea, but it would actually be better served by making sims into BSP technology and using portals. This could potentially cut down on polygon usage (have the compiler check for "set as static mesh" objects and remove overlapping polygons), allow for complicated light mapping, and would make culling far easier because you can determine beyond a doubt what's obscuring what using antiportals. The "culling prim" could essentially be an antiportal that can be turned on and off by script, allowing for windows that are truly privacy enabled. Culling could be performed based on your avatar's placement, if you're inside you can't see outside of the culling area, even if you move your camera out. Likewise if you're outside you can't see inside of it. Only the sections of the sim your avatar can see would be drawn. Compiling a new "map" could be done on a nightly basis during low occupancy periods, or triggered by the sim owner. That would potentially make teleporting a lot longer for areas you haven't been to though, as to my knowledge you can't stream BSP. It'd also make it take a while to get neighbouring sims. On the other hand BSP maps render a lot quicker than random arrangements of prims...
I'm totally for adding 3d areas for permitting certain things. I've recently been thinking, "If only we could limit building and scripting to only the sandbox and about 60m above it. An alternative approach that seems to me both very simple and versatile is outlined in
I think the basic idea of this request is a good one, and that is basically to make parcels 3D. I go for that part. There are tons and tons of attempts at this in multi-leveled malls, private estates with aerial builds, etc., and often they have to resort to complex scripts to try to enforce policies (e.g. prim counts, access lists) that are normally done simply with parcel controls.
The rest is delving way too much into a suggested solution than is necessary or productive. For example, doing this with prims rather than the 3D equivalent of the current 4m x 4m parcel squares would likely add next to no value and be costly performance-wise. I suggest that if this request is fulfilled only the fundamental requirement be addressed, allowing the feature designer to use their domain knowledge to produce the best fitting solution. There isn't really any other way to implement 3D zones without some kind of collision system as we have now. It could of course be handled separately of other physics calculations, which might be a good way to improve performance by having permissions zones calculated at a lower frame-rate than regular physics.
Permissions have do effect on chat range, so private conversions (sic) will still be overheard.
The best method for private conversations is Group IM. Mercia That doesn't mean they can't be effected. It's easy enough to do a check if avatar X is in zone Y which has external chat disabled, then avatar Z (who is outside the zone) doesn't receive the message. If objects in a simulator track which zone they're in then the implementation of this is easy.
"It's easy enough to do a check if avatar X is in zone Y"
It's easy but its adds to gridlock, as this check is not currently being done and I would not advise any new feature to recommend new checks while region crossing bugs are still playing havoc with Mainland. Mercia Crossing sim-boundaries is a different issue. I want itfixed too; my land is on the corner of a sim so there are two directions I can accidentally go a little too far in that will result in me struggling to get back due to sim-crossings being so slow.
However, this feature should not aggravate it as the checking can't be done until the avatar is in the simulator anyway. Part of the issue with sim-crossings is transferring all of an avatar's data (including groups, see SVC-280) and moving that from one sim to the next. It used to be that this could be done extremely quickly, but for some reason it just got worse and worse with some updates, and has never been fixed. With this feature it is essentially an extension of the physics processing. All the simulator cares about is when an object enters a zone (collides with it) or leaves a zone, at which point it sets/unsets any flags that that zone modified. During sim-cross an avatar isn't in the sim yet to actually enter/leave a zone, and with a bit of luck there wouldn't be many zones defined right on sim edges, or not at flying height at least, for typical flying crossings zones should have no effect as a result since they only make a difference when someone enters one. I personally see this as close to a ideal, realistic, solution.
There are some competitors: The reason I like this proposal better than SVC-599 is it doesn't necessarily leave a bizarre looking empty patch of land from the outside. The reason I like this proposal better than VWR-2525 is the neighbors oogling you from the neighboring sex club (a scenario mentioned in VWR-2525) might not be able to see your avatars, but they might still be amused by your extensive collection of kinky bedroom equipment. There appear to be some problems. One is the idea of using prims to define the private space. Another may simply be something not being clear... it seems like this /might/ be referring to camera or rendering constraints. It needs to be clear that any "camera constraint" system is worthless. Information about what is near-enough to your avatar is sent to your client. The camera is just the part of that information you choose to view. Rendering constraints would just amount to asking the client to please not show something to the user. The client is open source. Even if Linden Labs chose to make the camera obey some camera constraints, or hide something, it could, and would, be patched out by other people. What /does/ work is simply not sending the information in the first place. As for using prims to attempt to use existing collision detection code for this purpose, determining what is inside a sphere is more computationally expensive than a cube (actually just about any shape is worse than a cube for this purpose). For this reason I suggest limiting the allowed shapes to cubes (as in, defined by the vertices at 2 corner points, no fancy stuff, no tortured cube prims, no having them rotated at odd angles). It's not that you probably /couldn't/ do it with tortured prims, possibly fast enough to be acceptable, so much as you don't /need/ to. All you need to know is if an avatar (not their camera!) is inside the private space, or not. I'm also not sure what kind of lag a odd shape private space might induce. It might toggle the inside/outside status quickly with certain shapes and avatars or objects penetrating it at certain angles, which would cause a unknown amount of wasted computation and network traffic (this concern comes from knowing certain twisted tortured prims colliding with a sphere behave /very/ badly, and can even crash a sim... I can only imagine what it would do if it was also bashing everyone nearby repeatedly with avatars appearing/disappearing several times a second). I'm also not entirely convinced that you can use the collision detection code like this. For instance, do you really want phantom objects to inexplicably show? If the collision detection code can't be used, it should be relatively easy to determine if an object's bounding box (even if it's phantom) is inside a cube (the private space) or not. If they are inside the private space, then data about other things inside the private space is sent to their client, and information about their avatar (and any objects or other avatars inside the private space) is no-longer sent to people's clients outside that same private space (except for IMs of course). In effect when you enter the private space the things inside it "appear" to you, and you "disappear" to everyone else (with the exception of your presence information, like if you're online, showing to people outside). Things not transmitted outside the private spaces defined this way should include chat (all channels, though channel 0 is the most important), sounds played, and voice. This should be doable. You can already constrain sound and voice to your parcel, you just don't get finer grain control than that. Virtual whoopie isn't the only use for something like this. It might be nice for some people who want to surprise friends/competitors while building. It might also be nice just to be able to talk with someone who's upset without having to remember to switch to IM's just because you don't want arbitrary people listening in. What is nice about doing it this way, though, is you could have a conventional house, on the ground, with a bedroom. The bedroom could have everything from the floor to the ceiling and the walls inside a private space. People camming in from the outside, or looking through the window into the bedroom see only a empty room, but people who walk into the bedroom see the bed, and anyone else in there. There's no oddball hole in the middle of the house extending infinitely into the sky as there would be if you used parcel-wide privacy zones and subdividing. Your collection of... plush... isn't visible to the outside world. Finally nice looking house residences sitting next to one another can be just as private as spread out skyboxes. This also would let you have a truly private skybox (as in, again, nobody camming in on it) with vendors on the ground, if you happen to sell things and want the ground area accessible to strangers. A nice complement to this would be allowing defining access to 3-D cubical spaces (as in access lists, group access, ban lists, etc). That way you could allow people on the ground into the vendor area, but not into your skybox above, and you wouldn't have to resort to dirty-hacks like security orbs which exist mostly because of the height limit on access controls. Thank you Coaldust for your excellent comments! I'll try and address some of these concerns and amend my proposal where relevant:
Privacy pockets (SVC-205) would solve the camera constraint issue, would decrease rather than increase the load on sims, and wouldn't perpetuate the problems that existing ban lines cause for flight.
Privacy Pockets would require many of the same implementation details as 3D zones to be solved; eg - some way of quickly flagging objects that are in the "privacy pocket" (since checking based on height, parcel boundaries and settings would be slow), and so-on.
Really it's the same solution as zones except that you're limited in how you can use them. People who build their homes on the ground would still use "ban-lines". The main reason I prefer zones personally is that they would let us have a seamless grid; we could have a residential simulator full of homes, with no sky-boxes or ban-lines, only neatly defined zones restricting access/visibility within those homes. If you believe that privacy pockets reduce load by virtue of the restriction on what content is sent, then 3D zones ALSO reduce load. They may not reduce it as much (since they define more complex areas) but if that is your basis for the reduction then it still does hold for zones. However, both privacy pockets and zones require additional checks for whether chat can be heard, or if an object should be sent to a client etc, which add load (potentially more than is gained by culling objects, depending how widely zones/privacy pockets are used). Zones only cause issues with flight if used irresponsibly, the same can be said of building a wide tower or having something hanging at optimum flying height. Zones however allow a land-owner to define a restricted area that is smaller than the boundaries of their parcel, meaning if used sensibly they should not affect flight at all, since the primary use for them is within buildings, which you should see before you hit anyway (if the lag Gods smile upon you that day). Haravikk: I'm not talking about high altitude privacy pockets. I'm pretty sure we've discussed this before, but in case you missed it, what I'm talking about is the "parcel basement" variant where the private zone is below ground level.
The "parcel basement" variant of privacy pockets would be extremely efficient to implement: any object with a positive "Z" coordinate wouldn't need to be checked at all, objects with a negative "Z" coordinate would only be checked for agents with a negative "Z" coordinate, and objects with a positive "Z" coordinate would never be sent to any agents with a negative "Z" coordinate. This single, simple "Z" coordinate check would only require looking at a single bit in the object. Only if you were actually in a basement, using the feature, would there be any additional culling performed based on the parcel boundaries. In addition, they would also cut the physics load because each parcel basement would be a separate interaction group, or set of groups. The kind of physics optimization available in other games where objects in different parts of a zone are culled because they can't ever possibly interact would become possible in SL. Oh, the other thing is... the sim is already checking on what parcel objects and avatars are in, for access controls and build limits. All the information it needs to implement privacy pockets of any kind is already being tracked by the sim. And it's also already checking the "Z" coordinate specifically. Privacy pockets require very few additional code paths, and parcel basements reduce that even further.
Parcel basements still have a large number of problems to address in common anyway; you need to be able to hide parcel basements from each other without streaming their content, what do you do about parcel basements that have the same permissions, should these all be visible in the case of adjacent parcels? Zones don't have this trouble as they don't care about other zones and just have to fit on land you're allowed to put them on if you do the same with parcel basements then it could be disruptive.
There's also the need to prevent chat "leaking" out from the basement onto the land above or onto adjacent basements. We also don't know what amount of work might be involved in havok 4 to handle objects below zero, can SL's implementation even support these? We don't know there aren't optimisations made using the limited range of Z values. Granted 3d zones are special case too, but they work only a little bit differently from regular collisions (collision results are replaced with checking for permissions). Another issue that I'm more concerned with is ease of use. Presumably some special-case teleporter is required (i.e. - only teleporters owned by the land-owner can put you below ground into the parcel basement), this seems a bit counter-intuitive compared to just dragging out a prim zone where you want privacy and choosing some settings. There's also the issue that to use these effectively would require more knowledge, as to have a private home you'd need to place your home, then have a teleporter that takes you into the "rooms" which are actually in the parcel basement. I will grant that parcel basements are fine in many ways, but I still think that they introduce pretty much the same complexity anyway, and the greater difficulty in using them outweighs their benefits.
Parcel basements should be simpler to implement, actually reduce sim load, and provide much better privacy. The only issue with them is whether negative offsets are a problem, which has been an explicit issue from the start AND requires Linden response... there's no point in speculating about it: the whole thing is out of our hands. @Argent
"3d zones are messy, and that's an advantage? Ye gods." You're going to have to explain that one. As far as I see it 3d zones let you create seamless privacy that parcel basements cannot without a lot of effort in building and designing, and wasting prims to create interiors for buildings above ground. With a 3d zone you can simply walk into your home, sit on your couch and talk to your friends without worrying about people outside hearing you, or being able to walk in uninvited. And just as easily you can walk outside again to invite your neighbours over. When used correctly they can be far more elegant, intuitive and seamless to use. I'm just repeating what you said: "3D zones have the nice little side-effect that so long as they are visible they will look incredibly messy if you just drag one over your entire house, hopefully encouraging people to use them a little more sparingly,"
And contra your argument, with parcel basements you wouldn't build the private interior of the house above ground. If you want the whole house private, you'd just make it a simple block, you could make it using sculpties without worrying about physics effects, and build the interior in the parcel basement. With a suitably automatic transition you wouldn't be able to see the difference. This would also counter the camera problems in interiors. You'd make the interior with a phantom and outside-transparent wall, so you could walk around in a normally scaled interior instead of the oversized ones that SL buildings have now. The sheer amount of building knowledge that would require is fairly steep, how many of SL's average users know how to make a sculpty? How many are able to de-link a house, remove the interior, and build some walls around it so that they can bury the interior and leave their "empty" house at ground-level where it looks best?
With a 3d permission zone you just create a box, or cylinder or whatever fits best inside your house, and resize it to fit. Most of SL's users are at least able to create and resize a box. It's even possible that a 3d zone could be packaged with an object so that the owner just needs to rez it and move it into position or something. I wouldn't recommend having them as linked sets in this case though, as assuming they are static and cannot be manipulated by script would mean they can be optimised more (e.g if they haven't moved in a few minutes then the sim can add them to a special collision group for zones only which is assumed to never move). As for the messy comment, I think you've misinterpreted. When you're editing zones they would obviously have to be visible, when they are they would look extremely messy if they aren't contained properly within something (such as a house), it's a very minor graphical point, but it serves to encourage users to place them more neatly. How does someone who has no building knowledge create a house in the first place? The same people who make the houses now would make the separate houses and interiors.
"How does someone who has no building knowledge create a house in the first place?"
They buy one and rez it. If they want to add privacy to it they create a zone and resize it to fit the area(s) of the house that they want to be private. This doesn't require every single pre-fab house creator to re-do their houses to have removable interior and exterior pieces so that they can work with a new privacy system. Who said anything about requiring every single prefab house creator to do anything? Everything is optional. You're assuming that everyone is going to want to have the private space actually take up public space, with a 1:1 relationship between private space and public space. I don't believe that's a valid assumption.
If you want the entire house private, you'd buy a dummy exterior and rez that on your land... if you want the house visible there at all. You may not, or you might want a small "token" house prim and the rest would be gardens. You'd rez the house itself in the parcel basement. If you only want a private area in the house you would simply rez the private area in the basement, and have a dummy door leading to it. You basically said it: "The same people who make the houses now would make the separate houses and interiors."
If the average person wants to add privacy to their home, then they have to go out and buy a new one that works with parcel basements, or try and build their own interior within the basement. End result of that is we still have people building what are essentially big, ugly skyboxes but they'd actually be hidden this time round. It adds a lot more work and expense for land-owners and builders, and simply lacks the elegance of being able to walk into your home and have privacy. With 3D zones you can have privacy and a seamless grid, which is a much richer user experience than having to tear your home apart just so you can have it placed in a nice garden on the GROUND and still have privacy. With parcel basements, what do you do if you want a view? What do you do if you want to view a sunset out your window in peace and privacy? What do you do if your neighbour's build is actually nice and you'd like to be able to appreciate it with your partner or friends? Basements are just that, they're completely shut-off from the rest of the simulator when you could be sitting IN your home which could be placed right there on the ground you're money for. What if you leave near a road and would like to see it when you look out the window? To be frank, to get a solution like parcel basements for privacy would make me feel cheated; I should be able to have privacy on my land as it is now, I should be able to sit in my home and not worry about peeping toms or people listening to my conversations. Parcel basements are basically the same as buying a private island albeit cheaper; to get a measure of privacy you have to hide from the rest of the grid. I shouldn't have to hide from the rest of the grid, I shouldn't have to buy separate islands to split apart private and public places, I should be able to buy a plot of mainland, rez a house, specify a private zone within it and just sit on the couch and watch TV, or build, or talk to friends there. You're looking too short term. Yes, for a short while some people will do a bad job of using the parcel basements, but after a few people have written and distributed scripts it'll be seamless, you'll "walk into your home and have privacy". And at the same time you'll also have a larger home, and better performance, and you won't have to look at the careless neighbors and the helicopter with noisy rotors and particle dirt they left on their land when they went to Iraq.
Most places in SL, except on private islands where privacy is a far smaller problem, don't have great views. They've got one box after another. It took me six months and hundreds of real dollars to get our land on Noonkkot looking good, and we STILL have to put up invisiprim panels to hide the ads in the next sim. And it doesn't take much, if you do it right. Just a few prims. I get a better illusion of being in a forest with a 40 meter megaprim sphere for a skybox than just about anywhere in SL that doesn't involve the person doing the build buying a substantial chunk of a sim. And there are hundreds of awesome spheremaps for free on the Internet. And you're still assuming that everyone wants their entire house private. I don't. I want people dropping by, and they're not going to do that if I'm in a private zone, whether that's a skybox or or a basement or a permission zone. People need to be welcome to come up and knock, or say "hi" through the walls, and get a reply... so the house becomes a semi-public space. And the impact on the sim really is less with parcel basements. They're discontiguous zones separated using stuff the sim is already tracking. And the fact is that so far as I know no 3d MMORPG uses zones that are implemented the way you want. They're all done with discontiguous space and portals. With suitable software support, that can be made pretty damn close to transparent. To be frank, to get a solution that doesn't allow for completely discontiguous zones would make me feel cheated. SL isn't RL, and the limitations imposed on SL to try and make it like RL are already a problem: you have people on tiny plots building oversized houses to get enough room for their cameras, so your sim with 512m and 1024m lots is like a row of terrace houses. Privacy zones would just make that worse, while parcel basements would mean you could build a decent sized house that's got the interior space for cameras, but have it realistically scaled on the outside... or have nothing outside at all. All of which would make the neighbors happier, and maybe create some of the nice views you think are out there. Finally... "sit on the couch and watch TV"? Isn't that a little recursive? This argument obviously isn't going to end because every time I point out the ease of use of zones compared to parcel basements you're just disagreeing and vice-versa. If you stand by parcel basements so strongly then please post a JIRA issue about them, as they are clearly of little significance to this proposal beyond attempting to solve the same problem (the meta-issue SVC-241 covers that, please link to it).
I am no longer discussing the pros and cons of parcel basements versus 3d zones, this proposal will remain unchanged. Please post your alternate proposal, as so far your idea only seems to exist as comments in other people's JIRA issues. SVC-205 is close but specifies an area in the air rather than a basement, which admittedly is easier to check for (a basement only needs to compare the sign-bit while a chunk of air needs to compare more). Feel free to link any new proposal to this issue and to SVC-241, but I will not discuss it any more in these comments as it is not specific to my proposal, which I still strongly believe to be the superior solution, and so it seems do 37 voters. I voted cause I would like this, not cause this is the only way I would like, once I know of the entry about the basements I'll probably vote on that too
JIRA at SVC-1138 and Wiki at http://wiki.secondlife.com/wiki/Parcel_Basements
Separated into a summary and full-description, as the original description is a bit wordy, but contains a lot of useful detail for considering actual implementation of this proposal.
Tweaked the description as some new formatting thing seems to have messed up some of it, looks like JIRA might be getting something like wiki-codes, but I can't find any guide to using them and there's no preview button so I won't try to use them!
The proposed changes to adult content make this much more urgent. It really needs attention.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||