<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dovyski</title>
	<atom:link href="http://www.dovyski.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dovyski.com</link>
	<description>Pointless things somehow useful</description>
	<lastBuildDate>Mon, 14 May 2012 21:23:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>I told my 2nd year CS students to create a programming language [RESULTS]</title>
		<link>http://www.dovyski.com/2012/05/i-told-my-2nd-year-cs-students-to-create-a-programming-language-results/</link>
		<comments>http://www.dovyski.com/2012/05/i-told-my-2nd-year-cs-students-to-create-a-programming-language-results/#comments</comments>
		<pubDate>Mon, 14 May 2012 21:21:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2737</guid>
		<description><![CDATA[A few weeks ago I told my 2nd year CS students to create a programming language and here are the results of such assignment. I am sorry for the long post, but I used any good information I collected. I have 24 students attending my classes. The assignment was supposed to be performed by pairs within 3 [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago <a title="I told my 2nd year CS students to create a programming language" href="http://www.dovyski.com/2012/04/i-told-my-2nd-year-cs-students-to-create-a-programming-language/" target="_blank">I told my 2nd year CS students to create a programming language</a> and here are the results of such assignment. I am sorry for the long post, but I used any good information I collected.</p>
<p>I have <strong>24</strong> students attending my classes. The assignment was supposed to be performed by pairs within 3 weeks, but I had two students that decided to go alone, so there were only <strong>11 pairs</strong> of students. I was expecting a high number of accomplishments, but it was better than I thought. In the end, just <strong>one</strong> pair of students didn't show up for the presentation day, all other students were there with a working interpreter.</p>
<h3>A little lie</h3>
<p>According to the assignment description, the interpreter should be able to handle if's and loops in order to get a good grade. I would test that asking them to implement two programs: #1 calculate the average of two numbers and #2 check prime numbers. If the interpreter was able to run program #1, they would be graded with at least 4.0 (up to 10.0). If the interpreter was able to run program #2, they would be graded from 8.0 to 10.0.</p>
<p>I told them this little lie to keep everybody focused and avoid extremely simple interpreters (e.g. able to handle variable assignments and expressions only). I evaluated the interpreters using the students hard work and the evolution they had on subjects they learned during the classes.</p>
<h3>The languages</h3>
<p>The very first thing I noticed was that they focused all their manpower on trying to create something able to interpret program #2. As a consequence, 12 of 14 interpreters were able to handle if's and loops, but not nested ifs/loops. You could use several ifs and loops as long as they were not nested. However all those 12 interpreters were able to handle loops containing several ifs, as long as they were not nested among each other. One pair of students did not implement if's/loops.</p>
<p>I assume this "non-nested thing" happened because they were thinking about checking prime numbers using a loop containing some if's. Some samples I found (translated to C for the sake or understanding):</p>
<pre>if(exp) {</pre>
<pre>  // only variable assignments allowed here.</pre>
<pre>}</pre>
<pre>while(exp) {</pre>
<pre>  if(exp) {</pre>
<pre>     // only variable assignments allowed here.</pre>
<pre>  }</pre>
<pre>  if(exp) {</pre>
<pre>     // only variable assignments allowed here.</pre>
<pre>  }</pre>
<pre>  // the following is not allowed here:</pre>
<pre>  while() {</pre>
<pre>  }</pre>
<pre>}</pre>
<p>Several students told me at the end of the presentation that they had ideas to allow nested if's/loops, but they had no time left to implement it. They also said there were too focused on small things (e.g. variables) and forgot to check the big picture. One pair of students used an "assembly" like approach and implemented the goto, so they their code allowed nested if's/loops.</p>
<p>About 5 interpreters used an "op-code" like grammar, so the programmer must start every statement with an "instruction op-code", e.g. "assign a = 2 + b". I think they did that because they thought it would be easier to analyze every line, but in the end they noticed it was not that useful.</p>
<p>Just 3 interpreters were able to create variables on the fly, such as PHP does, where $var = 2 declares $var if it is not already declared, or it assigns 2 if $var already exists. All other interpreters force the programmer to previously declare variables. I think it happened because they wrote just C code until now (they will meet PHP next semester).</p>
<p>Several interpreters were very sensitive about the spaces among tokens. As a consequence the programmer must use the exact number of spaces among tokens, otherwise it would not work. Just a few interpreters could read the code one char at a time, which allowed them to ignore extra spaces. All other interpreters used some sort of split method based on spaces/tabs/separators.</p>
<p>Five interprets had input commands, pretty much like "input var;". The assignment description had no requirements about that, so it was cool to see them implementing something beyond what I asked for.</p>
<p>I also saw one interpreters able to handle complex math expressions (more than two elements/operators), but analyzing it from left to right with no operator precedence; I also saw typed vars (including int, float and string!), predefined variable names (you could use "a" to "z", and nothing else <img src='http://www.dovyski.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), output with value substitution (e.g "var = @var" produces "var = 2").</p>
<h3>Students feedback</h3>
<p>The week after the students concluded the assignment, I issued a poll to check their opinion about all they had to go through. Those were the results:</p>
<p style="text-align: center;"><strong>How difficult was it to implement this assignment?</strong></p>
<table id="table#0">
<tbody>
<tr>
<td><strong>Pretty easy</strong></td>
<td></td>
<td></td>
<td>0%</td>
</tr>
<tr>
<td><strong>Easy</strong></td>
<td></td>
<td></td>
<td>5%</td>
</tr>
<tr>
<td><strong>Regular</strong></td>
<td></td>
<td></td>
<td>11%</td>
</tr>
<tr>
<td><strong>Hard</strong></td>
<td></td>
<td></td>
<td>42%</td>
</tr>
<tr>
<td><strong>Pretty hard</strong></td>
<td></td>
<td></td>
<td>42%</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<div dir="ltr"><strong>From 0 to 5, being 0 just a little and 5 very much, how much do you think this assignment helped you to understand the concepts we studied?</strong></div>
<table id="table#2">
<tbody>
<tr>
<td>0 -</td>
<td>
<div><strong>Just a little</strong></div>
</td>
<td></td>
<td>0%</td>
</tr>
<tr>
<td>1</td>
<td></td>
<td></td>
<td>11%</td>
</tr>
<tr>
<td>2</td>
<td></td>
<td></td>
<td>5%</td>
</tr>
<tr>
<td>3</td>
<td></td>
<td></td>
<td>21%</td>
</tr>
<tr>
<td>4</td>
<td></td>
<td></td>
<td>16%</td>
</tr>
<tr>
<td>5 -</td>
<td>
<div><strong>Very much</strong></div>
</td>
<td></td>
<td>47%</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p style="text-align: center;"><strong> How much fun did you have doing this assignment?</strong></p>
<table id="chart#4">
<tbody>
<tr>
<td></td>
</tr>
<tr>
<td>
<table id="table#4">
<tbody>
<tr>
<td><strong>It was death boring, don't ever do that again!</strong></td>
<td>16%</td>
</tr>
<tr>
<td><strong>It was fun!</strong></td>
<td>68%</td>
</tr>
<tr>
<td><strong>It was damn cool!</strong></td>
<td>16%</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p style="text-align: center;"><strong>Would you recommend me to repeat this assignment in the future with other students?</strong></p>
<table id="chart#6">
<tbody>
<tr>
<td></td>
<td>
<table id="table#6">
<tbody>
<tr>
<td><strong>Yes</strong></td>
<td></td>
<td></td>
<td>89%</td>
</tr>
<tr>
<td><strong>No</strong></td>
<td></td>
<td></td>
<td>11%</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h3>Conclusion</h3>
<p>It as outstanding! My very first goal with the interpreter was to make them understand about objects, classes, methods and their relation. I could have asked them to implement a simple calculator to enforce those concepts, but as I told before, it was too boring.</p>
<p>I broke the line and pushed them really hard and they were able to handle it. I think nobody got depressed or something like that. I am very proud of them and looking forward to publish the next big assignment: a Guitar Hero like game.</p>
<p><strong>UPDATE:</strong> discuss it on <a href="http://news.ycombinator.com/item?id=3973367" target="_blank" onclick="pageTracker._trackPageview('/outgoing/news.ycombinator.com/item?id=3973367&amp;referer=');">Hacker News</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2012/05/i-told-my-2nd-year-cs-students-to-create-a-programming-language-results/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I told my 2nd year CS students to create a programming language</title>
		<link>http://www.dovyski.com/2012/04/i-told-my-2nd-year-cs-students-to-create-a-programming-language/</link>
		<comments>http://www.dovyski.com/2012/04/i-told-my-2nd-year-cs-students-to-create-a-programming-language/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 22:19:43 +0000</pubDate>
		<dc:creator>Dovyski</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2721</guid>
		<description><![CDATA[I teach object-oriented programming using Java to 3rd semester Computer Science students at Federal University of Fronteira Sul. During their first years, the students attend to algorithms and data structures classes, all using C. I teach algorithms too. I like to teach using assignments. During the last two semesters, my OOP/Java classes were followed by [...]]]></description>
			<content:encoded><![CDATA[<p>I teach object-oriented programming using Java to 3rd semester Computer Science students at <a href="http://www.uffs.edu.br" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.uffs.edu.br?referer=');">Federal University of Fronteira Sul</a>. During their first years, the students attend to algorithms and data structures classes, all using C. I teach algorithms too.</p>
<p>I like to teach using assignments. During the last two semesters, my OOP/Java classes were followed by small assignments, every two weeks. Those assignments were strictly related to some topic being discussed during the classes. I was afraid to push my students too hard, so the tasks were easy (in my opinion) to understand and complete. I already told them to implement a tic-tac-toe game, a simple Android app (at the end of semester), a simplified bank management app, among others. However they are all boring tasks.</p>
<p>This semester I decided to take another approach. I wanted to push my students to the limits. After two months of classes, they were already familiar (or I thought so =) with objects, classes, strings and arrays. So I fired the first assignment: implement an interpreter for a programming language each pair of students must design. The language must have the following "feature" set:</p>
<ul>
<li>Declaration of variables</li>
<li>Assign values to variables</li>
<li>Math expressions with at least two members (e.g. 2 + 2)</li>
<li>ifs</li>
<li>loops</li>
</ul>
<p>Boom! When I told them about the assignment, they were a little bit shocked. They will get in touch with subjects as compilers only at the beginning of the 4th year, so I told them some basic tips about interpreting a language, such as analyzing tokens and using a dictionary to store and manage variables.</p>
<p>After they digested the information, they started designing their languages. They looked like they were having fun doing that. During the last two weeks, they have been working on that assignment. Lots of questions, lots of ideas and approaches. So far, so good.</p>
<p>I don't really expect them to create a production ready language interpreter. My goal with that task was to enhance their understanding about objects, classes, methods, instantiation, etc. They will empirically learn about a programming language structure. It's been great so far.</p>
<p>Next week they will present their interpreters. In order to make things even cooler, each pair of students must implement two programs using somebody else's language. I know this may not be the best approach for teaching OOP/Java, but it's way better than boring simple tasks.</p>
<p><strong>UPDATE</strong>: check the <a href="http://news.ycombinator.com/item?id=3839099" target="_blank" onclick="pageTracker._trackPageview('/outgoing/news.ycombinator.com/item?id=3839099&amp;referer=');">Hacker News</a> thread.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2012/04/i-told-my-2nd-year-cs-students-to-create-a-programming-language/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nokaloompas</title>
		<link>http://www.dovyski.com/2011/09/nokaloompas/</link>
		<comments>http://www.dovyski.com/2011/09/nokaloompas/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 23:43:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2696</guid>
		<description><![CDATA[My friends at Decadium just released a new game called Nokaloompas. It's a funny puzzle game that has the inverse gameplay of Cut the Rope, meaning you have to add ropes in order to achieve the level goal (carry bombs around) Play for free at Kongregate.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="www.kongregate.com/games/iopdecadium/nukaloompas"><img class=" wp-image-2698 aligncenter" title="Nukaloompas" src="http://www.dovyski.com/wp-content/uploads/2011/09/main.png" alt="" width="640" height="302" /></a></p>
<p style="text-align: left;">My friends at <a href="http://decadium.com" onclick="pageTracker._trackPageview('/outgoing/decadium.com?referer=');">Decadium</a> just released a new game called <a href="http://www.kongregate.com/games/iopdecadium/nukaloompas" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.kongregate.com/games/iopdecadium/nukaloompas?referer=');">Nokaloompas</a>. It's a funny puzzle game that has the inverse gameplay of <a href="http://itunes.apple.com/us/app/cut-the-rope/id380293530?mt=8" target="_blank" onclick="pageTracker._trackPageview('/outgoing/itunes.apple.com/us/app/cut-the-rope/id380293530?mt=8&amp;referer=');">Cut the Rope</a>, meaning you have to add ropes in order to achieve the level goal (carry bombs around)</p>
<p>Play for free at <a href="http://www.kongregate.com/games/iopdecadium/nukaloompas" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.kongregate.com/games/iopdecadium/nukaloompas?referer=');">Kongregate</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2011/09/nokaloompas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 GameGears</title>
		<link>http://www.dovyski.com/2010/05/as3-gamegears/</link>
		<comments>http://www.dovyski.com/2010/05/as3-gamegears/#comments</comments>
		<pubDate>Fri, 07 May 2010 02:42:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2483</guid>
		<description><![CDATA[Flash game developers - meet my new project: AS3 Game Gears ! It is the right place to find useful tools to boost your game development. There is no need to reinvent the wheel, all you need is a place to find what you have been looking for. Enjoy!]]></description>
			<content:encoded><![CDATA[<p>Flash game developers - meet my new project: <a href="http://www.as3gamegears.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.as3gamegears.com/?referer=');">AS3 Game Gears</a> ! It is the right place to find useful tools to boost your game development. There is no need to reinvent the wheel, all you need is a place to find what you have been looking for. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2010/05/as3-gamegears/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FIVe3D &#8211; Flash Interactive Vector-based 3D</title>
		<link>http://www.dovyski.com/2010/05/five3d-flash-interactive-vector-based-3d/</link>
		<comments>http://www.dovyski.com/2010/05/five3d-flash-interactive-vector-based-3d/#comments</comments>
		<pubDate>Wed, 05 May 2010 10:04:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2468</guid>
		<description><![CDATA[If you are looking for something different to make you game or Flash app looks better than the rest then you must take a look at FIVe3D. It is an open source code for the conception of interactive vector-based 3D animations. It is licensed under the MIT License. One of my favorites demos is the [...]]]></description>
			<content:encoded><![CDATA[<p>If you are looking for something different to make you game or Flash app looks better than the rest then you must take a look at <a href="http://code.google.com/p/five3d/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/five3d/?referer=');">FIVe3D.</a> It is an open source code for the conception of  interactive vector-based 3D animations.</p>
<p>It is licensed under the <a rel="nofollow" href="http://www.opensource.org/licenses/mit-license.php" onclick="pageTracker._trackPageview('/outgoing/www.opensource.org/licenses/mit-license.php?referer=');">MIT License.</a> One of my favorites demos is the <a href="http://five3d.mathieu-badimon.com/gallery/fluo/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/five3d.mathieu-badimon.com/gallery/fluo/?referer=');">Fluo Board</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2010/05/five3d-flash-interactive-vector-based-3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3-Utils</title>
		<link>http://www.dovyski.com/2010/04/as3-utils/</link>
		<comments>http://www.dovyski.com/2010/04/as3-utils/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 04:08:41 +0000</pubDate>
		<dc:creator>Dovyski</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[as3]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2464</guid>
		<description><![CDATA[Sometimes I find myself solving the same problems again and again on several different projects. Definitely there is no need to reinvent the wheel, you just have to use the right tools. Theses days I found a perfect help on that subject. AS3 utils is a set of useful function that solve common problems such [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes I find myself solving the same problems again and again on several different projects. Definitely there is no need to reinvent the wheel, you just have to use the right tools.</p>
<p>Theses days I found a perfect help on that subject. <a title="As3 Utils" href="http://github.com/as3/as3-utils/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/github.com/as3/as3-utils/?referer=');">AS3 utils</a> is a set of useful function that solve common problems such as randomizing or summing the values of an a array. All functions were collected from several open souce projects from the Internet, so there is no unified license.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2010/04/as3-utils/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BulkLoader &#8211; managing multiple loadings in AS3</title>
		<link>http://www.dovyski.com/2010/03/bulkloader-managing-multiple-loadings-in-as3/</link>
		<comments>http://www.dovyski.com/2010/03/bulkloader-managing-multiple-loadings-in-as3/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 10:02:28 +0000</pubDate>
		<dc:creator>Dovyski</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2409</guid>
		<description><![CDATA[One of the most common tasks in game development is the assets loading process. You have two options: 1) ship your game as a single 45Mb SWF file filled with sweet and compressed-to-the-bones images/sounds or 2) load all those assets separately and on demand. Sometimes the first option is your best shot, but for casual [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most common tasks in game development is the assets loading process. You have two options: 1) ship your game as a single 45Mb SWF file filled with sweet and compressed-to-the-bones images/sounds or 2) load all those assets separately and on demand.<a href="http://www.dovyski.com/wp-content/uploads/2010/02/nggshow.php_.png"><img class="aligncenter size-thumbnail wp-image-2410" title="nggshow.php" src="http://www.dovyski.com/wp-content/uploads/2010/02/nggshow.php_-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Sometimes the first option is your best shot, but for casual online games the second one is more suitable. Multiple loadings in AS3 can be a pain, because there are several file types to load (wave, JPG, mp3, GIF, swf, etc) and there is no single way to load them all.</p>
<p>So far my best approach to solve this problem is called <a href="http://code.google.com/p/bulk-loader/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/bulk-loader/?referer=');">BulkLoader</a>, a library for managing multiple loadings with AS3. It is licensed under the <a rel="nofollow" href="http://www.opensource.org/licenses/mit-license.php" onclick="pageTracker._trackPageview('/outgoing/www.opensource.org/licenses/mit-license.php?referer=');">MIT License</a> and has amazing features:</p>
<ul>
<li>Connection pooling.</li>
<li> Unified interface for different loading types.</li>
<li> Unified progress notification.</li>
<li> Events for individual items and as groups.</li>
<li> Priority</li>
<li> Stop and resuming individually as well as in bulk.</li>
<li> Cache management.</li>
<li> Statistics about loading (latency, speed, average speed).</li>
<li> Various kinds on progress indication: ratio (items loaded / items to load), bytes , and weighted percentage.</li>
<li> Configurable number of retries.</li>
<li> Configurable logging.</li>
<li> Various assest types (XML, NetStreams, Swfs, Images, Sound, Text Files)</li>
</ul>
<p>Design goals:</p>
<ul>
<li> Minimal imports.</li>
<li> Few method to learn.</li>
<li> Consistent interface, regardless of content type.</li>
</ul>
<p>BulkLoader gracefully handles progress notification in these use cases:</p>
<ul>
<li> Few connections to open: bytes total can be used instantly.</li>
<li> Many connections opened: progress by ratio</li>
<li> Many connections opened for data of widely varying sizes: progress by weight.</li>
</ul>
<p>One of the things I like the most is that this project was created by a Brazilian fellow named <a href="http://www.stimuli.com.br/about/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stimuli.com.br/about/?referer=');">Arthur Debert</a> <img src='http://www.dovyski.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Thanks for this great tool!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2010/03/bulkloader-managing-multiple-loadings-in-as3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mrdoob stats &#8211; Actionscript performance monitor</title>
		<link>http://www.dovyski.com/2010/03/mrdoob-stats-actionscript-performance-monitor/</link>
		<comments>http://www.dovyski.com/2010/03/mrdoob-stats-actionscript-performance-monitor/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 03:14:16 +0000</pubDate>
		<dc:creator>Dovyski</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[profiling]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2403</guid>
		<description><![CDATA[Create and develop a game is hard task, but optimize one is even harder. You can ruin a perfect game design and a beautiful artset by filling the source code with useless and/or unnecessary stuff. In order to keep things in control a performance monitor comes in handy. Mrdoob stats provides a simple info box [...]]]></description>
			<content:encoded><![CDATA[<p>Create and develop a game is hard task, but optimize one is even harder. You can ruin a perfect game design and a beautiful artset by filling the source code with useless and/or unnecessary stuff. In order to keep things in control a performance monitor comes in handy.</p>
<p><a href="http://www.dovyski.com/wp-content/uploads/2010/02/Anatoly-Zenkov-Portrait-of-Mr.-Doob.jpg"><img class="aligncenter size-full wp-image-2404" title="Anatoly Zenkov - Portrait of Mr. Doob" src="http://www.dovyski.com/wp-content/uploads/2010/02/Anatoly-Zenkov-Portrait-of-Mr.-Doob.jpg" alt="" width="180" height="240" /></a></p>
<p><a href="http://code.google.com/p/mrdoob/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/mrdoob/?referer=');">Mrdoob stats</a> provides a simple info box that will help you monitor your code performance. It can tell you the following:</p>
<ul>
<li><strong>FPS</strong> Frames per second, how many frames were rendered in 1 second. The higher the number, the better.</li>
<li><strong>MS</strong> Milliseconds needed to render a frame. The lower number, the better.</li>
<li><strong>MEM</strong> Memory your code is using, if it increases per frame is VERY wrong.</li>
<li><strong>MAX</strong> Maximum memory the application reached.</li>
</ul>
<p>It is another great tool to know what is happing under the hood.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2010/03/mrdoob-stats-actionscript-performance-monitor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Isometric AS3 game engines</title>
		<link>http://www.dovyski.com/2010/02/isometric-as3-game-engines/</link>
		<comments>http://www.dovyski.com/2010/02/isometric-as3-game-engines/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 03:07:38 +0000</pubDate>
		<dc:creator>Dovyski</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[engines]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[isometric]]></category>
		<category><![CDATA[MIT]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2394</guid>
		<description><![CDATA[After Happy Farm and FarmVille attracted millions of user there is a lot of talking about isometric games. I've played several games featuring an isometric view then I've spent some thoughts around the idea of creating my own isometric game (or one for my company, developed during my inexistent free time). Looking for isometric game [...]]]></description>
			<content:encoded><![CDATA[<p>After <a href="http://www.facebook.com/apps/application.php?id=57132175859" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/apps/application.php?id=57132175859&amp;referer=');">Happy Farm</a> and <a href="http://www.farmville.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.farmville.com/?referer=');">FarmVille</a> attracted millions of user there is a lot of talking about isometric games. I've played several games featuring an isometric view then I've spent some thoughts around the idea of creating my own isometric game (or one for my company, developed during my <span style="text-decoration: line-through;">inexistent</span> free time).</p>
<p>Looking for isometric game engines, I found three great projects: <a href="http://www.ffilmation.org" onclick="pageTracker._trackPageview('/outgoing/www.ffilmation.org?referer=');">FFilmation</a>, <a href="http://code.google.com/p/as3isolib/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/as3isolib/?referer=');">As3isolib</a> and <a href="http://www.openspace-engine.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.openspace-engine.com/?referer=');">OpenSpace</a>.</p>
<p><a href="http://code.google.com/p/ffilmation/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/ffilmation/?referer=');"><img class="aligncenter size-medium wp-image-2395" title="picture-1" src="http://www.dovyski.com/wp-content/uploads/2010/02/picture-1-300x93.png" alt="" width="300" height="93" /></a></p>
<p><a href="http://www.ffilmation.org" onclick="pageTracker._trackPageview('/outgoing/www.ffilmation.org?referer=');">FFilmation</a> (<a rel="nofollow" href="http://www.opensource.org/licenses/mit-license.php" onclick="pageTracker._trackPageview('/outgoing/www.opensource.org/licenses/mit-license.php?referer=');">MIT License</a>):</p>
<ul>
<li>Have a programming interface as small and easy as possible, no matter how complex the internal code is;</li>
<li>Rendering performance is a major concern when designing all the algorythms;</li>
<li>Graphic designers are able to work on the application’s ( game or not ) environments without any programming skills, visually, and with almost immediate previews of what they are doing.</li>
</ul>
<p><a href="http://code.google.com/p/as3isolib/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/as3isolib/?referer=');">As3isolib</a> (<a rel="nofollow" href="http://www.opensource.org/licenses/mit-license.php" onclick="pageTracker._trackPageview('/outgoing/www.opensource.org/licenses/mit-license.php?referer=');">MIT License</a>):</p>
<ul>
<li><a name="current_features">Simple scene creation; </a></li>
<li><a name="current_features">3 primitive types;</a></li>
<li><a name="current_features">Base class for displaying user-created conten; </a></li>
<li><a name="current_features">Plenty of styling option on vector based primitive; </a></li>
<li><a name="current_features">Integrates well with a variety of tween engine; </a></li>
<li><a name="current_features">Improved 3D isometric positional sortin; </a></li>
<li><a name="current_features">Scene &amp; view renderer classes geared towards performance optimizatio; </a></li>
<li><a name="current_features">Performance caching of static and animated sprite asset. </a></li>
</ul>
<p><a href="http://www.openspace-engine.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.openspace-engine.com/?referer=');">OpenSpace</a> (commercial, part of the <a href="http://www.smartfoxserver.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.smartfoxserver.com/?referer=');">SmartFoxServer</a> platform for multiplayer games):</p>
<ul>
<li>Engine and framework for rapid development of multi-user virtual worlds and MMO communities;</li>
<li>Customizable tiles' aspect ratio;</li>
<li>Tiles Elevation</li>
<li>2D objects in a 2.5D world</li>
<li>Backgrounds and foregrounds</li>
<li>Scrolling</li>
<li>Advanced pathfinding</li>
<li>Powerful avatar management</li>
<li>Advanced map interaction system</li>
<li>Exhaustive documentation</li>
<li>Complete Map Editor</li>
</ul>
<p>If you were planning to develop an isometric game, you just found your first step.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2010/02/isometric-as3-game-engines/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Improve your game with particles</title>
		<link>http://www.dovyski.com/2010/02/improve-your-game-with-particles/</link>
		<comments>http://www.dovyski.com/2010/02/improve-your-game-with-particles/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 09:08:37 +0000</pubDate>
		<dc:creator>Dovyski</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[effects]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[particles]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2362</guid>
		<description><![CDATA[When I play a game, I like to see all those flying particles popping up on the screen. Casual games make heavy use of this resource, sometimes more than what is considered healthy. A particle system adds dynamism to the game and makes it feel alive. Where is the fun of blowing up an enemy [...]]]></description>
			<content:encoded><![CDATA[<p>When I play a game, I like to see all those flying particles popping up on the screen. Casual games make heavy use of this resource, sometimes more than what is considered healthy.</p>
<p><a href="http://www.dovyski.com/wp-content/uploads/2010/01/sparkler.jpg"><img class="aligncenter size-full wp-image-2364" src="http://www.dovyski.com/wp-content/uploads/2010/01/sparkler.jpg" alt="" width="150" height="150" /></a></p>
<p>A particle system adds dynamism to the game and makes it feel alive. Where is the fun of blowing up an enemy base and see just a few flames as a reward? Players want to see lots of things flying around and sparkles shinning towards the camera. Flash gamers are no exception. In order to add particles to your game, you can use two free particle systems (both use <a href="http://www.opensource.org/licenses/mit-license.php" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.opensource.org/licenses/mit-license.php?referer=');">MIT license</a>): <a href="http://flintparticles.org" target="_blank" onclick="pageTracker._trackPageview('/outgoing/flintparticles.org?referer=');">Flint</a> and <a href="http://code.google.com/p/stardust-particle-engine/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/stardust-particle-engine/?referer=');">Stardust</a>.</p>
<p><a href="http://flintparticles.org" target="_blank" onclick="pageTracker._trackPageview('/outgoing/flintparticles.org?referer=');">Flint</a> is an open-source project to create a versatile particle system in Actionscript 3. The aim is to create a system that handles the common functionality for all particle systems, has methods for common particle behaviour, and lets developers extend it easily with their own custom behaviours without needing to touch the core code.</p>
<p><a href="http://code.google.com/p/stardust-particle-engine/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/stardust-particle-engine/?referer=');">Stardust</a> was inspired by <a href="http://flintparticles.org" target="_blank" onclick="pageTracker._trackPageview('/outgoing/flintparticles.org?referer=');">Flint</a>, but it has its own set features:</p>
<div>
<ul>
<li>Supports 2D and 3D particle effects.</li>
<li>Easy to extend for custom initializers, actions, fields, deflectors, clocks, and 2D/3D renderers.</li>
<li>Includes 3D extensions for ZedBox, Papervision3D, and ND3D.</li>
<li>Includes a native 3D renderer.</li>
<li>Supports particle masking (particles can be masked out for actions).</li>
<li>Uses linked lists and object pools to improve performance.</li>
<li>Gravity and deflector simulation.</li>
<li>Action triggers (for creating complex conditional particle behaviors).</li>
<li>XML serialization.</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2010/02/improve-your-game-with-particles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

