<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7558007</id><updated>2011-07-30T19:53:36.178-07:00</updated><category term='XNA'/><title type='text'>Society Games</title><subtitle type='html'>Off the beaten path of Interactive Arts and Computer Games... and out of my mind</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7558007.post-2784052407120782469</id><published>2009-08-03T11:58:00.000-07:00</published><updated>2009-08-03T12:11:59.652-07:00</updated><title type='text'>Fixing Bad Text Encoding</title><content type='html'>I accidentally imported a UTF-8 text file into Excel as an ANSI file, then proceeded to do a lot of work on the Excel file. On closer inspection, a lot of characters were messed up. For example, apostrophe had became â€™ and a lot of foreign characters were wrong. But I didn't want to re-import the file and redo the work. So, here's what I did:&lt;br /&gt;&lt;br /&gt;1) I saved the Excel file as a text file. (Save As, Other Formats, *.csv) This saved the file as a UTF-8 text file.&lt;br /&gt;2) I opened the CSV in Notepad, then saved it as "ANSI" text file. (File, Save As, Select ANSI in the combo box.) This saved the file as simple ASCII text file.&lt;br /&gt;3) I then opened the text file in Notepad, but this time as UTF-8. (File, Open, Select UTF-8 in the combo box.) This opened the ASCII file as if it were UTF-8, which converted the strange two and three character runs back into the single character. I saved this file as UTF-8 with .CSV extension, then opened it in Excel.&lt;br /&gt;&lt;br /&gt;Whew!  I really didn't want to redo all that work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-2784052407120782469?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/2784052407120782469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=2784052407120782469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/2784052407120782469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/2784052407120782469'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2009/08/fixing-bad-text-encoding.html' title='Fixing Bad Text Encoding'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-5217928216050156460</id><published>2007-04-26T10:30:00.000-07:00</published><updated>2007-04-27T09:28:03.646-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><title type='text'>XNA: GraphicsDevice.DeviceLost Doesn't Fire</title><content type='html'>&lt;span style="font-size:+0;"&gt;&lt;span style="font-size:+0;"&gt;&lt;strong&gt;What is device loss?&lt;br /&gt;&lt;/strong&gt;Device loss occurs when Windows takes the graphics device from an application, preventing the application from rendering. The easiest way to trigger device loss is to lock your work station. To render the locked workstation screen, Windows will steal the graphics device. When the application gets the device back it must recreate the graphics content that is no longer valid.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;GraphicsDevice.DeviceLost Event&lt;/strong&gt;&lt;br /&gt;This event fires when GraphicsDevice.Present() is called on a lost device. In most cases, including the "Game" class in XNA, this event will never fire because the render loop simply won't call Present()if the device is lost. The render loop might look something like this:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if (device.GraphicsDeviceStatus == GraphicDeviceStatus.Lost)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;device.Reset();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if (device.GraphicsDeviceStatus == GraphicDeviceStatus.Normal)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;device.Present();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:+0;"&gt;I suppose the device could be lost between checking the &lt;span style="font-family:courier new;"&gt;GraphicsDeviceStatus&lt;/span&gt; and calling &lt;span style="font-family:courier new;"&gt;Present()&lt;/span&gt; then &lt;span style="font-family:courier new;"&gt;DeviceLost&lt;/span&gt; would fire, but that is generally unlikely.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-5217928216050156460?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/5217928216050156460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=5217928216050156460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/5217928216050156460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/5217928216050156460'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2007/04/xna-graphicsdevicedevicelost-doesnt.html' title='XNA: GraphicsDevice.DeviceLost Doesn&apos;t Fire'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-4638965081265850617</id><published>2007-01-24T10:45:00.000-08:00</published><updated>2007-04-27T09:28:37.936-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><title type='text'>Tip: Vector2.Normalize()</title><content type='html'>&lt;span style="font-size:+0;"&gt;Vector2.Normalize() will fail silently if both members X and Y are zero. When it fails, the method will set X and Y to NaN (which stands for Not a Number.) Most operations using NaN will yield NaN so pretty soon all of your floating point values will become NaN!&lt;br /&gt;&lt;br /&gt;When using Normalize() use the following pattern:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;Vector2 delta = new&lt;br /&gt;Vector();&lt;br /&gt;if (delta&lt;br /&gt;!=&lt;br /&gt;Vector2.Zero)&lt;br /&gt;{&lt;br /&gt;delta.Normalize();&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Or:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;Vector2 delta = new&lt;br /&gt;Vector();&lt;br /&gt;if&lt;br /&gt;(delta.LengthSquared &gt; 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;delta.Normalize();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;You may be tempted to use the following because it is most "mathematically" correct:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;Vector2 delta = new Vector();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if (delta.Length &gt; 0)&lt;br /&gt;{&lt;br /&gt;delta.Normalize();&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-size:+0;"&gt;But don't do it! The&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;Length &lt;/span&gt;property causes a square root operation which is really expensive.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-4638965081265850617?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/4638965081265850617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=4638965081265850617' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/4638965081265850617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/4638965081265850617'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2007/01/tip-vector2normalize.html' title='Tip: Vector2.Normalize()'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-69990463178925244</id><published>2007-01-24T10:42:00.000-08:00</published><updated>2007-04-27T09:28:56.318-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><title type='text'>New Goal: XNA Hints and Tips</title><content type='html'>From now on I'm going to post XNA hints and tips as I come across them. The XNA platform enables garage developers to create games for Windows and Xbox360 for free. You can find more information here: &lt;a href="http://msdn.microsoft.com/directx/XNA/default.aspx"&gt;http://msdn.microsoft.com/directx/XNA/default.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-69990463178925244?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/69990463178925244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=69990463178925244' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/69990463178925244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/69990463178925244'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2007/01/new-goal-xna-hints-and-tips.html' title='New Goal: XNA Hints and Tips'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-112967359226748642</id><published>2005-10-18T15:06:00.000-07:00</published><updated>2005-10-18T15:13:12.273-07:00</updated><title type='text'>Stupid Windows Tricks</title><content type='html'>Pop Quiz&lt;br /&gt;You have a directory with the following files:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;monkey.stu&lt;br /&gt;donkey.stupid&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;At a DOS prompt you type:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;dir /b *.stu&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;What does the DOS prompt display? (Answer below:)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;monkey.stu&lt;br /&gt;donkey.stupid&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;What? Why does the file called "donkey.stupid" match the wildcard string "*.stu"? It should match "*.stu*" but not "*.stu"! The reason is that in Windows all files have equivalent 8.3 filenames. It so happens that the 8.3 filename of "donkey.stupid" is "donkey.stu" so it matches. Just be glad that you didn't run "del *.stu" expecting to delete all the .stu files but not expecting to delete all of the .stupid files!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-112967359226748642?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/112967359226748642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=112967359226748642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/112967359226748642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/112967359226748642'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/10/stupid-windows-tricks.html' title='Stupid Windows Tricks'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-112525536719768465</id><published>2005-08-28T11:28:00.000-07:00</published><updated>2005-08-28T11:58:30.033-07:00</updated><title type='text'>Vanilla vs. Vanilla Extract</title><content type='html'>My life has been sanitized by writing. More specifically, I've been wiped clean by editing.&lt;br /&gt;&lt;br /&gt;The other day, I had a chance to try some real vanilla -- not vanilla extract but the actual vanilla plant. It has a complex, strong flavor that must be served with something else to dilute it. I was surprised and dissappointed by the mushy yet distinctive taste. Where was the cleanness of vanilla extract, that dependable essence of cookie?&lt;br /&gt;&lt;br /&gt;Taking something real and extracting only the essential qualities leads to a powerful, pure, predictable experience. This is writing and editing.  But do it too much and you end up with Vanilla Coke, Dreyer's Vanilla Bean Ice Cream, and even ForPlay Vanilla flavored lubricant -- all different, but all with the same underlying familiar essence.&lt;br /&gt;&lt;br /&gt;Expecting the extract can blind you and set your expectations wrong for what is real. Mom's home cooked meal may be too spicy or too bland. It may be lacking that theme, that potent plot, but it's mom's. It's real.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-112525536719768465?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/112525536719768465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=112525536719768465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/112525536719768465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/112525536719768465'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/08/vanilla-vs-vanilla-extract.html' title='Vanilla vs. Vanilla Extract'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-111525351670073413</id><published>2005-05-04T15:58:00.000-07:00</published><updated>2005-05-04T17:46:44.513-07:00</updated><title type='text'>Play Halo 2 On PC (sort of)!</title><content type='html'>Halo 2 on XBox Live is great, competitive fun. But I've run into some problems recently:&lt;br /&gt; 1) My cable modem is now in a different room than my TV. &lt;br /&gt; 2) My TV, while nice, does not support HD and therefore doesn't support 480p. &lt;br /&gt; 3) The XBox controller sucks for Halo/Halo 2.&lt;br /&gt;&lt;br /&gt;Let me expand on that final point -- with the standard XBox controller, your right thumb is forced to: Reload weapons, change weapons, melee, jump, zoome, and look. Meanwhile, your middle finger, ring finger, and pinky on either hand are doing absolutely nothing! It's about as efficient as typing with only your thumb and forefinger!&lt;br /&gt;&lt;br /&gt;I've found a solution to all of my problems thanks to two pieces of hardware:&lt;br /&gt;1) &lt;a href="http://www.lik-sang.com/news.php?artc=3495"&gt;SmartJoy Frag&lt;/a&gt; -- Lets you use mouse and keyboard to control XBox games. With mouse and keyboard, I can finally use every finger on my left hand and use 3/5 fingers on my right hand! Additionally, the mouse allows finer control -- I can reasonably "look" using a sensitivity of 9! Sensitivity 9 is impossible to use using a standard XBox controller.&lt;br /&gt;&lt;br /&gt;2) &lt;a href="http://www.vdigi.com/index.php?option=content&amp;task=blogsection&amp;id=4&amp;Itemid=27"&gt;VDigi &lt;/a&gt;-- Lets you use a computer monitor as though it were an HDTV. This solves my "HDTVs are expensive" problem. Also, since my monitor is sitting on my desk, I have a place to rest the mouse and keyboard! And it lets me put my XBox closer to my cable modem.&lt;br /&gt;&lt;br /&gt;While I love the new setup, I have to admit some minor faults:&lt;br /&gt; 1) Using the mouse to fire an SMG or drive a vehicle is very hard. The SMG kicks upwards as you fire -- with an XBox controller, you simply hold down the right stick. With the mouse, you have to keep lifting it and pulling it down. It makes your arm tired and throws off your aim.&lt;br /&gt; 2) Halo 2's resolution is very low. That's OK on a TV 10 feet away, but it looks kind of bad on a monitor 2 feet from your face.&lt;br /&gt;&lt;br /&gt;I love PC FPSs and I love Halo 2's matchmaking. Now I have the best of both worlds... sort of.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-111525351670073413?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/111525351670073413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=111525351670073413' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/111525351670073413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/111525351670073413'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/05/play-halo-2-on-pc-sort-of.html' title='Play Halo 2 On PC (sort of)!'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-110797443538750695</id><published>2005-02-09T10:40:00.000-08:00</published><updated>2005-02-09T11:47:35.230-08:00</updated><title type='text'>Autobiographical Game Writing</title><content type='html'>  Many authors write about their personal experiences -- a trip to Paris, the love of their lives, a funny drunken moment. Why not write about experiences from within games in the same style? After all, a game world is just another place in which life happens... a virtual Louvre or a virtual Central Park if you will.&lt;br&gt;&lt;br /&gt;  Gamers often talk about games in an almost Zen manner, describing gameplay as intensely personal. "You can't capture the essence of a game without playing it," we say. "Watching me play or hearing me describe it will sound boring -- you actually have to play it." This kind of thinking denies the humanity of games. It implies that gaming is some kind of base physical experience, like a drug, that cannot be described or shared only experienced. This is obviously not the case, as people have fallen in love in-game, been scammed in-game, and made friends in-game. These experiences are all the fodder of "real world" writing. What difference does it make if these experiences occurred via computer? After all, Cyrano won love through letters -- games provide all of the power of letters and more.&lt;br&gt;&lt;br /&gt;  Writing about in-game experiences from a personal point of view captures the essence of a game in a way that no review or analysis could otherwise provide. In a way, in-game experience writing is the most powerful advertising possible. It doesn't just capture the visuals of a game, like a screenshot does, but it captures the essence, emotion, and thought of the moment. As an added benefit, autobiographical game writing is easily palatable by even non-gamers, allowing it to reach a wide audience.&lt;br&gt;&lt;br /&gt;  Additionally, such writing injects into the shared consciousness of gamers the pinnacle of experience and the powerful possibilities of a game, which heightens the experience for all gamers. We read of travel writers falling in love on the streets of Paris. When we visit Paris, do we actually expect to fall in love? No, but the idea exists, making our experience sweeter, even if it is not the same. The same can happen with games and game writing.&lt;br&gt;&lt;br /&gt;  Gaming is a personal experience. However, as games become more powerful and begin to embody deep human experience, even an abstraction of the gaming experience, in the form of writing or even documentaries, can become powerful proxies. It may sound strange, but I'm looking forward to reading about "1337 haxor's Story of Personal Loss in Middle Norrath."&lt;br&gt;&lt;br /&gt;  Here's a very well written example of in-game experience writing: &lt;a href="http://www.alwaysblack.com/blackbox/bownigger.html"&gt;http://www.alwaysblack.com/blackbox/bownigger.html&lt;/a&gt; The game, JKII, serves as a proxy for the very human experience of racism and good vs. evil. The fact that the experience occurs in a game is secondary and serves only to add to the human experience. Strange in-game conventions are explained to the reader, much as a travel writer would explain the strange customs of a foreign land. These conventions add flavor and spices up the otherwise traditional story of the underdog beating the racist bad guy who is expected to win. (I don't mean to imply that the story is "bad" because it is "traditional." Rather, by saying "traditional" I mean to say that the story is understood and shared by most people.)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-110797443538750695?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/110797443538750695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=110797443538750695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110797443538750695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110797443538750695'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/02/autobiographical-game-writing.html' title='Autobiographical Game Writing'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-110694706167228564</id><published>2005-01-28T13:14:00.000-08:00</published><updated>2005-01-28T13:18:54.836-08:00</updated><title type='text'>Writing Pretty Code</title><content type='html'>At work we recently switched back to using C++. We argued for a couple of weeks over coding guidelines. During this protracted argument, much of the team sort of felt that we were wasting time arguing about issues like whitespace. However, it turned out to be a huge blessing that we all decided to write human readable code (note that human readable code is different than well designed code.) This article explains how to write human readable code and carefully avoids talking about well designed code:&lt;br /&gt;&lt;a href="http://www.acmqueue.com/modules.php?name=Content&amp;pa=showpage&amp;amp;pid=271&amp;page=3"&gt;http://www.acmqueue.com/modules.php?name=Content&amp;amp;pa=showpage&amp;pid=271&amp;amp;page=3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-110694706167228564?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/110694706167228564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=110694706167228564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110694706167228564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110694706167228564'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/01/writing-pretty-code.html' title='Writing Pretty Code'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-110687666157834907</id><published>2005-01-27T17:43:00.000-08:00</published><updated>2005-01-28T13:23:14.910-08:00</updated><title type='text'>Week 13: Creating MiniGames</title><content type='html'>So, "Lediculous" now dubbed "Mini Game Maker" is in a very usable state. It's super easy to code MiniGames in under a half hour. Suddenly, coding the games is easy. Creating graphics for the games has become the time consuming bottle neck!&lt;br /&gt;The lesson here is, "With middleware, it's easy to make custom logic. Sadly, middleware won't speed up custom content creation."&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-110687666157834907?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/110687666157834907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=110687666157834907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110687666157834907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110687666157834907'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/01/week-13-creating-minigames.html' title='Week 13: Creating MiniGames'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-110654716376585873</id><published>2005-01-23T22:00:00.000-08:00</published><updated>2005-01-23T22:12:43.766-08:00</updated><title type='text'>Supreme Court Justices...Talk to the Hand!</title><content type='html'>From &lt;a href="http://www.legalaffairs.org/howappealing/ExtremeAssociatesWDPA.pdf"&gt;http://www.legalaffairs.org/howappealing/ExtremeAssociatesWDPA.pdf&lt;/a&gt; a court ruling that argues that Obscenity Laws are unconstitutional:&lt;br /&gt;&lt;referring&gt; "In the dissenting opinion [the justices] opined that the holding in Lawrence calls into question the constitutionality of the nation's obscenity laws, among many other laws based on the state's desire to establish a "moral code" of conduct. Lawrence, 539 US at 590 (Scalia, J. Dissenting). It is reasonable to assume that these three members of the Court came to this conclusion only after reflection and that the opinion was not merely the result of over-reactive hyperbole by those on the losing side of the argument."&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-110654716376585873?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/110654716376585873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=110654716376585873' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110654716376585873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110654716376585873'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/01/supreme-court-justicestalk-to-hand.html' title='Supreme Court Justices...Talk to the Hand!'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-110654529774395150</id><published>2005-01-23T21:29:00.000-08:00</published><updated>2005-01-23T21:42:49.006-08:00</updated><title type='text'>Federal Obscenity Law Struck Down!</title><content type='html'>&lt;p&gt;All Americans know the First Amendment: "Congress shall make no law... abridging the freedom of speech.*" Most Americans don't know about the asterix however. The asterix isn't part of the original constitution. It was added by the Supreme Court. The asterix states, "Certain conditions apply: Freedom of speech is not guaranteed for sexual speech, especially if said sexual speech appeals to the prurient interest, describes in a patently offensive way sexual conduct and the work lacks serious literary, artistic, political, and scientific value."&lt;/p&gt;&lt;p&gt;Strange huh? The Supreme Court guarantees Neo-Nazis the right to march and speak, but doesn't guarantee you or I the right to read Hustler?&lt;/p&gt;&lt;p&gt;Thankfully, a low level court has come to its senses and realized the obscenity of obscenity laws. The full judgement can be read here: &lt;a href="http://www.legalaffairs.org/howappealing/ExtremeAssociatesWDPA.pdf"&gt;http://www.legalaffairs.org/howappealing/ExtremeAssociatesWDPA.pdf&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The relevant passage is: "We find that the federal obscenity statutes burden an individual's fundamental right to possess, read, observe, and think about what he chooses in the privacy of his own home by completely banning the distribution of obscene materials." I'm breaking out a bottle of champagne, though I fear this celebration will be short lived.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-110654529774395150?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/110654529774395150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=110654529774395150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110654529774395150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110654529774395150'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/01/federal-obscenity-law-struck-down.html' title='Federal Obscenity Law Struck Down!'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-110592397172324978</id><published>2005-01-16T16:59:00.000-08:00</published><updated>2005-01-16T17:06:11.723-08:00</updated><title type='text'>Adventures in a Drug Store</title><content type='html'>Did you know that you can by dried Pigs' Ears at Rite Aid drugstores? Evidentally, dogs love to chew on them. Here are some other strange items I recently found in the curio halls of a suburban drugstore:&lt;br /&gt;Hard boiled egg peeler (As seen on TV!)&lt;br /&gt;Shaver designed specifically for shaving your head (the blades are attached to a ring that you slip your finger through, so you don't have to hold the handle at an awkard angle.)&lt;br /&gt;Magnetic "non-medical" pain reliever (What's next? The Virgin Mary "Power of Prayer" non-scientific, non-medical, faith-based pain reliever?)&lt;br /&gt;A variety of "massagers" which are obviously thinly disguised vibrators.&lt;br /&gt;A camping axe.&lt;br /&gt;A variety of ointments whose labels are completely in Spanish.&lt;br /&gt;A plastic toy of Tigger selling Lemonade.&lt;br /&gt;A vinyl jump suit in a box.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-110592397172324978?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/110592397172324978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=110592397172324978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110592397172324978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110592397172324978'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/01/adventures-in-drug-store.html' title='Adventures in a Drug Store'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-110494957738513021</id><published>2005-01-05T10:18:00.000-08:00</published><updated>2005-01-05T10:26:17.386-08:00</updated><title type='text'>Week 11: Rendering Dynamic Text</title><content type='html'>Just spent the evening figuring out the best way to render user determined text in rectangles of user determined size.&lt;br /&gt;&lt;br /&gt;The solution is actually pretty simple using .NET. First, measue the size of the rendered text  using some arbitrary font and some arbitrary bounding box. Next, determine the ratio between the width of the arbitrary bounding box and the actual area you want to render to. Do the same for the height. Choose the smaller ratio of the width and height ratios and scale the font size by that ratio. Wallah! The text fills the area you want.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-110494957738513021?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/110494957738513021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=110494957738513021' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110494957738513021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110494957738513021'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/01/week-11-rendering-dynamic-text.html' title='Week 11: Rendering Dynamic Text'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-110471323030378449</id><published>2005-01-02T16:38:00.000-08:00</published><updated>2005-01-05T10:27:09.973-08:00</updated><title type='text'>Week 11</title><content type='html'>I'm currently reading &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/1590590457/qid=1104712864/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/102-9313401-7464138?v=glance&amp;s=books&amp;amp;n=507846"&gt;User Interfaces in C#&lt;/a&gt; by Matthew McDonald. While the book is mainly a technical overview of C#'s WinForms, it includes an interesting chapter on UI design. The short version is: 1) Use DataSets to separate UI from data. 2) Make all controls "Windows Standard." In other words, follow existing design patterns to make the UI learning curve as simple as possible. What does this mean? Force the user to go to "File, Exit" instead of letting the user hit "Escape" to exit. Sure the escape key is faster and is intuitive to some, but it's not Window's Standard and it will confuse people.&lt;br /&gt;&lt;br /&gt;I've just finished a simple application that allows the user to play compiled "Micro Games". The saying is correct: "It's much harder to encode data than it is to decode it." It took me about 3-4 weeks of coding to write the compiler and the UI that encodes the data. It only took me about a two days (12 hours of coding) to complete the "decoder" that allows the user to play the game.&lt;br /&gt;&lt;br /&gt;On the design side, I'm trying to decide if I should let the user decide which color should be transparent for sprites or simply force the user to use the bottom left pixel for transparency. Letting the user decide is an extra UI element that complicates things, but it does have it's uses and it makes it clear which color is being used for transparency. However, letting the user decide is only important in a very rare case (when the sprite is square and the bottom left pixel should NOT be transparent.) It's the classic Simplicity vs. flexibility tradeoff.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-110471323030378449?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/110471323030378449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=110471323030378449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110471323030378449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110471323030378449'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/01/week-11.html' title='Week 11'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-110471264822561235</id><published>2005-01-02T16:28:00.000-08:00</published><updated>2005-01-02T16:47:34.816-08:00</updated><title type='text'>A Day in the Life of a Hobby Game Programmer</title><content type='html'>Since October 12th 2004, I've been working on a micro game maker code named "Lediculous.*" A micro game is a game that can be completed in under 5 seconds. The idea is to string lots of micro games together to create one big game. Lediculous is designed to enable designers to create a micro game in under an hour.&lt;br /&gt;&lt;br /&gt;I am going to post about every week or so, describing some thoughts, problems, and progress with Lediculous that will hopefully give insight into hobby game/application making. Enjoy.&lt;br /&gt;&lt;br /&gt;*I have been told that "Lediculous" is a bad name, because it evokes racist imagery of Asians saying, "Ridiculous" in an "Asian" accent. However, the actual name of the software comes from LED as in, Light Emitting Diode, because micro games were first made popular on watches that used LEDs. I may change the title.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-110471264822561235?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/110471264822561235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=110471264822561235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110471264822561235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/110471264822561235'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2005/01/day-in-life-of-hobby-game-programmer.html' title='A Day in the Life of a Hobby Game Programmer'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-109848271482513026</id><published>2004-10-22T15:00:00.000-07:00</published><updated>2004-10-22T15:05:27.756-07:00</updated><title type='text'>Killing Flies... with Pants</title><content type='html'>I finally found a reliable method for killing flies: Take a pair of pants. Hold one end of them. Flick the other end at the fly. Pants are long enough to reach even flies on ceilings and wide enough so your aim doesn't have to be perfect. Don't worry, the pants usually stun the fly rather than smashing it, so you don't have to worry about fly guts staining your pants.&lt;br /&gt;&lt;br /&gt;This technique led to a rather awkward situation with my boss when I tried to kill a fly in my office and the only pants I could find were the pair I was wearing.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-109848271482513026?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/109848271482513026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=109848271482513026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/109848271482513026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/109848271482513026'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2004/10/killing-flies-with-pants.html' title='Killing Flies... with Pants'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-109640469838975887</id><published>2004-09-28T13:32:00.000-07:00</published><updated>2004-10-01T14:00:43.053-07:00</updated><title type='text'>Thinking of Games as Art</title><content type='html'>Narratives in books, films, and other non-interactive media are like the interesting degenerative cases of math functions. The fictional world is a function. The author's job is to choose a unique set of inputs to that function that will lead to interesting output. The tangent of 0 is 0. Boring. The tangent of pi/2 is infinity. Interesting.&lt;br /&gt;&lt;br /&gt;Shakespeare ensures that Romeo happens to meet Juliet without knowing who she, which adds tension to the story. Shakespeare ensures that Juliet does not know that Romeo is only faking his death, which ensures the depressing climax. Had Shakespeare chosen a different set of circumstances, say, that Juliet receives the message and lives happily with Romeo, then the story would have been consistent with the fictional world, but it would also have been very boring.&lt;br /&gt;&lt;br /&gt;When it comes to video games, the author is no longer free to choose the inputs -- the gamer is given this power. Suddenly, the author can no longer simply focus on the interesting "degenerative" cases of the function, because there is no guarantee that the user will cooperate.&lt;br /&gt;&lt;br /&gt;However, this is not to say that non-interactive narrative and interactive narratives are distinctly different. For example, the non-interactive film "Sliding Doors" explores different inputs into a fictional world by showing what happens when the Gwenyth Paltrow catches a train and an alternate reality when she misses the train. At the same time, games are capable of acting like non-interactive narratives. For example, think of any adventure game where an incorrect input leads to instant death. The gamer is basically sheephearded into making the "correct" set of inputs. The gamer is then forced into exploring the non-interactive "degenerative" case.&lt;br /&gt;&lt;br /&gt;Although games can force the gamer to particular interesting cases this seems like a waste of the unique qualities of games. It seems that games should be most powerful when they allow the gamer to explore the functional nature of the in-game world, rather than forcing the gamer to find the particular, interesting set of inputs. Put more simply, games excel at describing systems, while non-interactive arts excel at describing interesting instances of the system.&lt;br /&gt;&lt;br /&gt;If a game describes a system, the way that we communicate with the gamer is different from non-interactive communication. For example, take the story of Oedipus. In the non-interactive version, Oedipus is prophesized to kill his father and his mother. Because of the prophecy, he is banished, unaware of the identity of his birthparents. When he later unknowingly meets his father, he kills him and unknowingly marries his mother. The story tells of the cruelty of fate and hinges upon one decision: The decision to banish Oedipus. But what if, in the interactive version, the player chooses NOT to banish Oedipus. What then? Do they live happily and boringly ever after? The problem here is that a single instance of the system tells the message, but the system itself does not convey the message. The entire fictional world, the entire system must be shifted towards the goal of describing the cruelty of fate. How about if the not banished Oedipus is washed overboard in a boating accident, the parents believe he is dead, but he is rescued by a fisherman who raises him as his own son? Thinking he is a fisherman's son, he later unknowingly meets his real father, the king, and kills him the unknowingly marries his mother. Here the entire system has been shifted to portray the message. Indeed, in this case, shifting the entire system to describe the cruelty of fate is arguably more effective than the single non-interactive instance of the story. The system version essentially says, "No matter what you do, fate will consipre to be cruel." Of course, the system version lacks the irony of the non-interactive version, so it is arguable as to which is more powerful. They are simply different.&lt;br /&gt;&lt;br /&gt;When it comes to communicating ideas and messages, games can be just as effective as non-interactive media. Game designers just need to realize that they are communicating using an entire system, rather than communicating through a single instance of that system.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-109640469838975887?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/109640469838975887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=109640469838975887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/109640469838975887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/109640469838975887'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2004/09/thinking-of-games-as-art.html' title='Thinking of Games as Art'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-109147019729745770</id><published>2004-08-02T11:03:00.000-07:00</published><updated>2004-08-02T11:10:56.630-07:00</updated><title type='text'>Games That Can't Be Won Or Lost II</title><content type='html'>&lt;a href="http://www.gamecritics.com/review/siren/main.php"&gt;GameCritics review of "Siren"&lt;/a&gt;&lt;br /&gt;"Siren" is a concrete example of using "unwinnable" gameplay to heighten dramatic effect. "Siren" is a survival-horror game which casts the player as 12 different characters. According to the review, "because there are so many of them [playable characters], we know that not everyone is going to get out of this alive. This creates more tension than the average game, where the player is pretty well assured that so long as they make all the jumps at the right time their character is going to cross the finish line in one piece."&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-109147019729745770?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/109147019729745770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=109147019729745770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/109147019729745770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/109147019729745770'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2004/08/games-that-cant-be-won-or-lost-ii.html' title='Games That Can&apos;t Be Won Or Lost II'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-108918264438811224</id><published>2004-07-22T23:42:00.000-07:00</published><updated>2004-07-22T10:10:29.026-07:00</updated><title type='text'>Understanding Censorship: Law, Morality, and Science</title><content type='html'>To understand censorship issues around violent or sexually themed games requires an understanding of three different topics: Law, Morality, and Science. Unfortunately, policy makers, journalists, and others often provide an incomplete picture by focusing on only one of these aspects. &lt;br /&gt;&lt;br /&gt;For a more thorough explanation, I strongly recommend Daniel Linz et. al's paper &lt;a href="http://www.apa.org/divisions/div46/articles/linz.pdf"&gt;"Civil Liberties and Research on Effects of Pornography."&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Basically, the authors argue that the role of psychology is to present findings on human behavior, but not necessarily propose actions based on those findings.&amp;nbsp;For example, if a psychology experiment discovers that a particular book causes 1 in 10,000 people to kill themselves, it is not up to the psychologists to determine whether the book should be banned. Do the values of free speech outweigh the potential deaths? That is up to the law and morality to decide. &lt;br /&gt;&lt;br /&gt;The authors further argue that the law does not represent blind justice or some objective attempt to weigh the relative psychological effects of legislation. Rather, law is influenced by history and the guiding ideals of the founders of the laws. For example, in America, free speech is of paramount importance. However, in Canada, free speech is equally as important as "equal protection under the law and equal benefit of the law." Thus each country weighs the values of various liberties differently. &lt;br /&gt;&lt;br /&gt;But the law does not simply judge the relative effects of laws based on psychological evidence. Rather, the law also takes morality into account. Morality is a societal standard that judges actions based not on their ability to harm or hinder others, but on the belief that actions or speech may be inherently harmful to onself and society. &lt;br /&gt;&lt;br /&gt;Fascinatingly, Linz argues that certain types of psychological evidence can support the idea of morality. For example, psychological experiments show that certain&amp;nbsp;types of pornography can lead to certain attitudes towards women and rape, even if these attitudes are NOT acted on. These changes in attitude, but not necessarily behavior, can be seen as a change in morals of the subject and, if one is so inclined, psychological evidence can be used to show changes in morality. &lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-108918264438811224?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/108918264438811224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=108918264438811224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/108918264438811224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/108918264438811224'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2004/07/understanding-censorship-law-morality.html' title='Understanding Censorship: Law, Morality, and Science'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-109051730913110230</id><published>2004-07-22T10:12:00.000-07:00</published><updated>2004-07-22T10:28:29.130-07:00</updated><title type='text'>Games That Can't Be Won Or Lost</title><content type='html'>&lt;a href="http://www.gamestudies.org/0302/lee/"&gt;I Lose, Therefore I Think&lt;/a&gt;&lt;br /&gt;In this interesting article, Lee discusses a&amp;nbsp;some examples of&amp;nbsp;games which the user cannot win. The inevitable loss defies the gamer's expectations and forces them to think about the situation. Why is this situation unwinnable? These games force the gamer to shift focus from mindless victory to thought provoking understanding of the game situation.&lt;br /&gt;&lt;br /&gt;I feel that Lee's article is a little bit short-sighted. His basic premise is that these unwinnable games&amp;nbsp;use the&amp;nbsp;gamers' expectations as a foil to encourage deep thought. However, as more and more games&amp;nbsp;defy gamers'&amp;nbsp;expectations, the gamers' expectations will change and such a technique will no longer work.&lt;br /&gt;&lt;br /&gt;However, even in the absence of the "gamers' expectations" foil, these types of unwinnable games will still be effective. Just think of them as tragedies, in which, no matter what the protagonist does tragic events befall her. The protagonist cannot win, much as the gamer cannot win. The point of the game is no longer to win, but to understand tragedy and desparation.&lt;br /&gt;&lt;br /&gt;But an "unwinnable game" does not necessarily have to mean that the gamer must lose in order to be effective. Rather, in an unwinnable game, the gamer need only not obviously win or lose. This is a proper reflection of life, in which we make many tough decisions, none of which are immediately rewarded with a "You Win!" or "You Lose!" screen.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-109051730913110230?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/109051730913110230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=109051730913110230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/109051730913110230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/109051730913110230'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2004/07/games-that-cant-be-won-or-lost.html' title='Games That Can&apos;t Be Won Or Lost'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7558007.post-108924261105523316</id><published>2004-07-07T16:07:00.000-07:00</published><updated>2004-07-09T10:56:02.086-07:00</updated><title type='text'>Games Don't Have to be Fun, Just Interesting</title><content type='html'>Want to make a game that's truly innovative and revolutionary? Why not make a game that is NOT fun? What if your gameplay made people cry or made people angry or made people think deeply about the war in Iraq? That would be truly something differernt, wouldn't it?&lt;br /&gt;&lt;br /&gt;It is sad that a thought-provoking or emotional game is considered innovative. Sure, there have been thought-provoking or emotional titles in the past, but few have actually used interactivity to trigger these deeper thoughts.&lt;br /&gt;&lt;br /&gt;The essential culprit that keeps games, and gameplay specifically, from being a deeper intellectual experience is the ingrained mantra of "Make games fun!" It is a successful formula, but it's overly simplistic and surpresses innovation. Imagine if the literature community imposed such a draconian mantra upon novels: "All novels must be fun!" Certainly, sales to a particular market of readers would become stronger, but at the expense of losing sales to a wider, more diverse market who enjoy thought provoking or serious ideas. Not only would sales drop, but books would also be taken less seriously.&lt;br /&gt;&lt;br /&gt;Games are in this very situation -- we're focused on a simple type of fun, which works, but does not necessarily appeal to the larger audience. Next post, I'll talk about how games can be interesting without being "fun."&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7558007-108924261105523316?l=societygames.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://societygames.blogspot.com/feeds/108924261105523316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7558007&amp;postID=108924261105523316' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/108924261105523316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7558007/posts/default/108924261105523316'/><link rel='alternate' type='text/html' href='http://societygames.blogspot.com/2004/07/games-dont-have-to-be-fun-just.html' title='Games Don&apos;t Have to be Fun, Just Interesting'/><author><name>DoomGoober</name><uri>http://www.blogger.com/profile/03250231958799574557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='31' src='http://www.societygames.com/images/profile.jpg'/></author><thr:total>1</thr:total></entry></feed>
