<?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"
	>

<channel>
	<title>DESMA 157B</title>
	<atom:link href="http://classes.dma.ucla.edu/Spring08/157B/feed" rel="self" type="application/rss+xml" />
	<link>http://classes.dma.ucla.edu/Spring08/157B</link>
	<description></description>
	<pubDate>Fri, 20 Jun 2008 20:39:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Somnia Race Postmortem</title>
		<link>http://classes.dma.ucla.edu/Spring08/157B/somnia-race-postmortem</link>
		<comments>http://classes.dma.ucla.edu/Spring08/157B/somnia-race-postmortem#comments</comments>
		<pubDate>Fri, 20 Jun 2008 20:08:16 +0000</pubDate>
		<dc:creator>James Turner</dc:creator>
		
		<category><![CDATA[Problems and Progress]]></category>

		<guid isPermaLink="false">http://classes.dma.ucla.edu/Spring08/157B/?p=313</guid>
		<description><![CDATA[Long over due, I&#8217;m sorry, still better late than never.
My favorite games have always been platformer games. There is something inherently exicting about these kinds of games that require no introduction to trigger. It might be not knowing what is beyond your limited horizontal vision, daunting leaps from platform to platform, or the fast pace [...]]]></description>
			<content:encoded><![CDATA[<p>Long over due, I&#8217;m sorry, still better late than never.<br />
My favorite games have always been platformer games. There is something inherently exicting about these kinds of games that require no introduction to trigger. It might be not knowing what is beyond your limited horizontal vision, daunting leaps from platform to platform, or the fast pace that many of these games had</p>
<p>For my final game project I really wanted to make one of these kinds of games. With the limit on the project being that it must be multiplayer, I decided that a racing game would be appropriate. While playing with the idea of a racing platform game, I had a difficult time thinking of what to do to balance the game by giving challenges to the players.</p>
<p>At first I thought of making some sort of system of rewards or powers that the player can accumulate and transfer to the next race. This however, made the games powers too easy to abuse by simply stockpiling powers. I then settled on all the powers being limited use, but that can make the race more difficult for other players. I did this by giving boxes for the player to pickup. These boxes give the player a power that that player can use against other players. These powers target specific players, such as the player in the position above you, below you, the player in 1st place, or all other players. These powers, when used, randomly select an effect, with chances weighed depending on players&#8217; positions. For example the player in last place gets better powers and the player in first gets worse.</p>
<p>These powers are crucial to a challenging race. They can obscure players&#8217; vision, movement, and distort players&#8217; controls. Without this added element, races would be dry and boring. These however are what add the competitive element necessary for a meaningful game.</p>
<p>Coding the game took a lot of time and research. There has been a lot written about making games which use a tile based map system such as mine, but unfortunately, most of them (the good ones anyway) are all written for flash. I had to spend a lot of time getting my system working correctly, and I ended up having to remove some elements of the game that I would have liked to keep in (such as sloped tiles). In the end, the system came out rather robust and well suited to my game, however it is not without some bugs (graphical) and could use optimization.</p>
<p>The art for the game I think might have taken just as long, if not longer. I hadn&#8217;t done any sort of pixel art until the last project for this class, and it&#8217;s really strange to get used to. It becomes about implying details and getting every pixel in just the right place. I really enjoyed doing the art for this game, especially the caketown logo and the level cakes, but it really took a long time. Overall I&#8217;m happy with it though. The music also took awhile, but I&#8217;m happy with how that came out too. I think I might have spent a whole day on the caketown song, but I like how it turned out.</p>
<p>The biggest challenges in this project I think were creating the tiling engine and the art assets. Both were incredibly time consuming, but I feel like I learned a lot while doing them, especially the engine. The art was really enjoyable, but ate up a lot of time.</p>
<p>I think what turned out best was the tiling engine and the art. I spent the most time on them but they are what I am most happy with. Also the option in the options menu, go try it, it gives everything a dreamy quality.</p>
<p>What did not turn out the way I wanted it to, or I didn&#8217;t have enough time for, was the powerups system, sloped tiles, character options and more levels. I felt like I had to cut a lot from my game that I wanted to put in, and given more time I would have been able to put in a lot more (and I will with the summer).</p>
<p>In the end, I&#8217;m happy with how my game turned out. I feel like right now it&#8217;s a skeleton of what it could be, and will be. It only has one level at the moment, but everything is there. At this point it&#8217;s a matter of using the tools i&#8217;ve made for this game and just creating more content. I need to look into optimizing a little bit more (the game got a little slower after adding in all the music and post processing).</p>
<p>Oh and I think for the next project I do I want to work with someone else. I had way too much work for this class this quarter.</p>
<p><a href="http://users.design.ucla.edu/~jamesturner/SomniaRace.zip">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://classes.dma.ucla.edu/Spring08/157B/somnia-race-postmortem/feed</wfw:commentRss>
		</item>
		<item>
		<title>Tankacolypse: (AKA X-SPLODE-ZONE) Post Mortem</title>
		<link>http://classes.dma.ucla.edu/Spring08/157B/tankacolypse-aka-x-splode-zone-post-mortem</link>
		<comments>http://classes.dma.ucla.edu/Spring08/157B/tankacolypse-aka-x-splode-zone-post-mortem#comments</comments>
		<pubDate>Sat, 14 Jun 2008 02:32:59 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
		
		<category><![CDATA[Problems and Progress]]></category>

		<guid isPermaLink="false">http://classes.dma.ucla.edu/Spring08/157B/?p=312</guid>
		<description><![CDATA[I&#8217;d Like to start off by saying, that I seriously considered calling my game Tuna Sandwich and still think it would be a hilarious idea. However, X-SPLODE-ZONE: Clash of the Shiny Plastic Death Tanks is a fast paced, top down, spastic shooting, tank game and has nothing to do with tuna or sandwiches so the other name did [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d Like to start off by saying, that I seriously considered calling my game <strong><em>Tuna Sandwich</em></strong> and still think it would be a hilarious idea. However, <strong>X-SPLODE-ZONE: Clash of the Shiny Plastic Death Tanks</strong> is a fast paced, top down, spastic shooting, tank game and has nothing to do with tuna or sandwiches so the other name did not stick.  Starting out I had a grand scheme of ideas to make the most awesome tank fighter game in the world.  Unfortunately I didn&#8217;t have a huge development team like activision or ubisoft to back me up with my wild ideas.  So I had to settle for making the Seventh most Awesome Tank Game Ever made.</p>
<p>The first prototypes were built in 2D to keep the gameplay and graphics simple and easy to iterate on quickly.  Using power of the Vector2D class in xna I got a nice natural tank motion out of LERPing the tank direction with the joystick input.  I soon had a working prototype with multiple tanks and projectile capabilities. Because I had a larger vision for the future, I kept everything modular so i could easily swap values in and out. But mostly, I kept stuff variable so I could make the switch to 3D.</p>
<p>3D Was my biggest challenge and most time consuming aspect of my project and where I ran into the most problems.  It took several tries to get the models oriented correctly. Because My game was using 2D information for collisions and movement I was forced to orient along the XY plane. Because of this I ended up using negative Z up for my models when building them in Maya.  Which was kind of confusing when moving around the camera in Maya.  It took me a week or so to figure out how to add textures to my models in game as well, which was not helped by the fact that I have never really learned UV unwrapping.  But I was able to teach myself what I needed to know and move on. </p>
<p>My next Big problem came when I wanted to add particle effects, I found that they were batch controlled and texture values for any sprite could over ride info for the others.  Thus I limited myself to two textures for my effects and created variance by adjusting tint and opacity.  In the end I was able to create some nice soft particle effects that really added to the explosions and feel of the game. </p>
<p>I&#8217;d like to say I did everything in this game myself, but I Have to give props to my good buddy, Rick Gilliland.  He came to me one day after dinner and said &#8220;I wanna add Depth map Shadows to your game.&#8221; How could I refuse such a generous offer, so we struggled to figure out the math and four hours later we had some sexy depth map shadows in game. Thanks Rick you&#8217;re the best.</p>
<p>After that most of my time was consumed with modeling the area for my tank battle.  It took many days, but came out looking pretty fantastic. I slapped in some royalty free music from <a href="http://freeplaymusic.com/">http://freeplaymusic.com/</a> which helped players get pumped for the action and made the game experience more entertaining.  I was lucky to find some hilariously awful elevator music which I placed in my pause menu to make interruptions in the game very comical.  A few menus later I had a polished game which is quite fun to play.</p>
<p>An all round success, I was very pleased with my work.  I&#8217;ve had lots of fun dominating my teacher and friends in my own game, and they didn&#8217;t mind losing to much because they enjoyed the experience so much. </p>
<p>Why Was my game only the Seventh best tank game ever? Well because of the limited time I was only able to build one level to play on, I had two other awesomely epic levels planned out that I didn&#8217;t get around to making.  I also didn&#8217;t have time to give the players the ability to choose from multiple vehicles with different strengths and weaknesses, but that would have required quite a bit of balancing and was simply not practical for a class project like this.  There was nothing really wrong with my game, Just some places where I could have gone farther to make it even more awesome. </p>
<p>It was nice to work by myself and have full creative control on my project, but It would have been nice to work in a group and be able to collaborate and make something even larger, while being able to focus more closely on one aspect of the games design.  But I know I&#8217;ll be forced to do that once i enter the industry so I guess I&#8217;ll just be thankful for the opportunity to wear every hat on the design team.</p>
]]></content:encoded>
			<wfw:commentRss>http://classes.dma.ucla.edu/Spring08/157B/tankacolypse-aka-x-splode-zone-post-mortem/feed</wfw:commentRss>
		</item>
		<item>
		<title>AI Fighter Postmortem</title>
		<link>http://classes.dma.ucla.edu/Spring08/157B/ai-fighter-postmortem</link>
		<comments>http://classes.dma.ucla.edu/Spring08/157B/ai-fighter-postmortem#comments</comments>
		<pubDate>Sat, 14 Jun 2008 00:38:58 +0000</pubDate>
		<dc:creator>Erik Carlson</dc:creator>
		
		<category><![CDATA[Problems and Progress]]></category>

		<guid isPermaLink="false">http://classes.dma.ucla.edu/Spring08/157B/?p=311</guid>
		<description><![CDATA[AI Fighter was a good chance to work on a game in collaboration with an experienced programmer. The concept for this game was something I probably would have not been able to accomplish by myself in under ten weeks. What was most important though was that I was helping with a game that was trying [...]]]></description>
			<content:encoded><![CDATA[<p>AI Fighter was a good chance to work on a game in collaboration with an experienced programmer. The concept for this game was something I probably would have not been able to accomplish by myself in under ten weeks. What was most important though was that I was helping with a game that was trying to bring something new to gameplay rather than stick with an established genre of games.</p>
<p>What went well:</p>
<p>For the most part, delegating work had a good turn out. We could each stick with one aspect of game development rather than deciding back and forth about whether or not it was a good time to work on gameplay or improve the visuals or sound if we had worked on our own games independently. The AI ended up working as it should and didn&#8217;t need to rely on tweaking character statistics in a menu screen which is something that can make many people lose interest right away. The fighting system turned out balanced by the end. No attack turned out to be the best or the worst one, it was more dependent on the situation the player was currently in. It was also really satisfying to see two players&#8217; AI characters battle after being trained because then it becomes more about who the best teacher was rather than who the best player is. I&#8217;m pretty happy with how the visuals turned out even though it took forever to make all of it. I think it turned out to be about 180 texture files I had to add to the game. Even so, it ended up looking pretty close to how I imagined it.</p>
<p>What went wrong:</p>
<p>I would have liked the game to go farther, but due to time constraints we had to settle for less. Of course, there&#8217;s always the possibility to go further with it after this quarter. Mainly, I was hoping for power-ups or other variations to how two players battle since it would give the players more strategical options. Also, I had underestimated how long it was going to take to do a lot of the art which resulted in many late nights of drawing in Flash and last minute graphics bugs, but overall the essential bits of art for the game got in.</p>
]]></content:encoded>
			<wfw:commentRss>http://classes.dma.ucla.edu/Spring08/157B/ai-fighter-postmortem/feed</wfw:commentRss>
		</item>
		<item>
		<title>SPFT: Postmortem</title>
		<link>http://classes.dma.ucla.edu/Spring08/157B/spft-postmortem</link>
		<comments>http://classes.dma.ucla.edu/Spring08/157B/spft-postmortem#comments</comments>
		<pubDate>Fri, 13 Jun 2008 02:17:11 +0000</pubDate>
		<dc:creator>Gabriele</dc:creator>
		
		<category><![CDATA[Problems and Progress]]></category>

		<category><![CDATA[postmortem]]></category>

		<guid isPermaLink="false">http://classes.dma.ucla.edu/Spring08/157B/?p=310</guid>
		<description><![CDATA[General Thoughts
Making this game was certainly more difficult than I expected. Coding by itself was actually the easiest task thanks to XNA, but undoubtedly the greatest challenge was to iterate over the core mechanic until the game felt solid and fun to play. As I said in an old blog post, my objective with this [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong style="mso-bidi-font-weight: normal;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">General Thoughts</span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Making this game was certainly more difficult than I expected. Coding by itself was actually the easiest task thanks to XNA, but undoubtedly the greatest challenge was to iterate over the core mechanic until the game felt solid and fun to play. As I said in an old blog post, my objective with this project and the class in general was to create an original game concept. I wanted to experiment with something new. I especially wanted to make a game that was unlike anything I played before &#8211;and I played a lot of games in my life! My excessive ambition though was also the greatest source of trouble for this project. My original game idea was approved by Aaron and David, but I really had not figured out my core mechanic fully then and given the experimental nature of my proposal, I had to develop several prototypes before I managed to flesh out the details of gameplay. After all, a lot of game ideas go through this kind of gestation period. A good example is the Winterbottom game that was presented by our guest speaker Matt Korba. He told us that he and his partners had to try many prototypes before they figured out what they wanted to do.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Whatever the case, this project was definitely a learning experience for me. In fact, despite my numerous endeavors in game development, I never focused this much on gameplay, being always very busy dealing with crazy engineering problems. It was an opportunity for me to better appreciate the aesthetics of game design, which is one thing I never really contemplated before. After all, I am an engineer and my perspective on gaming is naturally very different to that of a game designer. On the one hand, we engineers like well-defined specifications, a principled approach to problem-solving, and don’t rely too much on trial and error when possible. On the other hand, game design is something far less tangible than the usual quantifiable notions that are common in engineering. It is therefore really hard to validate a core mechanic without actually trying it out through a prototype. In a nutshell my experience with this class boils down to a lot of prototyping and iterating over gameplay ideas.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong style="mso-bidi-font-weight: normal;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Successes</span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Yes, there was a time during the quarter that I felt very frustrated and I kind of lost my motivation, but in the end I managed to pull off a game that I am really happy with. I performed a lot of play-tests before I could fix my originally broken core mechanic. However, in the last few runs the response of the play testers was very positive. I spend a lot of time to polish the game play and to make it very balanced. The action of each pill in the game and all other game variables are a result of a lot of tweaking and they incorporate much of the input that I got from play testers. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">The final critique by Aaron focused mostly on the interface, title screen, and a few annoying bugs. These were actually easy problems to fix, and I addressed all them in the new updated version that posted on the blog. With the updated version the game also feels very polished and complete.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Last but not least, after my artistic marathon in the end, I managed to make the game also look really good. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong style="mso-bidi-font-weight: normal;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Failures</span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">I may sound repetitive at this point, but while talking about failures I would like to say again that for quite some time this quarter I thought that my game was a complete failure. The initial design was not well-thought out, my first prototype sucked and it was plagued with a ton of physics-related bugs. Yet I persisted and I decided that rather that pursuing a game concept from scratch, I should get inspiration from some existing ones. I pondered over many games and the ones that seemed to agree most with my original idea were <a href="http://en.wikipedia.org/wiki/Gorillas_(computer_game)"><span style="color: #0000ff;">Gorillas</span></a>, <a href="http://en.wikipedia.org/wiki/Lemmings_%28video_game%29"><span style="color: #0000ff;">Lemmings</span></a>, <a href="http://en.wikipedia.org/wiki/Troddlers"><span style="color: #0000ff;">Troddlers</span></a>, and especially <a href="http://en.wikipedia.org/wiki/Worms_(series)"><span style="color: #0000ff;">Worms</span></a>. If you played these games, you can tell that my game has several things in common with these games, but still I do not feel that I betrayed my initial goal to make an original game. I simply made my approach more focused by reinterpreting successful features of these games.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">While I am fairly happy with my game and also Aaron agreed that the improvement of my game from the first prototype was huge, there still are some problems.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* The frogs are animated through the physics engine now and they can perform very acrobatic motions, which is good. Moreover, by using a physics engine, I could avoid hand animating the frogs. Nevertheless, the frogs are very inexpressive and they lack good cartoony animations like in the Worms’ game. This detracts substantially from the kind of humor that I wanted to achieve. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* Speaking of physics engine, Aaron told me several times that the physics engine does not seem particularly useful for my game. He is right in that physics doesn’t play any important role in my core mechanic, but I still believe that some physics based animations to spice up the punch of fire balls and explosions is pretty cool. The version that I showed in class for the final critique had some outstanding physics-related problems –namely the foot sliding problem and some weird dynamics for the pills.<span style="mso-spacerun: yes;">  </span>I addressed both issues in the final update that I posted.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* The two masters and the frogs are pretty much clones of each other and that feels fairly wrong as several people pointed out.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* I should mention that there are still a few inevitable bugs that are lying around, and the AI of the frogs makes them act weird sometimes. However, I fixed all serious bugs in the last update and currently there aren’t any known bugs that can stop gameplay.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* One thing that is really missing is a menu system. Making a menu system by itself is an extremely easy task, but what I lacked are meaningful options to put in the menus. Of course I could fill the menus with options for adding variety to the game, such as several difficulty levels and game types, but that is somewhat time-consuming and it needs to be play-tested first, so I decided to leave the menu system out.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* Probably the main problem with my game is that is not entirely immediate and it takes some time for a new player to understand how the game works. I tried to compensate that by adding a “how to play” screen that pretty much spells out game rules, but that is just a quick fix. What I really need is a tutorial.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong style="mso-bidi-font-weight: normal;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Art</span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Since I am not really an artist, this game was also a remarkable artistic challenge for me. In fact, this is not a game that I can make look nice with some cool tech like Geometry Wars. This game actually requires a lot of good drawing and art design. For those who remember the original graphics, it looked really bad and I had a fairly short time to fix that ugliness. I ended up spending two full days before the deadline working on the art. I tried all kinds of concepts ranging from real pictures processed in Photoshop to traditional hand drawing, but I wasn’t really happy with any of that! Art styles that were too colorful or realistic made the game look very discombobulated and didn’t quite agree with the humor in the game. Then the right inspiration came almost suddenly while I was fixing a bug. I did not set a variable right and the background did not show at all; I looked at the game then and I realized that what I needed was a very bland cartoony art style. So I created a very simple background with a sky gradient and a colorful ground with polka dots and it fit perfectly. Then I modified the frogs and the masters to follow the same artistic direction and voila the game looked really good and fit perfectly my game.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong style="mso-bidi-font-weight: normal;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Coding</span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">I’ve been writing code for many years now, and making this game was fairly straightforward from the development side. To make things even easier XNA is an absolutely terrific framework that makes game development a snap. Probably the greatest source of problems for me was the Farseer physics engine. The engine itself is very good and well-designed, but I had a lot of trouble with collision detection, since I wanted to thrust my frogs around at high speeds. This is a classical problem with physics-based animation and I couldn’t expect better from Farseer. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong style="mso-bidi-font-weight: normal;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Future Work and Final Thoughts</span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Despite all the tribulation, I am very happy with the game that I made and I am definitely willing to continue working on it in the future.<span style="mso-spacerun: yes;">  </span>Honestly, my game is not as revolutionary as I envisioned, but perhaps with some extra polish I may try to submit it to the indie game festival and see what happens. A more realistic goal for now is to get my game ready for the Creator’s Club in October.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">As I did many times in my career I am strongly tempted to do a substantial rewrite of the code, as I feel that my prototype has a several engineering flaws. Anyway, that is expected from a prototype.<span style="mso-spacerun: yes;">  </span>In fact, engineers do a lot of prototyping too. Actually being a researcher myself, I write code prototypes very often. However, among software engineers a prototype is almost always meant to be thrown away. In fact, a prototype can never match the intrinsic quality of a good software product and in most cases the easiest thing to it to rewrite the application from scratch. However, the rewrite is going to incorporate all the insight and the successes of your prototype, so it can be developed very quickly. The advantages of good code quality are enormous and it is definitely something I need, especially if I want to release my game to the public. Furthermore, since I now have a solid core mechanics that works, I can focus my rewrite to address all the technical aspects of my game that I did not have time to develop fully.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Whether or not I am going to rewrite the code, there are a number of improvements I’d like to make for my game. Here is a list of ideas:</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* Add game modes that restrict the kind of pills that you can use.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* While not strictly necessary, add a menu system since it appears to be a feature people expect.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* Make the AI of frogs more elaborate and add more pill types.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* Similarly to Worms, have items and bonuses fall off the sky to add some extra randomness and variety to the game. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* There are situations in which both players may get away always using the same pills repeatedly. I should add some gameplay elements to avoid this. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* Add shaders to make explosions and other effects more impressive.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* Make the arena larger and add a camera system to scroll and zoom in.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* Add a replay feature.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">* Add animations to the sprites and make the physics-based components of the animation more elaborate.</span><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: Calibri;"><span style="font-size: 10pt; font-family: &quot;;"> </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 12pt; color: #000000; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 14.25pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-size: 10pt; color: #000000; font-family: &quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman';"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small; font-family: Calibri;"> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://classes.dma.ucla.edu/Spring08/157B/spft-postmortem/feed</wfw:commentRss>
		</item>
		<item>
		<title>Postmortem</title>
		<link>http://classes.dma.ucla.edu/Spring08/157B/postmortem</link>
		<comments>http://classes.dma.ucla.edu/Spring08/157B/postmortem#comments</comments>
		<pubDate>Fri, 13 Jun 2008 00:21:57 +0000</pubDate>
		<dc:creator>Alex Schleider</dc:creator>
		
		<category><![CDATA[Problems and Progress]]></category>

		<guid isPermaLink="false">http://classes.dma.ucla.edu/Spring08/157B/?p=309</guid>
		<description><![CDATA[
What went right –
Graphics – I felt I was able to express the feel of the game I was going for through the graphics. They seemed to work very well at conveying the aesthetic.
 Controls – My aim was to keep the controls as concise as possibly so a player could pick up the controls and [...]]]></description>
			<content:encoded><![CDATA[<p><!--StartFragment--></p>
<p class="MsoNormal">What went right –</p>
<p class="MsoNormal">Graphics – I felt I was able to express the feel of the game I was going for through the graphics. They seemed to work very well at conveying the aesthetic.</p>
<p class="MsoNormal"><span> </span>Controls – My aim was to keep the controls as concise as possibly so a player could pick up the controls and immediately know how to play. I feel I was successful at doing that.</p>
<p class="MsoNormal">Menus - I really like how the menus turned out. I feel they not only helped provide a cohesive flow to the game, but also looked very professional.</p>
<p class="MsoNormal">What went wrong –</p>
<p class="MsoNormal">Concept – the concept underwent a lot of changes throughout the process. While this can be a good thing, it ended up costing me a lot of time and therefore I was unable to take the project as far as I had hoped. I wanted to add projectiles and powerups but due to my ever changing concept I was unable to devote the time to do so.</p>
<p class="MsoNormal">Collisions – I was unable to get the collisions working as fluidly as I had hoped. They seem to work correct in the 3D world, however I had issues getting the 2D rotation planes to properly collide with the circles I used for the pawns. Given the chance to do it over, I probably would’ve used farseer.</p>
<p class="MsoNormal">Sound – The sounds I used I was not very happy with. I am not very good at making sound and I could not find any that met exactly what I was looking for. This led me to be somewhat unhappy with the sound I ended up with.</p>
<p class="MsoNormal">I wish i could go into more detail here, unfortunately, not having had the benefit of a critique, i can only base this report on my own experiences. I hope, with input from friends, to be able to further improve my game over the course of the summer, and hopefully release it for the creators club launch in october.</p>
<p><!--EndFragment--></p>
]]></content:encoded>
			<wfw:commentRss>http://classes.dma.ucla.edu/Spring08/157B/postmortem/feed</wfw:commentRss>
		</item>
		<item>
		<title>Super Pond Fighter Turbo Enhanced</title>
		<link>http://classes.dma.ucla.edu/Spring08/157B/super-pond-fighter-turbo-enhanced</link>
		<comments>http://classes.dma.ucla.edu/Spring08/157B/super-pond-fighter-turbo-enhanced#comments</comments>
		<pubDate>Thu, 12 Jun 2008 23:12:50 +0000</pubDate>
		<dc:creator>Gabriele</dc:creator>
		
		<category><![CDATA[Problems and Progress]]></category>

		<guid isPermaLink="false">http://classes.dma.ucla.edu/Spring08/157B/?p=308</guid>
		<description><![CDATA[I pretty much addressed most if not all the issues that Aaron brought up in the crit. You can get the updated version of the game here.
Here&#8217;s a detailed list of the changes in the new release
* The font in the think bubbles is bigger and more readable
* The think bubble persists longer and it [...]]]></description>
			<content:encoded><![CDATA[<p>I pretty much addressed most if not all the issues that Aaron brought up in the crit. You can get the updated version of the game <a href="http://www.cs.ucla.edu/~nataneli/misc/SPFT_Final_Binary_v01.zip">here</a>.</p>
<p><em>Here&#8217;s a detailed list of the changes in the new release</em></p>
<p>* The font in the think bubbles is bigger and more readable</p>
<p>* The think bubble persists longer and it can be recalled by pressing the X button</p>
<p>* Now you select a pill by using the D-Pad. Now you can also move horizontally as well as vertically in the grid</p>
<p>* Updated the title image to reflect the new control scheme</p>
<p>* Added a different tune for the title screen</p>
<p>* When the game is over you go back to the title screen now. Before a new game started immediately</p>
<p>* The position of the frog is now reset when you start a new match</p>
<p>* The pill panel now slides away when it is not needed</p>
<p>* Fixed the foot sliding problem</p>
<p>* Changed the sensitivity of aiming</p>
<p>* Now the game is fully resolution independent</p>
<p>* A fixed problem with the physics of a pill when it was thrown</p>
<p>* Added an additional intro screen with &#8220;How to Play&#8221; instructions</p>
<p>* Now the selected pill is magnified</p>
]]></content:encoded>
			<wfw:commentRss>http://classes.dma.ucla.edu/Spring08/157B/super-pond-fighter-turbo-enhanced/feed</wfw:commentRss>
		</item>
		<item>
		<title>After Death: Wrap-up of AIFighter</title>
		<link>http://classes.dma.ucla.edu/Spring08/157B/after-death-wrap-up-of-aifighter</link>
		<comments>http://classes.dma.ucla.edu/Spring08/157B/after-death-wrap-up-of-aifighter#comments</comments>
		<pubDate>Thu, 12 Jun 2008 21:45:51 +0000</pubDate>
		<dc:creator>Billy</dc:creator>
		
		<category><![CDATA[AIFightingGame]]></category>

		<guid isPermaLink="false">http://classes.dma.ucla.edu/Spring08/157B/?p=307</guid>
		<description><![CDATA[Download it at http://www.cs.ucla.edu/~billyh/AIFighter.zip
Source code available at http://www.cs.ucla.edu/~billyh/AIFighterCode.zip
To play you need a PC, the XNA framework that you can download here

No longer needs Xbox controllers!
Major Changes from the last version
I  enabled the keyboard so that users without XBox controllers could play.  Many people outside the class asked for this.  Additionally, I fixed [...]]]></description>
			<content:encoded><![CDATA[<p>Download it at <a href="http://www.cs.ucla.edu/~billyh/AIFighter.zip">http://www.cs.ucla.edu/~billyh/AIFighter.zip</a></p>
<p>Source code available at <a href="http://www.cs.ucla.edu/~billyh/AIFighterCode.zip">http://www.cs.ucla.edu/~billyh/AIFighterCode.zip</a></p>
<p>To play you need a PC, the XNA framework that you can download <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=15fb9169-4a25-4dca-bf40-9c497568f102&#038;displaylang=en">here</a><br />
<strong><br />
No longer needs Xbox controllers!</strong></p>
<p><strong>Major Changes from the last version</strong><br />
I  enabled the keyboard so that users without XBox controllers could play.  Many people outside the class asked for this.  Additionally, I fixed the crash bugs that occurred in the demo last Thursday.  I also fixed some of the font bugs that were visible in the demo.</p>
<p><strong>What worked on this Project?</strong></p>
<p>I really enjoyed working with an artist rather than working by myself, and I feel our game was much better for it.  One decision we made early on in the game-creation process was to use source control, and that clearly paid huge dividends, as it was easy to pass work between the two of us, easy for me to develop on multiple machines, and easy to merge our work.  We used free project hosting on google-code (with Turtle-Subversion as our source-control client), and I would highly recommend this for anyone starting up a project with more than one person.  Even with one person, it forces you to check your checkins and it&#8217;s a great way to back up your work.</p>
<p>As far as the game itself, I&#8217;m very proud of how it turned out.  Most people, on hearing the game pitch, didn&#8217;t feel like we would make a fun game or thought that our AI couldn&#8217;t be implemented in the short time frame we had, but everything worked very well.  There was enough time at the end of the project to add additional modes like AI vs. AI, player vs. player, or single player training AI.  Most people that played the game enjoyed it a great deal and got very competitive.  I&#8217;m convinced that our project was one of the most ambitious and novel games in the class and for the most part we pulled it off well.</p>
<p><strong><br />
What could have gone better?</strong></p>
<p>There were a couple of problems we had working as a team.  One of them was that it was difficult pulling everything together for demos or deadlines.  For example, my partner checked in art at 6:15am on the final day, but he was unable to test the code changes he made to get the art to work because he only had one controller.  Later that day I attempted to fix the two player bugs that had been introduced, but I missed one that occurred in our final demo (in certain types of two player game, we would crash if player 1 won).  This was frustrating because I had spent a long time bug searching, but immediately before class I was still trying to integrate artwork rather than bug hunting.  I recommend to any team that you get everything checked in a day before the deadline so that you can spend time integrating and looking for bugs in the integrated version. </p>
<p>I&#8217;m not convinced the &#8220;teacher&#8221; mode is the best design element for this game.  Some users had trouble using it to train their AIs.  On the other hand, I&#8217;m not sure what could replace it.  There haven&#8217;t been many other games like this (Black and White had creature training, and Virtua Fighter 4 had some combat training), so we were in new design space where there weren&#8217;t established guidelines.</p>
<p><strong>What about the Future?  What&#8217;s next?</strong></p>
<p>I would like to get this game running on the XBox in time for the release of free Xbox games.  I&#8217;ve fixed the problems that I know about, but I need an XBox360 to test it.  There&#8217;s two things that would make a huge improvement to our game (for both Xbox and for PC); networking and proper save/load.  Our current save/load has a number of &#8220;slots&#8221; or specific files where it saves AI.  There should be a way to easily get this to work on the Xbox and (if on a PC) to open a normal &#8220;save file to disk&#8221; window like a normal windows application, but I haven&#8217;t been able to find it.  Ideally the game could be networked as well, so one could fight other players on the internet (or XBox Live), as well as downloading/uploading cool AIs that players have created, but I haven&#8217;t been able to find good examples of this.  These are problems that the Xbox/XNA community has to solve, as I have no desire to write my own networking or save/load GUI software (besides the game dependent parts).</p>
<p>Besides releasing the game on the Xbox360, I might submit it to something like the independent games festival or GDC.  With just one programmer (me) and one artist (Erik), its not a incredibly developed game, but I feel like there&#8217;s an interest in AI for video games that goes beyond state machines.</p>
]]></content:encoded>
			<wfw:commentRss>http://classes.dma.ucla.edu/Spring08/157B/after-death-wrap-up-of-aifighter/feed</wfw:commentRss>
		</item>
		<item>
		<title>Psychic Construction Co Postmortem</title>
		<link>http://classes.dma.ucla.edu/Spring08/157B/psychic-construction-co-postmortem</link>
		<comments>http://classes.dma.ucla.edu/Spring08/157B/psychic-construction-co-postmortem#comments</comments>
		<pubDate>Thu, 12 Jun 2008 21:00:17 +0000</pubDate>
		<dc:creator>Ken Arthur</dc:creator>
		
		<category><![CDATA[Problems and Progress]]></category>

		<guid isPermaLink="false">http://classes.dma.ucla.edu/Spring08/157B/?p=298</guid>
		<description><![CDATA[Introduction
The idea for Psychic Construction Company came from the basic premise &#8220;Use farseer to do something&#8221;.   I like physics based games, such as Crayon Physics, and I feel that the genre hasn&#8217;t been fully explored yet.  I thought about real-world physics based games, and the most prominent are things like Jenga, where you stack or [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>The idea for Psychic Construction Company came from the basic premise &#8220;Use farseer to do something&#8221;.   I like physics based games, such as Crayon Physics, and I feel that the genre hasn&#8217;t been fully explored yet.  I thought about real-world physics based games, and the most prominent are things like Jenga, where you stack or unstack blocks, with balance and a steady hand determining who wins or loses.  This led to the idea of a block stacking game.  I wanted the block control to be a little imperfect, so that the player would have the risk fo knocking down their own structure if they weren&#8217;t careful; I came up with the idea of psychic characters as a way of explaining this.</p>
<p><strong>What went right</strong></p>
<ul>
<li>Development order</li>
</ul>
<p>I had a very specific development order planned from the beginning, and I think it worked very well: first get single player gameplay working, including physics and controls.  Then get multiplayer up, then do graphics and sound last.  Having singleplayer up early gave me a lot of time to test and change the physics and the control system, which were the two most important parts of making the game feel right.  Doing graphics late saved me from making graphics for things I didn&#8217;t need, such as different characters for the different player roles (which I ended up scrapping), different block tile sets for different block types (which I ended up scrapping), etc.  I also felt that testing singleplayer early and finding that people enjoyed it was very helpful for my morale when I learned that multiplayer had problems and needed overhauling.   Instead of being lost as to how to fix it, I knew what kind of core gameplay I wanted and worked towards getting the players doing that again.</p>
<ul>
<li>Art + Sound</li>
</ul>
<p>I&#8217;m pretty happy with the art style I ended up developing for PCC.  I knew I wanted things to be cartoony, and I planned from the start to have bobble-headed characters with giant brains.  But the cityscape background, the brick textures for the blocks, and animated hands for the characters were all developed after the initial design.</p>
<ul>
<li>Level Design and Level Editor</li>
</ul>
<p>My initial plan was to just have players race to build a taller tower, but the idea of having multiple levels came up pretty quickly.  I wanted to make the levels very simple.  The controls for the game were already getting fairly complicated, and I didn&#8217;t want to add more complexity through level design.  I also wanted to leave a lot of room for players to solve levels in a lot of different ways, so I rejected any designs that I thought were too restrictive.  The + and - goal system allowed a reasonable number of different levels and challenges and made building strategies almost completely open ended.  In my playtests I saw very different solutions to some of the levels, so I consider my design successful.</p>
<p>I wanted to make levels easy to change, so I wrote a &#8216;level editor&#8217; which takes images and parses them into PCC levels.  The upper left pixel in the image represents the size of the blocks, and then there are pixel colors for green goals, red goals, base platforms, and swinging base platforms.  The difficult part is combining adjacent pixels with the &#8216;base platform&#8217; color into a single object.  I tuned the level designs very frequently over the course of the project, and with the level parser all I had to do was open up some images in photoshop; it saved a lot of time.</p>
<ul>
<li>Hacks</li>
</ul>
<p>I did a number of things somewhat inelegantly to save time; some of these were good ideas and some of them were terrible ideas.  One that worked really well was the hand animation.  Hands have two modes: swing, in which they are a constant distance away from the shoulder and the arms rotate from one angle to another, and slide, in which the hands are up by the head and slide towards a goal point without any regard for how far away from the shoulder they are.  I initially wanted a &#8216;real&#8217; animation system where I could draw points at the elbows and everything would look realistic, but to save time I did it in this simplified way and it wound up looking pretty good.</p>
<p><strong>What didn&#8217;t go so well</strong></p>
<ul>
<li>Farseer</li>
</ul>
<p>The most frustrating part of the project by far was dealing with Farseer bugs.  Complex 2D physics was absolutely necessary to make my game work, and Farseer was pretty much the only option when I started development.  A full C# version of box2d is being written right now, but it is not yet available for public use.  So I don&#8217;t actually regret using farseer, because I didn&#8217;t really have another option.   But I do feel that it has a ton of shortcomings, including:</p>
<p>Sliding: blocks constantly slid apart in the initial versions of PCC, regardless of how stable they looked or how strong the friction was.  I eventually added a manual workaround for this, in which I check a box&#8217;s position before and after each physics update, and if it moved a tiny amount I ignore the motion.</p>
<p>Setting things static: here&#8217;s an odd bug that came up when I was making the &#8216;freeze&#8217; ability.  If you have a static object (the level base) with two things sitting on it (such as a block and the character), and you set one thing (the block) to be static, then farseer flings the other thing into space.  Sometimes it just crashes intstead.  The fix for this was to set a custom collision handler for the frozen block which ignored collisions with other static objects.</p>
<p>Intersection: this is a bug that still exists, although I made it harder to achieve.  Create a stack of about 10 4&#215;1 blocks, then grab the top block and pull straight down.  Somewhere in the stack, two blocks will slide into each other.  I made this difficult to cause by carefully controlling how hard you can pull a held block, but it&#8217;s still doable.  I have no idea what causes this problem.</p>
<ul>
<li>Energy System</li>
</ul>
<p>I didn&#8217;t realize just how complicated the gameplay in PCC is until I was writing the &#8216;how to play&#8217; section.  Which is a lesson in itself, but anyway: most of the complication comes from the energy system.  I introduced energy when I put in block freezing, because I wanted greater control over how often the player could use that ability.  Attacking also had an energy cost, and I added one for block creation to tie the game together better.  Having written up instructions for the game, it seems that energy takes too much of the player&#8217;s attention for something that was intended as an unobtrusive pacing mechanism.  The player has to charge his energy, there&#8217;s no way to know how much energy something takes aside from trying to do it and seeing if you succeed, and the charge rate mechanics are confusing.  I do plan to keep workin on the game, and the next version should remove the energy system and replace it with a timer for certain actions (like the one currently used for freezing blocks).</p>
<ul>
<li>Hacks</li>
</ul>
<p>Earlier I described the hand animation system as a successful hack which saved a lot of time by dropping realism.  One hack that I&#8217;m not happy with is the faked camera system.  Instead of writing real viewport code, the camera change that occurs when a player attacks is done with a translate and a whole bunch of different cases in the draw code.  Aside from making the code hard to read, this also makes it really difficult to change anything in this section, such as adding an animation for moving to the other player&#8217;s screen instead of just appearing there.  Writing a real viewport system would have taken a lot longer, but it would have made this part of the game much easier to change.</p>
<p><strong>Conclusion</strong></p>
<p>I think I succeeded in most of my goals.  I made a game which uses physics, which is fun to play, and which has a lot of room for variation between how different players play.  Although there are some things that need to be streamlined, I think that PCC is close to being ready to go on the XNA community games site.   Between PCC and my breakout game, I think it&#8217;s clear that my biggest problem when it comes to game design is making things too complex when a simpler design would play faster and be more fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://classes.dma.ucla.edu/Spring08/157B/psychic-construction-co-postmortem/feed</wfw:commentRss>
		</item>
		<item>
		<title>Tanx Post</title>
		<link>http://classes.dma.ucla.edu/Spring08/157B/tanx-post</link>
		<comments>http://classes.dma.ucla.edu/Spring08/157B/tanx-post#comments</comments>
		<pubDate>Thu, 12 Jun 2008 17:18:36 +0000</pubDate>
		<dc:creator>gilliland</dc:creator>
		
		<category><![CDATA[Problems and Progress]]></category>

		<guid isPermaLink="false">http://classes.dma.ucla.edu/Spring08/157B/?p=304</guid>
		<description><![CDATA[Last For-Class Release Binary
(Meaningful change:  Level/Player Select)
The plan for Tanx has always been to create a fast paced kinetic game that is easy to pick up.  I have a great fondness for physics and find that simple physical interactions can be incredibly pleasing.  There is a subtle joy in being able to knock something around.  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://far-out-dude.com/transient/XNA/tanx/tanx_fin.zip">Last For-Class Release Binary</a></p>
<p>(Meaningful change:  Level/Player Select)</p>
<p>The plan for Tanx has always been to create a fast paced kinetic game that is easy to pick up.  I have a great fondness for physics and find that simple physical interactions can be incredibly pleasing.  There is a subtle joy in being able to knock something around.  In my opinion, there is an even greater joy in knocking your friend around.  The goal was to make a game that players could intuit naturally based on prior knowledge of physics, but that a thinking player could excel based on knowledge and manipulation of the physics system.</p>
<p>Generally, I spend a longer than average time in pre-production, trying to set up systems that allow for easy expansion.  I think as a result of this, I have created several socketable components that I can (and am currently) using in other projects, but the overall pace of the project suffered.</p>
<p><strong>Right</strong></p>
<ul>
<li>The physical interaction went well.  The kinetic feel of the game is about exactly what I was hoping for.</li>
<li>The systems I put in place, and the little helper classes I developed, such as the Quaternal Smoother, and the Particle Manager have been useful in several different applications now.</li>
<li>XML levels/Projectiles/Weapons allow for fairly quick editing of content.</li>
</ul>
<p><strong>Wrong</strong></p>
<ul>
<li>I didn&#8217;t go all-the-way on the XML serialization, and some things still need to be referenced in the game code, making it not truly expandable through content.</li>
<li>No Level editor means that levels are fairly mathematical.</li>
<li>The slow-start lead to a less-polished game than would have been ideal</li>
</ul>
<p>In retrospect, some choices I made to do things &#8220;correctly&#8221; may have taken longer than just getting them done.  In the context of a deadline, the result is a less finished product than could have otherwise been achieved.  As a base for future projects, however, I feel like this game has been a very worthwhile effort.</p>
]]></content:encoded>
			<wfw:commentRss>http://classes.dma.ucla.edu/Spring08/157B/tanx-post/feed</wfw:commentRss>
		</item>
		<item>
		<title>Lilypadd - Postmortem</title>
		<link>http://classes.dma.ucla.edu/Spring08/157B/lilypadd-postmortem</link>
		<comments>http://classes.dma.ucla.edu/Spring08/157B/lilypadd-postmortem#comments</comments>
		<pubDate>Thu, 12 Jun 2008 05:40:23 +0000</pubDate>
		<dc:creator>Nicole</dc:creator>
		
		<category><![CDATA[Problems and Progress]]></category>

		<category><![CDATA[Lilypadd]]></category>

		<category><![CDATA[postmortem]]></category>

		<guid isPermaLink="false">http://classes.dma.ucla.edu/Spring08/157B/?p=303</guid>
		<description><![CDATA[Lilypadd is meant to be a children&#8217;s game for practicing addition and subtraction. Frogs jump from one  lily pad to the next either adding or subtracting the numbers they  show.  Each lily pad is one of five colors, each representing a different way to hinder an opponent&#8217;s progress toward reaching the goal number.  To activate [...]]]></description>
			<content:encoded><![CDATA[<p>Lilypadd is meant to be a children&#8217;s game for practicing addition and subtraction. Frogs jump from one  lily pad to the next either adding or subtracting the numbers they  show.  Each lily pad is one of five colors, each representing a different way to hinder an opponent&#8217;s progress toward reaching the goal number.  To activate that power up, the player must match (by color) three lily pads in a row. This ability to mess up the other player allows children to forget they are learning and adults to become excited about a children&#8217;s game.</p>
<p>I knew from the beginning that I wanted this interaction to be at the core of my game. At stage one, I decided that I wanted to make a learning game that, although geared toward kids, would also be entertaining for adults. My goal was to give players the ability to directly affect the progress of their opponents, so I knew early that there would be power ups and that both/all players would share one screen. Adding and subtracting seemed like an obvious choice for a children&#8217;s game and frogs just seemed to fit the game best.</p>
<p><strong>What went right&#8230;</strong></p>
<p><strong>Simpicity:</strong> I knew from past game class experiences that I wanted to start simple. In the past I have set my eyes on a goal way too big for the scope of less than ten weeks and ended up with a pretty unfinished game. So, this time around I started with a simple game that I knew I could code, even if it was in a completely new language&#8230;This was the smartest thing I did all quarter. Instead of getting bogged down in details like concentric circles, like last quarter, I was able to set simple goals for myself and see my intended final product by the end of the quarter.</p>
<p><strong>Early prototyping: </strong>The simplicity of my original idea allowed me to have a finished prototype early. This made it possible to see what would be fun about my game early on and use that knowledge in the rest of development. Early prototyping also gave me the chance to add extras like animations, menus and sounds.</p>
<p><strong>Playtesting:</strong> This was not something I had really done before and it proved to be invaluable in my design process. My playtesters brought up new ideas about power ups and ways to make the gameplay more fun as well as pointing out some bugs and less interesting points in the game, which I was later able to avoid.</p>
<p><strong>What went wrong&#8230;</strong></p>
<p><strong>Learning a new language on the fly:</strong> Okay, so in the end it wasn&#8217;t that bad, but the development could have taken a quarter of the time if I had created the game in a more familiar language, say Processing. I am glad I stuck it out because of XNA&#8217;s connection with Xbox Live and the new features Microsoft is providing, but it definitely created some kinks along the road.</p>
<p><strong>Flying solo:</strong> I generally prefer to do everything myself, as I have been screwed over a few too many times by flaky partners. I am also very picky and like to do things my own way, so I opted to work on this project alone. I wish I had taken the opportunity to partner up with a CS kid or one of our more tech-savvy designers. This would have allowed me to spend less time debugging and learning XNA basics and more time designing the game play and creating artwork. I am glad I put myself in a position where I was forced to learn at least the basics of coding in C#, but I think the project could have benefited from a more well-rounded team.</p>
<p>In the next few months, I am going to continue working on the project, playtesting and making the game as fun as possible. Then you&#8217;ll see it on Xbox  in the fall!</p>
]]></content:encoded>
			<wfw:commentRss>http://classes.dma.ucla.edu/Spring08/157B/lilypadd-postmortem/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
