{"id":35440,"date":"2016-12-01T06:00:54","date_gmt":"2016-12-01T10:00:54","guid":{"rendered":"http:\/\/www.shamusyoung.com\/twentysidedtale\/?p=35440"},"modified":"2016-12-18T11:19:17","modified_gmt":"2016-12-18T16:19:17","slug":"crash-dot-com-part-4-a-moral-quagmire","status":"publish","type":"post","link":"https:\/\/www.shamusyoung.com\/twentysidedtale\/?p=35440","title":{"rendered":"Crash Dot Com Part 4: A Moral Quagmire"},"content":{"rendered":"<p>The meeting drags on. I&#8217;ve been the only person in the room answering questions for about half an hour now. I feel like I&#8217;m on a gameshow where every answer is wrong and the penalty for wrong answers is more questions. <\/p>\n<h3>Like the Real World, Only Worse!<\/h3>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/cdc_shelves.jpg' width=100% alt='Oops. These products are small and I clicked on the wrong one and I don&apos;t know how to get it out of my cart. I clicked on it a few more times to get rid of it, and now I have 10 of them. Never mind. This is stressful. I&apos;ll just visit Amazon.com.' title='Oops. These products are small and I clicked on the wrong one and I don&apos;t know how to get it out of my cart. I clicked on it a few more times to get rid of it, and now I have 10 of them. Never mind. This is stressful. I&apos;ll just visit Amazon.com.'\/><\/div><div class='mouseover-alt'>Oops. These products are small and I clicked on the wrong one and I don&apos;t know how to get it out of my cart. I clicked on it a few more times to get rid of it, and now I have 10 of them. Never mind. This is stressful. I&apos;ll just visit Amazon.com.<\/div><\/p>\n<p>John Business returns to his printed notes. &#8220;When a visitor clicks on an item on a shelf, can we have it fall into their shopping trolley?&#8221;  <\/p>\n<p>I somehow resist the urge to make a horrified face at the suggestion.<\/p>\n<p><!--more--><i>People are going to <strong>push shopping carts around<\/strong> your <strong>virtual<\/strong> mall? Doesn&#8217;t that have the stench of low-end shopping? Will the carts collide with shelves? If so, then people WILL get stuck, frustrated, and log out without buying anything.If not, then expect people to navigate as if the cart didn&#8217;t exist, which means they will constantly end up clipping into walls. Everywhere you go, you&#8217;ll have the front ends of shopping carts peeking at you through walls and shelves. In addition to being really ugly and immersion-breaking, this will be confusing to people. And don&#8217;t even get me started on the ways people might confuse or harass each other with them. What if I leave a store without paying? Does my cart vanish, or is it cleared? Will the items be restored if I return later? We need to figure out what the &#8220;expected behavior&#8221; is going to be before we know how to design this.<\/i><\/p>\n<p><i>Isn&#8217;t the advantage of a VIRTUAL mall the fact that you don&#8217;t need to worry about the physical hassles of carrying items? I know in your head you&#8217;re picturing people simply replicating real-world behavior, but that&#8217;s not going to happen. People will act in ways that don&#8217;t make sense. What if I click on an item that&#8217;s nowhere near my cart? Should the item fly across the room and land in the cart? If so, then expect new users to be confused by random items flying all over the place. Or you can give them an error message telling them to move closer. That will stop the flying merchandise, but now you&#8217;re inconveniencing people trying to buy stuff. <\/p>\n<p>How will they get items back out again? Physics engines that operate in a shared space are <em>years<\/em> away, so making them rummage around a pile of loose items won&#8217;t work. What if they want to remove an item from the cart and it&#8217;s buried under others? What happens if I go to the other side of the store and then remove the item? Should it fly across the store to where it belongs, or should we replicate the real world where fickle shoppers constantly scramble your inventory by abandoning items in random parts of the store? Or should it just poof away?<\/i><\/p>\n<p>What I actually said:<\/p>\n<p>&#8220;Sort of. We can show an object falling into the cart.&#8221;<\/p>\n<p>&#8220;But will the object disappear off the shelf?&#8221; This point seem to be awfully important to him.<\/p>\n<p><i>You&#8230; you want to create a virtual store with <b>scarcity?<\/b> WHYYYYYYY? Madness! If this is possible, people WILL try to empty the shelves into their cart so that nobody else can buy anything.<\/i><\/p>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/cdc_empty.jpg' width=100% alt='Ten minutes after the doors open, every item in the store is in the shopping cart of some prankster. As you approach him, the thousands of items in his cart bring your framerate down to the single digits while he laughs and calls you a fag over and over.' title='Ten minutes after the doors open, every item in the store is in the shopping cart of some prankster. As you approach him, the thousands of items in his cart bring your framerate down to the single digits while he laughs and calls you a fag over and over.'\/><\/div><div class='mouseover-alt'>Ten minutes after the doors open, every item in the store is in the shopping cart of some prankster. As you approach him, the thousands of items in his cart bring your framerate down to the single digits while he laughs and calls you a fag over and over.<\/div><\/p>\n<p>What I actually said:<\/p>\n<p>&#8220;No.&#8221; <\/p>\n<p>The actual answer would be &#8220;It depends&#8221;, but it would be long and complex and I sense everyone is just looking for simple answers to complex questions. We could make shelves that deplete of stock and need to be refilled, but this would create all sorts of interface headaches and the need for a bunch of new coding, because we&#8217;d need to create a program to track the position of all items and handle restocking them. I can spend ten minutes explaining that the timetable is already WAY too tight and there&#8217;s no way we have time to code experimental new features with unknown challenges for purely cosmetic effects. <\/p>\n<p>The meeting drags on like this, with John Business casually asking for monumentally difficult things that will make the store less useful in order to re-create the limitations and frustrations of the physical world.  <\/p>\n<p>This doesn&#8217;t even touch on the more serious problems with the design. They sensibly want to focus on selling expensive items at first: Cameras, electronics, that sort of thing. The idea is that you&#8217;ll walk up to a shelf, click on an item, and it will appear in the center of the screen where you can turn it over and examine it in detail. Then you can put it back or buy it.<\/p>\n<p>The problem is that this stuff is often quite small. Right now the vast majority of users are equipped with 800&#215;600 monitors. That&#8217;s not a lot of pixels, and many of them are spent on stuff like the chat window and other interface elements. At this resolution, something small like a camera is going to look like an indistinct lump of black until you&#8217;re very close. Do we make items oversize? Do we put a large picture of the item beside the indistinct lump? <\/p>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/cdc_retail.jpg' width=100% alt='Good luck getting users to look up and down at things that aren&apos;t displayed at eye level.' title='Good luck getting users to look up and down at things that aren&apos;t displayed at eye level.'\/><\/div><div class='mouseover-alt'>Good luck getting users to look up and down at things that aren&apos;t displayed at eye level.<\/div><\/p>\n<p>How will they navigate the store? Signage? Imagine trying to find your way around a modern department store with blinders on, because that&#8217;s what it&#8217;s like exploring a world through a screen. You have no peripheral vision. Typically, people navigate stores based on overhead signs, but in virtual worlds it&#8217;s really hard to get people to look up.<\/p>\n<p>On top of all of this is the problem of texture data. I&#8217;m sure the dream is that the user can walk up to a camera and examine it closely and see all the little details. That means every item on every shelf needs to be using enormous texture maps. Laying aside the cost of making those textures and the problem of fitting them into video memory, how on earth will we get that much  texture data to the user? A non-trivial portion of the population is still on dial-up. <\/p>\n<p>You&#8217;ll end up with the user being frustrated. They can&#8217;t see the texture on the camera they&#8217;re looking at because their computer is still downloading the toaster oven one aisle over. <\/p>\n<p>The texture problem could be solved through some sort of smart streaming system that downloads low-res textures first and then acquires progressively detailed versions according to what items are nearby. Years from now, Google create Google Earth using a similar technique. But that&#8217;s a huge R&#038;D project and we&#8217;re a small company.  Given the choice, I&#8217;d love to spend a few months working on something like that, but there is no time in the budget.<\/p>\n<p>My problem isn&#8217;t that they didn&#8217;t allow for enough time to create these features. It&#8217;s that nobody realized we would need these features in the first place. Money changed hands, contracts were signed, and corporate power was shifted to make this project possible, and nobody stopped to ask these questions first. Our guys didn&#8217;t ask them because they didn&#8217;t know what was involved in running a mall and how it would differ from the usual work we do, and their guys didn&#8217;t ask because they&#8217;re not technologically literate. It&#8217;s like an automaker and an aerospace company teaming up to make flying cars. Each of them assumes that the stuff they don&#8217;t know how to do will be handled by the other party, when in reality there&#8217;s a bunch of stuff right in the middle that nobody knows how to do.<\/p>\n<p>Everyone seems to think you can just make a virtual store shaped like a real store and end up with something that&#8217;s <em>experienced<\/em> like a real store. <\/p>\n<h3>Am I the Bad Guy?<\/h3>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/cdc_burn.jpg' width=100% alt='It&apos;s the old investment axiom: Don&apos;t burn money you can&apos;t afford to have set on fire. Or something like that.' title='It&apos;s the old investment axiom: Don&apos;t burn money you can&apos;t afford to have set on fire. Or something like that.'\/><\/div><div class='mouseover-alt'>It&apos;s the old investment axiom: Don&apos;t burn money you can&apos;t afford to have set on fire. Or something like that.<\/div><\/p>\n<p>I hate this meeting so much. This is literally the worst meeting I&#8217;ve ever been in. I feel like a nautical engineer who&#8217;s been tasked with making a passenger ship out of cardboard, and the client is spending the whole meeting asking me if they can get it in red. If I build him the ship, am I complicit when it sinks into the harbor? <\/p>\n<p>Giving truthful answers to his questions makes me feel somehow dishonest, because I&#8217;m telling them how to do something self-destructive. What should I do? Tell these guys their plan is ridiculous? <\/p>\n<p>I dragged my wife and baby daughter here to Boston for this job. If I get fired, then we&#8217;ll have moved away from our families and support network for nothing. We just bought a condo here. We&#8217;re barely making ends meet as it is, because housing prices have skyrocketed on account of the boom. That&#8217;s fine if you&#8217;re making engineer money, but I&#8217;m making artist money and things are tight.<\/p>\n<p>These people are smart enough to run a business and employ people for years. What am I missing? Am I supposed to keep my mouth shut and let these people blow their fortune on an unworkable concept? Or am I obligated to try and save them from themselves by giving them advice that will be ignored except to cost me my job? Am I the bad guy here? Why am I the only one with misgivings about this project? Have I gone mad? Is this actually a good plan and I&#8217;m just too dumb to see it? <\/p>\n<p>To be continued&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The meeting drags on. I&#8217;ve been the only person in the room answering questions for about half an hour now. I feel like I&#8217;m on a gameshow where every answer is wrong and the penalty for wrong answers is more questions. Like the Real World, Only Worse! John Business returns to his printed notes. &#8220;When [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-35440","post","type-post","status-publish","format-standard","hentry","category-personal"],"_links":{"self":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts\/35440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=35440"}],"version-history":[{"count":0,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts\/35440\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=35440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=35440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=35440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}