<?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 &#187; offline</title>
	<atom:link href="http://gnueless.com/category/offline/feed" rel="self" type="application/rss+xml" />
	<link>http://gnueless.com</link>
	<description>The pseudo-random thoughts of Emil Erik Hansen, aka. Gnub</description>
	<lastBuildDate>Mon, 30 Jan 2012 18:25:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>checkbox</title>
		<link>http://gnueless.com/2012/01/checkbox.html</link>
		<comments>http://gnueless.com/2012/01/checkbox.html#comments</comments>
		<pubDate>Sat, 28 Jan 2012 23:49:27 +0000</pubDate>
		<dc:creator>Gnub</dc:creator>
				<category><![CDATA[drinking]]></category>
		<category><![CDATA[general gaming]]></category>
		<category><![CDATA[offline]]></category>
		<category><![CDATA[university]]></category>

		<guid isPermaLink="false">http://gnueless.com/?p=820</guid>
		<description><![CDATA[Now that the first half a year of my time studying Game Design is over, I found it would be a good time to look back on the experience so far &#8230; and I realized that I had forgotten a major thing &#8211; the outcome of the first real challenge on the Game Design course. [...]]]></description>
			<content:encoded><![CDATA[<p>Now that the first half a year of my time studying Game Design is over, I found it would be a good time to look back on the experience so far &#8230; and I realized that I had forgotten a major thing &#8211; the outcome of the first real challenge on the Game Design course. This does of course means that I&#8217;ll postpone the reflections, and instead present this lovely challenge instead. Priorities, you know. </p>
<p>The premise was rather simple: Within two days, we had to construct a drinking (yes, indeed) game, test it (no further details were given of the nature of that, but we did it the only right way &#8211; with beer) and present it for the rest of the class. Challenge accepted!</p>
<p>I find it quite amazing that I never thought about posting it until now, because it was (or rather: is) a very nice drinking game. It has certainly done its part in delivering as a proper drinking-game should. The only negative part you could say about it, is that it <em>might</em> be a bit tricky to find 9 cups and a coaster &#8211; but at the very least you do not need any cards or any number of dice. </p>
<p><span id="more-820"></span></p>
<p>Anyway, onward to the important part &#8211; the rules:</p>
<blockquote><p>
<strong>THE SETUP AND WHAT YOU NEED:</strong></p>
<ul>
<li>3 to 6 players (more or less is possible, but not recommended).</li>
<li>9 glasses for the board (5×5) placed in a square (3×3).</li>
<li>A middle-marker (a coaster is perfect for the job), placed under the middle cup. This only serves to make it easy to see where the middle is.</li>
</ul>
<p>The below drawing shows the outer square-positions with the x&#8217;s, the initial glass-positions with circles, and the coaster as the square.</p>
<p><img class="size-full aligncenter" title="Checkbox Board" src="http://gnueless.com/images/Checkbox.png" alt="" width="335" height="310" /></p>
<p>Every participant buys an amount of beer (it doesn’t have to be beer, the crowd just have to buy the same kind of drink), best done in a pitcher or likewise. The glasses are then filled up to 2-3 fingers (or more, depending on how hardcore you’re playing). Shot-glasses are excellent at this, as they can limit the maximum contents, while removing the need to check your pouring.</p>
<p><strong>A TURN IS PERFORMED AS:</strong><br />
The first player takes a filled glass and jumps (vertically/horizontally) over any amount of cups (similar to the game “Checkers”). The outcome depends on whether or not the glasses which has been jumped over is empty or full. </p>
<ul>
<li>Each jump is one cup maximum, but you can take several jumps in one turn.</li>
<li>You can jump over both types of glasses in a given turn.</li>
<li>You may not end up outside the 5×5 board.</li>
<li>You may not jump over the same glass twice during a turn.</li>
<li>You may not use the same glass, as the previous player used, to jump with.</li>
</ul>
<p>The outcome of a given turn depends on the amount of each of either full or empty cups. If a glass is full the next player drinks it, else the current player fills it from his pitcher. If 3 or more empty glasses are filled during a turn, you can fill extra in filled glasses &#8211; if you jumped over any of those.</p>
<p>Another choice is, instead of moving a cup, is to move a filled glass from the outer circle to an empty spot in the inner circle. By doing that, the player must drink it, then fill it. This does NOT have to follow the jumping rules.</p>
<p>In case there’s no moves left, the given player drinks all full glasses, fills all of them, and reset the board to the starting position (The 3×3 square).</p>
<p><strong>END OF THE ROUND:</strong><br />
When all players’ pitchers are empty, and there’s no more beer to fill in the glasses, the players will eventually end up having no more possible moves, and the board is reset to the original initial 3×3 view, with a new round of beer &#8211; if possible.
</p></blockquote>
<p>The game was created along with <em>Julian Møller</em>, <em>Mads Johansen</em> and <em>Steen Nordsmark Pedersen</em>. Looking forward to the next game, sooner rather than later.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnueless.com/2012/01/checkbox.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>it&#8217;s turbo time!</title>
		<link>http://gnueless.com/2011/04/its-turbo-time.html</link>
		<comments>http://gnueless.com/2011/04/its-turbo-time.html#comments</comments>
		<pubDate>Wed, 06 Apr 2011 10:50:30 +0000</pubDate>
		<dc:creator>Gnub</dc:creator>
				<category><![CDATA[arnold]]></category>
		<category><![CDATA[drinking]]></category>
		<category><![CDATA[offline]]></category>

		<guid isPermaLink="false">http://gnueless.com/?p=769</guid>
		<description><![CDATA[I figured it was finally time to post the newest revision of the Arnold drinking rules, as throughout tested not too long ago. The last &#8211; official &#8211; version can be found here, if you want to see what has changed since then. Should be quite a bit. Be sure to check the bonus video-clip [...]]]></description>
			<content:encoded><![CDATA[<p>I figured it was finally time to post the newest revision of the Arnold drinking rules, as throughout tested not too long ago. The last &#8211; official &#8211; version can be <a href="http://gnueless.com/2009/12/im-at-cop15-you-idiot.html">found here</a>, if you want to see what has changed since then. Should be quite a bit.</p>
<p>Be sure to check the bonus video-clip at the end of the post! I guarantee it&#8217;s worth it!</p>
<p><span id="more-769"></span></p>
<blockquote><p><strong>Drink whenever:</strong></p>
<ul>
<li>Arnold is first seen, at the start of the movie (that means: not chronologically). <em>Everyone cheers!</em></li>
<li>The title of the movie is seen or heard. <em>In honor of &#8220;<a href="http://www.imdb.com/title/tt0146675/" onclick="pageTracker._trackPageview('/outgoing/www.imdb.com/title/tt0146675/?referer=');">End of Days</a>&#8220;</em></li>
<li>Arnold says <strong>&#8220;HU-ARRRHHEEH&#8221;</strong>, or a variation thereof.</li>
<li>Arnold drinks alcohol (we have to support him).</li>
<li>Arnold has violent (the definition of &#8220;violent&#8221; is up for discussion among the participants) PHYSICAL pain.</li>
<li>Someone humanoid is killed. Large amounts of deaths is drunk continuously. <em>In honor of &#8220;<a href="http://www.imdb.com/title/tt0100802/" onclick="pageTracker._trackPageview('/outgoing/www.imdb.com/title/tt0100802/?referer=');">Total Recall</a>&#8220;</em>.</li>
<li>Arnold makes breakfast (double, if it&#8217;s in a blender).</li>
<li>There is a reference (has to be accepted amongst the crowd) to another movie (double, if it&#8217;s with Arnold). <em>In honor of &#8220;<a href="http://www.imdb.com/title/tt0107362/" onclick="pageTracker._trackPageview('/outgoing/www.imdb.com/title/tt0107362/?referer=');">Last Action Hero</a>&#8220;</em>.</li>
<li>Arnold meets or sees himself in any possible way. <em>In honor of &#8220;<a href="http://www.imdb.com/title/tt0216216/" onclick="pageTracker._trackPageview('/outgoing/www.imdb.com/title/tt0216216/?referer=');">6th Day</a>&#8220;</em>.</li>
<li>Someone (double, if it&#8217;s Arnold) says/yells &#8220;get down!&#8221; or a variation thereof.</li>
<li>There&#8217;s an explosion (minimum-size has to be agreed upon in the crowd).</li>
<li>A car chase starts (other gasoline-driven vehicles also counts).</li>
<li>Arnold changes weapon (unarmed included). Weapons only counts if used, thus it doesn&#8217;t count as &#8220;unarmed&#8221; if it&#8217;s from one weapon to another.</li>
<li>Arnold changes vehicle (same properties as the rule above).</li>
<li>A fence or a variation thereof is mentioned/used/plowed down, in any way possible.</li>
<li>A party is mentioned (double, if it has any connection to Richter).</li>
<li>A national monument of the United States is seen on screen.</li>
<li>You call out a rule, and the crowd disagrees (<em>You lack discipline!</em> You can already drink when you want &#8211; don&#8217;t make people drink under false premises <del>without getting away with it</del>).</li>
</ul>
<p><strong>Empty the bottle/glass whenever:</strong></p>
<ul>
<li>Arnold yells &#8220;GET TO DA CHOPPA!&#8221;</li>
<li>The bad guy(s) dies. <em>Again, in honor of &#8220;<a href="http://www.imdb.com/title/tt0216216/" onclick="pageTracker._trackPageview('/outgoing/www.imdb.com/title/tt0216216/?referer=');">6th Day</a>&#8220;</em>.</li>
<li>Arnold dies, shuts or melts down, or anything else that renders him &#8220;un-functional&#8221;, for the rest of the movie.</li>
</ul>
</blockquote>
<p>Also, as a funny coincidence, this was posted a few days ago&#8230;<br />
<center><object width="425" height="349"><param name="movie" value="http://www.youtube.com/v/FRxt1GiiZiA?fs=1&amp;hl=da_DK"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/FRxt1GiiZiA?fs=1&amp;hl=da_DK" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="349"></embed></object></center><br />
Too bad the date was the 1st of April. The countless references could&#8217;ve been toned down a bit, but otherwise &#8230; I did want to believe. If anything, the clip should make for a nice warm-up.</p>
<p>How many times would you drink during it?</p>
]]></content:encoded>
			<wfw:commentRss>http://gnueless.com/2011/04/its-turbo-time.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>purpose</title>
		<link>http://gnueless.com/2010/11/purpose.html</link>
		<comments>http://gnueless.com/2010/11/purpose.html#comments</comments>
		<pubDate>Tue, 02 Nov 2010 19:07:05 +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=737</guid>
		<description><![CDATA[Now that the second iteration of Blizzard&#8217;s Creative Writing Contest has finally subdued, it&#8217;s time I revealed my piece. I didn&#8217;t win this time either, but that&#8217;s not stopping me. No reason to give up just because of that &#8211; I still think I&#8217;ve achieved something, and have evolved as a writer. For those of [...]]]></description>
			<content:encoded><![CDATA[<p>Now that the second iteration of Blizzard&#8217;s Creative Writing Contest has finally subdued, it&#8217;s time I revealed my piece. I didn&#8217;t win this time either, but that&#8217;s not stopping me. No reason to give up just because of that &#8211; I still think I&#8217;ve achieved something, and have evolved as a writer.</p>
<p>For those of you that doesn&#8217;t know, I <a href="http://gnueless.com/2010/08/sanctuary.html">decided to challenge myself in the world of Sanctuary</a> &#8211; the Diablo universe, and it did indeed prove to be a great choice. It was a splendid challenge, and the result is &#8211; in my own personal opinion &#8211; quite great as well.</p>
<blockquote><p><em>After the defeat of Diablo beneath Tristram, Etophir &#8211; a paladin of Westmarch &#8211; travels east to find out more about the order of paladins, that seemed to have been turned to fight his kingdom. As his journey out-folds, he&#8217;s given a whole new view on what corruption can really do.</em></p></blockquote>
<p>So, why wait? Read it right <a href="http://gnueless.com/files/purpose.pdf">here, in PDF-format</a>.</p>
<p>As last time, I&#8217;d love to get some feedback, and hear what you think of it &#8211; it&#8217;s my only payment from writing it, after all. As a result of that, I also updated my <a href="http://gnueless.com/projects/fanfiction">Fanfiction subpage</a>, to better reflect the new work.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnueless.com/2010/11/purpose.html/feed</wfw:commentRss>
		<slash:comments>2</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/" onclick="pageTracker._trackPageview('/outgoing/us.blizzard.com/en-us/community/contests/writing2010/?referer=');">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><span id="more-638"></span></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>2</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><span id="more-625"></span></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" onclick="pageTracker._trackPageview('/outgoing/www.zilog.com/index.php?option=com_product_038_Itemid=26_038_mode=showFamilyDetails_038_familyId=6_038_parent_id=2&amp;referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.avru.org/general/general_gwardar.html?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/dsiware.nintendolife.com/reviews/2010/02/snakenoid_dsiware?referer=');">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>1</slash:comments>
		</item>
	</channel>
</rss>

