<?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>selene tan &#187; Search Results  &#187;  Art++++++</title>
	<atom:link href="http://selenetan.com/search/Art++++++/feed/rss2/" rel="self" type="application/rss+xml" />
	<link>http://selenetan.com</link>
	<description>reaching for the moon and sky</description>
	<lastBuildDate>Wed, 16 Feb 2011 06:22:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Resume</title>
		<link>http://selenetan.com/resume/</link>
		<comments>http://selenetan.com/resume/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 08:17:14 +0000</pubDate>
		<dc:creator>selene</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://selenetan.com/?page_id=230</guid>
		<description><![CDATA[Skills Languages and Libraries Fluent: Flash Actionscript 2/3, Python, Familiar: C++, SDL, Panda3D, OpenGL, PHP, HTML, CSS. Concepts and Principles Adept: Object-oriented programming and design. Familiar: User interface design, artificial intelligence. Education Master of Entertainment Technology Carnegie Mellon University, graduated May 2008 An interdisciplinary program encompassing technology and the arts, with an emphasis on interactive [...]]]></description>
			<content:encoded><![CDATA[<h2>Skills</h2>
<h4>Languages and Libraries</h4>
<ul>
<li>Fluent: Flash Actionscript 2/3, Python,</li>
<li>Familiar: C++, SDL, Panda3D, OpenGL, PHP, HTML, CSS.</li>
</ul>
<h4>Concepts and Principles</h4>
<ul>
<li>Adept: Object-oriented programming and design.</li>
<li>Familiar: User interface design, artificial intelligence.</li>
</ul>
<h2>Education</h2>
<h4>Master of Entertainment Technology</h4>
<p>Carnegie Mellon University, graduated May 2008</p>
<p>An interdisciplinary program encompassing technology  and the arts,  with an emphasis on interactive media.</p>
<h4>Bachelor in Computer Science</h4>
<p>Harvey Mudd College, graduated May 2006</p>
<h2>Client Work and Employment</h2>
<h4>Senior Web Developer, Web Developer</h4>
<p>Illusion Factory, Jan 2008 &#8211; Sept 2009</p>
<p>Developed websites and Flash games for clients from  existing  specifications and graphic designs. Wrote specifications and   documentation to clarify client requirements and aid development. Led   development of several projects.  Coworkers frequently consulted me for   assistance with software design and programming tasks.</p>
<h4>Graduate Associate, Creative Development</h4>
<p>Disney Interactive Studios, June-December 2007</p>
<p>Developed game concepts for new and existing Disney  properties, and  created pitch presentations for them.</p>
<h4>Endo Patrol: Immunology Video Game</h4>
<p>Regenerative Medicine Partnership in Education, January-May 2007</p>
<p>Designed and implemented the user interface for a  video game to  teach 9-14  year-olds immunology. Done for a semester-long  project  course at Carnegie Mellon.</p>
<h4>Object-Based Storage Device Simulator</h4>
<p>Sandia National Laboratories, September 2005 to May 2006</p>
<p>Designed and implemented the load generator for a  supercomputer  storage device simulator in C++. Done for a year-long  project course at  Harvey Mudd College.</p>
<h4>Elixir Vitae</h4>
<p>Professor Elizabeth Sweedyk at Harvey Mudd College, May to July 2005</p>
<p>Programmed an adventure game to teach college freshmen  about protein  synthesis. Used the C++-based Adventure Game Studio  engine.</p>
<h2>Course Work</h2>
<h4>Building Virtual Worlds</h4>
<p>September to December 2006, Carnegie Mellon University, <em>Building   Virtual Worlds</em></p>
<p>Created small virtual worlds in two-week rounds.  Primary duty was  sound and music designer. Also acted as producer and  secondary  scripter. Worlds included <em>Predator vs. Alien</em>, <em>Prisoner  of War</em>,  <em>ArtZooka</em>, <em>Treasure  Quest</em>, and <em>Turtle vs. Crab</em>.</p>
<h4>Astral Schism</h4>
<p>April 2005, Harvey Mudd College, <em>Gender in Game Design</em></p>
<p>In a team, designed and created violent and  non-violent versions of a  side-scrolling game. My duties were composer,  artist, and game  balancer.</p>
<p>Available: <a href="http://selenetan.com/index.php?n=Games.AstralSchism">Astral  Schism</a></p>
<h4>PyMotion</h4>
<p>October 2004, Harvey Mudd College, <em>Harmony of Sound and Light</em></p>
<p>Designed a system using Python SDL to create  John-Whitney-esque  visual music. Wrote a short piece using the system.</p>
<p>Available: <a rel="nofollow" href="http://selenetan.com/portfolio/pymotion.html">http://selenetan.com/portfolio/pymotion.html</a></p>
<h2>Awards</h2>
<h4>Bully Pulpit Games Owlbear Game Design Challenge</h4>
<p>Second Place, August 2006</p>
<h4>National Novel Writing Month</h4>
<p>Winner, November 2004, 2009</p>
]]></content:encoded>
			<wfw:commentRss>http://selenetan.com/resume/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple Sudoku and Modes of Thinking</title>
		<link>http://selenetan.com/2010/02/simple-sudoku-and-modes-of-thinking/</link>
		<comments>http://selenetan.com/2010/02/simple-sudoku-and-modes-of-thinking/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 21:34:00 +0000</pubDate>
		<dc:creator>selene</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[interface design]]></category>
		<category><![CDATA[pattern recognition]]></category>
		<category><![CDATA[puzzle]]></category>
		<category><![CDATA[sudoku]]></category>

		<guid isPermaLink="false">http://selenetan.com/?p=62</guid>
		<description><![CDATA[A while back, I found Simple Sudoku, a freeware Sudoku puzzle maker/solver. It generates puzzles for you to solve, and also has a lot of features to make it easier to solve them. After playing way too much Sudoku in it, I realized why it makes things so much easier. On the surface, Sudoku is [...]]]></description>
			<content:encoded><![CDATA[<p>A while back, I found <a href="http://angusj.com/sudoku/">Simple Sudoku</a>, a freeware <a href="http://en.wikipedia.org/wiki/Sudoku">Sudoku</a> puzzle maker/solver. It generates puzzles for you to solve, and also has a lot of features to make it easier to solve them. After playing way too much Sudoku in it, I realized why it makes things so much easier. On the surface, Sudoku is all about logical deduction&#8211;the 9 in this square means you can eliminate 9&#8242;s elsewhere in the row and column, and so on. However, at higher levels, Sudoku is actually about pattern recognition, and that is what Simple Sudoku reveals.</p>
<p><span id="more-62"></span></p>
<p>One feature of Simple Sudoku is that it automatically shows the candidates for a square. This takes away the tedium of having to manually eliminate the obvious candidates, like 9&#8242;s in a row that already has a 9. Still, the candidates sometimes look like a mess.<br />
Simple Sudoku solves this with a feature called candidate filtering. What it does is highlight all squares that might be a particular number, e.g. all possible 9&#8242;s. This makes it easy to see, for example, when there&#8217;s only one possible 9 left in a column.</p>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://selenetan.com/asherarpg/uploaded_images/simple_sudoku_lone_6-782602.jpg"><img src="http://selenetan.com/asherarpg/uploaded_images/simple_sudoku_lone_6-782598.jpg" border="0" alt="A screenshot of Simple Sudoku that shows candidate filtering on 6's. A now-obvious lone 6 in the rightmost column has been circled." width="263" height="320" /></a></div>
<div style="margin-left: auto; margin-right: auto; text-align: center; width: 60%;">A screenshot of Simple Sudoku that shows candidate filtering on 6&#8242;s. A now-obvious lone 6 in the rightmost column has been circled.</div>
<p>Candidate filtering is good for slightly more advanced deductions, as well. Let&#8217;s say you have one 3&#215;3 cell where all the possible 6&#8242;s are in the same row. You can eliminate 6 as a candidate from the rest of the row. Or, visually, you can do this:</p>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://selenetan.com/asherarpg/uploaded_images/simple_sudoku_eliminate_row-733225.jpg"><img src="http://selenetan.com/asherarpg/uploaded_images/simple_sudoku_eliminate_row-733217.jpg" border="0" alt="The same screenshot of Simple Sudoku with filtering on 6's. In the upper-right 3x3 cell, an arrow is drawn from the row of 6's across the row, showing that you can eliminate the other 6's." width="263" height="320" /></a></div>
<div style="margin-left: auto; margin-right: auto; text-align: center; width: 60%;">The same screenshot of Simple Sudoku with filtering on 6&#8242;s. In the upper-right 3&#215;3 cell, an arrow is drawn from the row of 6&#8242;s across the row, showing that you can eliminate the other 6&#8242;s.</div>
<p>There is an advanced Sudoku technique called <a href="http://www.sadmansoftware.com/sudoku/technique12.htm">coloring</a> or <a href="http://www.sudoku129.com/puzzles/tips_43.php">linked candidates</a>. It involves forming a chain of candidate squares where you know that some of the squares contain the candidate, and the rest do not. However, which set of squares contains the candidate is unknown at the start. The technique involves &#8220;coloring in&#8221; the candidate squares in an alternating pattern, e.g. with blue and pink. If any pink square contains the number, then all pink squares will contain the same number, and all blue squares will not. The reverse is true as well.</p>
<p>The technique can be difficult to understand from a description, but in Simple Sudoku, it&#8217;s really easy to do. Filter candidates so that, say, all 5&#8242;s are shown. Find a place where there are only two 5 candidates in a row, column, or large cell. Color one of the squares pink, and one blue. Then continue the chain as long as you can find links where there are only two 5&#8242;s. If you see two pink neighboring each other, then the pinks don&#8217;t have 5&#8242;s and the blues are the ones with 5&#8242;s.</p>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://selenetan.com/asherarpg/uploaded_images/simple_sudoku_coloring_anim-749095.gif"><img src="http://selenetan.com/asherarpg/uploaded_images/simple_sudoku_coloring_05a-2-716669.jpg" border="0" alt="" width="263" height="320" /></a></div>
<div style="margin-left: auto; margin-right: auto; text-align: center; width: 60%;">A screenshot showing two neighboring pink squares. Click to view an animation of the process.</div>
<p>Coloring turns a painstaking deduction problem into a simple pattern-recognition problem. Going through the chain of logic step-by-step takes a while and can be prone to error, but marking squares as colors is easy. And on the computer, it&#8217;s easily reversible. I&#8217;ll often start coloring squares even when &#8220;simpler&#8221; deductions can be made because in Simple Sudoku, coloring <em>is</em> a simple deduction.</p>
<p>In general, as you get better at a type of logic puzzle, you start recognizing common sequences of deductions. Internally, you formulate a series of rules: &#8220;If <em>this</em>, then do <em>that</em>.&#8221; What Simple Sudoku and other good puzzle interfaces do is 1) Make it easier to notice common deductions, and 2) Make it easier to spot the &#8220;If this&#8221; part of your rules.</p>
]]></content:encoded>
			<wfw:commentRss>http://selenetan.com/2010/02/simple-sudoku-and-modes-of-thinking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixed bugs in SEEK*TOR</title>
		<link>http://selenetan.com/2009/12/fixed-bugs-in-seektor/</link>
		<comments>http://selenetan.com/2009/12/fixed-bugs-in-seektor/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 04:57:00 +0000</pubDate>
		<dc:creator>selene</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[seektor]]></category>

		<guid isPermaLink="false">http://selenetan.com/?p=59</guid>
		<description><![CDATA[I finally tracked down the bug in SEEK*TOR that sometimes makes the red enemy square (and some of the ally turrets) unclickable. While I was at it, I squashed a few more bugs I found along the way.Play SEEK*TOR v 1.2 Changes in this version: Fixes bug where the upper-left turret is unclickable Fixes bug [...]]]></description>
			<content:encoded><![CDATA[<p><span>I <b>finally</b> tracked down the bug in SEEK*TOR that sometimes makes the red  enemy square (and some of the ally turrets) unclickable. While I was at it, I squashed a few more bugs I found along the way.</span><br /><span><br /></span><br /><span><a href="http://selenetan.com/games/seektor/bugfix20091219/">Play SEEK*TOR v 1.2</a></span></p>
<p><span>Changes in this version:</span>
<ol>
<li>Fixes bug where the upper-left turret is unclickable</li>
<li>Fixes bug where sometimes the red enemy square is unclickable</li>
<li>Fixes bug where on very high levels, the level never starts</li>
<li>Turns off debug flag so turret layouts are randomized between 4  choices instead of just one</li>
<li>Background music now loops</li>
</ol>
<p>So what caused the unclickable-things bug, and how did I track it down?</p>
<p>With the help of debug output, I discovered that when a turret or enemy was unclickable, it was because something else on the screen &#8220;stole&#8221; the click event. In the unclickable upper-left turret bug, the click event was going to the flare display in the upper-left. In the unclickable enemy square bug, the click event was going to an object with a name like SpriteXXX. XXX was a number that was larger the later in the game the bug appeared.</p>
<p>The object name was my biggest clue. The number meant that it was a sprite that was created every level. The turrets are created anew every level, but they show up as TurretXXX. So I combed through the code until I found a sprite that was being created every level.</p>
<p>The sprite I found was the little explosion graphic that shows when you click on the enemy turret. In my competition-driven haste, I&#8217;d written code that created a new sprite every time the explosion went off, and didn&#8217;t bother to make it unclickable, or remove it from the stage afterward.&nbsp; To fix the bug, I modified the code so that it created the explosion sprite only once and reused it every level, and I made sure the sprite was unclickable. That fixed the bug.</p>
]]></content:encoded>
			<wfw:commentRss>http://selenetan.com/2009/12/fixed-bugs-in-seektor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Post-Mortem: SEEK*TOR</title>
		<link>http://selenetan.com/2009/12/post-mortem-seektor/</link>
		<comments>http://selenetan.com/2009/12/post-mortem-seektor/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 03:12:00 +0000</pubDate>
		<dc:creator>selene</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[game design]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[ludumdare]]></category>
		<category><![CDATA[postmortem]]></category>
		<category><![CDATA[seektor]]></category>

		<guid isPermaLink="false">http://selenetan.com/?p=58</guid>
		<description><![CDATA[So this was my first Ludum Dare. I did the Global Game Jam back in February, so I had some idea of what to expect, although the GGJ was teams rather than solo. One thing I do regret is not interacting more with the community–IRC, Twitter, etc. I could have used more feedback than I [...]]]></description>
			<content:encoded><![CDATA[<p>So this was my first Ludum Dare. I did the Global Game Jam back in  February, so I had some idea of what to expect, although the GGJ was  teams rather than solo. One thing I do regret is not interacting more  with the community–IRC, Twitter, etc. I could have used more feedback  than I got, instead of relying almost entirely on my husband’s comments.<br />
Friday night I spent brainstorming ideas and thinking over mechanics.  Saturday morning I started coding. By late afternoon / early evening, I  had the major mechanics implemented, but it wasn’t fun. At that point  the turrets were just yellow diamonds (and they were warp portals which  your cyan circle teleported between), and the hint circle always  disappeared before you could fire again.</p>
<p><img src="http://www.ludumdare.com/compo/wp-content/uploads/2009/12/screen_old01-300x225.jpg" alt="Screenshot of older version of SEEK*TOR" width="300" height="225" /><br />
Screenshot of older version of SEEK*TOR</p>
<p>The best thing that happened for the game occurred when I sent my  Saturday prototype to a friend for feedback. He told me two very  important things:</p>
<ol>
<li> He had the most fun figuring out where the hint circles intersected</li>
<li>He wanted to know why you had to aim and fire to reveal the map  instead of just placing light bulbs around the “platforms” (yellow  diamonds)</li>
</ol>
<p>So I made the hints persist but fade over time. That means you can  see the hint circle intersections, but the screen doesn’t become  overly-cluttered with old hint circles. It also means the aiming  mechanic is important, since if you take too long, the previous hint  will have faded away. I also changed the theming of the game so that the  portals became turrets and you selected a turret to fire from, rather  than teleporting between them.<br />
Sunday was mostly a day of polish. The big feature changes were  implementing multiple levels, scoring, and flare limits. I also added  the start, game over, and between-level screens, made the graphics,  (such as they are–hooray for GlowFilter!) composed a background track,  and created the sound effects.<br />
In the end, I was successful in terms of having a pretty-much  finished game at the end. On the other hand, seeing some of the other  entries, I kind of wish I’d done something a little more ambitious…<br />
Things that worked out:</p>
<ol>
<li>Using abstract glow-y vector graphics instead of trying to draw. (I  spent about 20 minutes attempting to draw a single turret before  deciding my time was better spent elsewhere.)</li>
<li>The game selects from 4 (hand-crafted) turret layouts and randomizes  the enemy and player locations. That turned out to be enough  randomization that I didn’t need to make a turret layout generator. In  fact, I only just realized that I left the game in debug mode where it  always chooses the same turret layout.</li>
</ol>
<p>Things that didn’t work out:</p>
<ol>
<li>When I started, I implemented everything in one file just to see if  the core mechanic would work. I made such a mess of my code that I spent  hours late Saturday night moving code around so I could add levels.  Spending hours working on code without actually adding new  functionality–even regressing at times–was very hard on my morale.</li>
<li>I spent too long trying to make my git history tidy. I’d keep  forgetting to add a file to the commit or not commit for a while and  wind up with a gigantic commit that involved 3 features and all the  source files. Then I’d try to figure out how to break up or revise the  commits. (And how to use vim, since that’s the default git editor…)  Given that I never had to revert to a previous version, it was kind of  silly of me.</li>
</ol>
<p>Tools and Libraries Used:</p>
<ol>
<li>FlashDevelop</li>
<li>TweenLite</li>
<li>git</li>
<li>ACID Music Studio</li>
<li>Free VSTi soft synths: <a href="http://www.greenoak.com/crystal/">Crystal</a>,  <a href="http://www.bostreammail.net/ers/lazysnake.html">LazySnake</a>,  and <a href="http://www.bostreammail.net/ers/ersdrums.html">ErsDrums</a></li>
<li>Audacity</li>
<li>sfxr</li>
</ol>
<p>(cross-posted from <a href="http://www.ludumdare.com/compo/2009/12/14/post-mortem-seektor/">Ludum Dare</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://selenetan.com/2009/12/post-mortem-seektor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eFusjon RAD Game</title>
		<link>http://selenetan.com/2009/07/efusjon-rad-game/</link>
		<comments>http://selenetan.com/2009/07/efusjon-rad-game/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 01:21:03 +0000</pubDate>
		<dc:creator>selene</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game design]]></category>
		<category><![CDATA[game development]]></category>

		<guid isPermaLink="false">http://selenetan.com/?p=128</guid>
		<description><![CDATA[eFusjon RAD is a game promoting the eFusjon energy drink, launched in July 2009. In RAD you control the Efusjonaut, and must absorb eFusjon to neutralize free radicals while avoiding toxins. The Efusjonaut is controlled with the mouse, and can switch between an offensive toxin-eliminating mode and a passive free radical-neutralizing mode. I came up [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="nofollow" href="http://www.efusjongaming.com/games/">eFusjon  RAD</a> is a game promoting the eFusjon energy  drink, launched in July  2009.</p>
<p>In RAD you control the Efusjonaut, and must absorb  eFusjon to  neutralize free radicals while avoiding toxins. The  Efusjonaut is  controlled with the mouse, and can switch between an  offensive  toxin-eliminating mode and a passive free radical-neutralizing  mode.</p>
<p>I came up with the gameplay concept and led  the  project. A graphic designer came up with the look and feel for the  menus  and an animator/artist created the main game art and sprites. I   incorporated everything into Flash, set up the overarching code   structure, and programmed the gameplay and scoring. Other developers   worked on the leaderboard score submission, some of the menus, and the   instructions. After some testing showed that people were confused about   how to play, I came up with and implemented the idea of adding pop-up   tutorial messages in-game explaining things.</p>
<p>Links:</p>
<ul>
<li> <a rel="nofollow" href="http://www.efusjongaming.com/">eFusjon  Gaming</a> is the official game website,  including details about the  promotion</li>
<li><a rel="nofollow" href="http://www.efusjongaming.com/games/">eFusjon  RAD</a> is the page where you can play the game.  Registration is  required because the game is part of a contest.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://selenetan.com/2009/07/efusjon-rad-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Information Access in Avalon Code</title>
		<link>http://selenetan.com/2009/05/information-access-in-avalon-code/</link>
		<comments>http://selenetan.com/2009/05/information-access-in-avalon-code/#comments</comments>
		<pubDate>Wed, 27 May 2009 06:27:00 +0000</pubDate>
		<dc:creator>selene</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[information design]]></category>
		<category><![CDATA[interface design]]></category>

		<guid isPermaLink="false">http://selenetan.com/?p=49</guid>
		<description><![CDATA[Recently I&#8217;ve been playing a DS RPG called Avalon Code. It&#8217;s an action RPG where the world is about to end, and you&#8217;re the Chosen One who&#8217;s been granted the Book of Prophecy to populate the new world. It&#8217;s your duty to use the Book to gather information about all the things that will be [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been playing a DS RPG called Avalon Code. It&#8217;s an action RPG where the world is about to end, and you&#8217;re the Chosen One who&#8217;s been granted the Book of Prophecy to populate the new world. It&#8217;s your duty to use the Book to gather information about all the things that will be in the new world by &#8220;code scanning&#8221; them, which you do by hitting them with the Book of Prophecy. (Apparently the new world is going to have a lot of monsters.)</p>
<p>When you code scan something, it adds a page to the book that describes the object and shows its &#8220;codes&#8221;. Codes are blocks of different shapes and sizes that represent various qualities, such as Fire, Snake, or Justice. The codes are arranged on a grid (the &#8220;mental map&#8221;), and you can &#8220;rewrite&#8221; the codes by swapping them around.</p>
<div style="text-align: center;"><a href="http://selenetan.com/asherarpg/uploaded_images/avaloncode_codesgrid-743936.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="cursor: pointer; display: block; height: 153px; margin: 0px auto 10px; text-align: center; width: 220px;" src="http://selenetan.com/asherarpg/uploaded_images/avaloncode_codesgrid-743930.jpg" border="0" alt="The Sword page and the 4 hot-swap code slots" /></a><em><span style="font-size: x-small;">The Sword page and the 4 hot-swap code slots.</span></em></p>
</div>
<p>You&#8217;ll find item bases scattered through the game, and you modify them by swapping codes. The above picture shows the Sword base with one Fire code, making it a &#8220;Fire Sword&#8221;. There are also recipes for specific items, e.g. the set of codes you&#8217;ll need to make the Sword into a &#8220;Champion Gladius&#8221;.</p>
<p>Making the recipes is a painstaking process. You have 4 slots of &#8220;holding&#8221; space to transfer codes between pages &#8212; all other codes have to be on a page. So if you decide you want that Champion Gladius, you have to:<span id="more-49"></span></p>
<ol>
<li>Look through all of your pages to see if you have enough codes to make it</li>
<li>Empty the Sword of codes not in the recipe and dump them on other pages</li>
<li>Transfer the desired codes onto the Sword, 4 at a time</li>
</ol>
<p>Like I said, painful. I wound up entering a list of all my codes and their pages into a spreadsheet with columns for code type, size, and which page it&#8217;s on. Basically, a database. For step 1, I sort the columns by code type and size, and look through them to see if I have sufficient codes. Then comes the transfer process.</p>
<p>There are two issues with transferring: keeping the database synchronized, and locating the pages referenced in the database. The first is just tedious. The &#8220;proper&#8221; way would be to update the database for each transfer between page and hot-swap bar, but I usually skip recording the transfer to the swap bar and just change the code&#8217;s location from source page to destination page.</p>
<p>When attempting to locate pages, I often find myself wishing the book were a densely-linked website.</p>
<div style="text-align: center;"><a href="http://selenetan.com/asherarpg/uploaded_images/avaloncode_toc-797978.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="cursor: pointer; display: block; height: 155px; margin: 0px auto 10px; text-align: center; width: 220px;" src="http://selenetan.com/asherarpg/uploaded_images/avaloncode_toc-797970.jpg" border="0" alt="The Table of Contents" /></a><em><span style="font-size: x-small;">The Table of Contents</span></em></div>
<p>There are a few ways to navigate the book:</p>
<ol>
<li>Click on either of the bottom corners (where the page numbers are) to turn the page in that direction. Hold down the corner to make the pages keep turning until you let go.</li>
<li>Click on one of the labeled buttons at the top of the screen: &#8220;Index&#8221; goes to the table of contents, &#8220;Player&#8221; goes to the player info page, &#8220;Data&#8221; goes to the save/load screen, and &#8220;Map&#8221; goes to the map of the current area.</li>
<li>The Table of Contents page has a list of links to broad sections, like &#8220;Monsters&#8221; and &#8220;Weapons&#8221;. The first page of each section is a table of contents with links to sub-sections, e.g. &#8220;Sword&#8221; and &#8220;Bomb&#8221; for Weapons.</li>
<li>The four colored buttons at the top are &#8220;Spirit Bookmarks&#8221; which you can place on any page that doesn&#8217;t already have a bookmark. Clicking the button will take you directly to that page. By default the Spirit Bookmarks are placed on the pages of their respective spirits.</li>
</ol>
<p>Some issues:</p>
<ol>
<li>When holding down a corner to keep flipping pages, the pages don&#8217;t load until you let go &#8212; all you see is a blank page. I can understand not loading all the information, but at least loading the page titles would have been helpful.</li>
<li>There&#8217;s no button to go to the section table of contents from a page.</li>
<li>Pages don&#8217;t indicate which subsection they&#8217;re in. This is largely an issue with the monsters, since it&#8217;s not immediately obvious whether something like the &#8220;Wood Bone&#8221; monster is a &#8220;Construct&#8221;, &#8220;Undead&#8221;, or &#8220;Humanoid&#8221;. (The number of monsters doesn&#8217;t help.)</li>
</ol>
<p>So what would my ideal user interface for this system look like? There would be more views of the data, for one:</p>
<ol>
<li>Text-only lists of pages (items, codes, monsters, etc.), with options to sort alphabetically or by page type. Entries would link to the page.</li>
<li>Lists of available codes, sortable by code type, size, or assigned page. A bonus would be small images of the code blocks, since they have different shapes.</li>
<li>Breadcrumbs or tree-style navigation, so you can always see what category a page is in and quickly navigate up and down the hierarchy.</li>
</ol>
<p>Here&#8217;s a mockup of one way to make code browsing more pleasant:</p>
<div style="text-align: center;"><a href="http://selenetan.com/asherarpg/uploaded_images/codebrowsemockup01-774942.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="cursor: pointer; display: block; height: 225px; margin: 0px auto 10px; text-align: center; width: 320px;" src="http://selenetan.com/asherarpg/uploaded_images/codebrowsemockup01-774940.jpg" border="0" alt="An item page with an added pop-up code browser" /></a><span style="font-style: italic;">An item page with an added pop-up code browser<br />
</span></div>
<p>This is an item page. I&#8217;ve added a window with a scrollable list of available size 3 Silver codes. Breadcrumbs let you go up to search for a different size of Silver codes, or a different code type altogether. Each entry in the list states what page it&#8217;s on, and shows the shape of the code. The idea is that you can drag a code straight from the list onto the page you&#8217;re viewing. There&#8217;s still a swap area so you can rotate the code before placing it.</p>
<p>As for browsing, I think the game would benefit from (at least) one level of &#8220;go back&#8221;, so you can always return to the page you were just looking at. With that functionality available, clicking on a page name in the code browser list should take you to the page. This is useful if there&#8217;s more than one code of a particular type on a page and you&#8217;re wondering which one to take. Then you can just click the back button and go back to the page for the item you&#8217;re trying to assemble.</p>
<p>And here&#8217;s a mockup of page browser:</p>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://selenetan.com/asherarpg/uploaded_images/pagebrowsemockup01-751880.jpg"><img src="http://selenetan.com/asherarpg/uploaded_images/pagebrowsemockup01-751877.jpg" border="0" alt="" width="320" height="240" /></a></div>
<div class="separator" style="clear: both; text-align: center;"><em>An item page with added page browser</em></div>
<p>I&#8217;ve added a page browser window that pops up like the code browser. It&#8217;s a simple, scrollable tree-style navigation list. There are headings for the major categories; double-click one of them, or click on the &#8220;expand&#8221; icon next to it, and the list will expand to show the subcategories. Double-click a subcategory or click its &#8220;expand&#8221; icon, and it&#8217;ll show a list of pages. Click on a page name to go to that page.</p>
<p>This strays pretty far from the book interface model that Avalon Code is trying to use, but you do a lot of things with the Book of Prophecy that you would never do with a real book. If I did want to stick closer to the book model for browsing, just two improvements would go a long way:</p>
<ol>
<li><span style="font-weight: bold;">Alphabetize the pages within categories.</span> Dictionaries and encyclopedias are easy to browse because they use a well-known, easy-to-remember ordering. You know if you open a dictionary to the middle you&#8217;ll be in the M&#8217;s. I do wonder if the pages have a similarly meaningful order in the original Japanese, that wasn&#8217;t carried over during the localization.</li>
<li><span style="font-weight: bold;">When flipping pages by holding down one of the corners, show page titles.</span> The flipping-pages action is similar to &#8220;leafing&#8221; through a book, but with no information during the page-flipping, it&#8217;s like leafing through a book with your eyes closed. Sure, you might get to the right page if you&#8217;re lucky, but it&#8217;s more likely you&#8217;ll have to stop and peek several times.</li>
</ol>
<p>In the end, Avalon Code has some pretty neat game elements, but I can&#8217;t help but wish for a better interface.</p>
]]></content:encoded>
			<wfw:commentRss>http://selenetan.com/2009/05/information-access-in-avalon-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Replayability in Video Games</title>
		<link>http://selenetan.com/2009/04/replayability-in-video-games/</link>
		<comments>http://selenetan.com/2009/04/replayability-in-video-games/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 05:02:00 +0000</pubDate>
		<dc:creator>selene</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://selenetan.com/?p=45</guid>
		<description><![CDATA[&#8220;Replayability&#8221; is one of the features that video game boxes trumpet, often with the word &#8220;endless&#8221; tacked on the front. It&#8217;s considered to be fundamentally opposed to &#8220;story&#8221; &#8212; games that brag about their stories, like those in the Final Fantasy series, aren&#8217;t replayable. Games like Tetris, are. The most common way I&#8217;ve seen to [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Replayability&#8221; is one of the features that video game boxes trumpet, often with the word &#8220;endless&#8221; tacked on the front. It&#8217;s considered to be fundamentally opposed to &#8220;story&#8221; &#8212; games that brag about their stories, like those in the Final Fantasy series, aren&#8217;t replayable. Games like Tetris, are.</p>
<p>The most common way I&#8217;ve seen to make a game with story &#8220;replayable&#8221; is to limit the amount of content you can see in one play-through. Multiple endings, multiple character choices, branches in the story &#8212; these are all ways to restrict available content. Of course, games usually limit the impact of such choices, making the replay basically the same as the original. And some gamers don&#8217;t even bother with a second run, wasting the effort that went into producing the replay content.</p>
<p>I think the issue is that games with stories tend to have a lot of fluff &#8212; not exactly filler, but activities that are only interesting because of the crumbs of story interspersed. Sometimes even the crumbs are boring the second time through, so new content has to be added to entice people into replaying the game.</p>
<p>On the other hand, people re-watch movies and tv shows, and re-read books all the time. (I&#8217;ve certainly read my favorite books more than once.) Sometimes there&#8217;s new content, e.g. an extended edition of a movie, but usually not. There are two reasons this is more common:
<ol>
<li>It takes less time to re-watch a movie than it does to re-play a game.</li>
<li>You can skip to the good parts.</li>
</ol>
<p>Number one I&#8217;ve seen addressed a few times in RPGs. The most common method I&#8217;ve seen is the &#8220;New Game+&#8221; mode, where you start the game over but keep your items, experience/levels, and/or abilities from your initial run-through. Since most of your time in an RPG is spent in combat, this speeds up the replay pretty well. In Chrono Cross there was even the ability to speed through cutscene text. (Although at that point I started to wonder why I bothered.) In adventure games it would be nice to have a &#8220;solve this puzzle&#8221; button available on a second play-through; I haven&#8217;t seen that implemented. I suppose walkthroughs fill that role.</p>
<p>Inability to skip to the good parts is what makes the time factor such a big deal &#8212; few people are willing to play through 4 hours of game just to get to a single 2-minute cutscene. To some extent you can get around this by making multiple saves; I know I had a lot of saves in Final Fantasy VII just before cool cutscenes or bosses. One issue with this method is that you don&#8217;t necessarily know before going in whether a section of the game will be worth seeing again later. Another issue is that it can take up a lot of space, although this is less of an issue now that modern consoles have more than 1 MB/15 slots of space for savegames.</p>
<p>Some games have skipping to the good parts built in. In the recent Half-Life games, once you&#8217;ve completed a section, you can choose to start playing from that point. You&#8217;re given a standard set of equipment/ammo, and the checkpoints are frequent enough that you can pick almost any part of the game you want to play again. Games in general seem to be getting better at this kind of replayability &#8212; Mirror&#8217;s Edge and Saint&#8217;s Row 2 also make it easy to re-play specific missions. Unfortunately, the games that really need it (i.e., RPGs) don&#8217;t seem to bother.</p>
<p>Replayability of the more-content kind is nice to have, but replayability of just-the-good-parts goes a long way towards encouraging me to revisit a game.</p>
]]></content:encoded>
			<wfw:commentRss>http://selenetan.com/2009/04/replayability-in-video-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let&#8217;s Shooting Love</title>
		<link>http://selenetan.com/2009/02/lets-shooting-love/</link>
		<comments>http://selenetan.com/2009/02/lets-shooting-love/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 01:23:22 +0000</pubDate>
		<dc:creator>selene</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[competition]]></category>
		<category><![CDATA[enemy behavior]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game design]]></category>
		<category><![CDATA[global game jam]]></category>

		<guid isPermaLink="false">http://selenetan.com/?p=136</guid>
		<description><![CDATA[I participated in the first Global Game Jam in February 2009, a challenge where the goal was to produce a playable game in 48 hours. The theme was &#8220;As long as we&#8217;re together, we&#8217;ll never run out of problems. Let&#8217;s Shooting Love is a Geometry-Wars-style arena shooter about a lonely robot looking for a girlfriend. [...]]]></description>
			<content:encoded><![CDATA[<p>I participated in the first <a rel="nofollow" href="http://globalgamejam.org/">Global Game Jam</a> in  February 2009, a challenge where the goal was to produce a playable game  in 48 hours. The theme was &#8220;As long as we&#8217;re together, we&#8217;ll never run  out of problems.</p>
<p>Let&#8217;s Shooting Love is a Geometry-Wars-style  arena shooter about a lonely robot looking for a girlfriend. It was  created in <a rel="nofollow" href="http://www.clickteam.com/website/usa/multimediafusion2dev.html">Multimedia Fusion</a>, which we decided to use since one  of the team members (<a rel="nofollow" href="http://ultimatewalrus.com/">Sebastian Jansiz</a>) was an expert in it and promised  even faster prototyping than Flash.</p>
<p>I was responsible for designing  and implementing the enemy behaviors. I brainstormed a lot of  potentially interesting behaviors and played other arena shooters for  inspiration. Then I had to figure out how to implement them in  Multimedia Fusion, which I had never used before the Game Jam.</p>
<p>I  created both enemies and enemy generators, setting them up so that  Sebastian could easily adjust parameters such as speed, hit points, and  generation frequency. I made a wide variety of enemies, including ones  that travel in V formation, ones that circle-strafe the player while  firing shotgun bursts, and ones that break apart into smaller enemies  when defeated.</p>
<p>Links:</p>
<ul>
<li><a rel="nofollow" href="http://www.youtube.com/watch?v=tcmtrtyxG9M">Gameplay Video</a></li>
<li><a rel="nofollow" href="http://ultimatewalrus.com/GAMES/lsl/">Official  Website</a></li>
<li><a rel="nofollow" href="http://ultimatewalrus.com/GAMES/lsl/?dl=13">Download</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://selenetan.com/2009/02/lets-shooting-love/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real Video Gaming Prototype</title>
		<link>http://selenetan.com/2008/10/real-video-gaming-prototype/</link>
		<comments>http://selenetan.com/2008/10/real-video-gaming-prototype/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 02:20:04 +0000</pubDate>
		<dc:creator>selene</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[gambling]]></category>

		<guid isPermaLink="false">http://selenetan.com/?p=174</guid>
		<description><![CDATA[The goal of the Real Video Gaming project was to create an interactive Flash prototype of a casino interface for a handheld touchscreen device (the Samsung Q1 UMPC). The intent was to allow casino patrons to continue gambling away from the physical tables. The prototype presents three games: baccarat, roulette, and a slot machine. In [...]]]></description>
			<content:encoded><![CDATA[<div id="wikitext">
<p>The goal of the <em>Real Video Gaming</em> project was to create an  interactive Flash prototype of a casino interface for a handheld  touchscreen device (the Samsung Q1 UMPC). The intent was to allow casino  patrons to continue gambling away from the physical tables.</p>
<p>The  prototype presents three games: baccarat, roulette, and a slot machine.  In baccarat and roulette, bets can be placed by dragging and dropping  chips onto the appropriate locations. After the bets are placed or the  slot machine is started, a video plays showing a casino dealer playing  out the game. In roulette, the user can use the &#8220;Languages&#8221; menu to  change the dealer to one speaking the appropriate language.</p>
<p>I was  lead developer for the project. I researched and wrote specification  documents, and created the class framework for the program. I also  programmed the bulk of the project, excluding the slot machine and  drinks menu.</p>
<p>The prototype can be viewed <a rel="nofollow" href="http://216.73.118.21/Web/rvg/">here</a>.</p>
</div>
<p><!-- style nicely for all viewers --></p>
]]></content:encoded>
			<wfw:commentRss>http://selenetan.com/2008/10/real-video-gaming-prototype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Admirer&#8217;s Secret</title>
		<link>http://selenetan.com/2006/12/the-admirers-secret/</link>
		<comments>http://selenetan.com/2006/12/the-admirers-secret/#comments</comments>
		<pubDate>Thu, 14 Dec 2006 04:36:14 +0000</pubDate>
		<dc:creator>selene</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[interactive movie]]></category>
		<category><![CDATA[mystery]]></category>

		<guid isPermaLink="false">http://selenetan.com/?p=178</guid>
		<description><![CDATA[The final assignment for my Visual Story class was to create a short, interactive love story. Our group decided to do a mystery with the question &#8220;Who sent the mysterious bouquet?&#8221; My teammates shot and edited video, took photos, and recorded audio, then handed them to me to integrate in Flash. Some of them also [...]]]></description>
			<content:encoded><![CDATA[<p>The final assignment for my Visual Story class was to create a short,  interactive love story. Our group decided to do a mystery with the  question &#8220;Who sent the mysterious bouquet?&#8221; My teammates shot and edited  video, took photos, and recorded audio, then handed them to me to  integrate in Flash. Some of them also helped put together slideshows and  interface elements</p>
<p><a rel="nofollow" href="../games/admirers_secret/admirers_secret.html">Play The Admirer&#8217;s Secret</a> <em>(Be patient&#8211;the SWF  file is 7.5 MB, and there&#8217;s no pre-loader since it was meant to be played locally)</em></p>
<p>The structure of  the piece is basically a choose-your-own-adventure. Players choose which  of the five suspects to visit, and after visiting them all, the culprit  is revealed. There are five endings.</p>
<h3><span id="more-178"></span>Implementation  Notes</h3>
<h4>Streaming</h4>
<p>This was my first experience with streaming  media in Flash. There&#8217;s a lot of audio and video in the project, and I  didn&#8217;t want to have to wait to load all of it at the start, so streaming  was the obvious solution. It does make it a little more difficult to  move the files to different directories, since the directory the SWF  file is called from has to be the same as the one all of the media files  are in.</p>
<h4>Templates</h4>
<p>Since the structure for each of the suspect  visits is the same, I decided to create a single template with slots  for suspect portrait, description, audio, and transcript. I used a  naming convention and the eval() function to pull the correct files and  movie clips in when requested.</p>
<h4>Ending Mechanic</h4>
<p>The ending a  player receives is determined by which suspect the player visits first.  Since the ending is revealed only after all suspects have been visited  (with one exception), most people have forgotten who they visited first  and the identity of the culprit comes as a surprise. On the other hand,  it means that anyone trying to systematically get different endings by  varying the order of visits will take a long time to see them all.</p>
]]></content:encoded>
			<wfw:commentRss>http://selenetan.com/2006/12/the-admirers-secret/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

