<?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>Lightning Does Strike Twice</title>
	<atom:link href="http://gnueless.com/feed" rel="self" type="application/rss+xml" />
	<link>http://gnueless.com</link>
	<description>The semi-daily pseudo-random thoughts of Emil Erik Hansen</description>
	<lastBuildDate>Sun, 22 Aug 2010 09:18:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>earth shock song</title>
		<link>http://gnueless.com/2010/08/earth-shock-song.html</link>
		<comments>http://gnueless.com/2010/08/earth-shock-song.html#comments</comments>
		<pubDate>Sun, 22 Aug 2010 09:16:14 +0000</pubDate>
		<dc:creator>gnub</dc:creator>
				<category><![CDATA[lightning]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[wow]]></category>

		<guid isPermaLink="false">http://gnueless.com/?p=644</guid>
		<description><![CDATA[But no, I won&#8217;t actually rewrite &#8220;Earth Song&#8221;, but still throw in the first verse, as it fits pretty good by itself: What about sunrise What about rain What about all the things That you said we were to gain.. . What about killing fields Is there a time What about all the things That [...]]]></description>
			<content:encoded><![CDATA[<p>But no, I won&#8217;t actually rewrite &#8220;Earth Song&#8221;, but still throw in the first verse, as it fits pretty good by itself:</p>
<p><em>What about sunrise<br />
What about rain<br />
What about all the things<br />
That you said we were to gain.. .<br />
What about killing fields<br />
Is there a time<br />
What about all the things<br />
That you said was yours and mine&#8230;<br />
Did you ever stop to notice<br />
All the blood we&#8217;ve shed before<br />
Did you ever stop to notice<br />
The crying Earth the weeping shores? </em></p>
<p>Now, the point of this is basically just to tell that we&#8217;re finally getting a proper use for <a href="http://www.wowhead.com/spell=49231">Earth Shock</a> as Elemental. The latest Cataclysm beta-build (12803) added in a useful combination of things. First, we get to use <a href="http://www.wowhead.com/spell=49281">Lightning Shield</a> instead of <a href="http://www.wowhead.com/spell=57960">Water Shield</a>, and it will provide us with mana regain and a mechanic <em>somehow</em> similar to Enhancement&#8217;s <a href="http://www.wowhead.com/spell=51527">Static Shock</a>. It all comes from the two new talents <a href="http://cata.wowhead.com/spell=88764">Rolling Thunder</a> and <a href="http://cata.wowhead.com/spell=88766">Fulmination</a>.</p>
<p><a href="http://cata.wowhead.com/spell=88764">Rolling Thunder</a> gives us the nice mana regeneration. 1% total mana is quite a bit, especially with a 60% chance of every Lightning Bolt or Chain Lightning being fired. The side-effect of adding a shield-charge seems to be a bit odd at first &#8211; it&#8217;s not really intended for us to get hit to do damage. However, that&#8217;s where the second part comes in.</p>
<p><a href="http://cata.wowhead.com/spell=88766">Fulmination</a> (the name is <a href="http://www.google.com/search?hl=en&amp;q=define%3A+fulmination">incredibly fitting</a> by the way) gives us a way to deplete excess shield charges from the maximum of 9, down to the normal amount of 3, by firing off &#8211; yes, <a href="http://www.wowhead.com/spell=49231">Earth Shock</a>. In short, optimal conditions will let it do the extra damage of 6 charges. <a href="http://www.wowhead.com/spell=51881">Improved Shields</a> suddenly looks very interesting, and one could theorize that <a href="http://www.wowhead.com/item=41537">[Glyph of Lightning Shield]</a> <em>might</em> be slightly useful. Then again, glyphs haven&#8217;t been touched upon yet, so it&#8217;s quite meaningless to talk about those just yet.</p>
<p>If we use todays numbers, the extra 6 charges would add the following amount to the damage:<br />
<img src='http://s.wordpress.com/latex.php?latex=6%20%2A%20%28380%20%2B%20SP%20%2A%200.33%29%2A1.15&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='6 * (380 + SP * 0.33)*1.15' title='6 * (380 + SP * 0.33)*1.15' class='latex' /><br />
Seeing as 3500 spell power is in no way a unreachable number, that would give us a bonus damage of <em>at least</em>:<br />
<img src='http://s.wordpress.com/latex.php?latex=6%20%2A%20%28380%20%2B%203500%20%2A%200.33%29%2A1.15%20%3D%2010591.5&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='6 * (380 + 3500 * 0.33)*1.15 = 10591.5' title='6 * (380 + 3500 * 0.33)*1.15 = 10591.5' class='latex' /><br />
&#8230; and that&#8217;s a pretty stunning number, considering <a href="http://www.wowhead.com/spell=49231">Earth Shock</a>&#8216;s damage itself hasn&#8217;t been added yet.</p>
<p>There still is some &#8220;drawbacks&#8221; though. First of all, it&#8217;s not really going to be that often we can use it (around every 20th second or so, if we&#8217;re lucky). Understandable, since it lacks such a severe punch. Secondly, there&#8217;s the thing that it&#8217;s not yet included in <a href="http://cata.wowhead.com/spell=29000">Elemental Reach</a>, which reels us into 25 yard range. Most likely going to be fixed though, as it would be incredibly awkward otherwise.</p>
<p>Still, it&#8217;s a change I thing is very welcome, adds a bit of spice to the rotation, and breathes some new life into an old friend &#8211; although, most of us would probably prefer something with <a href="http://www.youtube.com/watch?v=2I-0badO8rc">Frost Shock</a> instead. Now, if only I had a beta key so I could test this properly&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://gnueless.com/2010/08/earth-shock-song.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>sanctuary</title>
		<link>http://gnueless.com/2010/08/sanctuary.html</link>
		<comments>http://gnueless.com/2010/08/sanctuary.html#comments</comments>
		<pubDate>Tue, 03 Aug 2010 15:49:01 +0000</pubDate>
		<dc:creator>gnub</dc:creator>
				<category><![CDATA[diablo]]></category>
		<category><![CDATA[offline]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://gnueless.com/?p=638</guid>
		<description><![CDATA[With Blizzard&#8217;s Writing Contest of the year coming to an end soon, I figured it might be time to take a look and figure out a submission for this year. Last time, I stayed within the familiarity of the Warcraft Universe, with the story &#8220;A Change of Ways&#8220;. The advantages was that it has a [...]]]></description>
			<content:encoded><![CDATA[<p>With <a href="http://us.blizzard.com/en-us/community/contests/writing2010/">Blizzard&#8217;s Writing Contest</a> of the year coming to an end soon, I figured it might be time to take a look and figure out a submission for this year.</p>
<p>Last time, I stayed within the familiarity of the Warcraft Universe, with the story &#8220;<a href="http://gnueless.com/2009/07/a-change-of-ways.html">A Change of Ways</a>&#8220;. The advantages was that it has a rich lore, with tons and tons of details and places, and the more obvious thing that it&#8217;s the universe I&#8217;ve spend the most time in, so far. But, what&#8217;s a competition without a challenge?</p>
<p>With that in mind, only two real universes remained: Diablo and Starcraft. Being more a fan of dark fantasy than science fiction &#8211; although I do like both &#8211; and knowing <a href="http://gnueless.com/2008/07/soul-in-search-of-answers.html">something about Diablo</a>, I chose the realm of Sanctuary. The lore is less detailed, and lots of stuff is still clouded in mystery, which makes a lot of nice openings for a good story.</p>
<p>So far, I&#8217;ve gotten a plot shaped, and slowly iterating through it and adding details, fleshing out characters and figuring out what part they&#8217;ll have. The main thing I want to do, is tying the various games together, and make further connections, as one of the things I&#8217;ve been having on my mind lately is <a href="http://gnueless.com/2010/06/rebirth.html">just that</a>. Looking forward to seeing how the story will turn out. This time, I shouldn&#8217;t have a problem with with time running out &#8211; I hope.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnueless.com/2010/08/sanctuary.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>thunderslack</title>
		<link>http://gnueless.com/2010/07/thunderslack.html</link>
		<comments>http://gnueless.com/2010/07/thunderslack.html#comments</comments>
		<pubDate>Sat, 10 Jul 2010 12:44:05 +0000</pubDate>
		<dc:creator>gnub</dc:creator>
				<category><![CDATA[online]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[waiting]]></category>
		<category><![CDATA[wow]]></category>

		<guid isPermaLink="false">http://gnueless.com/?p=629</guid>
		<description><![CDATA[To no further surprise, I won&#8217;t have Thunderstruck ready for this expansion, seeing as it would only serve for &#8220;that long&#8221;, before I&#8217;d have to re-iterate all of it, to match up with the Cataclysm changes and additions. However, it seems like the coming changes are only going to make it all easier &#8211; which [...]]]></description>
			<content:encoded><![CDATA[<p>To no further surprise, I won&#8217;t have <a href="http://gnueless.com/projects/thunderstruck">Thunderstruck</a> ready for this expansion, seeing as it would only serve for &#8220;that long&#8221;, before I&#8217;d have to re-iterate all of it, to match up with the Cataclysm changes and additions. However, it seems like the coming changes are only going to make it all easier &#8211; which is a thing I&#8217;m really glad about &#8211; the changes might not actually be that many after all.</p>
<p>Now, first of all, it was &#8220;just&#8221; (3 days ago) announced that the <a href="http://forums.worldofwarcraft.com/thread.html?topicId=25626290449">Mastery and Talents was up for a bit change</a>, by giving us less talent-points, but giving each of these more meaning, while &#8211; as we have known for some time &#8211; making all the boring stuff passive. The way I&#8217;ve built Thunderstruck, is basically by having a long list of what the various talents does, and add those bonuses to the base spell-values, which are then used to simulate a casts, based on the characters current statistics (as these can obviously change, by using trinkets, being under the effects of <a href="http://www.wowhead.com/spell=2825">[Bloodlust]</a> or otherwise). Less numbers flying around should make that a lot easier.</p>
<p>The fun part about masteries was indeed the Elemental Overload (basically just <a href="http://www.wowhead.com/spell=30679">[Lightning Overload]</a>, where Lava Burst can now be triggered as well), which I&#8217;ve already covered the basics of. The way I&#8217;ve done it, is basically that Lightning Bolt, Chain Lightning and Lava Burst, are all simulated with the same function, with the only difference (except different input numbers), is that the later has a variable set that doesn&#8217;t let it do Overload, but instead causes it to always crit. Now, this is something I can change, and completely leave out, as all of them will be able to do it.</p>
<p>In regards to statistical additions, there will be three additions/modifications: Spirit, Intellect and Mastery Rating. The first two are easy, however. Spirit will simply (as it stands now) be added as Hit Rating, and continue as that. Intellect will add a conversion-ratio for Spell Power (and that is possibly being changed to &#8220;Spell Power on weapon&#8221;). Lastly, there&#8217;s Mastery Rating &#8211; but do we know that works?  Actually, it is quite simple &#8211; if my assumption is correct: Like any other Rating, Mastery translates directly into a percentage, from the basic <a href="http://www.wowwiki.com/Rating">rating formula</a>. This percentage boosts your current <em>Third Mastery</em> (in this case: Elemental Overload), by that amount.</p>
<p>So, basically, let&#8217;s say the base percentage of Elemental Overload is 25% (as it looks now), and our Mastery rating translates into 38%, we&#8217;d end up having a 34,5% chance of Elemental Mastery doing its wonders. I like that &#8211; it&#8217;s going to give some nice theoretical wonders in determining which stat is the best, and how they&#8217;ll end up scale with each other.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnueless.com/2010/07/thunderslack.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>gwardar</title>
		<link>http://gnueless.com/2010/06/gwardar.html</link>
		<comments>http://gnueless.com/2010/06/gwardar.html#comments</comments>
		<pubDate>Sun, 27 Jun 2010 12:21:02 +0000</pubDate>
		<dc:creator>gnub</dc:creator>
				<category><![CDATA[general gaming]]></category>
		<category><![CDATA[offline]]></category>
		<category><![CDATA[university]]></category>

		<guid isPermaLink="false">http://gnueless.com/?p=625</guid>
		<description><![CDATA[And so, the 3 week programming-course I&#8217;d been working with is over. The report is written, the program compiled (and worked!) flawlessly &#8211; although the last compile was done 1½ hour before the actual exam &#8211; and the board that ran our program is returned. I&#8217;m actually going to miss the thing, it was rather [...]]]></description>
			<content:encoded><![CDATA[<p>And so, the 3 week programming-course I&#8217;d been working with is over. The report is written, the program compiled (and worked!) flawlessly &#8211; although the last compile was done 1½ hour before the actual exam &#8211; and the board that ran our program is returned. I&#8217;m actually going to miss the thing, it was rather fun to work with &#8211; and game development is fun, especially when the idea is rather unique, and as thus, easy to write a lot about.</p>
<p>To give a quick rundown of the project, it was done by writing a program in C, that was sent via a serial port to a <a href="http://www.zilog.com/index.php?option=com_product&#038;Itemid=26&#038;mode=showFamilyDetails&#038;familyId=6&#038;parent_id=2">ZiLOG Z8 Encore! Z8F6403</a>, and from there we could listen via a Telnet-based Terminal (from another serial port), and/or via the on-board LED display (which I got a nice example of here: <a href="http://gnueless.com/images/failboard.jpg">The Failboard</a>), and get inputs by pressing the 3 buttons. The first week was various exercises to get used to how it reacted to various things, how to control its register-calls, and coding C in general. The various exercises was naturally elements that would all be used in one way or the other in the final project. The last two weeks however, was where the interesting stuff started happening, as we finally got to know the final objectives: Create a game based on &#8220;ReflexBall&#8221; (which is basically ArkaNoid, without any objects to hit), and develop it into either (you guessed it) ArkaNoid, or something else entirely &#8211; pretty much freely chosen, but it had to satisfy certain criteria.</p>
<p>For the fun of it, we chose the latter, and got the idea for a &#8211; potenially &#8211; pretty fun idea: Gwardar. Naturally, that name doesn&#8217;t say much, but it should help a lot when looking at what a gwardar actually is: <a href="http://www.avru.org/general/general_gwardar.html">a snake</a>. So, our idea was a hybrid game of ReflexBall with Snake elements, which ended up being quite fun, and the actual game was &#8211; in fact &#8211; pretty fun as well.</p>
<p>I mainly worked on the gamefield &#8211; where the snake bounces around, collision detection &#8211; which was a much more essential part than for an ArkaNoid-game, as the ball/snake shouldn&#8217;t be able to hit itself, and react differently when hitting different things, and the ball/snake itself &#8211; which made sense to do together with collision, as that should be based upon where the ball was. </p>
<p>The first had some interesting challenges, as we only had a practical resolution of 63 x 21 &#8220;blocks&#8221; (columns and rows in the terminal-window, respectfully), and still wanted the ball/snake to be able to move with more than 8 different directions. As thus, we gave each block a 10&#215;10 background, essentially giving us a gamefield of 630 x 210, which gave many more possibilities in terms of directions (<a href="http://gnueless.com/images/screenshot0.png">early screen here, showing it</a>). However, to properly do that, we had to ensure that the ball/snake always moved to a new block, which was done by scaling the directional vector, so that the numerically longest of x or y was <em>exactly</em> 10 (or: 1 block). Any more, or any less, would mean that it could potentially skip, or end up in the same block.</p>
<p>In regards to collision-detection, it was done by first detecting what was on the target block, judged from the directional vector, change it in case the target was a wall or the &#8220;striker&#8221; (the board the player controls), grow in length if objects was eaten, or die, in case it was itself, or the void below the striker. In the case it was hitting something that would change the vector, the new target block was checked, and the ball would only continue moving in the case that there wasn&#8217;t anything there &#8211; or it was an edible object. The tricky part about the collision was detecting when it was hitting itself, and let that be handled properly. To explain that, it&#8217;s probably best to explain the properties of the ball/snake first.</p>
<p>The ball was given a &#8220;history&#8221;, of up to 50 blocks, that kept track of up to the previous 50 positions it had been placed on the detailed gamefield (that is, in the 630 x 210 grid), which initially served as a way to &#8220;erase&#8221; the balls previous position when it was redrawn at a new position, but later &#8211; when the ball turned into a snake &#8211; also a way to show the tail itself, by only erasing the tail length&#8217;th object in its history. In the end, the history was also used to place objects whenever eaten, at the very last position of the history &#8211; which turned out to look like it was random, especially when the tail length was short.</p>
<p>Getting back to the collision, it was obvious that low angles (meaning a directional vector of (10,1), for instance), would most likely cause the ball to &#8220;hit itself&#8221; upon bouncing against a wall, which would make it more or less impossible to ever reach the maximum length, or simply get very far at all. Still, it should naturally be possible to hit the tail, so we decided to simply ignore the first few parts of the history, when checking collision, so that the ball/snake had &#8220;time&#8221; to get free of itself. Hitting directly into a corner, would however still result death, as the overlap would be too great.</p>
<p>The other collision-based problem that surfaced was when &#8220;crossing itself&#8221;. A problem we never actually experienced exactly, but would look incredibly awkward if it did. Basically, it could happen as it would never <em>actually</em> hit itself, but on both sides, on points where both the &#8220;rough&#8221; x and y coordinates had changed (that is, on the 63 x 21 grid). Basically, it was done so that every time a situation like that happened, the collision-detection would check if both the coordinates (current_x, target_y) <em>and</em> (target_x, current_y) was in the ball&#8217;s history. In that case, it would have struck itself.</p>
<p>Now, going away from all the technical matter, the game proved to be very fun to play as well. The idea has been tried before, and there are quite many possible ways of <a href="http://dsiware.nintendolife.com/reviews/2010/02/snakenoid_dsiware">combining the two basic games</a>. In my personal opinion, ours was a success &#8211; but that&#8217;s always easy to say as one of the developers.</p>
<p>As a last word, here&#8217;s another <a href="http://gnueless.com/images/screenshot1.png">screenshot</a>, which should catch the idea pretty well. Try to imagine it with the tail being up to 50 &#8220;blocks&#8221; long.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnueless.com/2010/06/gwardar.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ding!</title>
		<link>http://gnueless.com/2010/06/ding-3.html</link>
		<comments>http://gnueless.com/2010/06/ding-3.html#comments</comments>
		<pubDate>Sun, 13 Jun 2010 22:00:52 +0000</pubDate>
		<dc:creator>gnub</dc:creator>
				<category><![CDATA[me]]></category>
		<category><![CDATA[offline]]></category>

		<guid isPermaLink="false">http://gnueless.com/?p=623</guid>
		<description><![CDATA[I&#8217;m now&#8230; 1/4 of a century old. Scary, in a way really, but it is just a number after all.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m now&#8230; 1/4 of a century old. Scary, in a way really, but it is just a number after all.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnueless.com/2010/06/ding-3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
