<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Adam Frisby &#187; second life</title>
	<atom:link href="http://www.adamfrisby.com/blog/tag/second-life/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.adamfrisby.com/blog</link>
	<description>ZOMGWTFHAI</description>
	<lastBuildDate>Sat, 26 Dec 2009 07:02:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Inside the Asset Server</title>
		<link>http://www.adamfrisby.com/blog/2009/07/inside-the-asset-server/</link>
		<comments>http://www.adamfrisby.com/blog/2009/07/inside-the-asset-server/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 09:43:27 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[OSGrid]]></category>
		<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[assets]]></category>
		<category><![CDATA[fragstore]]></category>
		<category><![CDATA[inventory]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[second life]]></category>
		<category><![CDATA[UGAIM]]></category>

		<guid isPermaLink="false">http://www.adamfrisby.com/blog/?p=379</guid>
		<description><![CDATA[The single most misunderstood bit of technology in both OpenSim and Second Life is the thing called the asset server; while my understanding of the backend of Second Life&#8217;s asset cluster is limited (Squid+Isilon AFAIK) &#8211; my understanding of OpenSim&#8217;s is fairly comprehensive.
Let&#8217;s start with the basics &#8211; the asset server is a gigantic document [...]]]></description>
			<content:encoded><![CDATA[<p>The single most misunderstood bit of technology in both OpenSim and Second Life is the thing called the asset server; while my understanding of the backend of Second Life&#8217;s asset cluster is limited <em>(<a href="http://www.squid-cache.org/">Squid</a>+<a href="http://www.isilon.com/">Isilon</a> AFAIK)</em> &#8211; my understanding of OpenSim&#8217;s is fairly comprehensive.</p>
<p>Let&#8217;s start with the basics &#8211; the asset server is a gigantic document storage server. In our cases, documents are things such as primitives, textures, sounds, avatars &#8211; the works.</p>
<p>Each document is referred to by a specific unique filename called a UUID &#8211; which is  a 128-bit number (think 3 with 38 zeros behind it &#8211; big number) &#8211; a UUID looks something like this &#8220;d61c1990-79b9-11de-8a39-0800200c9a66&#8243; when represented in hexadecimal notation. You have probably seen them around a lot &#8211; just using OpenSim or Second Life.</p>
<p>A UUID is an excellent choice for a filename; because you can make them up randomly and statistically guaruntee it hasnt been used before (the chance of a UUID duplicate for a good random UUID is about <a href="http://en.wikipedia.org/wiki/Universally_Unique_Identifier#Random_UUID_probability_of_duplicates">1 in a very very very <em>very</em> large number</a>). This means you can have multiple asset servers on the one grid &#8211; each upload can be given an ID randomly, without the need for a central authority to give them out.</p>
<p>They also optimize extremely well &#8211; each &#8220;bit&#8221; is a single yes or no question; to find out exactly where an asset is located, you can play a game of 20 questions, but in this case, with 128 bits &#8211; you can ask 128 questions. For example; finding which server an asset is located on, in a server farm with 4 machines (labelled 1,2,3 &amp; 4) could be found with the following question chain&#8230;</p>
<ol>
<li>Is the asset on a server labelled closer to 4 than 1? (yes &#8211; servers 3,4 still possibilities)</li>
<li>Is the asset on an odd numbered server? (yes &#8211; located on server 3)</li>
</ol>
<p>Asset found on server #3. It&#8217;s not very long is it? Even with say 300 servers; you can find the answer within 9 questions. Some further searching is needed to be done to locate the asset on the physical disk itself; but even then you will be asking a very small number of questions &#8211; far less than the maximum 128 allowed.</p>
<p>To put this into a diagram, fetching an asset directly by it&#8217;s indexed UUID is equivilent to something like this:</p>
<div id="attachment_381" class="wp-caption alignnone" style="width: 653px"><img class="size-full wp-image-381" title="Fetching an Asset" src="http://www.adamfrisby.com/blog/wp-content/uploads/assetfetch.png" alt="Fig 1. How asset UUIDs divide and conquer" width="643" height="525" /><p class="wp-caption-text">Fig 1. How asset UUIDs divide and conquer</p></div>
<p>Given that computers are capable of asking and answering questions very very quickly (several billion per second); and that none of the above questions require a central server; you can expand your asset server farm in a fairly linear fashion without scaling constraints; providing that you structure your data appropriately.</p>
<p>128 questions also means that you can define very very precise questions; so many that if you created 100 trillion assets every second; the sun would be lifeless before you ran out of address space that can be answered by that many questions. (Although a piece of statistical mathematics called the <a href="http://en.wikipedia.org/wiki/Birthday_Paradox">Birthday Paradox</a> does make the address space significantly less usable the closer you get to that point &#8211; but for other reasons)</p>
<p>At this point, we know how assets are stored and retrieved &#8211; files are uploaded into the server farm, and given a UUID; that UUID can be used to find out where the asset is located precisely, and return the data later. However, when you access an item off the asset server; there&#8217;s only a modest chance you are accessing the asset by it&#8217;s UUID directly.</p>
<p>A lot of the time, you will be accessing the asset through a layer of redirection called the Inventory Server &#8211; if you have a texture within your inventory; there are actually two components; the first component is the data itself (the asset), and the second component is the inventory shell (uploader, time uploaded, permissions, reference to the asset, etc). When you lose an item of inventory (such as during a transaction); it is often not the asset servers fault, but instead the inventory server.</p>
<p>The inventory server exists so that if you give a copy of a texture to a friend; you and that friend do not make a duplicate copy of the heavier portion (the asset) &#8211; both inventory items, yours and your friends will have the same underlying asset ID. This also means that copying an item within your inventory will not prevent it from being saved during a asset glitch (as both point at the same data).</p>
<p>In Second Life®, the inventory server is using MySQL (and <em>probably</em> InnoDB), and the asset server uses IsilonFS (a custom hardware appliance based system.); in OpenSim this will vary a lot depending on the providers configuration &#8211; most grids use a SQL backend for storing both assets and inventory. By default, OpenSim will use a small embedded database for both Inventory and Assets &#8211; called SQLite. For grids, we recommend something more robust.</p>
<p>In grid mode, MySQL is still an appropriate solution for Inventory; however asset data will often exceed the normal operating tolerances of MySQL and lead to frequent table corruption, table locking issues (which in turn make performance suck) and other nasties. No large grid should be using MySQL for assets (small home and private grids are however fine.)</p>
<p>Grids such as ReactionGrid which use MS-SQL can get a bit further than MySQL when storing asset data (for inventory they are fundementally the same); MS-SQL like most <em>sane </em>database engines, store BLOB data seperately in a BSP-Tree indexed system; this means they can scale up pretty far (although at about the point of clustering, things degrade.); Postgres can do the same &#8211; however as best I am aware, Postgres is not yet properly supported in OpenSim.</p>
<p>For bigger grids like OSGrid (where we have hundreds of gigabytes of assets) a dedicated solution is ideal &#8211; unlike Second Life, we cant afford to purchase high end NAS-equipment for our storage solutions; so we have built a distributed system called Fragstore which has two big features.</p>
<ol>
<li> A configurable backend &#8211; it can use distributed storage systems (such as Project Voldemort or Hadoop), or export to a filesystem (which can be a distributed filesystem via projects like KosmosFS.)</li>
<li>A duplicate detection system &#8211; so files uploaded twice only get stored once.</li>
</ol>
<p>The duplicate detection is achieved via a secondary layer of indirection; when we allocate a UUID, we hash the incoming data (256-bit SHA1) and store the UUID and the Hash into a small database table (currently MySQL based); when we recieve future uploads; if the hash matches, the result is only stored once on disk.</p>
<p>The final point I would like to touch on is asset transmission and security &#8211; assets are transmitted in both SL and OpenSim over HTTP; the reason this works and is secure is because the UUIDs used in the requests are unguessable. Even by a computer making millions of guesses per second; the chance of hitting a valid address is very very small (same probability as generating a duplicate UUID).</p>
<p>From the asset server to the region server, the request is something in the form of http://assetserver.com/&lt;uuid&gt;/data &#8211; which will return the asset in a encoded container (usually packaging a little bit more information about the asset such as the content type, etc.) &#8211; using /metadata instead of /data will get you a JSON-encoded package with a bit more information about the asset (creation date, specific asset type, etc.)</p>
<p>From the region servers to the users &#8211; this transmission can vary a little. In both SL and OpenSim, the region servers act as proxy caches for the asset server; because assets cannot be updated (and instead are replaced) &#8211; this works fairly well. If twenty users in a region see a texture &#8211; it only needs to be fetched off the core asset service once; because the region will send it twenty times to the users; rather than twenty users hitting the core server.</p>
<p>In the case of OSGrid, this means we have 2,500+ reverse proxies sitting infront of the asset server (albeit in a somewhat suboptimal layout.); it reduces the bandwidth on the core asset server by approximately 90%+ (<a href="http://assets.osgrid.org/stats/">you can see our asset stats here</a>); which means we can get away with much lower operating costs (since asset delivery costs are shared with region operators).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2009/07/inside-the-asset-server/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Impersistence of Memory</title>
		<link>http://www.adamfrisby.com/blog/2009/06/the-impersistence-of-memory/</link>
		<comments>http://www.adamfrisby.com/blog/2009/06/the-impersistence-of-memory/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 21:10:32 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[aleph]]></category>
		<category><![CDATA[archives]]></category>
		<category><![CDATA[backups]]></category>
		<category><![CDATA[oar]]></category>
		<category><![CDATA[periscope]]></category>
		<category><![CDATA[prim workshop]]></category>
		<category><![CDATA[second life]]></category>
		<category><![CDATA[simian]]></category>

		<guid isPermaLink="false">http://www.adamfrisby.com/blog/?p=327</guid>
		<description><![CDATA[Somewhere in the deep dark recesses of my backup server, is a little directory called &#8216;AWSERVER&#8217;, last modified circa 1999. Inside that directory is my world database and the content path associated with my old ActiveWorlds regions. With a little (or maybe a lot) of work, I could probably re-load it today and log in.Yet, [...]]]></description>
			<content:encoded><![CDATA[<p>Somewhere in the deep dark recesses of my backup server, is a little directory called &#8216;AWSERVER&#8217;, last modified circa 1999. Inside that directory is my world database and the content path associated with my old ActiveWorlds regions. With a little (or maybe a lot) of work, I could probably re-load it today and log in.Yet, if I tried to revisit some of my full-sim creations in Second Life from 2004, I&#8217;d have a lot of trouble trying &#8211; I&#8217;d need to recover what I could from my inventory and do painstaking rebuilding work, if it was possible at all.</p>
<p>This is the problem with SL &#8211; the moment something is deleted, or a region is shut down &#8211; it&#8217;s almost always gone forever. If you wanted to revisit a earlier incarnation of Nexus Prime, or parts of SL&#8217;s ancient history &#8211; you are out of luck, as there&#8217;s a very solid chance those places are simply irrecoverable and lost to the sands of time. As digital data, there should be no good reason for this &#8211; disk space is cheap, and sims are small.</p>
<p>The classic case of this is the Bedazzle sims, among them were Gravity Space Station, <a href="http://www.flickr.com/photos/peter_tyson/4701065/">Chinatown</a> and UnrealSL &#8211; but none of them lasted more than between a few weeks or a few months. I&#8217;m digressing here slightly; but there are major projects I have been involved in SL that I would love to be able to still access that are gone forever (earlier versions of Aleph, the Atlas Underwater Complex, etc).</p>
<p>The problem isn&#8217;t so much that SL doesn&#8217;t store ancient rollbacks but that it is simply not possible to save a copy of one; even if you are the rights owner and want to back up your own work. Second Inventory can help here, but it too has flaws &#8211; it doesn&#8217;t have any kind of mass restore functionality; and it can only save inventory &#8211; there&#8217;s no chance to save the layout within a region, only the individual contents of it.</p>
<p>It is somewhat sad to see regions shut down by their owners for affordability reasons; knowing full well that the content cannot be ever easily restored later &#8211; I personally hate to see it when this happens, because something creative is lost forever.</p>
<p>OpenSim on the other hand, has some real advantages here &#8211; I have complete copies of a lot of my builds on OpenSim in varying stages of construction, courtesy of the Region Archive functionality. Every major construction project I have done on any of the grids is sitting somewhere on one of my hard disks as a .tar.gz file containing everything needed to reload it in later. In OpenSim, nothing is ever incapable of being saved &#8211; at all times you can dump a copy of the region to a disk, then reload it later somewhere else.</p>
<p>As a creator it&#8217;s fairly liberating &#8211; and convenient. I can work on a sim locally, export it, then import it into the production environment, and vice versa, take a production environment for local tweaks, edit it, then bring it back again.</p>
<h3>Backing up Aleph</h3>
<p>I have for a few months been testing an internal tool which allows you to export a OpenSim Archive from a Second Life Region &#8211; it was originally developed to export a clients region (their IP); but ended up being handy to preserve some of our workshops and builds from deletion when we closed the sims or rebuilt them. Today, I rewrote it &#8211; the previous version was based on the old libomv PrimWorkshop viewer, the new version is now based on the Simian Periscope (Periscope is a kind of multi-user version of GridProxy).</p>
<p>Before anyone asks, the modifications aren&#8217;t public &#8211; unfortunately for every legitimate user for a tool like this, there&#8217;s ten asshats prepared to use it as copybot <em>deluxe</em>, so the source is going to stay private (although I might release a binary version containing creator and permission checks similar to Second Inventory &#8211; we&#8217;ll see what my schedule looks like in the next few weeks).</p>
<p>This new version is overall a bit more reliable &#8211; a number of small bugs and niggles got fixed along the way &#8211; but the key factor is it&#8217;s now not a 2 hour effort to run, a region can be grabbed with 95%+ accuracy in minutes. You can see here, my personal workshop region &#8216;Aleph&#8217; in Second Life &#8211; it&#8217;s a fairly old sim, but it&#8217;s gone through a ton of revisions in it&#8217;s history. The current revision is a sort of moonbase cross sandbox, complete with orbital lasers.</p>
<div id="attachment_328" class="wp-caption aligncenter" style="width: 680px"><img class="size-full wp-image-328" title="aleph_sl" src="http://www.adamfrisby.com/blog/wp-content/uploads/aleph_sl.png" alt="Aleph Null" width="670" height="213" /><p class="wp-caption-text">Aleph Null</p></div>
<p>Below you can see the same region and contents, but in my personal standalone OpenSim region. This one is located on my personal desktop &#8211; but with the same OAR file, I could just as easily reload it on any region running any version of OpenSim since OAR support was added. If I wanted to bring Aleph to OSGrid, it would take only as long as it took to copy and load the file on a region connected to OSGrid.</p>
<div id="attachment_329" class="wp-caption aligncenter" style="width: 680px"><img class="size-full wp-image-329" title="aleph_os" src="http://www.adamfrisby.com/blog/wp-content/uploads/aleph_os.png" alt="127.0.0.1:9000" width="670" height="269" /><p class="wp-caption-text">127.0.0.1:9000</p></div>
<p>There are limitations, the tool doesn&#8217;t copy any form of &#8216;deep inspection&#8217; &#8211; so scripts, etc do not get saved. It&#8217;s theoretically possible however to back these up if you are the object owner, something I will be looking at in the future. Estate settings and a few other features aren&#8217;t in the v1 OAR format, so those also need to be recreated &#8211; but could be something we look at adding in future. It&#8217;s also worth noting that it will only backup content with a creator tag in a specified list; while that limit could be removed, it provides an easy way of assuring that you are backing up only content you have rights to.</p>
<h3>The Wayback Grid</h3>
<p>One of the projects I would like to see would be some kind of opt-in mechanism to subscribe to an automatic backup service similar to Archive.org for the web &#8211; the goal of which would be preservation of content in the long run. When someone drops their region, it would be nice to be able to restore it later on if they buy another region, or move to one of the open grids.</p>
<p>Ultimately, this could be taken to an extreme where you can dial back a grid in time, and see it as it was in a previous point in time &#8211; however the biggest limitations here are dealing with content prosciption. Most SL content is licensed with one or more restrictions &#8211; ethically &#8216;no copy&#8217; is probably a blocker to performing backups, likewise &#8216;no transfer&#8217; makes some implications about bringing something out of SL. To do this effectively, you need massive &#8216;opt-in&#8217; by content creators to approve their content going outside.</p>
<p>The easiest starting point is instead probably to provide some kind of service for creators to voluntarily backup their sims (say, in the case of a creator shutting down their region &#8211; but wanting to preserve it). Perhaps there are options here to look at providing some kind of transfer service for people moving regions from say SL to OSGrid [providing they own the copyright]. If anyone is interested in that kind of service, let me know &#8211; this might be useful for folks contemplating migrating over to OpenSim/OSGrid and have all their own content.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2009/06/the-impersistence-of-memory/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Persistent Vegetative Simulation</title>
		<link>http://www.adamfrisby.com/blog/2009/04/persistent-vegetative-simulation/</link>
		<comments>http://www.adamfrisby.com/blog/2009/04/persistent-vegetative-simulation/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 07:51:13 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[second life]]></category>

		<guid isPermaLink="false">http://www.adamfrisby.com/blog/?p=167</guid>
		<description><![CDATA[If a tree falls in a forest and nobody can see it, does it still fire a collision event?
In Second Life(R) it does, and this is one of the reasons that the platform is so expensive &#8211; maintaining 20,000 regions requires 20,000 processor cores. Consider the WWW by contrast &#8211; a single server can power [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>If a tree falls in a forest and nobody can see it, does it still fire a collision event?</p></blockquote>
<p>In Second Life(R) it does, and this is one of the reasons that the platform is so expensive &#8211; maintaining 20,000 regions requires 20,000 processor cores. Consider the WWW by contrast &#8211; a single server can power thousands of websites; because the cost of hosting is virtually free until someone accesses the site. Cost does not equate simulation space &#8211; it&#8217;s based on simultaneous concurrent accesses and the complexity of processing the requests.</p>
<p>OpenSim falls into the same trap in many ways &#8211; while the cost of hosting an empty region is nearly nil; there are two key aspects where processing will always continue even if there is no need or desire to do so. These areas are physics and scripting &#8211; arguably two of the larger expenses on the processor bill.</p>
<p>Physics can be limited somewhat &#8211; switching away from a persistent simulator (ODE) to something that computes physics &#8216;on demand&#8217; (POS, BasicPhysics) will remove the expense of physics while no-one is in the region, but you lose the ability to have objects move independently. For those hosting geographical areas this may be perfect &#8211; if you don&#8217;t have any scripts in the region and compute physics purely on demand, you are looking at a raw cost in just memory &#8211; about 20mb per region, and even that can be paged to disk safely.</p>
<p>However, hosting conventional regions is a more tricky prospect &#8211; users have an expectation of certain features working, people use scripting and want to physically interact with objects. One of the options worth considering may be simply dialling the simFPS according to the number of viewers in the region. Drop down to 1Hz when there is no users, but dial back up to 45Hz when users appear &#8211; all easy enough to do within the codebase, however doesn&#8217;t reduce the processor cost to zero while inactive.</p>
<p>If we consider the ultimate goal being to reduce Virtual World running expenses to similar to that of a web-host: costs being per-access, measured in processor time, bandwidth, etc. then we need to go a few steps further. One of the bigger steps is reducing expectations &#8211; right now you can safely assume LSL will always be running, so therefor you can write things like &#8220;servers&#8221; in LSL. Servers are a good example of the problem &#8211; they are something that interacts with the world, but aren&#8217;t supposed to be part of it; yet they consume the expenses of being in the world all the same.</p>
<p>Servers could be much better replaced by simple web scripts or server daemons on a normal server &#8211; which have a decent API that can connect to the world and make their interactions without needing to be part of it. By doing so, you not only make the servers more efficient (Apache+PHP is faster and more powerful than LSL), but you reduce the persistent load on the world itself.</p>
<p>The work I am doing on MRM is addressing part of this problem &#8211; redefining the API to reduce the number of scripts you need in the world, but a total solution here includes some kind of &#8220;remoting-style&#8221; API that lets you send messages and interact with the world, from a completely independent outside authority. The other side of the same coin is reducing &#8216;background noise&#8217; processing &#8211; timers, sensorrepeats and other recurring tasks all place a small but visible background load on the server, all of these events will keep the server processing even if there is nothing to do.</p>
<p>Some things may require this &#8211; but encouraging people to think about when they need these events is better. Limitations on the LSL API really prevent this in SL, but in OpenSim would you be willing to use a &#8220;TimerIfAvatarInRegion&#8221; instead of a plain Timer? If you could &#8211; then it would allow the back-end server to attach conditions to your scheduler which provide optimisations when no-one is there. Allowing these kinds of optimizations is going to be key in the long term &#8211; because a cost of one processor core per four concurrent users is just simply insane and will never be adopted in the wider marketplace VW operators hope to gain. If webservers could only handle four simultaneous users &#8211; Google would require millions of servers to operate instead of just thousands.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2009/04/persistent-vegetative-simulation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>If you only vote for one SL Jira issue this summer&#8230;</title>
		<link>http://www.adamfrisby.com/blog/2008/08/if-you-only-vote-for-one-sl-jira-issue-this-summer/</link>
		<comments>http://www.adamfrisby.com/blog/2008/08/if-you-only-vote-for-one-sl-jira-issue-this-summer/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 03:13:56 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[jira]]></category>
		<category><![CDATA[mesh]]></category>
		<category><![CDATA[second life]]></category>

		<guid isPermaLink="false">http://www.adamfrisby.com/blog/?p=61</guid>
		<description><![CDATA[Please vote for Mesh imports for Second Life® (If you feel like making a second vote, getting the licensing issues with the SL Viewer fixed would be another good target).
While RealXtend have managed this feat a good year ago, it would be nice to get this feature into the mainline standard viewer. Now sure, going [...]]]></description>
			<content:encoded><![CDATA[<p>Please vote for <a href="http://jira.secondlife.com/browse/MISC-1494">Mesh imports for Second Life®</a> (If you feel like making a second vote, getting the licensing issues with the <a href="http://jira.secondlife.com/browse/MISC-881">SL Viewer fixed</a> would be another good target).</p>
<p>While RealXtend have managed this feat a good year ago, it would be nice to get this feature into the mainline standard viewer. Now sure, going by their track record Linden are probably going to manage to cock it up and implement it badly (<em>Can you say &#8220;Nonstandard Custom Format&#8221; </em>or <em>&#8220;Stupid limitations&#8221;?</em>), but a feature like that is going to be incredibly useful even in a broken state (Look what&#8217;s been achieved with sculpties for example).</p>
<p>It also has some real benefits for content creators &#8211; first the largest is it permits real world artists with real world skills to use those skills effectively. Second big reason is it adds the capability to use well developed editing suites with Second Life seamlessly &#8211; this is going to dramatically &#8216;raise the bar&#8217; on content quality and potentially bring SL into line with games only two years old (from the 5-6 it is now).</p>
<p>The first argument I&#8217;m going to hear against this no doubt is &#8220;By allowing professionals to create content for Second Life effectively, the inworld tools are going to be worthless&#8221; &#8211; which is basically saying &#8220;Let&#8217;s keep the tools retarded.&#8221; &#8211; the fact is the SL building tools are not the best, and by adding complementary support for out world editors, it means that content can be designed both more efficiently and with better visual quality. If the implementation is done similar to the RealXtend implementation, it will end up being like sculpties &#8211; you can manipulate them in world, but the core shapes are developed out world.</p>
<p>Really the biggest argument above is a simple case of protectionism &#8211; and like real world protectionism, the people hurt the most are going to be the people who don&#8217;t adapt and see their countries (platforms) lose economic growth to competitors. Sculpties didn&#8217;t kill builders, and neither will meshes, but yes you will probably need to learn a new skill or two.</p>
<p>The next one will be &#8220;This will cause additional lag&#8221; &#8211; the irony here is that it actually will do the inverse. Mesh objects are significantly more efficient computing-wise than primitives. Not only can you cluster texture space significantly more efficiently using UV maps, but you can additionally render less triangles with more detail. In terms of network downloads &#8211; it&#8217;s not going to be a case of one primitive vs one mesh, you are comparing lots of primitives vs one mesh, and like textures &#8211; you can cache them effectively.</p>
<p>As an ammendum to that &#8211; people often bring out the idea of million polygon meshes. The answer here is that meshes can be artificially limited on upload (lock em to a certain filesize or number of polygons) &#8211; the ultimate irony here is however that primitives are no better &#8211; the average second life furry avatar fully rendered is around ~100,000 triangles, or approx 2x that of the average complete Doom 3 scene.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2008/08/if-you-only-vote-for-one-sl-jira-issue-this-summer/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
