<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>MochiLand</title>
	
	<link>http://mochiland.com</link>
	<description>for(developer in flash_games){ this.mochiland = _root }</description>
	<lastBuildDate>Sat, 04 Feb 2012 02:03:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Mochiland" /><feedburner:info uri="mochiland" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Mochiland</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Flash Game Friday Winner: Catnarok 2: Longcat Rampage</title>
		<link>http://feedproxy.google.com/~r/Mochiland/~3/m2Bu8VJlVSY/flash-game-friday-winner-catnarok-2-longcat-rampage</link>
		<comments>http://mochiland.com/articles/flash-game-friday-winner-catnarok-2-longcat-rampage#comments</comments>
		<pubDate>Sat, 04 Feb 2012 01:30:24 +0000</pubDate>
		<dc:creator>Colin Cupp</dc:creator>
				<category><![CDATA[Developer Feed]]></category>
		<category><![CDATA[Developer Spotlight]]></category>
		<category><![CDATA[Flash Game Friday]]></category>
		<category><![CDATA[Game Showcase]]></category>
		<category><![CDATA[MochiLand Topics]]></category>
		<category><![CDATA[Publisher Feed]]></category>
		<category><![CDATA[Antoine Litzler]]></category>
		<category><![CDATA[Catnarok 2: Longcat Rampage]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[winner]]></category>

		<guid isPermaLink="false">http://mochiland.com/?p=6174</guid>
		<description><![CDATA[Winner&#8217;s Circle This week&#8217;s Flash Game Friday winner is Catnarok 2: Longcat Rampage by Antoine Litzler! If you are an internet geek, you&#8217;ll love this game. Memes and parody abound as Antoine manages to pull in countless familiar characters into one hilarious game! You are the longcat, and you are definitely on a rampage. You [...]]]></description>
			<content:encoded><![CDATA[ <h1>Winner&#8217;s Circle</h1>
<p>This week&#8217;s Flash Game Friday winner is <a href="http://www.mochimedia.com/games/play/catnarok-2-longcat-rampage">Catnarok 2: Longcat Rampage</a> by <a href="https://www.mochimedia.com/community/profile/Hyakkidouran">Antoine Litzler</a>!</p>
<p><a href="http://www.mochimedia.com/games/play/catnarok-2-longcat-rampage"><img class="alignleft size-full wp-image-6185" style="border: 0px;" title="Catnarok 2" src="http://mochiland.com/wp-content/uploads/2012/01/Catnarok-2.jpg" alt="" width="560" height="280" /></a><br />
If you are an internet geek, you&#8217;ll love this game. Memes and parody abound as Antoine manages to pull in countless familiar characters into one hilarious game!</p>
<p>You are the longcat, and you are definitely on a rampage. You shoot fire and even lasers from your eyes at incoming enemies. As you progress, more and more familiar memes are revealed. Antoine added a directory of the characters he used in his games, and their origins (giving proper credit).</p>
<p>Catnarok 2: Longcat Rampage, in movie terms, would be referred to as &#8220;An irreverent good time&#8221;- congratulations on winning Flash Game Friday, Antoine!</p>
<h2>Get to Know Antoine Litzler</h2>
<h4>Tell me about yourself- how many people are on your team? Where are you based?</h4>
<p>My name is Antoine Litzler, but you might know me as my fancy online name &#8220;Hyakkidouran&#8221;, which is probably the only thing close to cool I will ever get. I am a froggie and am based in Frogland (some call it France).</p>
<p>This might be dissapointing to some people, but I am not much more than a bedroom programmer working alone. I wish I could say I have a dynamic and great team I am working with, but life has not put other crazies like me on my way yet (or a pile of gold to hire crazies), so I have to make do with my own hands.</p>
<h4>How long have you been making games? What did you do before?</h4>
<p>I think I started about 5 years ago with (what else?) a dress up game. But, even though my games got more complex, this always has been amateur or semi-pro (if that word even has a meaning) work, as I could not make enough money to consider quitting a regular job. Even today, I still have my day job as a computer developer/administrator for a huge cultural association.</p>
<p>I am probably not being original by saying that being able to live from making what I do on my own would be awesome. But I still have to thank my day job for providing me with food and licenses for Photoshop and Flash CS until now. Without this food and software, I would not be making games..</p>
<h4>What was your inspiration for &#8220;Catnarok 2: Longcat Rampage&#8221;?</h4>
<p>Wasn&#8217;t it obvious? Memes.</p>
<p>Internet memes are very diverse and range from being really funny to being pure crap. I really like the older memes in particular, like &#8220;Longcat&#8221; or &#8220;All your base are belong to us&#8221;, which spawned pretty funny and interesting content.</p>
<p>But now it seems that young teenagers attempt to artificially create memes for the sake of &#8220;internet fame&#8221;, which usually results in crap. The good memes were usually born from a natural selection process of something that is actually funny, and that was how it worked in the early 2000&#8242;s.</p>
<p>The idea of the game was to adapt the &#8220;internet legend&#8221; of Longcat, while giving the opportunity to kill some bad memes.</p>
<p>The first Catnarok was kind of a prototype for that idea. When I saw that the prototype did fairly well despite its simplicity, I decided it was worth it to invest the time to get closer to my original vision.</p>
<h4>Any major challenges or hurdles during development?</h4>
<p>&#8230;Everything?</p>
<p>Joke aside, I think the hardest was that I had to stop the project for extended periods of time as my job or other IRL things pulled my leg. Coming back to the code after 1 month of not writing anything was a nightmare.</p>
<p>I also was pretty scared of the potential copyright issues.</p>
<p>Since there are sites out there which make money from referencing memes, I figured that, if I traced/redrew over the meme pictures, I would probably be fine (and I probably am since mochi approved the game), but I admit this worried me through all the development. I was scared that all that work would go for naught if some guy came and said &#8220;sorry, this parody, that is like the over 9000 there already are, is copyright infringement because it is more visible than the others&#8221;. ?_-</p>
<p>I also can&#8217;t do music, meaning I have to rely on the generosity of people online for it (usually throught people on Newgrounds audio portal or classic public domain music). All this creates kind of a legal mess that I am pretty scared of and it might be the greatest obstacle there is to moving to actual commercial game development.</p>
<p>Fair use is a blurry line, and it seems I did not cross it on that particular project, at least to the eyes of the users&#8230;this is quite a relief.</p>
<h4>What types of games do you like to create the most? What types of games do you like to play the most?</h4>
<p>Being a bedroom programmer, I have to create games I can grasp entirely on my own.</p>
<p>This is why I create usually shoot-them-ups or puzzle games. Those are simple enough for my monkey brain.</p>
<p>I have little interest in studying 3D because I think it is out of my reach (for now?), plus I am actually quite the japanese anime fan, and I really love the way 2D looks and feels.</p>
<p>Considering this, you will not be surprised to hear that I am a great fan of Japanese 2D fighters like Guilty Gear, Blazblue or Arcana Heart. In general, I can enjoy anything with good 2D graphics, unless the gameplay really sucks.</p>
<p>I am also quite the fan of Starcraft and Deus Ex. And I also have some very obscure games that I have been loving since 20 years and still play sometimes, like &#8220;Ristar&#8221; or &#8220;Zoom!&#8221; .</p>
<h4>How long is your game creation cycle? What is your process?</h4>
<p>I am that kind of person who usually has 20 funny and unrealistic ideas per minute, so the main part of the process is to filter those ideas by wondering &#8220;what can I, with my skill and time currently at hand, actually do?&#8221;. Once I can envision an idea that is simple enough to code, but still feels like it will be fun despite my limited ressources, I start working on it.</p>
<p>After that, it usually becomes pretty chaotic, since I am forced to code and draw when I can, with sometimes huge periods during which I can&#8217;t do anything on the game. Talking about a &#8220;process&#8221; would be complimenting this mess really.</p>
<h4>Are there any game developers that you admire or consider &#8220;rock stars&#8221;?</h4>
<p>Daisuke Ishiwatari, who is litterally a developer AND a rock star.</p>
<p>I am also quite a fan of the early work of Peter Molyneux on the PC, before he started doing this Fable-RPG thing. Even though I don&#8217;t play his games as regularily as the ones I quoted earlier, all of them are really good, intriguing games that qualify as &#8220;unique experiences&#8221;.</p>
<p>I also admire all indie developers. Period. I realized how much it takes balls to do games, and everyone taking this risk without stable financing deserves respect.</p>
<h4>What is it about making a new game that you enjoy most?</h4>
<p>Hard to tell. What is certain is that the moment your prototype runs well enough, allowing you to play the game from start to finish, do feel really special. The polishing and balancing that comes after that is actually way more tedious (but unfortunately necessary).</p>
<h4>Do you have any hot projects you&#8217;re working on right now?</h4>
<p>Do I! I virtually have a pile of projects waiting that I can&#8217;t wait to recede.</p>
<p>I think that the hottest news is that I have been working on creating a completely original license, based on my love for anime. I took a few clues from Mochi&#8217;s very own Mr. Shen, and thought it would be a great idea to have a cross-media character that I could use for games, comics, or virtually anything I want.</p>
<p>This character is &#8220;Serina, the star guardian&#8221;, a character heavily influenced by the magical girl genre, but with a bunch of personnal twists that hopefully will make her unique. Besides expressing my anime love, I am also creating this character for the sake of all the kids in my family, which makes this project even more stimulating and interesting.</p>
<p>Overall, I have great hopes for the future, and maybe this feature of Catnarok 2 will contribute to that extra boost I need to start my own thing into full steam. And if it&#8217;s not&#8230; well, I am ready to keep doing my dirty things in my bedroom at night. :)</p>
<p>&nbsp;</p>
<p><em><strong>Thanks Antoine, and congratulations again on winning Flash Game Friday!</strong></em></p>
 <div class='series_toc'></div>	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; Colin Cupp for <a href="http://mochiland.com">MochiLand</a>, 2012. |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-catnarok-2-longcat-rampage">Permalink</a> |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-catnarok-2-longcat-rampage#comments">One comment</a></p>
	<p>Add to <a href="http://del.icio.us/post?url=http://mochiland.com/articles/flash-game-friday-winner-catnarok-2-longcat-rampage&amp;title=Flash Game Friday Winner: Catnarok 2: Longcat Rampage">del.icio.us</a></p>
	<p>Search blogs linking this post with <a href="http://www.technorati.com/search/http://mochiland.com/articles/flash-game-friday-winner-catnarok-2-longcat-rampage" title="Search on Technorati">Technorati</a></p>
	<p>Want more on these topics ? Browse the archive of posts filed under <a href="http://mochiland.com/category/mochiland/developer-feed" title="View all posts in Developer Feed" rel="category tag">Developer Feed</a>, <a href="http://mochiland.com/category/mochiland/developer-spotlight" title="View all posts in Developer Spotlight" rel="category tag">Developer Spotlight</a>, <a href="http://mochiland.com/category/mochiland/flash-game-friday" title="View all posts in Flash Game Friday" rel="category tag">Flash Game Friday</a>, <a href="http://mochiland.com/category/mochiland/featured-games" title="View all posts in Game Showcase" rel="category tag">Game Showcase</a>, <a href="http://mochiland.com/category/mochiland" title="View all posts in MochiLand Topics" rel="category tag">MochiLand Topics</a>, <a href="http://mochiland.com/category/mochiland/publisher-feed" title="View all posts in Publisher Feed" rel="category tag">Publisher Feed</a>.</p><img src="http://feeds.feedburner.com/~r/Mochiland/~4/m2Bu8VJlVSY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mochiland.com/articles/flash-game-friday-winner-catnarok-2-longcat-rampage/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://mochiland.com/articles/flash-game-friday-winner-catnarok-2-longcat-rampage</feedburner:origLink></item>
		<item>
		<title>Flash Game Friday Winner: Greens Survive Only When Reds Die</title>
		<link>http://feedproxy.google.com/~r/Mochiland/~3/AKs-RS6c_vU/flash-game-friday-winner-greens-survive-only-when-reds-die</link>
		<comments>http://mochiland.com/articles/flash-game-friday-winner-greens-survive-only-when-reds-die#comments</comments>
		<pubDate>Sat, 28 Jan 2012 00:24:08 +0000</pubDate>
		<dc:creator>Colin Cupp</dc:creator>
				<category><![CDATA[Developer Feed]]></category>
		<category><![CDATA[Developer Spotlight]]></category>
		<category><![CDATA[Flash Game Friday]]></category>
		<category><![CDATA[Game Showcase]]></category>
		<category><![CDATA[MochiLand Topics]]></category>
		<category><![CDATA[Publisher Feed]]></category>
		<category><![CDATA[Greens Survive Only When Reds Die]]></category>
		<category><![CDATA[Mochi Media]]></category>
		<category><![CDATA[Oleksii Zagorodnii]]></category>
		<category><![CDATA[winner]]></category>

		<guid isPermaLink="false">http://mochiland.com/?p=6176</guid>
		<description><![CDATA[Winner&#8217;s Circle This week&#8217;s Flash Game Friday winner is Greens Survive Only When Reds Die by Oleksii Zagorodnii! You have to love a game with instructions in the title, and this title pretty much says it all- Greens Survive Only When Reds Die! The object is to get the green guy through the door. Problem [...]]]></description>
			<content:encoded><![CDATA[ <h1>Winner&#8217;s Circle</h1>
<p>This week&#8217;s Flash Game Friday winner is <a href="http://www.mochimedia.com/games/play/greens-survive-only-when-reds-die">Greens Survive Only When Reds Die</a> by <a href="http://www.friedpixel.com/">Oleksii Zagorodnii</a>!<br />
<a href="http://www.mochimedia.com/games/play/greens-survive-only-when-reds-die"><img class="alignleft size-full wp-image-6178" style="border: 0px;" title="Greens Survive Only When Reds Die" src="http://mochiland.com/wp-content/uploads/2012/01/Greens-Survive-Only-When-Reds-Die.png" alt="" width="560" height="280" /></a><br />
You have to love a game with instructions in the title, and this title pretty much says it all- Greens Survive Only When Reds Die!</p>
<p>The object is to get the green guy through the door. Problem is, you have to make sure to kill the red guys in order to get the door open&#8230;without killing the green guy, of course!</p>
<p>Greens Survive Only When Reds Die is a great platformer witha unique gameplay twist- congratulations Oleksii!</p>
<h2>Get To Know Oleksii Zagorodnii</h2>
<h4>Tell me about yourself- how many people are on your team? Where are you based?</h4>
<p>There is one person in my team, this is me :). I live in Kyiv, Ukraine. I do programming and art by myself, but I know nothing about writing music, so the music for most of my games is created by Alexander Ahura. He is a really great composer and I&#8217;m happy to work with him.</p>
<h4>How long have you been making games? What did you do before?</h4>
<p>I&#8217;ve been making (actually, trying to make) games since I was in school. Back in those days I used Game Maker and then BlitzMax, but never actually finishing anything. I completed my first Flash game in the summer of 2010, and since then I have created six more games, all of which can be found at my site: <a href="http://www.friedpixel.com/">friedpixel.com</a>.</p>
<h4>What was your inspiration for &#8220;Greens Survive Only When Reds Die&#8221;?</h4>
<p>I really love platform games and wanted to create something original and fun in this genre. The idea of playing with lots of characters at the same time looked promising. However, I saw a few released games where players controlled several characters simultaneously, so I decided to add a twist, and make some of these controlled characters &#8216;bad&#8217;, setting a task for players to kill them.</p>
<h4>Any major challenges or hurdles during development?</h4>
<p>The main challenge for me is my laziness. I&#8217;m not a full-time game developer. I have a dayjob and sometimes it&#8217;s very difficult to start working on a game, especially when the prototype and all of the experiments are done and there are lots of things and polishing to be done to complete the final version.</p>
<h4>What types of games do you like to create the most? What types of games do you like to play the most?</h4>
<p>I love to create different arcade and platform games. I also enjoy playing platform games in Flash and on mobile devices the most. Sometimes I also play some big AAA games on XBox, the last were Gears of War and Skyrim.</p>
<h4>How long is your game creation cycle? What is your process?</h4>
<p>Usually it takes 2-3 months to finish a game. There is not so much work in the type of games I create, but I can&#8217;t spend a lot of time on them. There is no particular process; I just do the things that need to be done to create the game.</p>
<h4>Are there any game developers that you admire or consider &#8220;rock stars&#8221;?</h4>
<p>I really admire indie developers who create original and fun games, especially those who share their experience and help less experienced game creators. I would name Adam Atomic (Canabalt and Flixel, my favorite Flash engine) and Johnny-K (Cover Orange, Ragdoll Cannon).</p>
<h4>What is it about making a new game that you enjoy most?</h4>
<p>At the first stages of development it&#8217;s really fun to try new things and see how game mechanic starts working. Later, when the game is released, I like to read reviews from players on different sites. It&#8217;s really great to know that some people from the different corners of the Earth like your creation.</p>
<h4>Do you have any hot projects you&#8217;re working on right now?</h4>
<p>Everyone is making mobile games now. I thought that I also may try to create something in this field and started new arcade shooter for iPhone with my friend. Unfortunately, we didn&#8217;t make it as quickly as we would have liked, and it&#8217;s still a little too early to draw any conclusions about the success of the game.</p>
<p>&nbsp;</p>
<p><em><strong>Thanks Oleksii, and congratulations again on winning Flash Game Friday!</strong></em></p>
 <div class='series_toc'></div>	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; Colin Cupp for <a href="http://mochiland.com">MochiLand</a>, 2012. |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-greens-survive-only-when-reds-die">Permalink</a> |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-greens-survive-only-when-reds-die#comments">2 comments</a></p>
	<p>Add to <a href="http://del.icio.us/post?url=http://mochiland.com/articles/flash-game-friday-winner-greens-survive-only-when-reds-die&amp;title=Flash Game Friday Winner: Greens Survive Only When Reds Die">del.icio.us</a></p>
	<p>Search blogs linking this post with <a href="http://www.technorati.com/search/http://mochiland.com/articles/flash-game-friday-winner-greens-survive-only-when-reds-die" title="Search on Technorati">Technorati</a></p>
	<p>Want more on these topics ? Browse the archive of posts filed under <a href="http://mochiland.com/category/mochiland/developer-feed" title="View all posts in Developer Feed" rel="category tag">Developer Feed</a>, <a href="http://mochiland.com/category/mochiland/developer-spotlight" title="View all posts in Developer Spotlight" rel="category tag">Developer Spotlight</a>, <a href="http://mochiland.com/category/mochiland/flash-game-friday" title="View all posts in Flash Game Friday" rel="category tag">Flash Game Friday</a>, <a href="http://mochiland.com/category/mochiland/featured-games" title="View all posts in Game Showcase" rel="category tag">Game Showcase</a>, <a href="http://mochiland.com/category/mochiland" title="View all posts in MochiLand Topics" rel="category tag">MochiLand Topics</a>, <a href="http://mochiland.com/category/mochiland/publisher-feed" title="View all posts in Publisher Feed" rel="category tag">Publisher Feed</a>.</p><img src="http://feeds.feedburner.com/~r/Mochiland/~4/AKs-RS6c_vU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mochiland.com/articles/flash-game-friday-winner-greens-survive-only-when-reds-die/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://mochiland.com/articles/flash-game-friday-winner-greens-survive-only-when-reds-die</feedburner:origLink></item>
		<item>
		<title>Flash Game Friday Winner: Orbits</title>
		<link>http://feedproxy.google.com/~r/Mochiland/~3/Wjiu01AFtIg/flash-game-friday-winner-orbits</link>
		<comments>http://mochiland.com/articles/flash-game-friday-winner-orbits#comments</comments>
		<pubDate>Mon, 23 Jan 2012 22:17:48 +0000</pubDate>
		<dc:creator>Colin Cupp</dc:creator>
				<category><![CDATA[Developer Feed]]></category>
		<category><![CDATA[Developer Spotlight]]></category>
		<category><![CDATA[Flash Game Friday]]></category>
		<category><![CDATA[Game Showcase]]></category>
		<category><![CDATA[MochiLand Topics]]></category>
		<category><![CDATA[Publisher Feed]]></category>
		<category><![CDATA[Andy Brown]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[Mochi Media]]></category>
		<category><![CDATA[Orbits]]></category>
		<category><![CDATA[winner]]></category>

		<guid isPermaLink="false">http://mochiland.com/?p=6162</guid>
		<description><![CDATA[Winner&#8217;s Circle This week&#8217;s Flash Game Friday winner is Orbits by Andy Brown! Orbits is a really well-made physics-based puzzler. You are a ship, and you have to propel yourself to the target on the planet. As you complete this task, you advance to the next level. You start in Autumn, and work your way [...]]]></description>
			<content:encoded><![CDATA[ <h1>Winner&#8217;s Circle</h1>
<p>This week&#8217;s Flash Game Friday winner is <a href="http://www.mochimedia.com/games/play/orbits_v858584">Orbits</a> by <a href="https://www.mochimedia.com/community/profile/AndyBrown">Andy Brown</a>!</p>
<p><a href="http://www.mochimedia.com/games/play/orbits_v858584"><img class="alignleft size-full wp-image-6164" style="border: 0px;" title="Orbits" src="http://mochiland.com/wp-content/uploads/2012/01/Orbits.png" alt="" width="560" height="280" /></a></p>
<p>Orbits is a really well-made physics-based puzzler. You are a ship, and you have to propel yourself to the target on the planet. As you complete this task, you advance to the next level. You start in Autumn, and work your way through Spring, Summer, and Winter, each with their own design and music.</p>
<p>So, just aim for the target right? Well, it isn&#8217;t <em>that</em> easy. There are a certain amount of moves it should take you to complete each level, and you gain points for coming in at or under &#8220;par&#8221;, so keep an eye on your click level. If you go over your click level it is very bad for your score!</p>
<p>Obstacles also get in your way, where you need to go around them just to get close to the target. Coins are available throughout the game, which you can collect. You can use these coins to upgrade your ship. There are also 20 different achievements waiting to be unlocked!</p>
<p>Orbits is a well-made game with great artwork and fun game mechanics. Congratulations Andy Brown!</p>
<h2>Get To Know Andy Brown</h2>
<h4>Tell me about yourself- how many people are on your team? Where are you based?</h4>
<p>We have three people on our team right now, Sam, Chris, and myself. Sam does artwork and design, Chris does the music, and I do the programming and whatever else is needed. I currently live in Northern Idaho, USA.</p>
<h4>How long have you been making games? What did you do before?</h4>
<p>My first released Flash game was in 2006, but I started making games a few years before that, and designing them long before that just drawing out concepts on paper. I didn&#8217;t do anything before making games, I was making them while I was still in high school.</p>
<h4>What was your inspiration for &#8220;Orbits&#8221;?</h4>
<p>This was actually the first game that I&#8217;ve made where I did not come up with the original concept. I asked the designer / artist of the game and he said: &#8220;It just.. came to me *adjusts sunglasses*&#8221;.</p>
<h4>Any major challenges or hurdles during development?</h4>
<p>There were a few new concepts in this game for me that took me awhile to get working how I wanted. The gravity mechanics and the bouncing mechanics took me the longest to get right without over complicating the whole process.</p>
<h4>What types of games do you like to create the most? What types of games do you like to play the most?</h4>
<p>This is a really hard question for me, as I like playing and making almost all genres of games. I think I have the most fun making games with randomly generated content, because then I get excited when seeing something new every time I playtest it. Lately I&#8217;ve been playing a lot of Skyrim, so I will just leave it at that for what I play the most.</p>
<h4>How long is your game creation cycle? What is your process?</h4>
<p>My game creation cycles vary for every game, and gets shorter as I master more techniques. Orbits took us nearly six months to make and polish. My process usually consists of coming up with a game idea,  brainstorming with my co-workers and friends, writing down the best ideas and then just start making the game, adding in new ideas and crossing out others as the game continues development.</p>
<h4>Are there any game developers that you admire or consider &#8220;rock stars&#8221;?</h4>
<p>There are actually quite a few! Shigeru Miyamoto, John Carmack, Gabe Newell, and Tim Schafer would be the ones I admire the most. What is it about making a new game that you enjoy most? My favorite moment is when I&#8217;m struggling with a new idea and I finally get the idea working in the game. It&#8217;s a very rewarding feeling to see your ideas come to life.</p>
<h4>Do you have any hot projects you&#8217;re working on right now?</h4>
<p>Yes, I do! I&#8217;m currently working on a couple projects.</p>
<p>The first one is a platformer where you play as a ninja and is planned to play like a distance game where you must keep running to the right with randomly generated obstacles, collect coins, and purchase upgrades.</p>
<p>The second project is a RPG where you are stranded on an island and need to survive by foraging, crafting, and killing wild animals. This one started as a Ludum Dare 22 project and I had so much fun with the idea that I decided I would flesh it out and make a full game out of it.</p>
<p>&nbsp;</p>
<p><em><strong>Thanks Andy, best of luck to you and the team on your upcoming projects!</strong></em></p>
 <div class='series_toc'></div>	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; Colin Cupp for <a href="http://mochiland.com">MochiLand</a>, 2012. |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-orbits">Permalink</a> |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-orbits#comments">No comment</a></p>
	<p>Add to <a href="http://del.icio.us/post?url=http://mochiland.com/articles/flash-game-friday-winner-orbits&amp;title=Flash Game Friday Winner: Orbits">del.icio.us</a></p>
	<p>Search blogs linking this post with <a href="http://www.technorati.com/search/http://mochiland.com/articles/flash-game-friday-winner-orbits" title="Search on Technorati">Technorati</a></p>
	<p>Want more on these topics ? Browse the archive of posts filed under <a href="http://mochiland.com/category/mochiland/developer-feed" title="View all posts in Developer Feed" rel="category tag">Developer Feed</a>, <a href="http://mochiland.com/category/mochiland/developer-spotlight" title="View all posts in Developer Spotlight" rel="category tag">Developer Spotlight</a>, <a href="http://mochiland.com/category/mochiland/flash-game-friday" title="View all posts in Flash Game Friday" rel="category tag">Flash Game Friday</a>, <a href="http://mochiland.com/category/mochiland/featured-games" title="View all posts in Game Showcase" rel="category tag">Game Showcase</a>, <a href="http://mochiland.com/category/mochiland" title="View all posts in MochiLand Topics" rel="category tag">MochiLand Topics</a>, <a href="http://mochiland.com/category/mochiland/publisher-feed" title="View all posts in Publisher Feed" rel="category tag">Publisher Feed</a>.</p><img src="http://feeds.feedburner.com/~r/Mochiland/~4/Wjiu01AFtIg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mochiland.com/articles/flash-game-friday-winner-orbits/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mochiland.com/articles/flash-game-friday-winner-orbits</feedburner:origLink></item>
		<item>
		<title>Flash Game Friday Winner: Raze 2</title>
		<link>http://feedproxy.google.com/~r/Mochiland/~3/WfAmpOv-Ym4/flash-game-friday-winner-raze-2</link>
		<comments>http://mochiland.com/articles/flash-game-friday-winner-raze-2#comments</comments>
		<pubDate>Mon, 09 Jan 2012 20:22:17 +0000</pubDate>
		<dc:creator>Colin Cupp</dc:creator>
				<category><![CDATA[Developer Feed]]></category>
		<category><![CDATA[Developer Spotlight]]></category>
		<category><![CDATA[Flash Game Friday]]></category>
		<category><![CDATA[MochiLand Topics]]></category>
		<category><![CDATA[Publisher Feed]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[Juice-Tin]]></category>
		<category><![CDATA[Mochi Media]]></category>
		<category><![CDATA[Raze 2]]></category>
		<category><![CDATA[winner]]></category>

		<guid isPermaLink="false">http://mochiland.com/?p=6131</guid>
		<description><![CDATA[Winner&#8217;s Circle This week&#8217;s Flash Game Friday Winner is Raze 2 by Juice-Tin! If shooters are your thing, this will be your new favorite game. Raze 2 really delivers as a big-time shooter with a ton of polish and tight gameplay. You are a soldier in the Raze unit, and your mission is to eradicate [...]]]></description>
			<content:encoded><![CDATA[ <h1>Winner&#8217;s Circle</h1>
<p>This week&#8217;s Flash Game Friday Winner is <a href="http://www.mochimedia.com/games/play/raze-2">Raze 2</a> by <a href="http://www.juice-tin.com/">Juice-Tin</a>!</p>
<p><a href="http://www.mochimedia.com/games/play/raze-2"><img class="alignleft size-full wp-image-6135" style="border: 0px;" title="Raze 2" src="http://mochiland.com/wp-content/uploads/2012/01/Raze-2_560x280.jpg" alt="" width="560" height="280" /></a></p>
<p>If shooters are your thing, this will be your new favorite game. Raze 2 really delivers as a big-time shooter with a ton of polish and tight gameplay.</p>
<p>You are a soldier in the Raze unit, and your mission is to eradicate aliens from the planet. You have a wide range of weapons to select from, and as you play you can upgrade your soldier with a variety of options. Speaking of upgrades, you can also upgrade a bunch of abilities and items using an in-game credits system- so you can really customize the game and your soldier to your liking!</p>
<p>All of these upgrades, amazing artwork, and superb gameplay make Raze 2 a natural choice for Flash Game Friday. Congratulations Juice-Tin!</p>
<h2>Get To Know Juice-Tin</h2>
<h4>Tell me about yourself- how many people are on your team? Where are you based?</h4>
<p>As of right now, our team consists of one programmer (myself), and two artists. They take turns making games with me, as their both also busy with school/work. Right we&#8217;re located in Canada, Ontario/Quebec and are planning on forming a company soon and expanding to a much bigger staff. Games will still be created by only two people, but a bigger staff means we can work on multiple games at once, on multiple platforms!</p>
<h4>How long have you been making games? What did you do before?</h4>
<p>Funny thing is that all three of us always wanted to be artists, including me! I&#8217;ve always loved drawing and expressing my creativity. When I finally tried programming in highschool I fell in love, and have been creating games just for fun ever since. It wasn&#8217;t until about 3 years ago that I finally decided my work was good enough to release publicly.</p>
<h4>What was your inspiration for &#8220;Raze 2&#8243;?</h4>
<p>One of the things we really wanted to achieve, was the big environments found in the Halo games, and the very vibrant and almost exotic areas from the game Bullet Storm. We really wanted it to feel like you were just a small person in a huge world, despite being limited to a small map. As you can also probably tell, we&#8217;re both fans of the leveling up and upgrading systems found in many shooters today. It was these new PC/Console first person shooters that made us strive to make the biggest and best game we possibly could. Since we can&#8217;t yet make a full game for PC/Console, we wanted to achieve as close to it as possible with Raze 2.</p>
<h4>What are the major improvements / changes compared to the original Raze?</h4>
<p>There&#8217;s really too many to list here. We read almost every possible comment about Raze 1, and because of the success it had, really wanted to fix as many problems people had with the original Raze as possible. We first started with a completely new game engine, created from scratch. Raze 2 now features tighter controls/camera, smarter AI, and a 100x better game engine, that allows an incredible amount of detail in the maps and effects (including waterfalls, sparks, etc) without causing slowdown for decent computers. Aside from the technical point of view, the levels are much more detailed and better designed for a shooting type of game. Oh yeah, there&#8217;s also over 26 more weapons than Raze 1, 9 modifying equipments, 7 abilities, a deep and detailed campaign with cut-scenes, and up to 4 separate teams allowed in game play.</p>
<h4>Any major challenges or hurdles in creating Raze 2?</h4>
<p>To be completely honest, no, actually. Creating Raze 1 was more or less a nightmare. Being our first game we were doing a lot of trial and error. We learned an incredible amount from not only our Raze 1 experiences, but all the feedback we got from it&#8217;s players. With everything we learned, we were actually able to create Raze 2 quite smoothly. In terms of the engine, I already created one slightly similar when I created the engine for Siegius. So really, from everything we did prior to starting Raze 2, we ended up being 100% prepared for everything ahead of us, as we&#8217;ve tackled it all before, and now knew the proper ways to do it all.</p>
<h4>Can we expect another (future) installment in the &#8220;Raze&#8221; series?</h4>
<p>Yes! We have plans for both a Raze 3, and an eventual Raze Online. Because Addison is busy with school, we&#8217;d first like to focus on Raze 3 to complete the story, fix any remaining problems people had with Raze 2, as well as introduce a bunch of really cool, and crazy ideas that couldn&#8217;t make it into Raze 2, including many new ones. Our goal is to get Raze as perfect as possible, so when we have the time to work on the Online version, we&#8217;ll be able to make it both massive, and as enjoyable to all as humanly possible!</p>
<h4>What types of games do you like to create the most? What types of games do you like to play the most?</h4>
<p>All, and all. I really enjoy all types of games. From RPG&#8217;s Shooters, and Strategy games, to the silly games, Viva Pinata, Party games, etc. One of my long term goals actually, is to create a game of every genre. I would normally not want to create sequels, as you don&#8217;t learn too much or get to challenge yourself as much when you stick to the same type of game (Raze being an exception of course because of how well it was received, and how fun it was to make). But I would really love to explore every possible Genre. So far I&#8217;ve created Shooter, Strategy, Puzzle, Adventure/Rpg, and now we&#8217;ve got a beat&#8217;em&#8217;up, and eventually a 3rd person Racer in the works. I feel every new type of game you create, furthers your skill, and teaches you many more techniques that can be used in other games. It&#8217;s this reason I would like to continue making a variety of games, along with Raze.</p>
<h4>How long is your game creation cycle? What is your process?</h4>
<p>Depending on the game size, we try to take about 1 month for small games, and 4 months for larger games (such as Raze 2). I used to do all my work on my main computer, but purchased a new Laptop strictly for game development, which helps keep my personal data and work data separate. As of now the development process is the same as any, work as much as possible while keeping in good contact with your team. However because Raze 2 was such a huge project, I took a 6.5 hour bus ride to stay with Addison for 1.5 weeks. Surprisingly, we did about a month&#8217;s worth of work in just that week and a half. It really is incredible how much more gets accomplished when working side by side with your partner.</p>
<h4>Are there any game developers that you admire or consider &#8220;rock stars&#8221;?</h4>
<p>Absolutely! I really admire the developers that start off small, and are able to expand into a well known and established company. One that I really appreciate is the work of Tom Fulp and Dan Paladin at The Behemoth. They both started as Flash developers and went on to create the excellent XBLA title &#8216;Castle Crashers&#8217;. Another would be Edmund McMillen and Florian Himsl, who also went from Flash developers, to remaking their game Super Meatboy for PC as well as multiple consoles. Their newest game Binding of Isaac, is actually a Flash game that was ported to PC via Steam. This is direction I&#8217;m trying to go in now, and would love to achieve some day.</p>
<h4>What is it about making a new game that you enjoy most?</h4>
<p>Well really, who doesn&#8217;t love creating new things? Much of it comes from the positive feedback when other people play my game. It really makes you feel good, knowing many people really enjoy something you created. It feels good to make people happy, it feels great to know they are thoroughly entertained, and it&#8217;s nice to sit back at the end of it all, look at your work and what you&#8217;ve accomplished, and think &#8220;I did that :)&#8221;.</p>
<h4>Do you have any hot projects you&#8217;re working on right now?</h4>
<p>Yes! I&#8217;m currently working on a Gladiator game with Sleva (artist from Siegius). The game has been put on hold for the holiday month, but should be finished sometime soon. Screenshots are available at Juice-Tin.com.</p>
<p><em><strong>Thanks Juice-tin, can&#8217;t wait to play your upcoming Gladiator game as well as Raze 3!</strong></em></p>
 <div class='series_toc'></div>	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; Colin Cupp for <a href="http://mochiland.com">MochiLand</a>, 2012. |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-raze-2">Permalink</a> |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-raze-2#comments">One comment</a></p>
	<p>Add to <a href="http://del.icio.us/post?url=http://mochiland.com/articles/flash-game-friday-winner-raze-2&amp;title=Flash Game Friday Winner: Raze 2">del.icio.us</a></p>
	<p>Search blogs linking this post with <a href="http://www.technorati.com/search/http://mochiland.com/articles/flash-game-friday-winner-raze-2" title="Search on Technorati">Technorati</a></p>
	<p>Want more on these topics ? Browse the archive of posts filed under <a href="http://mochiland.com/category/mochiland/developer-feed" title="View all posts in Developer Feed" rel="category tag">Developer Feed</a>, <a href="http://mochiland.com/category/mochiland/developer-spotlight" title="View all posts in Developer Spotlight" rel="category tag">Developer Spotlight</a>, <a href="http://mochiland.com/category/mochiland/flash-game-friday" title="View all posts in Flash Game Friday" rel="category tag">Flash Game Friday</a>, <a href="http://mochiland.com/category/mochiland" title="View all posts in MochiLand Topics" rel="category tag">MochiLand Topics</a>, <a href="http://mochiland.com/category/mochiland/publisher-feed" title="View all posts in Publisher Feed" rel="category tag">Publisher Feed</a>.</p><img src="http://feeds.feedburner.com/~r/Mochiland/~4/WfAmpOv-Ym4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mochiland.com/articles/flash-game-friday-winner-raze-2/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://mochiland.com/articles/flash-game-friday-winner-raze-2</feedburner:origLink></item>
		<item>
		<title>FGS 2012 Advisory Board Interview Series: Chris Benjaminsen</title>
		<link>http://feedproxy.google.com/~r/Mochiland/~3/Afl462scvRw/fgs-2012-advisory-board-interview-series-chris-benjaminsen</link>
		<comments>http://mochiland.com/articles/fgs-2012-advisory-board-interview-series-chris-benjaminsen#comments</comments>
		<pubDate>Fri, 16 Dec 2011 06:56:50 +0000</pubDate>
		<dc:creator>Colin Cupp</dc:creator>
				<category><![CDATA[Developer Feed]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games Industry]]></category>
		<category><![CDATA[Mochi Media Announcements]]></category>
		<category><![CDATA[MochiLand Topics]]></category>
		<category><![CDATA[advisory board]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[FGS 2012]]></category>
		<category><![CDATA[flash gaming summit]]></category>
		<category><![CDATA[Interview Series]]></category>
		<category><![CDATA[Mochi Media]]></category>
		<category><![CDATA[PlayerScale]]></category>

		<guid isPermaLink="false">http://mochiland.com/?p=5953</guid>
		<description><![CDATA[FGS 2012 Advisory Board Interview Series This is part five in a series of interviews of the Flash Gaming Summit 2012 Advisory Board. This is your chance to get to know the folks who determine the content of Flash Gaming Summit, getting their thoughts on both the conference and the games industry in general. This week&#8217;s [...]]]></description>
			<content:encoded><![CDATA[ <p><a href="http://www.flashgamingsummit.com"><img class="alignleft size-full wp-image-6092" style="border: 0px;" title="fgs2012_interview_series_banner" src="http://mochiland.com/wp-content/uploads/2011/12/fgs2012_interview_series_banner.jpg" alt="" width="650" height="100" /></a></p>
<h1>FGS 2012 Advisory Board Interview Series</h1>
<p>This is part five in a series of interviews of the <a href="http://www.flashgamingsummit.com">Flash Gaming Summit 2012</a> Advisory Board. This is your chance to get to know the folks who determine the content of Flash Gaming Summit, getting their thoughts on both the conference and the games industry in general. This week&#8217;s Advisory Board interview features Chris Benjaminsen, co-founder of <a href="http://playerscale.com/">PlayerScale</a>.</p>
<p>For more information on Flash Gaming Summit, including passes, speaking, or award show information <a href="http://www.flashgamingsummit.com">please visit the conference website</a>.</p>
<p><a href="http://playerscale.com/"><img class="alignleft size-full wp-image-6089" style="border: 0px;" title="Chris-PlayerScale2" src="http://mochiland.com/wp-content/uploads/2011/12/Chris-PlayerScale2.png" alt="" width="600" height="109" /></a></p>
<h2>Introduce yourself- who are you, how big is your team, and how do you participate in the Flash games industry?</h2>
<p>Hi, I&#8217;m Chris Benjaminsen, one of the founders of PlayerScale, a company providing hosted Services and API&#8217;s for large publishers and game studios. We also allow indie developers to use our tools via Player.IO.</p>
<h2>What did you do before?</h2>
<p>Before founding PlayerScale I helped found the flash games community Nonoba.</p>
<h2>How did you first get into the Flash games industry? Tell us about your path.</h2>
<p>Before PlayerScale and Nonoba we ran a production agency called BeIT for several years. BeIT focused on producing realtime multiplayer and social games for clients.</p>
<h2>What drove you to create Player.IO, and now PlayScale?</h2>
<p>PlayerScale and the Player.IO tools is build on a love for making games. The services and API&#8217;s we now offer all started out as our internal tools used to build our own games.  Today we choose what new services and features to create based purely on popular demand by our developers. Our started goals is to empower developers.</p>
<h2>What has been your single biggest challenge in the Flash games industry? How does it compare to the types of challenges you face today?</h2>
<p>The single biggest challenge we have had to overcome was simply making money from flash games. Historically almost all of the revenue in the Flash games industry has been in the hands of the portals, making it almost impossible for developers to do more than minor hobby projects.</p>
<h2>What has been your proudest moment since joining the Flash gaming community?</h2>
<p>My proudest moment where seeing the success of Kyle Champ&#8217;s game Shell Shock Live. Kyle where the first of many indie developers that are now making a living purely from their Player.IO powered games.</p>
<h2>What is it that you love the MOST about the Flash games industry?</h2>
<p>The amount of creativity. I am blown away by the amount of new cool ideas and games created by the developers. It&#8217;s no surprise to me that many of the old flash games can now be played on Mobiles, Consoles etc.</p>
<h2>What do you like the least?</h2>
<p>Seeing developers have to give up their dream of making games. Typically because they where unable to make a living doing so.</p>
<h2>How has the industry changed since you fist joined?</h2>
<p>When we first started out there where hardly an industry, anybody who could make a reasonably good game would be guaranteed an almost endless amount of traffic. Today the shear volume of new content makes it very hard for developers to create a hit title.</p>
<h2>How do you think Flash game developers are &#8220;Maximizing their games&#8221; today? What could they be doing better / differently?</h2>
<p>We are finally seeing developers taking control of their games. Developers today are much more aware of the value of what they create.</p>
<h2>Where do you see the Flash games industry going? What&#8217;s in store for the future?</h2>
<p>I see the industry growing beyond flash and flash portals. HTML5, Mobile &amp; Facebook has forever changed the market for the better.</p>
<h2>What part of Flash Gaming Summit do you most enjoy or look forward to?</h2>
<p>Meeting developers, studios and portals. Always great fun.</p>
<h2>In your opinion, why should people come out to FGS 2012? What should they expect?</h2>
<p>Come to FGS to meet more creative game developers than you could anywhere else.</p>
<p>&nbsp;</p>
<p><em><strong>Thanks Chris, see you at FGS 2012!</strong></em></p>
 <div class='series_toc'></div>	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; Colin Cupp for <a href="http://mochiland.com">MochiLand</a>, 2011. |
	  <a href="http://mochiland.com/articles/fgs-2012-advisory-board-interview-series-chris-benjaminsen">Permalink</a> |
	  <a href="http://mochiland.com/articles/fgs-2012-advisory-board-interview-series-chris-benjaminsen#comments">No comment</a></p>
	<p>Add to <a href="http://del.icio.us/post?url=http://mochiland.com/articles/fgs-2012-advisory-board-interview-series-chris-benjaminsen&amp;title=FGS 2012 Advisory Board Interview Series: Chris Benjaminsen">del.icio.us</a></p>
	<p>Search blogs linking this post with <a href="http://www.technorati.com/search/http://mochiland.com/articles/fgs-2012-advisory-board-interview-series-chris-benjaminsen" title="Search on Technorati">Technorati</a></p>
	<p>Want more on these topics ? Browse the archive of posts filed under <a href="http://mochiland.com/category/mochiland/developer-feed" title="View all posts in Developer Feed" rel="category tag">Developer Feed</a>, <a href="http://mochiland.com/category/mochiland/front-page" title="View all posts in Front Page" rel="category tag">Front Page</a>, <a href="http://mochiland.com/category/mochiland/games-industry" title="View all posts in Games Industry" rel="category tag">Games Industry</a>, <a href="http://mochiland.com/category/mochiland/mochi-media-announcements" title="View all posts in Mochi Media Announcements" rel="category tag">Mochi Media Announcements</a>, <a href="http://mochiland.com/category/mochiland" title="View all posts in MochiLand Topics" rel="category tag">MochiLand Topics</a>.</p><img src="http://feeds.feedburner.com/~r/Mochiland/~4/Afl462scvRw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mochiland.com/articles/fgs-2012-advisory-board-interview-series-chris-benjaminsen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mochiland.com/articles/fgs-2012-advisory-board-interview-series-chris-benjaminsen</feedburner:origLink></item>
		<item>
		<title>Special Offer! “Socialize Toronto” Discount for Mochi Community</title>
		<link>http://feedproxy.google.com/~r/Mochiland/~3/Itjm0kzdt78/special-offer-socialize-toronto-discount-for-mochi-community</link>
		<comments>http://mochiland.com/articles/special-offer-socialize-toronto-discount-for-mochi-community#comments</comments>
		<pubDate>Thu, 15 Dec 2011 15:00:22 +0000</pubDate>
		<dc:creator>Colin Cupp</dc:creator>
				<category><![CDATA[Games Industry]]></category>
		<category><![CDATA[MochiLand Topics]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[Mediabistro]]></category>
		<category><![CDATA[Mochi Media]]></category>
		<category><![CDATA[Socialize]]></category>
		<category><![CDATA[summit]]></category>

		<guid isPermaLink="false">http://mochiland.com/?p=6073</guid>
		<description><![CDATA[Mochi Media Community Members Save 15% on Socialize: Monetizing Social Media – Toronto Join Mediabistro, SocialTimes, and AllFacebook on January 27 at Socialize: Monetizing Social Media-Toronto, and learn how all the social media pieces fit together to create a unified and profitable business strategy. The Socialize program gives a detailed look into a wide range [...]]]></description>
			<content:encoded><![CDATA[ <h1>Mochi Media Community Members Save 15% on Socialize: Monetizing Social Media – Toronto</h1>
<p>Join Mediabistro, SocialTimes, and AllFacebook on January 27 at <a href="http://www.mediabistro.com/socialize/?c=szmochi">Socialize: Monetizing Social Media-Toronto</a>, and learn how all the social media pieces fit together to create a unified and profitable business strategy.</p>
<p><a href="http://www.mediabistro.com/socialize/program.asp?c=szmochi"><img class="alignleft size-full wp-image-6075" style="border: 0px;" title="1110_socialize_toronto_200x200" src="http://mochiland.com/wp-content/uploads/2011/12/1110_socialize_toronto_200x200.gif" alt="" width="200" height="200" /></a></p>
<p>The Socialize program gives a detailed look into a wide range of social media topics including:</p>
<ul>
<li>How to      Leverage the Social Media Channel &amp; Drive Measurable Results</li>
<li>How to      Advertise and Increase Visibility on Facebook for Results and ROI</li>
<li>How to      use Google+ to Generate the Most Traffic and Conversion</li>
<li>The      Power of Twitter Chats</li>
<li>Advanced      Social Media Marketing Techniques</li>
</ul>
<p>You’ll have the chance to connect with some of today’s most influential social media leaders including Sam Fiorella (Chief Strategy Sensei, Sensei Marketing), Judi Samuels (Manager of Corporate Communications, Maritz Canada Inc.), Dawn Wentzell (Project Manager of Mobile Technology, SpeakFeel), and Andjelika Martin (Director of Web Marketing &amp; Development, M Resport Spa Casino).</p>
<p><a href="http://www.mediabistro.com/socialize/program.asp?c=szmochi">View the full speaker lineup and program here</a>.</p>
<p><a href="http://www.mediabistro.com/socialize/register.asp?c=szmochi"><strong>Register</strong></a><strong> by the end of today, December 15 with code “SZMOCHI” and receive an extra 15% discount on the gold passport early bird registration rate</strong>. Hope to see you there!</p>
<p>&nbsp;</p>
 <div class='series_toc'></div>	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; Colin Cupp for <a href="http://mochiland.com">MochiLand</a>, 2011. |
	  <a href="http://mochiland.com/articles/special-offer-socialize-toronto-discount-for-mochi-community">Permalink</a> |
	  <a href="http://mochiland.com/articles/special-offer-socialize-toronto-discount-for-mochi-community#comments">No comment</a></p>
	<p>Add to <a href="http://del.icio.us/post?url=http://mochiland.com/articles/special-offer-socialize-toronto-discount-for-mochi-community&amp;title=Special Offer! &#8220;Socialize Toronto&#8221; Discount for Mochi Community">del.icio.us</a></p>
	<p>Search blogs linking this post with <a href="http://www.technorati.com/search/http://mochiland.com/articles/special-offer-socialize-toronto-discount-for-mochi-community" title="Search on Technorati">Technorati</a></p>
	<p>Want more on these topics ? Browse the archive of posts filed under <a href="http://mochiland.com/category/mochiland/games-industry" title="View all posts in Games Industry" rel="category tag">Games Industry</a>, <a href="http://mochiland.com/category/mochiland" title="View all posts in MochiLand Topics" rel="category tag">MochiLand Topics</a>.</p><img src="http://feeds.feedburner.com/~r/Mochiland/~4/Itjm0kzdt78" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mochiland.com/articles/special-offer-socialize-toronto-discount-for-mochi-community/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mochiland.com/articles/special-offer-socialize-toronto-discount-for-mochi-community</feedburner:origLink></item>
		<item>
		<title>Flash Game Friday Winner: Fling A Thing</title>
		<link>http://feedproxy.google.com/~r/Mochiland/~3/p-7wIhpKre4/flash-game-friday-winner-fling-a-thing</link>
		<comments>http://mochiland.com/articles/flash-game-friday-winner-fling-a-thing#comments</comments>
		<pubDate>Fri, 09 Dec 2011 23:26:27 +0000</pubDate>
		<dc:creator>Colin Cupp</dc:creator>
				<category><![CDATA[Developer Feed]]></category>
		<category><![CDATA[Flash Game Friday]]></category>
		<category><![CDATA[Game Showcase]]></category>
		<category><![CDATA[MochiLand Topics]]></category>
		<category><![CDATA[Publisher Feed]]></category>
		<category><![CDATA[Big Blue Bubble]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[Fling A Thing]]></category>
		<category><![CDATA[Mochi Media]]></category>
		<category><![CDATA[winner]]></category>

		<guid isPermaLink="false">http://mochiland.com/?p=6053</guid>
		<description><![CDATA[Winner&#8217;s Circle This week&#8217;s Flash Game Friday winner is Fling A Thing by Big Blue Bubble! The creators of the smash hit mobile game Burn the Rope created a Flash version of Fling a Thing (also available for iOS and Android). Fling a Thing is a great example of creating a high quality game for [...]]]></description>
			<content:encoded><![CDATA[ <h1>Winner&#8217;s Circle</h1>
<p>This week&#8217;s Flash Game Friday winner is <a href="http://www.mochimedia.com/games/play/fling-a-thing/">Fling A Thing</a> by <a href="http://bigbluebubble.com/">Big Blue Bubble</a>!</p>
<p><a href="http://www.mochimedia.com/games/play/fling-a-thing/"><img class="alignleft size-full wp-image-6064" style="border: 0px;" title="Fling a thing_560x280" src="http://mochiland.com/wp-content/uploads/2011/12/Fling-a-thing_560x280.png" alt="" width="560" height="280" /></a><br />
The creators of the smash hit mobile game Burn the Rope created a Flash version of Fling a Thing (also available for iOS and Android). Fling a Thing is a great example of creating a high quality game for multiple platforms.</p>
<p>In this game, your job is to catch the bubbles with your insect by &#8220;flinging&#8221; it up. You only get a specific allotment of flings per level, so you have to use them wisely. You collect stars as your in-game currency, which you can exchange for new characters, worlds, and even powerups. If collecting stars takes too long, you can always purchase them in bundles from the store.</p>
<p>Fling a Thing is a well-executed game with a lot of polish. The store really complements the gameplay, and the mechanics are simple. Congratulations Big Blue Bubble!</p>
<h2>Get to Know Big Blue Bubble</h2>
<h4>Tell me about yourself- how many people are on your team? Where are you based?</h4>
<p>The Flash Fling a Thing team consisted of three people, a programmer, an artist and myself.  I mainly worked on the design. We all work for Big Blue Bubble which employs around 40 people and we are located in London, Ontario, Canada.</p>
<h4>How long have you been making games? What did you do before?</h4>
<p>I personally have been making games for almost 12 years now, yet Fling a Thing was my first Flash game. I was one of those lucky people who managed to get into the industry right out of school.</p>
<p>Big Blue Bubble has been around for 7 years. Recently, we have mainly been working on smartphone mobile games such as Thumpies and Burn the Rope.</p>
<h4>What was your inspiration for &#8220;Fling a Thing&#8221;?</h4>
<p>Fling a Thing came about in a weird way. Our artist was doodling up some concepts for another game which to me looked like characters with suction cups for mouths (I think they were actually characters spitting or something). We then got the idea to have creatures stick to panes of glass where you stretch them back and fling them in the air.  I then went home and made up a flash prototype for the game. Everyone really liked it and we decided to make it for the iPhone. In the end, the Flash prototype was sitting there so we thought we&#8217;d finish it off and see what happened if we released it.</p>
<h4>What types of games do you like to create the most? What types of games do you like to play the most?</h4>
<p>My favorite types of games are casual puzzle games. I don&#8217;t really have the time for the AAA console games and I&#8217;m tired of all the violent games out there.</p>
<p>I like making those kinds of games the most as well because you can rapidly prototype a game in a couple days to see if your idea works. I also like the smaller teams where I can get more personally involved.</p>
<h4>How long is your game creation cycle? What is your process?</h4>
<p>I would say anywhere from 3 to 6 months, but that is mostly for smartphone titles.</p>
<p>Our process is pretty simple. Come up with a concept, pitch it to my boss and if we get the green light, we start working on it.</p>
<h4>Are there any game developers that you admire or consider &#8220;rock stars&#8221;?</h4>
<p>Not really. I don&#8217;t really follow developers and what they make. I tend to like games that seem to come from nowhere.</p>
<h4>What is it about making a new game that you enjoy most?</h4>
<p>My favorite thing is to think of a concept and see it come to life. Most of the magic seems to happen for me at the beginning when the mechanics are being implemented.</p>
<h4>Do you have any hot projects you&#8217;re working on right now?</h4>
<p>Yes. But I can&#8217;t tell you about them yet.</p>
<p>For more information about the development of Fling a Thing, <a href="http://blog.bbbarcade.com/2011/10/25/the-origins-of-fling-a-thing/">visit the artist&#8217;s blog</a>.</p>
<p>&nbsp;</p>
<p><em><strong>Thanks Big Blue Bubble, and good luck on your top secret upcoming projects!</strong></em></p>
 <div class='series_toc'></div>	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; Colin Cupp for <a href="http://mochiland.com">MochiLand</a>, 2011. |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-fling-a-thing">Permalink</a> |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-fling-a-thing#comments">No comment</a></p>
	<p>Add to <a href="http://del.icio.us/post?url=http://mochiland.com/articles/flash-game-friday-winner-fling-a-thing&amp;title=Flash Game Friday Winner: Fling A Thing">del.icio.us</a></p>
	<p>Search blogs linking this post with <a href="http://www.technorati.com/search/http://mochiland.com/articles/flash-game-friday-winner-fling-a-thing" title="Search on Technorati">Technorati</a></p>
	<p>Want more on these topics ? Browse the archive of posts filed under <a href="http://mochiland.com/category/mochiland/developer-feed" title="View all posts in Developer Feed" rel="category tag">Developer Feed</a>, <a href="http://mochiland.com/category/mochiland/flash-game-friday" title="View all posts in Flash Game Friday" rel="category tag">Flash Game Friday</a>, <a href="http://mochiland.com/category/mochiland/featured-games" title="View all posts in Game Showcase" rel="category tag">Game Showcase</a>, <a href="http://mochiland.com/category/mochiland" title="View all posts in MochiLand Topics" rel="category tag">MochiLand Topics</a>, <a href="http://mochiland.com/category/mochiland/publisher-feed" title="View all posts in Publisher Feed" rel="category tag">Publisher Feed</a>.</p><img src="http://feeds.feedburner.com/~r/Mochiland/~4/p-7wIhpKre4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mochiland.com/articles/flash-game-friday-winner-fling-a-thing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mochiland.com/articles/flash-game-friday-winner-fling-a-thing</feedburner:origLink></item>
		<item>
		<title>FGS 2012 Advisory Board Series: Simon Lachance</title>
		<link>http://feedproxy.google.com/~r/Mochiland/~3/tUtDU21on-o/fgs-2012-advisory-board-series-simon-lachance</link>
		<comments>http://mochiland.com/articles/fgs-2012-advisory-board-series-simon-lachance#comments</comments>
		<pubDate>Wed, 07 Dec 2011 06:14:22 +0000</pubDate>
		<dc:creator>Colin Cupp</dc:creator>
				<category><![CDATA[Developer Feed]]></category>
		<category><![CDATA[Flash Development]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games Industry]]></category>
		<category><![CDATA[Industry News]]></category>
		<category><![CDATA[Mochi Media Announcements]]></category>
		<category><![CDATA[MochiLand Topics]]></category>
		<category><![CDATA[Publisher Feed]]></category>
		<category><![CDATA[Berzerk Studio]]></category>
		<category><![CDATA[FGS 2012]]></category>
		<category><![CDATA[flash gaming summit]]></category>
		<category><![CDATA[Mochi Media]]></category>

		<guid isPermaLink="false">http://mochiland.com/?p=5958</guid>
		<description><![CDATA[FGS 2012 Advisory Board Interview Series This is part four in a series of interviews of the Flash Gaming Summit 2012 Advisory Board. This is your chance to get to know the folks who determine the content of Flash Gaming Summit, getting their thoughts on both the conference and the games industry in general. This week&#8217;s [...]]]></description>
			<content:encoded><![CDATA[ <p><a href="http://www.flashgamingsummit.com"><img class="alignleft size-full wp-image-5984" style="border: 0px;" title="fgs2012_interview_series_banner" src="http://mochiland.com/wp-content/uploads/2011/11/fgs2012_interview_series_banner.jpg" alt="" width="650" height="100" /></a></p>
<h1>FGS 2012 Advisory Board Interview Series</h1>
<p>This is part four in a series of interviews of the <a href="http://www.flashgamingsummit.com">Flash Gaming Summit 2012</a> Advisory Board. This is your chance to get to know the folks who determine the content of Flash Gaming Summit, getting their thoughts on both the conference and the games industry in general. This week&#8217;s Advisory Board interview features Simon Lachance, co-founder of <a href="http://www.berzerk-land.com/">Berzerk Studio</a>. Berzerk Studio is a highly successful game studio creating games for both online and mobile platforms.</p>
<p>For more information on Flash Gaming Summit, including passes, speaking, or award show nomination information <a href="http://www.flashgamingsummit.com">please visit the conference website</a>.</p>
<p><a href="http://www.berzerk-land.com/"><img class="alignleft size-full wp-image-6045" style="border: 0px;" title="Simon_logo" src="http://mochiland.com/wp-content/uploads/2011/12/Simon_logo.png" alt="" width="400" height="125" /></a></p>
<h2>Introduce yourself- who are you, how big is your team, and how do you participate in the Flash games industry?</h2>
<p>I&#8217;m Simon Lachance, co-founder of Berzerk Studio.  We&#8217;re a team of 7, (3 coders, 3 artists, 1 Game designer/Artist) making Flash games since the end of 2008. We have made over ten games up to this point, and recently launched our own Flash games portal.</p>
<h2>What did you do before?</h2>
<p>We, the 3 co-founders of Berzerk Studio, were working at the same Flash game company.  We always had the dream to start on our own, make games that we like and create a cool brand.  So we decided to quit our jobs and go full indie.</p>
<h2>How did you first get into the Flash games industry? Tell us about your path.</h2>
<p>As mentioned above, we were already working for another Flash Games company before Berzerk Studio.  That&#8217;s where we learned how to make a game from scratch.  After we founded Berzerk Studio, I was looking up &#8220;how to sell games&#8221; on the Internet (how to make a living out of it).  Our very first idea was to make a game on XNA and publish it on Xbox.  We had done a prototype of a Flash game ported on XNA that worked very well,  but we decided that it would have been too risky to start among the big ones.  Our strength was Flash games, and the XNA prototype would have taken too much time to make.</p>
<p>So back then, we did something hard but necessary-  we threw the 6-months-production-XNA-prototype in the garbage, and started another smaller game for the Flash market.  Our strategy was to create small but high quality games for the Flash market, build a reputation, a fanbase, and a brand to be able to sell on future console games.   That&#8217;s when we found Flash Game License (FGL).  Chris Hughes saw our prototype and contacted us, since then they really helped us monetize our games. You should really go see these guys if you want to know more on how to sell games and live from it.</p>
<h2>What has been your proudest moment since joining the Flash gaming community?</h2>
<p>It was when I went to <a href="http://www.flashgamingsummit.com/past-events/2011/">Flash Gaming Summit (FGS) 2011</a>. I&#8217;ve met a lot of cool people there- developers, publishers, portal owner etc. We exchanged a lot of great information on the games business. But the proudest moment was when I discovered that half of the people I&#8217;ve met knew Berzerk Studio and the Berzerk brand. There were literally people making the Berzerker&#8217;s scream from our intro in front of me saying &#8220;That&#8217;s the best intro ever!&#8221; I have never been so proud of our team.</p>
<h2>What was the biggest challenge for Berzerk Studio in the early going? How does that compare to the challenges you face today?</h2>
<p>I&#8217;d say the biggest challenge is monetizing your games. We knew how to make games, but to monetize them was something we had to learn. You have to make decisions when producing the games to make sure they sell well. The biggest challenge when you&#8217;re alone with no money to make a living, is time. You always have to scope small to make more games instead of risking to make a big game that won&#8217;t sell. Sometimes you have a really cool idea, but the time needed to create it is too long so you just have to leave it or save it for the sequel.</p>
<h2>Describe the climate as a game developer today in terms of technology and monetization opportunity. How does it compare to being a game developer 2-3 years ago?</h2>
<p>The biggest difference now is that you can think of porting your games on the mobile market.  The mobile market is way bigger than it was 2-3 years ago,  so it&#8217;s always best to think of a game that can be ported on the mobile market if the game does well on the web.  We chose Unity to port our games on iPhone and Android, which is a very strong technology that allows us now to port any of our games in 4 days.</p>
<h2>What is it that you love the MOST about the Flash games industry?</h2>
<p>It&#8217;s a very fast market.  You need to pump out games quickly, and it&#8217;s fairly easy to make a game that&#8217;ll be played millions of times all around the world.  It&#8217;s a very strong distribution tool for your brand.  An average Berzerk game gets 8-12 million plays,  sometimes 25 million.  That&#8217;s a lot of people that are exposed to your brand.</p>
<h2>What do you like the least?</h2>
<p>I&#8217;d say that it&#8217;s hard to make everybody happy.  Some players will want to tear it down, saying bad things about it. If your game is good,  people will ask for a sequel, NOW. If it&#8217;s bad, you&#8217;ll get tons of angry emails telling you what you did wrong.</p>
<h2>How has the industry changed since you fist joined?</h2>
<p>It&#8217;s pretty much the same.  You need a sponsor to distribute your games, it goes on thousands of portals and you start again. As said earlier, the biggest difference now for us is that we try to reach the mobile games market for games that worked well on web.</p>
<h2>The theme for FGS 2012 is &#8220;Maximize Your Game&#8221;. How do you think Flash game developers are maximizing their games today? What could they be doing better / differently?</h2>
<p>There&#8217;s a lot of ways to monetize your games.  Micro-transactions are one of them,  but knowing what and when to sell is a science. It&#8217;s important not to piss people off before they even play the game.  We have also found that translating our games in many languages is a really good thing to do, so you can reach new local markets.</p>
<h2>Where do you see the Flash games industry going? What&#8217;s in store for the future?</h2>
<p>Free small games will always be there.  It&#8217;s a great distribution tool for ads or showcasing your brand. I can&#8217;t see it going away anytime soon. Although, with Stage3D and the mobile market growing up, Flash games might finally have an impact on the mobile market.</p>
<h2>What part of Flash Gaming Summit do you enjoy or look forward to the most?</h2>
<p>Meeting people! Shaking hands and discussing business is my #1 plan at FGS.  If I have time, I&#8217;d also want to hop on stage to share my experiences, but there&#8217;s so many things going on here at Berzerk that I may not be able to!</p>
<h2>In your opinion, why should people come out to FGS 2012? What should they expect?</h2>
<p>&#8220;Maximize your games&#8221; pretty much sums it up.  Increasing revenue for each of your games is what you want, if you want to make games full-time and continue improving your games.</p>
<p><em><strong>Thanks Simon, see you at FGS 2012!</strong></em></p>
 <div class='series_toc'></div>	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; Colin Cupp for <a href="http://mochiland.com">MochiLand</a>, 2011. |
	  <a href="http://mochiland.com/articles/fgs-2012-advisory-board-series-simon-lachance">Permalink</a> |
	  <a href="http://mochiland.com/articles/fgs-2012-advisory-board-series-simon-lachance#comments">No comment</a></p>
	<p>Add to <a href="http://del.icio.us/post?url=http://mochiland.com/articles/fgs-2012-advisory-board-series-simon-lachance&amp;title=FGS 2012 Advisory Board Series: Simon Lachance">del.icio.us</a></p>
	<p>Search blogs linking this post with <a href="http://www.technorati.com/search/http://mochiland.com/articles/fgs-2012-advisory-board-series-simon-lachance" title="Search on Technorati">Technorati</a></p>
	<p>Want more on these topics ? Browse the archive of posts filed under <a href="http://mochiland.com/category/mochiland/developer-feed" title="View all posts in Developer Feed" rel="category tag">Developer Feed</a>, <a href="http://mochiland.com/category/mochiland/flash" title="View all posts in Flash Development" rel="category tag">Flash Development</a>, <a href="http://mochiland.com/category/mochiland/front-page" title="View all posts in Front Page" rel="category tag">Front Page</a>, <a href="http://mochiland.com/category/mochiland/games-industry" title="View all posts in Games Industry" rel="category tag">Games Industry</a>, <a href="http://mochiland.com/category/mochiland/gaming-news" title="View all posts in Industry News" rel="category tag">Industry News</a>, <a href="http://mochiland.com/category/mochiland/mochi-media-announcements" title="View all posts in Mochi Media Announcements" rel="category tag">Mochi Media Announcements</a>, <a href="http://mochiland.com/category/mochiland" title="View all posts in MochiLand Topics" rel="category tag">MochiLand Topics</a>, <a href="http://mochiland.com/category/mochiland/publisher-feed" title="View all posts in Publisher Feed" rel="category tag">Publisher Feed</a>.</p><img src="http://feeds.feedburner.com/~r/Mochiland/~4/tUtDU21on-o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mochiland.com/articles/fgs-2012-advisory-board-series-simon-lachance/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mochiland.com/articles/fgs-2012-advisory-board-series-simon-lachance</feedburner:origLink></item>
		<item>
		<title>Mochi Community Contribution: Creating Ally AI by Danny Buoncore</title>
		<link>http://feedproxy.google.com/~r/Mochiland/~3/hfQlJ3J02sU/mochi-community-contribution-creating-ally-ai-by-danny-buoncore</link>
		<comments>http://mochiland.com/articles/mochi-community-contribution-creating-ally-ai-by-danny-buoncore#comments</comments>
		<pubDate>Tue, 06 Dec 2011 00:55:01 +0000</pubDate>
		<dc:creator>dannybuoncore</dc:creator>
				<category><![CDATA[Developer Feed]]></category>
		<category><![CDATA[Developer Spotlight]]></category>
		<category><![CDATA[Flash Development]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[MochiLand Topics]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[Danny Buonocore]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Mochi Media]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://mochiland.com/?p=5916</guid>
		<description><![CDATA[Creating Ally AI That Locates Nearest Enemy and Attacks In this tutorial, you will learn: Basic for loop usage Basic array usage How to find the distance between two points How to use Math.atan2() to have MovieClips follow each other How to fire projectiles How to split a velocity vector into two perpendicular lines using [...]]]></description>
			<content:encoded><![CDATA[ <h1 class="post-title">Creating Ally AI That Locates Nearest Enemy and Attacks</h1>
<h2>In this tutorial, you will learn:</h2>
<ul>
<li>Basic for loop usage</li>
<li>Basic array usage</li>
<li>How to find the distance between two points</li>
<li>How to use Math.atan2() to have MovieClips follow each other</li>
<li>How to fire projectiles</li>
<li>How to split a velocity vector into two perpendicular lines using sine and cosine</li>
<li>How to create objects from custom classes</li>
</ul>
<h4>Introduction</h4>
<p>When learning Actionscript, or any programming language for that matter, I find it best to create specific engines that employ a variety of techniques and functions.  This way, you are not only learning how to use these features, but you are also experiencing a pragmatic use for them.  In this tutorial we will be creating a class for an ally AI that will locate the enemy nearest it, chase it, and shoot it.  This is used in just about any game where there are characters not controlled by the player.  Take, for example, a tower defense game.  The towers created do not simply attack any enemy they want.  They usually attack the closest.  However, there are some games where you can choose to have them attack the quickest enemy, or the one with the most health, or whatever it may be.  But for now let&#8217;s concentrate on distance.</p>
<p>Now, what if there are three allies (let&#8217;s call them followers for now) and two enemies, one of which is really far away?  The tutorial you are about to read is designed so that rather than all three followers clustering up on the closest enemy, two will attack it and the third will set off for the far one.  Furthermore, what happens when a third enemy is spawned when all this is going on?  Well, rather than the follower by itself (which may be closer) going out to attack it, one of the two that are attacking the same enemy will leave and target the newfound enemy.  This optimizes the strategy of the followers so no enemy is left alone while there is a surplus of followers elsewhere.</p>
<p>Rather than just talking about what we&#8217;re going to do, let&#8217;s actually do it.  Sometimes I prefer to just see the source code and play around with it rather than just following a tutorial.  If you want, you may download a heavily-commented copy of all the code down below.  Without further ado, let&#8217;s begin the tutorial.</p>
<p><object id="test1" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="400" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"><param name="movie" value="http://www.swfup.com/swf/e5z3.swf" /><embed type="application/x-shockwave-flash" width="640" height="400" src="http://www.swfup.com/swf/e5z3.swf" name="Follow" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object></p>
<p><a href="http://www.mediafire.com/?xhhbm1ovehio8ag">Download Source</a></p>
<h4>Step 1: Setting Up the MovieClips</h4>
<p>There are three MovieClips essential to this tutorial.  First, we need the followers and the enemies.  We also need some sort of projectile or bullet for the followers to shoot.  For the sake of example, I am programming this tutorial in a way that the user can create followers and enemies by clicking buttons at the bottom of the stage.  So now we&#8217;re up to five MovieClips.  Name them Bee, EnemyBee, Ball, BeeButton, and EnemyButton.  Below are my five MovieClips in their respective order:</p>
<p><img src="http://img337.imageshack.us/img337/6232/movieclips.jpg" alt="MovieClips" /></p>
<p>When saving each as a symbol, be sure to check the &#8220;Export for Actionscript&#8221; box and keep the class name the same.</p>
<h4>Step 2: The Arrays</h4>
<p>Now that we have our MovieClips, we need a place to store them.  Open up the Main Timeline&#8217;s Actions Panel (F9) and input the following code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> beeArray=<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> eArray=<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> ballArray=<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>What&#8217;s happening here is we are creating three arrays to store our objects: one for all the bees (followers), one for all the enemies, and one for all the balls being shot.  These arrays are going to be accessed a ton of times throughout the tutorial, so if you need to brush up on any of the arrays basics be sure to check out this <a href="http://active.tutsplus.com/tutorials/actionscript/as3-101-arrays/">tutorial</a></p>
<h4>Step 3: The Enemies</h4>
<p>The enemies are much easier to program, so we&#8217;ll start with them first.  Create a new custom class called EnemyBee (or whatever necessary to match the name of your enemy MovieClip) and start off with the following code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MovieClip</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.*;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> EnemyBee <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">MovieClip</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> r<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Object</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">angle</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> rot<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> health<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span>=<span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> speedX<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> speedY<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> dist<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> reload<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span>=<span style="color: #000000; font-weight:bold;">50</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//reload timer for shooting (don't worry about this for now)</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #6699cc; font-weight: bold;">var</span> isTarget<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> EnemyBee<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ADDED_TO_STAGE</span><span style="color: #000066; font-weight: bold;">,</span> beginClass<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> beginClass<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
&nbsp;
r=<span style="color: #004993;">MovieClip</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">root</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span> eFrame<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">push</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span>=<span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">stageWidth</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">width</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span>=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">400</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">20</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> h<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">stageHeight</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #004993;">angle</span>=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">atan2</span><span style="color: #000000;">&#40;</span>h<span style="color: #000066; font-weight: bold;">-</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">,-</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>speedX=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">cos</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">angle</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>speedY=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">sin</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">angle</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rotation</span>=<span style="color: #004993;">angle</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">PI</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">180</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
rot=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">4</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> eFrame<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Now this is a lot of code all at once so let&#8217;s go through it line by line.  Lines 6-13 declare variables which are more or less self-explanatory.  The main one to note here is the public variable isTarget.  This variable isn&#8217;t accessed at all by EnemyBee, but from the followers.  It is used to tell how many bees are following the EnemyBee.  But let&#8217;s move on for now.</p>
<p>In the beginClass function, line 20 places EnemyBee inside eArray (on the Main Timeline) through the use of r (the root of the MovieClip).  Below, the initial x and y coordinates are set to be just off the right side of the stage anywhere from the top to the bottom.  Variable h is the destination of EnemyBee and, using Math.random(), is different every time.  The next line uses a function called Math.atan2().  Most of you trigonometry aficionados know that the atan2 function, being a variant of the arctangent function, returns the angle (in radians) between the positive x axis of a plane and the point constructed by the given coordinates.  For now, all you need to know are the parameters.  They are as follows:</p>
<p><span> Math.atan2(destinationY-this.y , destinationX-this.x);</span></p>
<p>It seems strange, but just remember the y comes first.  By using the atan2 function we now know the angle between the point EnemyBee is going for (in this case h) and itself.  But how do we make it so that our object moves towards it?  That&#8217;s where the sine and cosine lines come in.  By taking the cosine of the angle we can find the horizontal speed the object must take.  Similarly, we can use sine to find the vertical speed.  You can replace the 2 at the end of each line with a larger or smaller number to increase or decrease the speed (respectively).  Finally, we rotate the object to face its target once again using angle, and then assign rot (the rotational speed) a random number from 0-3.99999 (this is used later on).</p>
<p>Now we can edit the eFrame function.  So within the brackets, place this code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">+</span>=<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>speedX<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>health<span style="color: #000066; font-weight: bold;">&amp;</span>gt<span style="color: #000066; font-weight: bold;">;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">+</span>=<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>speedY<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">width</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">splice</span><span style="color: #000000;">&#40;</span>r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">indexOf</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
removeMe<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span> <span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">indexOf</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">&amp;</span>gt<span style="color: #000066; font-weight: bold;">;</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">splice</span><span style="color: #000000;">&#40;</span>r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">indexOf</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rotation</span><span style="color: #000066; font-weight: bold;">+</span>=<span style="color: #000000; font-weight:bold;">5</span><span style="color: #000066; font-weight: bold;">+</span>rot<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">+</span>=<span style="color: #000000; font-weight:bold;">3</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">3</span><span style="color: #000066; font-weight: bold;">-</span>rot<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>y<span style="color: #000066; font-weight: bold;">-</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>width<span style="color: #000066; font-weight: bold;">&amp;</span>gt<span style="color: #000066; font-weight: bold;">;;</span>stage<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">stageHeight</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
removeMe<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>First, the object moves horizontally.  Next, if its health is greater than zero (meaning it is not dead) it will also move vertically and if it manages to survive the followers and go offstage to the left, remove itself from eArray, and then call the removeMe() function which we will declare in a little bit.  In case EnemyBee IS defeated, however, it will first check to see if its index in eArray is at least 0.  A useful fact about arrays is that &#8220;if&#8221; an object isn&#8217;t in the array at all, its index is -1.  Through this &#8220;if statement&#8221; we are effectively checking to see if EnemyBee is in eArray so we don&#8217;t accidentally remove it twice (that would result in an error).  The next few lines are pretty much self-explanatory.</p>
<p>The last piece of code for EnemyBee is the removeMe() function.  Here it is:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> removeMe<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span> eFrame<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
r<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">removeChild</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>This last part is easy.  First the event listener is removed, and then the object itself is deleted.  That&#8217;s all we need for EnemyBee.  Now we can start the hard stuff! (:</p>
<h4>Step 4: The Followers</h4>
<p>Now it&#8217;s time to get to the heart of the tutorial: creating the followers.  Create a new custom class for your followers (in this case it&#8217;s called Bee), and input this code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span>
 	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MovieClip</span><span style="color: #000066; font-weight: bold;">;</span>
 	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.*;</span>
&nbsp;
 	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Bee <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">MovieClip</span> <span style="color: #000000;">&#123;</span>
  	<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> r<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Object</span><span style="color: #000066; font-weight: bold;">;</span>
  	<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">c</span><span style="color: #000066; font-weight: bold;">;</span>
  	<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">max</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MAX_VALUE</span><span style="color: #000066; font-weight: bold;">;</span>
  	<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> speedX<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">;</span>
  	<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> speedY<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">;</span>
  	<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> speed<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">;</span>
  	<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">angle</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">;</span>
  	<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> reload<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span>=<span style="color: #000000; font-weight:bold;">50</span><span style="color: #000066; font-weight: bold;">;</span>
  	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Bee<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
   	<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ADDED_TO_STAGE</span><span style="color: #000066; font-weight: bold;">,</span> beginClass<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
  	<span style="color: #000000;">&#125;</span>
  	<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> beginClass<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
   	r=<span style="color: #004993;">MovieClip</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">root</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
   	<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span> eFrame<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
   	r<span style="color: #000066; font-weight: bold;">.</span>beeArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">push</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
   	<span style="color: #004993;">x</span>=<span style="color: #000000; font-weight:bold;">275</span><span style="color: #000066; font-weight: bold;">;</span>
   	<span style="color: #004993;">y</span>=<span style="color: #000000; font-weight:bold;">245</span><span style="color: #000066; font-weight: bold;">;</span>
  	<span style="color: #000000;">&#125;</span>
  	<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> eFrame<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  	<span style="color: #000000;">&#125;</span>
 	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>You&#8217;ve seen all this code already in EnemyBee so I&#8217;m not going to explain it all again.  The only exceptions are c (which will be explained in a bit) and Number.MAX_VALUE, which can simply be thought of as infinity.</p>
<p>There&#8217;s a lot of code in the eFrame event, so let&#8217;s do it all in pieces.  First, we need this:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">length</span><span style="color: #000066; font-weight: bold;">!</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #009900; font-style: italic;">//paste all the following code here</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>This line of code tells us if there are any enemies on stage or not.  Without it, we would get errors.  Within the brackets, place this first bunch of code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">indexOf</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">c</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if c is NOT in eArray...</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> i<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span> i<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;;</span>r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">length</span><span style="color: #000066; font-weight: bold;">;</span> i<span style="color: #000066; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//for every object in eArray...</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> obj=r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//assign address of object to obj</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> distX<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>x<span style="color: #000066; font-weight: bold;">-</span>obj<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//horizontal distance between self and obj (the enemy)</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> distY<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>y<span style="color: #000066; font-weight: bold;">-</span>obj<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//vertical distance between self and obj (the enemy)</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> dist<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000;">&#40;</span>distX<span style="color: #000066; font-weight: bold;">*</span>distX<span style="color: #000066; font-weight: bold;">+</span>distY<span style="color: #000066; font-weight: bold;">*</span>distY<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//overall distance using distance formula</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>dist<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span>max<span style="color: #000066; font-weight: bold;">&amp;</span>amp<span style="color: #000066; font-weight: bold;">;&amp;</span>amp<span style="color: #000066; font-weight: bold;">;</span>obj<span style="color: #000066; font-weight: bold;">.</span>isTarget==<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if distance &amp;lt; max and obj has no followers...</span>
&nbsp;
<span style="color: #004993;">max</span>=dist<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//assign distance to max (the new shorst distance)</span>
&nbsp;
<span style="color: #004993;">c</span>=obj<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//assign address of object currently being tested in c</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">indexOf</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">c</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">&amp;</span>gt<span style="color: #000066; font-weight: bold;">;</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if c is in eArray...</span>
&nbsp;
<span style="color: #004993;">c</span><span style="color: #000066; font-weight: bold;">.</span>isTarget<span style="color: #000066; font-weight: bold;">++;</span> <span style="color: #009900; font-style: italic;">//tell c (EnemyBee) that one more bee is following it</span>
&nbsp;
<span style="color: #000000;">&#125;</span> <span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if c is NOT in eArray...</span>
&nbsp;
<span style="color: #004993;">max</span>=<span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MAX_VALUE</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//reset max to maximum value</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> j<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span> j<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span>r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">length</span><span style="color: #000066; font-weight: bold;">;</span> j<span style="color: #000066; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//for every object in eArray...</span>
&nbsp;
obj=r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000000;">&#91;</span>j<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//assign address of object to obj</span>
&nbsp;
distX=<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>x<span style="color: #000066; font-weight: bold;">-</span>obj<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//horizontal distance between self and obj (the enemy)</span>
&nbsp;
distY=<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>y<span style="color: #000066; font-weight: bold;">-</span>obj<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//vertical distance between self and obj (the enemy)</span>
&nbsp;
dist=<span style="color: #000000;">&#40;</span>distX<span style="color: #000066; font-weight: bold;">*</span>distX<span style="color: #000066; font-weight: bold;">+</span>distY<span style="color: #000066; font-weight: bold;">*</span>distY<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//overall distance using distance formuala</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>dist<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span>max<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if distance is closer than max...</span>
&nbsp;
<span style="color: #004993;">max</span>=dist<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//assign distance to max (the new shortest distance)</span>
&nbsp;
<span style="color: #004993;">c</span>=obj<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//assign address of object currently being tested in c</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #004993;">c</span><span style="color: #000066; font-weight: bold;">.</span>isTarget<span style="color: #000066; font-weight: bold;">++;</span> <span style="color: #009900; font-style: italic;">//tell c (EnemyBee) that one more bee is following it</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>It can get a little confusing at this point, so I included plenty of comments.  The variable c is used to hold the address of the closest enemy (hence it&#8217;s name).  First we check to see if it is not in the array (meaning the closest enemy has not been determined).  We use a for loop to iterate through all the enemies in eArray.  If you&#8217;re new to loops, you can read up on them <a href="http://active.tutsplus.com/tutorials/actionscript/as3-101-loops/">here</a>.</p>
<p>Next we instantiate four variables:  a placeholder for the object being tested, the horizontal distance, the vertical distance, and the total distance.  Just in case you are wondering, the distance formula is as follows:</p>
<p><img src="http://upload.wikimedia.org/wikipedia/en/math/f/0/a/f0a4a3d633ef96d31f068e387cd91fc2.png" alt="Distance Formula" /></p>
<p>Now that we know the distance of the object being checked, we must see if it is closer than the previous.  Recall that max was equal to Number.MAX_VALUE, so it is greater than anything we could compare it to.  So the first instance to be checked will definitely be closer, and the if statement will be true.  Therefore, max is set to the distance between itself and the enemy being tested (the new shortest distance), and obj is stored in c.  All that happened for the first enemy in eArray.  Now go through it again for the second enemy.  The second enemy is stored in obj, just like the first, and the distance is established.  However, instead of max being equal to the highest value, it is equal to the distance of the previous enemy.  If the distance between the bee and the enemy being tested is shorter than that of the first enemy, max is lowered again to match the distance and the enemy is stored in c.  If not, the loop skips over this and goes on to test the next enemy.  This process continues for every enemy in the array.  Logically, the value of max by the time all of the enemies are done being tested will be equal to the shortest distance, and c will hold the address for the corresponding enemy.</p>
<p>Note that with the if statement, Bee only looks for enemies that have isTarget==0.  In plain English, that means it only takes enemies that are not being followed into consideration.  This way we don&#8217;t have that surplus of followers in one section and a non-followed enemy elsewhere like we previously discussed.  However, there is the case that every enemy is already being followed.  The if statement right after the for loop checks to see if a closest enemy (with no followers) has been found.  If so, it increases the value of isTarget on the enemy (amount of followers).  If not, another for loop extremely similar to the previous is carried out.  The only difference is the if statement:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>dist<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span>max<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span></pre></div></div>

<p>Instead of checking to be sure the enemy being tested has no followers, it just looks for the closest.  I found this to be the best design, but you might have another use for it.  This code is very easy to customize.  Say you wanted locate the enemy with the least amount of followers.  You could simply substitute the if statement for this:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>obj<span style="color: #000066; font-weight: bold;">.</span>isTarget<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span>max<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #004993;">max</span>=obj<span style="color: #000066; font-weight: bold;">.</span>isTarget<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #004993;">c</span>=obj<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>All right we&#8217;re getting closer to finishing this up.  One more loop:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #004993;">max</span>=<span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MAX_VALUE</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//reset max to maximum value</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span>length<span style="color: #000066; font-weight: bold;">&amp;</span>gt<span style="color: #000066; font-weight: bold;">;</span>=r<span style="color: #000066; font-weight: bold;">.</span>beeArray<span style="color: #000066; font-weight: bold;">.</span>length<span style="color: #000066; font-weight: bold;">&amp;</span>amp<span style="color: #000066; font-weight: bold;">;&amp;</span>amp<span style="color: #000066; font-weight: bold;">;</span>c<span style="color: #000066; font-weight: bold;">.</span>isTarget<span style="color: #000066; font-weight: bold;">&amp;</span>gt<span style="color: #000066; font-weight: bold;">;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if c has other followers...</span>
&nbsp;
<span style="color: #004993;">c</span><span style="color: #000066; font-weight: bold;">.</span>isTarget<span style="color: #000066; font-weight: bold;">--;</span> <span style="color: #009900; font-style: italic;">//tell c it has one fewer follower</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> l<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span> l<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span>r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">length</span><span style="color: #000066; font-weight: bold;">;</span> l<span style="color: #000066; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//for every object in eArray...</span>
&nbsp;
obj=r<span style="color: #000066; font-weight: bold;">.</span>eArray<span style="color: #000000;">&#91;</span>l<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//assign address of object to obj</span>
&nbsp;
distX=<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>x<span style="color: #000066; font-weight: bold;">-</span>obj<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//horizontal distance between self and obj (the enemy)</span>
&nbsp;
distY=<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>y<span style="color: #000066; font-weight: bold;">-</span>obj<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//vertical distance between self and obj (the enemy)</span>
&nbsp;
dist=<span style="color: #000000;">&#40;</span>distX<span style="color: #000066; font-weight: bold;">*</span>distX<span style="color: #000066; font-weight: bold;">+</span>distY<span style="color: #000066; font-weight: bold;">*</span>distY<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//overall distance using distance formula</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>dist<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span>max<span style="color: #000066; font-weight: bold;">&amp;</span>amp<span style="color: #000066; font-weight: bold;">;&amp;</span>amp<span style="color: #000066; font-weight: bold;">;</span>obj<span style="color: #000066; font-weight: bold;">.</span>isTarget==<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if distance &amp;lt; max and obj has no followers...</span>
&nbsp;
<span style="color: #004993;">max</span>=dist<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//assign distance to max (the new shortest distance)</span>
&nbsp;
<span style="color: #004993;">c</span>=obj<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//assign address of object currently being tested in c</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #004993;">c</span><span style="color: #000066; font-weight: bold;">.</span>isTarget<span style="color: #000066; font-weight: bold;">++;</span> <span style="color: #009900; font-style: italic;">//tell c (EnemyBee) that one more bee is following it</span>
&nbsp;
<span style="color: #004993;">max</span>=<span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MAX_VALUE</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//reset max to maximum value</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Okay so after doing two loops almost exactly like this one, no explanation should be necessary.  However, a brief discourse on the logic behind it should help.  The only thing different here than the first loop is that it is only executed when there are more enemies than followers and the enemy the bee is following has at least one other follower.  You may be asking yourself why I chose to create three loops that are almost identical instead of simply making a function called several times with slightly different arguments.  Well, I think it&#8217;s easier to retain the information if you see it several times.  Plus, a tutorial is never complete unless something is left up to you to figure out yourself.</p>
<p>All right, now that the difficult part is out of the way, we can move on to actually moving the bee.  The code below immediately follows the if statement above:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #004993;">angle</span>=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">atan2</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">c</span><span style="color: #000066; font-weight: bold;">.</span>y<span style="color: #000066; font-weight: bold;">-</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #004993;">c</span><span style="color: #000066; font-weight: bold;">.</span>x<span style="color: #000066; font-weight: bold;">-</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//angle between self and closest enemy</span>
&nbsp;
speedX=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">cos</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">angle</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span>speed<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//find horizontal speed according to angle</span>
&nbsp;
speedY=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">sin</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">angle</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span>speed<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//find vertical speed according to angle</span>
&nbsp;
<span style="color: #004993;">rotation</span>=<span style="color: #004993;">angle</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">PI</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">180</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//rotate to face enemy</span>
&nbsp;
distX=<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>x<span style="color: #000066; font-weight: bold;">-</span><span style="color: #004993;">c</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//horizontal distance between self and closest enemy</span>
&nbsp;
distY=<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>y<span style="color: #000066; font-weight: bold;">-</span><span style="color: #004993;">c</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//vertical distance between self and closest enemy</span>
&nbsp;
dist=<span style="color: #000000;">&#40;</span>distX<span style="color: #000066; font-weight: bold;">*</span>distX<span style="color: #000066; font-weight: bold;">+</span>distY<span style="color: #000066; font-weight: bold;">*</span>distY<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//overall distance using distance formula</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>dist<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span>=<span style="color: #000000; font-weight:bold;">100</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if distance is less than or equal to 100...</span>
&nbsp;
speed=<span style="color: #000066; font-weight: bold;">-.</span>1<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//slow down</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>speed<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if speed is less than 0...</span>
&nbsp;
speed=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//keep speed at 0</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span> <span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if distance is greater than 100...</span>
&nbsp;
speed<span style="color: #000066; font-weight: bold;">+</span>=<span style="color: #000066; font-weight: bold;">.</span>1<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//speed up</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>speed<span style="color: #000066; font-weight: bold;">&amp;</span>gt<span style="color: #000066; font-weight: bold;">;</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if speed is greater than 2...</span>
&nbsp;
speed=<span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//keep speed at 2</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">+</span>=speedX<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//move horizontally</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">+</span>=speedY<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//move vertically</span></pre></div></div>

<p>This is very similar to the motion employed in the EnemyBee class and shouldn&#8217;t be too difficult at all.  The if and else statements are purely for aesthetic purposes so that the bee doesn&#8217;t sit directly on the enemy.</p>
<p>That concludes the code for the followers.  Now all we need is a means to create the followers and enemies.  I&#8217;m sure you will come up with plenty of ways that pertain to your game, but for the sake of convenience I just created two buttons that allow the user to spawn them.  If you&#8217;d like to see the Actionscript for this, download the source code files from above.</p>
<h4>Step 5: Shooting</h4>
<p>Run your .swf.  If you did it right, you should get something like this:</p>
<p>The bees follow the enemies just like we programmed them to, but they do not attack.  Remember that Ball Movieclip we make at the beginning of the tutorial?  Well we&#8217;re finally going to use it.  Open up the custom class for Ball and type this in:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MovieClip</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.*;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Ball <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">MovieClip</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> r<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Object</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">c</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span>=<span style="color: #000000; font-weight:bold;">15</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> id2<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">angle</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> speedX<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> speedY<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> speed<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">8</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> mc<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Object</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Ball<span style="color: #000000;">&#40;</span>id<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">uint</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ADDED_TO_STAGE</span><span style="color: #000066; font-weight: bold;">,</span> beginClass<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
id2=id<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> beginClass<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
&nbsp;
r=<span style="color: #004993;">MovieClip</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">root</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span> eFrame<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
mc=r<span style="color: #000066; font-weight: bold;">.</span>beeArray<span style="color: #000000;">&#91;</span>id2<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//find which object created it</span>
&nbsp;
<span style="color: #004993;">angle</span>=mc<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rotation</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">PI</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">180</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span>=mc<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//set x coordinate to that of bee's</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span>=mc<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//set y coordinate to that of bee's</span>
&nbsp;
speedX=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">cos</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">angle</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span>speed<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
speedY=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">sin</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">angle</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span>speed<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
r<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">setChildIndex</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">,</span>r<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">getChildIndex</span><span style="color: #000000;">&#40;</span>mc<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> eFrame<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">+</span>=speedX<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">+</span>=speedY<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>c<span style="color: #000066; font-weight: bold;">&amp;</span>gt<span style="color: #000066; font-weight: bold;">;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
c<span style="color: #000066; font-weight: bold;">--;</span>
&nbsp;
<span style="color: #000000;">&#125;</span> <span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>alpha<span style="color: #000066; font-weight: bold;">-</span>=<span style="color: #000066; font-weight: bold;">.</span>1<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>alpha<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
removeBall<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> removeBall<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span> eFrame<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
r<span style="color: #000066; font-weight: bold;">.</span>ballArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">splice</span><span style="color: #000000;">&#40;</span>r<span style="color: #000066; font-weight: bold;">.</span>ballArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">indexOf</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
r<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">removeChild</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Basically we&#8217;re just creating an object that follows a straight line path using the rotation of the bee it&#8217;s coming from.  The address of the bee is determined by the parameter id2, which we will explain it a bit.  Now we have to program Bee to actually shoot the balls.  In the eFrame event of Bee, right after the speedX and speedY are used, place the following code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">reload<span style="color: #000066; font-weight: bold;">--;</span> <span style="color: #009900; font-style: italic;">//lower reload timer</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>reload==<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if reload is complete...</span>
&nbsp;
reload=<span style="color: #000000; font-weight:bold;">50</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//reset reload timer to 50</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> newBall<span style="color: #000066; font-weight: bold;">:</span>Ball=<span style="color: #0033ff; font-weight: bold;">new</span> Ball<span style="color: #000000;">&#40;</span>r<span style="color: #000066; font-weight: bold;">.</span>beeArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">indexOf</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//create new ball</span>
&nbsp;
r<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>newBall<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//add ball to stage</span>
&nbsp;
r<span style="color: #000066; font-weight: bold;">.</span>ballArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">push</span><span style="color: #000000;">&#40;</span>newBall<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//put ball in ballArray</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>This creates a new instance of the Ball class and places it in the corresponding array on the Main Timeline.  As you can see, the argument incorporated while instantiating the new ball is the index of the bee in its array.  This is then later accessed by the ball in its class to find where it should be placed on the stage and the angle it should follow:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">mc=r<span style="color: #000066; font-weight: bold;">.</span>beeArray<span style="color: #000000;">&#91;</span>id2<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//find which object created it</span>
&nbsp;
<span style="color: #004993;">angle</span>=mc<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rotation</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">PI</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">180</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span>=mc<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//set x coordinate to that of bee's</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span>=mc<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//set y coordinate to that of bee's</span>
&nbsp;
speedX=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">cos</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">angle</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span>speed<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
speedY=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">sin</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">angle</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span>speed<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
r<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">setChildIndex</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">,</span>r<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">getChildIndex</span><span style="color: #000000;">&#40;</span>mc<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>The address of the bee is found using id2 (which is equal to the argument we just mentioned) and stored in mc, which is used to set all that good stuff above.  The setChildIndex() statement is used so that the ball appears below the bee, giving the illusion that it&#8217;s being shot by the bee, and not appearing right on top of it.</p>
<p>Okay so run your .swf again and you should see this:</p>
<p>Pretty good, huh?  Now we just have more step: the collisions.</p>
<h4>Step 6: The Collisions</h4>
<p>This part is easy.  Simply open up the class file for EnemyBee and, in the first line of the eFrame event, put in the following code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> i<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span> i<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;</span>r<span style="color: #000066; font-weight: bold;">.</span>ballArray<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">length</span><span style="color: #000066; font-weight: bold;">;</span> i<span style="color: #000066; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> mc<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Object</span>=r<span style="color: #000066; font-weight: bold;">.</span>ballArray<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
dist=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">abs</span><span style="color: #000000;">&#40;</span>mc<span style="color: #000066; font-weight: bold;">.</span>x<span style="color: #000066; font-weight: bold;">-</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">abs</span><span style="color: #000000;">&#40;</span>mc<span style="color: #000066; font-weight: bold;">.</span>y<span style="color: #000066; font-weight: bold;">-</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>dist<span style="color: #000066; font-weight: bold;">&amp;</span>lt<span style="color: #000066; font-weight: bold;">;;</span>this<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">width</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">+</span>mc<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">width</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//if they touch...</span>
&nbsp;
health<span style="color: #000066; font-weight: bold;">--;</span>
&nbsp;
mc<span style="color: #000066; font-weight: bold;">.</span>removeBall<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>It&#8217;s just a for loop that iterates over every instance in the ball array and tests for a collision.  You can use whatever collision-detection technique you want, but for this example the best choice is a simple circle-to-circle test.  Upon each collision, the health of the bee is lowered, and the ball is removed through the function removeBall().</p>
<p>Well, that&#8217;s about it.  Test your .swf and it should work just as my example up above did.  This technique is very useful and I&#8217;m sure you&#8217;ll find plenty of ways to use it in your games.  If you make something cool, I&#8217;d love to see it (: Thanks for reading!</p>
 <div class='series_toc'></div>	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; dannybuoncore for <a href="http://mochiland.com">MochiLand</a>, 2011. |
	  <a href="http://mochiland.com/articles/mochi-community-contribution-creating-ally-ai-by-danny-buoncore">Permalink</a> |
	  <a href="http://mochiland.com/articles/mochi-community-contribution-creating-ally-ai-by-danny-buoncore#comments">2 comments</a></p>
	<p>Add to <a href="http://del.icio.us/post?url=http://mochiland.com/articles/mochi-community-contribution-creating-ally-ai-by-danny-buoncore&amp;title=Mochi Community Contribution: Creating Ally AI by Danny Buoncore">del.icio.us</a></p>
	<p>Search blogs linking this post with <a href="http://www.technorati.com/search/http://mochiland.com/articles/mochi-community-contribution-creating-ally-ai-by-danny-buoncore" title="Search on Technorati">Technorati</a></p>
	<p>Want more on these topics ? Browse the archive of posts filed under <a href="http://mochiland.com/category/mochiland/developer-feed" title="View all posts in Developer Feed" rel="category tag">Developer Feed</a>, <a href="http://mochiland.com/category/mochiland/developer-spotlight" title="View all posts in Developer Spotlight" rel="category tag">Developer Spotlight</a>, <a href="http://mochiland.com/category/mochiland/flash" title="View all posts in Flash Development" rel="category tag">Flash Development</a>, <a href="http://mochiland.com/category/mochiland/front-page" title="View all posts in Front Page" rel="category tag">Front Page</a>, <a href="http://mochiland.com/category/mochiland/game-design" title="View all posts in Game Design" rel="category tag">Game Design</a>, <a href="http://mochiland.com/category/mochiland" title="View all posts in MochiLand Topics" rel="category tag">MochiLand Topics</a>.</p><img src="http://feeds.feedburner.com/~r/Mochiland/~4/hfQlJ3J02sU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mochiland.com/articles/mochi-community-contribution-creating-ally-ai-by-danny-buoncore/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://mochiland.com/articles/mochi-community-contribution-creating-ally-ai-by-danny-buoncore</feedburner:origLink></item>
		<item>
		<title>Flash Game Friday Winner: Monsters in Bunnyland</title>
		<link>http://feedproxy.google.com/~r/Mochiland/~3/P5WcKk6tKPA/flash-game-friday-winner-monsters-in-bunnyland</link>
		<comments>http://mochiland.com/articles/flash-game-friday-winner-monsters-in-bunnyland#comments</comments>
		<pubDate>Fri, 02 Dec 2011 22:37:22 +0000</pubDate>
		<dc:creator>Colin Cupp</dc:creator>
				<category><![CDATA[Developer Feed]]></category>
		<category><![CDATA[Flash Game Friday]]></category>
		<category><![CDATA[Game Showcase]]></category>
		<category><![CDATA[MochiLand Topics]]></category>
		<category><![CDATA[Publisher Feed]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[Limex Games]]></category>
		<category><![CDATA[Mochi Media]]></category>
		<category><![CDATA[Monsters in Bunnyland]]></category>
		<category><![CDATA[winner]]></category>

		<guid isPermaLink="false">http://mochiland.com/?p=5991</guid>
		<description><![CDATA[Winner&#8217;s Circle This week&#8217;s Flash Game Friday winner is Monsters in Bunnyland by Limex Games! Monsters in Bunnyland is a fresh new look at puzzle games&#8230;and monsters! Your task is simple in this puzzle platformer- solve the puzzle of each level in order to move on (and unlock) the next one. You have two monster [...]]]></description>
			<content:encoded><![CDATA[ <h1>Winner&#8217;s Circle</h1>
<p>This week&#8217;s Flash Game Friday winner is <a href="http://www.mochimedia.com/games/play/monsters-in-bunnyland/">Monsters in Bunnyland</a> by <a href="http://www.limexgames.com">Limex Games</a>!</p>
<p><a href="http://www.mochimedia.com/games/play/monsters-in-bunnyland/"><img class="alignleft size-full wp-image-6003" style="border: 0px;" title="monsters_560x280" src="http://mochiland.com/wp-content/uploads/2011/11/monsters_560x280.png" alt="" width="560" height="280" /></a></p>
<p>Monsters in Bunnyland is a fresh new look at puzzle games&#8230;and monsters! Your task is simple in this puzzle platformer- solve the puzzle of each level in order to move on (and unlock) the next one. You have two monster characters that you can alternate to tackle tasks, with certain tasks suiting to the strengths of one or the other. Along the way, you need to collect stars to boost your score.</p>
<p>In case you didn&#8217;t notice, this game has irony. The monsters are afraid of the bunnies in bunnyland. The pink bunnies are not all cuddly and cute, but will in fact devour your monster characters and force you to re-start your level!</p>
<p>What makes this game &#8220;FGF-worthy&#8221; is the entertaining combination of great artwork, high-quality game/level design, the character-switching game mechanic, and the addition of pink bunnies that eat monsters. Congratulations Limex Games!</p>
<h2>Get to Know Limex Games</h2>
<h4>Tell me about yourself- how many people are on your team? Where are you based?</h4>
<p>Limex are two guys that code casual games in our free time. We are located in Krakow, Poland.</p>
<h4>How long have you been making games? What did you do before?</h4>
<p>We have been developing for two and half years. During this time we have released eight games.</p>
<h4>What was your inspiration for &#8220;Monsters in Bunnyland&#8221;?</h4>
<p>Monsters appears in many games but usually they play a role of bad guys. What we wanted to do is to show them from another side. As everybody, monsters also must have their own fears and phobias. What they are afraid of? Of course, something totally opposite to them: bunnies. As you will find out in the game, those little and furry creatures turns out to be not so sweet after a closer look.</p>
<h4>What types of games do you like to create the most? What types of games do you like to play the most?</h4>
<p>We do not want to limit ourselves to any one particular type of games. We are open for any genre of games when we are coding or playing.</p>
<h4>How long is your game creation cycle? What is your process?</h4>
<p>The process takes a few months and depends on the game and the amount of free time we have (games are not our full-time job). During the development we like to play with the game, then make changes to see what makes it more fun.</p>
<h4>Are there any game developers that you admire or consider &#8220;rock stars&#8221;?</h4>
<p>There are lots of people who make really good games that we admire. A few that come to mind are: 2D boy for World of Goo, Brad Borne for Fancy Pants and Pyrozen for Sift Heads World series.</p>
<h4>What is it about making a new game that you enjoy most?</h4>
<p>I love to see how something is created from nothing. You begin from empty Main class and bunch of ideas in your head. After a few months you see how those ideas become real. Another thing that gives lots of joy is to see game play statistics and millions of player world wide that are playing your game. That is a really fantastic feeling.</p>
<h4>Do you have any hot projects you&#8217;re working on right now?</h4>
<p>We have a bunch of ideas for next projects. Usually we come up with a few topics for very different games. After a few prototypes we select something and begin the development. I don&#8217;t want to reveal anything specific right now, but you will hear from us about new games soon.</p>
<p><em><strong>Thanks Limex Games, can&#8217;t wait to see what you cook up next!</strong></em></p>
 <div class='series_toc'></div>	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; Colin Cupp for <a href="http://mochiland.com">MochiLand</a>, 2011. |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-monsters-in-bunnyland">Permalink</a> |
	  <a href="http://mochiland.com/articles/flash-game-friday-winner-monsters-in-bunnyland#comments">One comment</a></p>
	<p>Add to <a href="http://del.icio.us/post?url=http://mochiland.com/articles/flash-game-friday-winner-monsters-in-bunnyland&amp;title=Flash Game Friday Winner: Monsters in Bunnyland">del.icio.us</a></p>
	<p>Search blogs linking this post with <a href="http://www.technorati.com/search/http://mochiland.com/articles/flash-game-friday-winner-monsters-in-bunnyland" title="Search on Technorati">Technorati</a></p>
	<p>Want more on these topics ? Browse the archive of posts filed under <a href="http://mochiland.com/category/mochiland/developer-feed" title="View all posts in Developer Feed" rel="category tag">Developer Feed</a>, <a href="http://mochiland.com/category/mochiland/flash-game-friday" title="View all posts in Flash Game Friday" rel="category tag">Flash Game Friday</a>, <a href="http://mochiland.com/category/mochiland/featured-games" title="View all posts in Game Showcase" rel="category tag">Game Showcase</a>, <a href="http://mochiland.com/category/mochiland" title="View all posts in MochiLand Topics" rel="category tag">MochiLand Topics</a>, <a href="http://mochiland.com/category/mochiland/publisher-feed" title="View all posts in Publisher Feed" rel="category tag">Publisher Feed</a>.</p><img src="http://feeds.feedburner.com/~r/Mochiland/~4/P5WcKk6tKPA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mochiland.com/articles/flash-game-friday-winner-monsters-in-bunnyland/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://mochiland.com/articles/flash-game-friday-winner-monsters-in-bunnyland</feedburner:origLink></item>
	</channel>
</rss>

