<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: No More Limits!</title>
	<atom:link href="http://gwynethllewelyn.net/2008/08/29/no-more-limits/feed/" rel="self" type="application/rss+xml" />
	<link>http://gwynethllewelyn.net/2008/08/29/no-more-limits/</link>
	<description>Socio-Economical Articles about the Second Life® world</description>
	<lastBuildDate>Wed, 10 Mar 2010 04:37:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Jazzman J.</title>
		<link>http://gwynethllewelyn.net/2008/08/29/no-more-limits/comment-page-1/#comment-24868</link>
		<dc:creator>Jazzman J.</dc:creator>
		<pubDate>Tue, 30 Dec 2008 18:17:10 +0000</pubDate>
		<guid isPermaLink="false">http://gwynethllewelyn.net/?p=456#comment-24868</guid>
		<description>Great post Gwyn. Like Allen above I&#039;ve always wondered about some of this stuff and it&#039;s very good of you to put this together.</description>
		<content:encoded><![CDATA[<p>Great post Gwyn. Like Allen above I&#8217;ve always wondered about some of this stuff and it&#8217;s very good of you to put this together.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allen</title>
		<link>http://gwynethllewelyn.net/2008/08/29/no-more-limits/comment-page-1/#comment-24290</link>
		<dc:creator>Allen</dc:creator>
		<pubDate>Wed, 03 Sep 2008 17:24:11 +0000</pubDate>
		<guid isPermaLink="false">http://gwynethllewelyn.net/?p=456#comment-24290</guid>
		<description>Gwyneth,

Thank you for writing all of that down. I&#039;ve been in SL for just over a year (I&#039;m posting as my RL avatar here), and have dabbled with building and scripting. However, I&#039;ve never had a good grasp of what was going on. ...and I still don&#039;t, but I&#039;m closer thanks to your post.</description>
		<content:encoded><![CDATA[<p>Gwyneth,</p>
<p>Thank you for writing all of that down. I&#8217;ve been in SL for just over a year (I&#8217;m posting as my RL avatar here), and have dabbled with building and scripting. However, I&#8217;ve never had a good grasp of what was going on. &#8230;and I still don&#8217;t, but I&#8217;m closer thanks to your post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aldo Zond</title>
		<link>http://gwynethllewelyn.net/2008/08/29/no-more-limits/comment-page-1/#comment-24272</link>
		<dc:creator>Aldo Zond</dc:creator>
		<pubDate>Tue, 02 Sep 2008 18:26:07 +0000</pubDate>
		<guid isPermaLink="false">http://gwynethllewelyn.net/?p=456#comment-24272</guid>
		<description>Fabulous post - i&#039;ve learnt alot.  Thanx

Can i raise the point of gestures and chat.  You can go to some places and people overdose on gestures.  I&#039;ve nothing against gestures and chat per se but it astounds me that people dont understand the effort involved in the background in punting each and every line to all the people in range of the speaker.  The proximity calculations needed to work out whether an individual can &#039;hear&#039; a line or not must be responsible for some lag on a sim.  

A 10 line ASCII art gesture in a sim of 30 people needs to make upto 300 proximity calculations (Obviously there are possible optimisations - dont know if they are being used) - shouting makes the issue worse because its over 96 meters and then theres the actual effort of pushing the lines to each client.

lots of lag? 

Or am i missing something?</description>
		<content:encoded><![CDATA[<p>Fabulous post &#8211; i&#8217;ve learnt alot.  Thanx</p>
<p>Can i raise the point of gestures and chat.  You can go to some places and people overdose on gestures.  I&#8217;ve nothing against gestures and chat per se but it astounds me that people dont understand the effort involved in the background in punting each and every line to all the people in range of the speaker.  The proximity calculations needed to work out whether an individual can &#8216;hear&#8217; a line or not must be responsible for some lag on a sim.  </p>
<p>A 10 line ASCII art gesture in a sim of 30 people needs to make upto 300 proximity calculations (Obviously there are possible optimisations &#8211; dont know if they are being used) &#8211; shouting makes the issue worse because its over 96 meters and then theres the actual effort of pushing the lines to each client.</p>
<p>lots of lag? </p>
<p>Or am i missing something?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gwyneth Llewelyn</title>
		<link>http://gwynethllewelyn.net/2008/08/29/no-more-limits/comment-page-1/#comment-24258</link>
		<dc:creator>Gwyneth Llewelyn</dc:creator>
		<pubDate>Tue, 02 Sep 2008 01:22:00 +0000</pubDate>
		<guid isPermaLink="false">http://gwynethllewelyn.net/?p=456#comment-24258</guid>
		<description>Thanks for the very insightful comment, Clubside!</description>
		<content:encoded><![CDATA[<p>Thanks for the very insightful comment, Clubside!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Clubside Granville</title>
		<link>http://gwynethllewelyn.net/2008/08/29/no-more-limits/comment-page-1/#comment-24200</link>
		<dc:creator>Clubside Granville</dc:creator>
		<pubDate>Fri, 29 Aug 2008 23:53:20 +0000</pubDate>
		<guid isPermaLink="false">http://gwynethllewelyn.net/?p=456#comment-24200</guid>
		<description>Hey Gwyn, thanks for the post, hopefully it will educate some of the people. Your suggestion for in-world mesh creation is great, though today we need to go beyond meshes into bones and other modern 3D conventions. As for LSL, what can I say, it is putrid garbage. MONO doesn&#039;t get to be a saviour yet, until the Second Life functions are made into a library so standard .NET languages can be used it&#039;s still LSL. And there really needs to be a time limit on non-MONO script support since as long as the LSL engine runs the performance drag remains.

What I really want to talk about is the simulator. You know I am a big proponent of the contiguous grid, without it you don&#039;t have a &quot;virtual world&quot;, you have a bunch of 3D rooms. I won&#039;t get into your Snowcrash analogies as it offends me each time people suggest that dude inspired anything. He wasn&#039;t even the hundredth guy to talk about virtual worlds or avatars. And while he may have used multiples of 16, the true computer building block (HEX numericals), I would hope programmers a decade later wouldn&#039;t be looking at that kind of math for inspiration. A connected grid is a must, it was the simplistic choices the Lindens made that got us into this mess. One side comment, a lot of your calculations are based on everyone setting their draw distance to 512 to see the entire region and that all the prims are on the ground or a level where they would be rendered, and I don&#039;t know where you got the 5 million polygons a second figure from, since polygos are an abstract and most 3D renders are calculated by the number of triangles per second. Neither here nor there, but Second Life has usually listed a robust minimum system requirement where the listed cards draw billions of polygons a second.

To get off the ground fast they chose as many off-the-shelf (or close to it) tools as possible. An awful 3D rendering package (ven awful RenderWare would have been a better choice), a broken physics engine (Havok 1 was never really finished for Linux, and Havok 2 was already announced and near completion with full Linux support in 2002) and who knows what for the IM infrastructure. Slap these things together and decide that one processor for one region gives them the best control of the simulation and the recipe for disaster is there from day one.

Even this bad choice could have worked better, and I want to throw up an example before explaining the infrastructure that should have been obvious from day one. That example is a little game for last generation&#039;s consoles called Star Wars Battlefront. Released in 2004 by LucasArts and developed by Pandemic, this game was designed for online play. While there were PS2, PC and Xbox versions, I&#039;m going to talk about the Xbox version. The Xbox was essentially an i386 computer with a 2002 nVidia GPU, hardly state-of-the-art at the time. As for networking, Xbox Live uses P2P networking rather than a central server meaning all machines have to send avatar movements, vehicle locations, bullets and more to each other, far slower than a small upload stream to a server collecting the data and passing it down fast. Despite these limitations Star Wars Battlefront allowed the home user to host matches where 16 users fought alongside 16 computer-controlled combatants on maps (regions) four times larger or more than a Second Life region. The puny i386 was calculating AI for the NPCs, tracking mines laid, bullets shot, vehicles exploding and more. Before the old &quot;user generated content&quot; argument comes up, the only difference between Star Wars Battlefront&#039;s content and content on a Second Life server is the location, streamed from disc versus streamed from network. There is no magic in Second Life&#039;s distribution of content. So here we have an underpowered systm with no central server outperforming Second Life in essentially the same development window. Sad.

How could it have been done? How should have it been done? I don&#039;t want to get too technical or Prok will yell at me, but here goes. Distributed computing. They already did this with inventory but why not the simulation features. Servers designed to run the scripts communicationg with the ones running physics and others the objects on a region. When a region is unoccupied and not within anyone&#039;s draw distance resources are shuffled to support the active regions. No pre-determined region size at all, just contiguous land and distributed simulation calculations. It would have been much cheaper as there could be load balancing and it could scale. Just as there is only one google.com there are thousands of servers in the backend making us think there is only one. Empty regions with running scripts getting fewer resources. Local cache of regions so the server doesn&#039;t have to push all the polygons constantly with client-side occlusion. I could go on and on... unfortunately.

Last bit from this windbag comment: the Animation Override issue shouldnt really take much to fix. Of all the assinine development decisions that need repair this one is both a no-brainer and houldn&#039;t be much wok to implement. And client-side cache them as well.</description>
		<content:encoded><![CDATA[<p>Hey Gwyn, thanks for the post, hopefully it will educate some of the people. Your suggestion for in-world mesh creation is great, though today we need to go beyond meshes into bones and other modern 3D conventions. As for LSL, what can I say, it is putrid garbage. MONO doesn&#8217;t get to be a saviour yet, until the Second Life functions are made into a library so standard .NET languages can be used it&#8217;s still LSL. And there really needs to be a time limit on non-MONO script support since as long as the LSL engine runs the performance drag remains.</p>
<p>What I really want to talk about is the simulator. You know I am a big proponent of the contiguous grid, without it you don&#8217;t have a &#8220;virtual world&#8221;, you have a bunch of 3D rooms. I won&#8217;t get into your Snowcrash analogies as it offends me each time people suggest that dude inspired anything. He wasn&#8217;t even the hundredth guy to talk about virtual worlds or avatars. And while he may have used multiples of 16, the true computer building block (HEX numericals), I would hope programmers a decade later wouldn&#8217;t be looking at that kind of math for inspiration. A connected grid is a must, it was the simplistic choices the Lindens made that got us into this mess. One side comment, a lot of your calculations are based on everyone setting their draw distance to 512 to see the entire region and that all the prims are on the ground or a level where they would be rendered, and I don&#8217;t know where you got the 5 million polygons a second figure from, since polygos are an abstract and most 3D renders are calculated by the number of triangles per second. Neither here nor there, but Second Life has usually listed a robust minimum system requirement where the listed cards draw billions of polygons a second.</p>
<p>To get off the ground fast they chose as many off-the-shelf (or close to it) tools as possible. An awful 3D rendering package (ven awful RenderWare would have been a better choice), a broken physics engine (Havok 1 was never really finished for Linux, and Havok 2 was already announced and near completion with full Linux support in 2002) and who knows what for the IM infrastructure. Slap these things together and decide that one processor for one region gives them the best control of the simulation and the recipe for disaster is there from day one.</p>
<p>Even this bad choice could have worked better, and I want to throw up an example before explaining the infrastructure that should have been obvious from day one. That example is a little game for last generation&#8217;s consoles called Star Wars Battlefront. Released in 2004 by LucasArts and developed by Pandemic, this game was designed for online play. While there were PS2, PC and Xbox versions, I&#8217;m going to talk about the Xbox version. The Xbox was essentially an i386 computer with a 2002 nVidia GPU, hardly state-of-the-art at the time. As for networking, Xbox Live uses P2P networking rather than a central server meaning all machines have to send avatar movements, vehicle locations, bullets and more to each other, far slower than a small upload stream to a server collecting the data and passing it down fast. Despite these limitations Star Wars Battlefront allowed the home user to host matches where 16 users fought alongside 16 computer-controlled combatants on maps (regions) four times larger or more than a Second Life region. The puny i386 was calculating AI for the NPCs, tracking mines laid, bullets shot, vehicles exploding and more. Before the old &#8220;user generated content&#8221; argument comes up, the only difference between Star Wars Battlefront&#8217;s content and content on a Second Life server is the location, streamed from disc versus streamed from network. There is no magic in Second Life&#8217;s distribution of content. So here we have an underpowered systm with no central server outperforming Second Life in essentially the same development window. Sad.</p>
<p>How could it have been done? How should have it been done? I don&#8217;t want to get too technical or Prok will yell at me, but here goes. Distributed computing. They already did this with inventory but why not the simulation features. Servers designed to run the scripts communicationg with the ones running physics and others the objects on a region. When a region is unoccupied and not within anyone&#8217;s draw distance resources are shuffled to support the active regions. No pre-determined region size at all, just contiguous land and distributed simulation calculations. It would have been much cheaper as there could be load balancing and it could scale. Just as there is only one google.com there are thousands of servers in the backend making us think there is only one. Empty regions with running scripts getting fewer resources. Local cache of regions so the server doesn&#8217;t have to push all the polygons constantly with client-side occlusion. I could go on and on&#8230; unfortunately.</p>
<p>Last bit from this windbag comment: the Animation Override issue shouldnt really take much to fix. Of all the assinine development decisions that need repair this one is both a no-brainer and houldn&#8217;t be much wok to implement. And client-side cache them as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ashcroft Burnham</title>
		<link>http://gwynethllewelyn.net/2008/08/29/no-more-limits/comment-page-1/#comment-24198</link>
		<dc:creator>Ashcroft Burnham</dc:creator>
		<pubDate>Fri, 29 Aug 2008 23:02:43 +0000</pubDate>
		<guid isPermaLink="false">http://gwynethllewelyn.net/?p=456#comment-24198</guid>
		<description>An excellent article - I entirely agree. The scripting limitations in particular are no doubt wholly oppressive to the entire internal economy.

As to the issues of prims and meshes, your solution is excellent. The question would then arise as to how these exported meshes would be counted in the prim economy. Many have advocated moving to a polygon economy, although the difficulty with that would be that it would be difficult to transition. 

A sensible solution would be to replace prim limits with &lt;i&gt;rendering cost&lt;/i&gt; limits. The current system of avatar rendering cost (&quot;ARC&quot;) should be extended and applied to all objects (with adaptations as necessary). The scores generated by objects should roughly equate to their current prim values, and the limits per server should also roughly equate to the current prim limits. The uploaded meshes would have a specific cost (which might well be substantially lower than the equivalent prim cost), which would be based on textures and scripts as well as polygons.

On the subject of scripts, it would be sensible if each &lt;i&gt;script&lt;/i&gt; was given a cost rating based on the performance that it will require, which cost rating might be a far more effective way of undermining griefing activities than arbitrary limitations applicable to all scripts. 

Returning to server limits, one useful architecture to develop would be a system in which servers can assist the rendering of other servers, enabling estate owners to increase the sim&#039;s prim limit one prim at a time, for a proportionate cost. Simultaneously, new rendering options could be developed to reduce the impact on client-side framerate dropouts, including a distance simpling system whereby the geometric complexity of rendered objects falls off at a variable distance depending on the overall load placed on the graphics card, and likewise with the texture resolutions.

Scripters ought have the option of making certain scripts run client-side only (which would be useful for circumstances in which it is not important that the object is displaying the same state to all users), and, for client-side scripts, they could also be deactivated by distance in the same way.

Estate owners ought have the option of disabling certain features on avatars with an ARC over an amount prescribed by the estate owner: for example, &quot;if ARC &gt; 1,500, disable all shiny effects for that avatar&quot;. That should be scriptable so that the limit value can be changed or the feature turned on and off in computationally determined circumstances, including ones that relate to the combined total ARC value on the estate, and the total number of avatars on the estate. 

Many of the resource limitations could be reduced substantially in their adverse effect if the limited resources to which they relate were managed more efficiently, both as you suggest in your article, and I suggest above. Alas, efficient resource management does not appear to be a strength of Linden Lab (or, indeed, very many people at all).</description>
		<content:encoded><![CDATA[<p>An excellent article &#8211; I entirely agree. The scripting limitations in particular are no doubt wholly oppressive to the entire internal economy.</p>
<p>As to the issues of prims and meshes, your solution is excellent. The question would then arise as to how these exported meshes would be counted in the prim economy. Many have advocated moving to a polygon economy, although the difficulty with that would be that it would be difficult to transition. </p>
<p>A sensible solution would be to replace prim limits with <i>rendering cost</i> limits. The current system of avatar rendering cost (&#8220;ARC&#8221;) should be extended and applied to all objects (with adaptations as necessary). The scores generated by objects should roughly equate to their current prim values, and the limits per server should also roughly equate to the current prim limits. The uploaded meshes would have a specific cost (which might well be substantially lower than the equivalent prim cost), which would be based on textures and scripts as well as polygons.</p>
<p>On the subject of scripts, it would be sensible if each <i>script</i> was given a cost rating based on the performance that it will require, which cost rating might be a far more effective way of undermining griefing activities than arbitrary limitations applicable to all scripts. </p>
<p>Returning to server limits, one useful architecture to develop would be a system in which servers can assist the rendering of other servers, enabling estate owners to increase the sim&#8217;s prim limit one prim at a time, for a proportionate cost. Simultaneously, new rendering options could be developed to reduce the impact on client-side framerate dropouts, including a distance simpling system whereby the geometric complexity of rendered objects falls off at a variable distance depending on the overall load placed on the graphics card, and likewise with the texture resolutions.</p>
<p>Scripters ought have the option of making certain scripts run client-side only (which would be useful for circumstances in which it is not important that the object is displaying the same state to all users), and, for client-side scripts, they could also be deactivated by distance in the same way.</p>
<p>Estate owners ought have the option of disabling certain features on avatars with an ARC over an amount prescribed by the estate owner: for example, &#8220;if ARC &gt; 1,500, disable all shiny effects for that avatar&#8221;. That should be scriptable so that the limit value can be changed or the feature turned on and off in computationally determined circumstances, including ones that relate to the combined total ARC value on the estate, and the total number of avatars on the estate. </p>
<p>Many of the resource limitations could be reduced substantially in their adverse effect if the limited resources to which they relate were managed more efficiently, both as you suggest in your article, and I suggest above. Alas, efficient resource management does not appear to be a strength of Linden Lab (or, indeed, very many people at all).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yak Wise</title>
		<link>http://gwynethllewelyn.net/2008/08/29/no-more-limits/comment-page-1/#comment-24191</link>
		<dc:creator>Yak Wise</dc:creator>
		<pubDate>Fri, 29 Aug 2008 11:52:56 +0000</pubDate>
		<guid isPermaLink="false">http://gwynethllewelyn.net/?p=456#comment-24191</guid>
		<description>Gwyneth, your the best !!!</description>
		<content:encoded><![CDATA[<p>Gwyneth, your the best !!!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
