<?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>Raelifin.com &#187; game</title>
	<atom:link href="http://raelifin.com/tag/game/feed/" rel="self" type="application/rss+xml" />
	<link>http://raelifin.com</link>
	<description>Deus ex Machina</description>
	<lastBuildDate>Tue, 31 Jan 2012 22:03:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Nyx</title>
		<link>http://raelifin.com/code/nyx/</link>
		<comments>http://raelifin.com/code/nyx/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 17:16:57 +0000</pubDate>
		<dc:creator>Raelifin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[cardgame]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Nyx]]></category>

		<guid isPermaLink="false">http://raelifin.com/?p=987</guid>
		<description><![CDATA[I don&#8217;t usually post projects that are only mostly done, but I wanted to get this off my plate. It&#8217;s a simple cardgame built entirely in javascript called Nyx (after the Greek goddess). Each turn consists of both players secretly choosing an action. Actions consist of either drawing two cards, or playing a card. There [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t usually post projects that are only mostly done, but I wanted to get this off my plate. It&#8217;s a simple cardgame built entirely in javascript called Nyx (after the Greek goddess). Each turn consists of both players secretly choosing an action. Actions consist of either drawing two cards, or playing a card.</p>
<p><a href="http://raelifin.com/files/Nyx_1/screenshot.png"><img src="http://raelifin.com/files/Nyx_1/screenshot.png" style="width: 540px"/></a></p>
<p>There are a few bugs, and it&#8217;s not at all &#8220;balanced&#8221;, but it&#8217;s mostly playable, and pretty intuitive (IMO). It&#8217;s written in HTML5, so unless you&#8217;re using Google Chrome, I can&#8217;t guarantee it&#8217;ll render properly.</p>
<p>Play it here: <a href="http://raelifin.com/files/Nyx_1/">http://raelifin.com/files/Nyx_1/</a><br />
Download it here: <a href="http://raelifin.com/files/Nyx_1/Nyx.tar.gz">http://raelifin.com/files/Nyx_1/Nyx.tar.gz</a></p>
<p>I may work on it in the future, if I get the urge. Right now I&#8217;m focused on my non-game studies, though, and I was afraid that this would just get thrown on the pile of unpublished code I have lying around.</p>
]]></content:encoded>
			<wfw:commentRss>http://raelifin.com/code/nyx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Butchering Haskell</title>
		<link>http://raelifin.com/code/butchering-haskell/</link>
		<comments>http://raelifin.com/code/butchering-haskell/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 20:41:26 +0000</pubDate>
		<dc:creator>Raelifin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[RCRPG]]></category>
		<category><![CDATA[text-based]]></category>

		<guid isPermaLink="false">http://raelifin.com/?p=710</guid>
		<description><![CDATA[I picked up Haskell just under two weeks ago, and in my free time I&#8217;ve been implementing RCRPG in it, much like I did with Python. You can see my code at http://rosettacode.org/wiki/RCRPG/Haskell. It&#8217;s really not very pretty though. My mind is clearly still stuck on a procedural, object-oriented approach.]]></description>
			<content:encoded><![CDATA[<p>I picked up Haskell just under two weeks ago, and in my free time I&#8217;ve been implementing <a href="http://rosettacode.org/wiki/RCRPG">RCRPG</a> in it, much like I did with Python. You can see my code at <a href="http://rosettacode.org/wiki/RCRPG/Haskell">http://rosettacode.org/wiki/RCRPG/Haskell</a>. It&#8217;s really not very pretty though. My mind is clearly still stuck on a procedural, object-oriented approach.</p>
]]></content:encoded>
			<wfw:commentRss>http://raelifin.com/code/butchering-haskell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Armies</title>
		<link>http://raelifin.com/non-programmatic-creations/armies/</link>
		<comments>http://raelifin.com/non-programmatic-creations/armies/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 23:34:16 +0000</pubDate>
		<dc:creator>Raelifin</dc:creator>
				<category><![CDATA[Non-Programmatic Creations]]></category>
		<category><![CDATA[boardgame]]></category>
		<category><![CDATA[cardgame]]></category>
		<category><![CDATA[chess]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game design]]></category>
		<category><![CDATA[Magic: the Gathering]]></category>

		<guid isPermaLink="false">http://raelifin.com/?p=463</guid>
		<description><![CDATA[Here&#8217;s a board/card game I thought up a ways back. Thanks to interest, I&#8217;ve written it up, and am now at least somewhat happy with it. If you have any questions whatsoever, please don&#8217;t hesitate to leave a comment. This will help me improve the rules! Armies is a game inspired by Chess and Magic: [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a board/card game I thought up a ways back. Thanks to interest, I&#8217;ve written it up, and am now at least somewhat happy with it. If you have any questions whatsoever, please don&#8217;t hesitate to leave a comment. This will help me improve the rules!</p>
<hr/>
<p>Armies is a game inspired by <em>Chess</em> and <em>Magic: the Gathering</em>. It&#8217;s played on a chessboard and has an identical piece setup, where each piece&#8217;s movement is the same as that of chess. Each player has a (custom) deck of 60 cards (with a maximum of 4 cards with the same name), which may be played onto pieces. Each piece except the king, and any/all cards attached to it, is called an &#8220;Army&#8221;. The king&#8217;s piece is called a &#8220;General&#8221; and for most purposes is treated like an army (for details on the differences, see <em>Winning the Game</em>).</p>
<p>Cards may be any of the following types:</p>
<p><span id="more-463"></span></p>
<ul>
<li><strong>Leader</strong>: Each army may have up to one leader card attached, which provides special abilities and an offensive and defensive bonus. Certain abilities distinguish between leaders that are &#8220;heroes&#8221; (individuals) and those that are &#8220;elites&#8221; (advanced troops). Each army may only have a single Leader. The General may not have a Leader card attached. (Leaders are similar to Creatures in M:tG)</li>
<li><strong>Maneuver</strong>: A one-time effect (discarded after use) that may be performed by a piece on your turn. (Similar to Sorceries)</li>
<li><strong>Technique</strong>: Like a maneuver, except that it may be played on any turn, and can even be used to interrupt enemy actions. (Instants)</li>
<li><strong>Boon/Curse</strong>: A boon or curse alters an army&#8217;s stats and/or abilities. (Enchant creatures + artifacts)</li>
<li><strong>Training</strong>: A one-time effect that boosts a piece&#8217;s maximum skill in a specific domain. (Land)</li>
<li><strong>Strategy</strong>: A &#8220;global level&#8221; card that is not tied to any specific army. (Enchantments)</li>
</ul>
<h2> Playing Cards </h2>
<p>In Armies there are 5 &#8220;domains&#8221; of war. These domains are named after great historical figures who revolutionized the tactics of the battlefield, and brought great change to the world.</p>
<ul>
<li>The Domain of <strong>Gnar</strong> is that of cavalry, ferocity, mobility, and strength.
<p style="padding-left: 10px;">Gnar Athulos was the first great warlord, a barbarian from the desert who rode around the entire world, uniting its peoples into the first great empire.</p>
</li>
<li>The Domain of <strong>Ethyr</strong> is that of witchcraft, plague, betrayal, and fear.
<p style="padding-left: 10px;">Gnar&#8217;s empire was destroyed only two decades after its founding by the witch of the wood, Ethyr Shadowcaller. Her tactics involved spreading a plague which only she could cure, turning vast legions of Gnar&#8217;s own troops against him. After the fall of the empire, she authored the Ethyric Grimoire, the most popular spellbook in all of history.</p>
</li>
<li>The Domain of <strong>Lorin</strong> is that of stability, support, politics, and defense.
<p style="padding-left: 10px;">After a century of strife, Shara Lorin managed to reform the old empire through cunning use of political negotiations and an indomitable wall of infantry. By promising prosperity, she was able to extinguish old feuds and make many allies.</p>
</li>
<li>The Domain of <strong>Tor</strong> is that of archery, ambush, unpredictability, and aggression.
<p style="padding-left: 10px;">At the height of peace within the empire, a fleet of ships led by the hot-headed Jun Tor simultaneously launched a viscous assault on nearly every imperial port, throwing the world into chaos. Tor&#8217;s archers were so masterfully trained that he was able to conquer nearly every imperial city within a month of the initial assault.</p>
</li>
<li>The Domain of <strong>Shives</strong> is that of skirmishing, harrying, illusion, and trickery.
<p style="padding-left: 10px;">Despite the fall of the capital cities, the simple woodsman Dorin Shives was able to muster a stunning counterattack against Tor by using guerrilla tactics and misdirection to move his opponent&#8217;s forces where they&#8217;d be least effective. Despite winning few battles, Shives was able to move the main force of his army into the capital city, and publicly execute Tor, thus signaling the beginning of the end for the invading fleet. Shives did truly not wish to lead, however, and disappeared shortly after the end of the war, leaving the empire in shambles.</p>
</li>
</ul>
<p>Almost all troops and tacticians lend credit to one of these five figures for pioneering their personal style of combat, and each army can be said to have a certain degree of skill in each of those domains. At the start of the game, all armies are considered &#8220;green&#8221;, in that they have zero skill in each domain (for the General, see <em>Setup</em>). During the course of the game, Training cards may be played to increase the maximum skill points of an Army or the General.</p>
<p>All cards besides training and strategies are played &#8220;through&#8221; a piece, and must be played on a square that the piece threatens, or on the space the piece itself occupies. For example, a pawn that tries to use an archery maneuver could only shoot an army on a square diagonally in front of it. Additional pieces may support the primary piece, by contributing their skill if (and only if) they threaten the location the card is about the be played (including the space they&#8217;re on). </p>
<p><strong>Special Rule</strong>: The General moves like a king in chess, but <em>threatens</em>, for the purposes of playing cards, like a <em>queen</em>.</p>
<p>Most cards require a certain amount of skill points to play. As the card is played, these skill points are temporarily used up. Skill points are restored to maximum for a single piece during the rest phase (see <em>Turn Order</em>). If a piece has multiple ways of spending skill points to play a card, the player decides how they are spent. Supporting pieces may spend skill points to play cards instead of the primary piece, but the primary piece must always spend at least one skill point (i.e. supporting pieces may not pay the entire cost of a card).</p>
<p>When a Strategy or Training card has a skill cost, it may be payed by any piece that the player owns, regardless of location or target.</p>
<h2> Turn Order </h2>
<p>Each turn is broken into four steps:</p>
<ol>
<li>First Opportunity</li>
<li>Move</li>
<li>Second Opportunity</li>
<li>Rest</li>
</ol>
<p>During either the First Opportunity or the Second Opportunity (but only once per turn!) the player may take a <strong>major action</strong>. Major actions consist of using a major leader ability or playing a card other than a Technique or Training.</p>
<p>During the Move phase, the player may move or attack with one of their armies, much like it were a basic chess piece. </p>
<p>Many cards and actions involving Leaders require a leader to &#8220;spend&#8221; in order to use. Armies with spent leaders cannot attack (but may move). A leader that is not spent is considered &#8220;ready&#8221;. Leader cards are spent when they come into play.</p>
<p>During the Rest phase, the player may rest one of their armies, restoring its skill points to maximum and returning its leader to the ready state. Finally, the player draws a card, to signal the end of their turn.</p>
<h2> Setup </h2>
<p>All pieces start the game without any cards attached. Each player&#8217;s General (the king) is given three skill points distributed however the player chooses, in any of the five domains. The players then draw seven cards to form their &#8220;hands&#8221; and roll to see who goes first (or white goes first; you pick).</p>
<h2> Combat </h2>
<blockquote><p>Note: Dice in Armies are binary. That means they result in either a 1 or a 0 when rolled. Coin flips are an easy way to approximate this, but you can use standard six-sided dice if you&#8217;d like, where 1, 2, or 3 = 0 and 4, 5, or 6 = 1.</p></blockquote>
<p>All armies have two stats: offense and defense. These stats start at zero, but often increase thanks to a card or other effect.</p>
<p>Unlike in chess, when a piece in Armies moves to take another it may not succeed. The attacker rolls a number of dice equal to the offense stat of their army and adds one to the result. The defender rolls dice equal to the defense stat of their army. If the offensive army gets a higher result than the defender, the defending army is destroyed and the attacker takes its place on the board, like in chess. If the defender wins the contest, or there is a tie, the attacker moves to the square adjacent to the defender in the direction of the attack. A knight that fails to successfully capture its target does not move.</p>
<p>Because of the automatic success of the attacker, unenhanced armies behave exactly like chess pieces, in that the attacker always beats the defender.</p>
<h2> Winning the Game </h2>
<p>Like in chess, the point of Armies is to capture your opponent&#8217;s king, also know as the General. However, because of certain special abilities that complicate the game, the General can never be &#8220;in check&#8221;.</p>
<p>Additionally, a player&#8217;s General is not automatically captured when it loses a battle. After each defeat, the General permanently loses a single skill point in a domain of the owner&#8217;s choice. Only if the General cannot pay this price, is the game over. In case it sounds like this makes the General nigh invincible, consider that one cannot play Leader cards on a General, meaning it has virtually no combat capabilities, and that Generals are often more vulnerable than in chess, due to needing to be in the center of the board to play cards effectively.</p>
<h2> Special Rules </h2>
<p><strong>Archery</strong>: Sometimes an army can perform a ranged attack. These attacks function identically to normal, except that the attacking army does not move, and does not gain the automatic success (the +1).</p>
<p><strong>Cavalry</strong>: Armies that can attack in a line (Queens, Rooks, and Bishops) with the cavalry trait can capture multiple armies in a single move. In the case that a mounted army beats a defending army by more than two points, it has the option of moving onward in the same direction, and even attacking again (and again, and again). The moving army does not roll dice for subsequent attacks, but instead has a power equal to the amount that it beat the last defender minus one. For example, if a rook attacks a pawn and beats it by three, it can attack again, with a power of two.</p>
<p><strong>Stealth</strong>: Armies with stealth can &#8220;jump&#8221; over pieces, both friend or foe, during a move. If a stealth army jumps one or more pieces it cannot then attack as part of the same move. (Some diagrams would probably help.)</p>
<h2>Sample Cards, and How to Read Them</h2>
<p>Skills costs are described by a string of characters like &#8220;3GG&#8221;, which means &#8220;three skill from any domain and two skill in the Gnar domain&#8221;. In a similar fashion, &#8220;E&#8221; means &#8220;Ethyr domain skill&#8221;, &#8220;L&#8221; is for &#8220;Lorin&#8221;, &#8220;T&#8221; for &#8220;Tor&#8221;, and &#8220;S&#8221; for &#8220;Shives&#8221;.</p>
<p>For each card type, I&#8217;ll provide a template and an example card from each domain.</p>
<h3>Leaders</h3>
<blockquote><p>[Name]<br />
[Hero or Elite] Leader(s) &#8211; [Optional Types]<br />
[Skill Cost] [Offense Bonus]/[Defense Bonus]<br />
[Ability]</p></blockquote>
<p>Heavy Cavalry<br />
Elite Leaders &#8211; Soldiers<br />
5GG 6/5<br />
*Cavalry*</p>
<p>Blood Cultist<br />
Hero Leader &#8211; Magician<br />
EE 1/1<br />
E + Sacrifice a leader from anywhere: Blood Cultists army get&#8217;s +2 offense until end of turn.</p>
<p>Shield Bearers<br />
Elite Leaders &#8211; Soldiers<br />
L 0/3</p>
<p>Torani Cadet<br />
Hero Leader &#8211; Torani Soldier<br />
T 1/1<br />
Torani Cadet does not come into play spent. Playing Torani Cadet does not count as a major action.</p>
<p>Cloaksworn Commander<br />
Hero Leader &#8211; Secret Soldier<br />
2S 1/1<br />
All cards or abilities that target Cloaksworn Commander fail (even if their effects are not limited to Cloaksworn Commander).</p>
<h3>Maneuvers</h3>
<blockquote><p>[Name]<br />
[Optional Playing Restriction] Maneuver &#8211; [Optional Type]<br />
[Skill Cost]<br />
[Effect]</p></blockquote>
<p>Battlefield Dominance<br />
Maneuver &#8211; Military<br />
1GG<br />
For each extra Leader you have compared to your opponent, draw a card.</p>
<p>Mind Fog<br />
Maneuver &#8211; Magic<br />
1E<br />
All enemy leaders threatened by this piece become spent (if they weren&#8217;t already).</p>
<p>Against All Odds<br />
Leader Maneuver<br />
1LL + (Spend Leader)<br />
Put x +1/+1 &#8220;Hope&#8221; tokens on this Leader, where x is the number of enemy pieces currently threatening this Leader&#8217;s army minus the number of friendly pieces currently threatening this Leader&#8217;s army (not including itself).</p>
<p>Rain of Arrows<br />
Maneuver &#8211; Ranged<br />
TTT<br />
4 power ranged attack</p>
<p>Know Thy Enemy<br />
Maneuver &#8211; Espionage<br />
1SS<br />
Draw a card for each domain this piece has a max-skill greater than zero in.</p>
<h3>Techniques</h3>
<blockquote><p>[Name]<br />
[Optional Playing Restriction] Technique &#8211; [Optional Type]<br />
[Skill Cost]<br />
[Effect]</p></blockquote>
<p>Second Wind<br />
Leader Technique<br />
G<br />
Ready this Leader</p>
<p>Without a Trace<br />
Technique &#8211; Magic<br />
1EEE<br />
Target Army is removed from the game.</p>
<p>Hold the Line<br />
Technique &#8211; Military<br />
1L<br />
Target defending army gains two automatic successes. This technique may be used after dice are rolled.</p>
<p>Ambush<br />
Leader Technique &#8211; Military<br />
TT + (Spend the Leader)<br />
Target attacking army must defend against a new attack by this army. This new attack has the standard rules for combat, except this army does not move into the target&#8217;s space if it wins. If the attacker is captured as part of this technique, the original attack does not take place.</p>
<p>Disruption<br />
Technique &#8211; Espionage<br />
SS<br />
Target maneuver, technique, boon or curse being played fails. All skill spent on playing it is lost. This card may not be targeted by any other techniques or abilities.</p>
<h3>Boons and Curses</h3>
<blockquote><p>[Name]<br />
[Optional Playing Restriction] [Boon or Curse] &#8211; [Optional Type]<br />
[Skill Cost]<br />
[Effect]</p></blockquote>
<p>Spirit of Fire<br />
Army Boon<br />
3GG<br />
This army gains +2 offense and defense. Whenever this army successfully captures an enemy piece as part of a move, treat it as having rested (restore all of this army&#8217;s skill to maximum and ready the Leader, if any). If this army has the *cavalry* trait, it rests after the entire move/attack chain, not after each capture.</p>
<p>Unholy Bloodthirst<br />
Army Curse &#8211; Magic<br />
1E<br />
This army must attack or move on its turn, if able.<br />
Enemy Major Action: This army cannot move or attack this turn.</p>
<p>Non-aggression Order<br />
Army Curse &#8211; Politics<br />
LL<br />
This army cannot attack.</p>
<p>Unyielding Offense<br />
Leader Boon &#8211; Military<br />
1T<br />
T: This army gains +1 offense until end of turn.<br />
When Unyielding Offense is put into a discard pile from play, return it to its owner&#8217;s hand.</p>
<p>Broken Supply Chain<br />
Army Curse &#8211; Military<br />
SS<br />
This army cannot rest.<br />
Enemy Major Action + Discard 2 cards: Destroy Broken Supply Chain.</p>
<h3>Training Cards</h3>
<blockquote><p>[Name]<br />
[Optional Target Restriction] Training &#8211; [Domain]<br />
[Optional Cost]<br />
[Effect]</p></blockquote>
<p>For all five:<br />
Teachings of [Domain]<br />
Training &#8211; [Domain]<br />
+1 Skill in the [Domain] domain to target piece.</p>
<p>A couple others:<br />
Original Grimoire<br />
General Training &#8211; Ethyr<br />
E<br />
+1 Skill in the Ethyr domain to target General. Draw a card.</p>
<p>Torani Longbow Training<br />
Army Training &#8211; Tor<br />
T<br />
+1 Skill in the Tor domain to target Army. Target gains: Major action: 1 power ranged attack</p>
<p>Guerrilla Training<br />
Army Training &#8211; Shives<br />
S<br />
+1 Skill in the Shives domain to target Army. Target gains: This army may not be the target of maneuvers, boons, curses, or other major actions (even from friendly sources).</p>
<h3>Strategies</h3>
<blockquote><p>[Name]<br />
Strategy &#8211; [Optional Type]<br />
[Skill Cost]<br />
[Effect]</p></blockquote>
<p>Double March<br />
Strategy &#8211; Military<br />
GG<br />
En Passant is no longer a legal move for opponents. All allied pawns may move two spaces forward, as though they were in their starting position, regardless of whether they&#8217;ve moved already/where they are on the board.</p>
<p>Unseasonable Weather<br />
Strategy &#8211; Magic<br />
EEE<br />
When this strategy comes into play, put five &#8220;Snow&#8221; tokens on it. At the end of each turn (for any player), remove a Snow token. When all Snow tokens have been removed, destroy Unseasonable Weather. All pieces, except knights, are restricted from moving more than one space in any direction. All enemy pieces (excluding knights) have their threat ranges reduced to one space, as well.</p>
<p>Unfavorable War<br />
Strategy &#8211; Politics<br />
1L<br />
At the end of each player’s turn they lose the game unless they reduce the skill on their General by 1, this is the same as if the General had lost a battle.<br />
(Global Major Action + 1) or (Global Spend a Politician): The effect above does not apply this turn.</p>
<p>Bows and Knives<br />
Strategy &#8211; Military<br />
TTT<br />
Double the power of all ranged attacks by pieces you control. All pieces you control have a maximum defense of 1.</p>
<p>Caught Off Guard<br />
Strategy &#8211; Espionage<br />
2SS<br />
When this Strategy comes into play, put two &#8220;Surprise&#8221; tokens on it. Whenever an enemy player would draw a card, remove a Surprise token instead. When all tokens have been removed, destroy Caught Off Guard.</p>
]]></content:encoded>
			<wfw:commentRss>http://raelifin.com/non-programmatic-creations/armies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning Python</title>
		<link>http://raelifin.com/code/learning-python/</link>
		<comments>http://raelifin.com/code/learning-python/#comments</comments>
		<pubDate>Wed, 26 May 2010 18:10:36 +0000</pubDate>
		<dc:creator>Raelifin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[RCRPG]]></category>
		<category><![CDATA[text-based]]></category>

		<guid isPermaLink="false">http://raelifin.com/?p=375</guid>
		<description><![CDATA[It&#8217;s not that interesting, but I made a little one-player text-based RPG in python (3.1.2) this morning/last night. I&#8217;m happy with it, just because it&#8217;s the largest thing I&#8217;ve ever done in python. The whole thing is based off of this blog post. You can get the source code here: http://raelifin.com/files/code/rcrpg.py It&#8217;s all public domain, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s not that interesting, but I made a little one-player text-based RPG in python (3.1.2) this morning/last night. I&#8217;m happy with it, just because it&#8217;s the largest thing I&#8217;ve ever done in python. The whole thing is <a href="http://web.archive.org/web/20080212201605/http://shortcircuit.us/muddy-kinda-like-a-mud-but-single-player/">based off of this blog post</a>. You can get the source code here: <a href="http://raelifin.com/files/code/rcrpg.py">http://raelifin.com/files/code/rcrpg.py</a><br />
It&#8217;s all public domain, but I like credit (yada, yada).</p>
]]></content:encoded>
			<wfw:commentRss>http://raelifin.com/code/learning-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mastery</title>
		<link>http://raelifin.com/non-programmatic-creations/mastery/</link>
		<comments>http://raelifin.com/non-programmatic-creations/mastery/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 22:14:23 +0000</pubDate>
		<dc:creator>Raelifin</dc:creator>
				<category><![CDATA[Non-Programmatic Creations]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[Mastery]]></category>
		<category><![CDATA[minimalist design]]></category>
		<category><![CDATA[PnP RPG]]></category>
		<category><![CDATA[roleplaying]]></category>

		<guid isPermaLink="false">http://raelifin.com/?p=244</guid>
		<description><![CDATA[A friend of mine wanted me to post this minimalist RPG system I wrote back in 2007. So, here it is. I suggest using it as a starting point in making something that works best for your group. Yes, this is the entire rulebook. The GM is always right. Characters Each character has a number [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; margin-left: 5px;" src="http://farm4.static.flickr.com/3144/3093982684_79d7b3ea6a_m.jpg" alt="[Photo of Dice]" />A friend of mine wanted me to post this minimalist RPG system I wrote back in 2007. So, here it is. I suggest using it as a starting point in making something that works best for your group. Yes, this is the entire rulebook.</p>
<p><span id="more-244"></span></p>
<div style="border: 1px solid; padding: 5px; clear: right;">
<p><strong>The GM is always right.</strong></p>
<h2 style="text-align: center;">Characters</h2>
<p>Each character has a number of traits, abilities, and skills.</p>
<p>Traits represent the raw talent or power your character possesses in a field.<br />
Example traits might include cunning, intelligence, fortitude, or agility.<br />
Normally, traits can be -2 through +4.</p>
<p>Abilities represent general skill-sets which the character has learned.<br />
Example abilities might include martial arts, stealth, acrobatics, or magical lore.<br />
Normally, abilities can be +1 through +4.</p>
<p>Skills are more specific than abilities, and represent specific prowesses.<br />
Example skills might include tracking, lock-picking, feinting, or swimming.<br />
Normally, skills can be +1 through +5.</p>
<h2 style="text-align: center;">Challenges</h2>
<p>Before playing, pick a kind of dice to use (I prefer d6) and stick with that for the rest of the game.</p>
<p>All challenges are made by rolling dice and counting the number of results that equal or exceed a Target Number.<br />
Target Numbers are based on the inherent difficulty of an action. Jumping across a small gap would be easy, while jumping across a large gap would be hard. Don&#8217;t even bother rolling trivial challenges.</p>
<table>
<caption>Target Numbers:</caption>
<tr>
<th>Difficulty</th>
<th>d6</th>
<th>d10</th>
<th>d20</th>
</tr>
<tr>
<td>Easy</td>
<td>3</td>
<td>4</td>
<td>7</td>
</tr>
<tr>
<td>Normal</td>
<td>4</td>
<td>6</td>
<td>11</td>
</tr>
<tr>
<td>Difficult</td>
<td>5</td>
<td>8</td>
<td>15</td>
</tr>
<tr>
<td>Extreme</td>
<td>6</td>
<td>10</td>
<td>19</td>
</tr>
</table>
<p>For any solo challenge, the GM will require a certain number of successes for the character to succeed in their action. In many instances (such as music or athletics), more successes indicate a more impressive performance.</p>
<p>When characters oppose one another, treat it as though both characters were performing solo challenges where the victor is the one with the most successes. In this circumstance, the degree of success is equal to the difference, rather than the absolute number of successes.</p>
<p style="text-align: center;">* * *</p>
<p>A player rolls a number of dice for a challenge depending on their character&#8217;s attributes and the circumstances of the challenge.</p>
<p>Each challenge uses a trait, chosen by the GM. The player then chooses one ability and one skill. If the GM decides that either are unfit for the test at hand, the player cannot use them (and may not change their choice). The player then rolls a number of dice equal to:</p>
<p><strong>1 + trait + ability</strong> (if any) <strong>+ skill</strong> (if any) <strong>+ circumstance</strong> modifiers (if any)</p>
<p>Unless a challenge is impossible, all characters get one base die, which cannot be removed due to modifiers.</p>
<p>Circumstantial modifiers can include assistance from others, low visibility, weariness, wounds, magic, distraction, etc.</p>
<h2 style="text-align: center;">Character Creation and Advancement</h2>
<p>Before the game can begin, the GM must provide a list of traits. These traits should optimally cover all character archetypes that players want to use.</p>
<p>All traits start out at +0. Each player has two points which can be spent increase a trait (+0 -> +1 or +1 -> +2). Traits may be reduced to -1 to gain an additional point. Normally, a trait cannot be increased above +2 or reduced below a -1.<br />
If a player wants to play a specialist, however, they may opt to reduce a +0 to a -2 in order to increase a +2 trait to a +3. This specialization may only be done once.</p>
<p>Starting characters then gain 20 &#8220;triumphs&#8221; which they can use to buy up skills and abilities, described below. 20 triumphs is intended to represent a starting hero, and the GM is encouraged to allot more for creating &#8220;experienced&#8221; heroes.</p>
<p>&#8220;Triumphs&#8221; are the units used to keep track of character advancement. Whenever a player does something difficult and important, the GM is suggested to give them a triumph. When a character is in a situation where they have the opportunity to increase a trait, ability or skill, (such as when creating a character) they may burn triumphs to do so. The number of triumphs it takes to move from one number to another depends on what is being increased.</p>
<table style="font-family: monospace;">
<caption>Cost of increasing traits:</caption>
<tr>
<td>-2 -> -1 = 1</td>
</tr>
<tr>
<td>-1 -> +0 = 2</td>
</tr>
<tr>
<td>+0 -> +1 = 3</td>
</tr>
<tr>
<td>+1 -> +2 = 4</td>
</tr>
<tr>
<td>+2 -> +3 = 5</td>
</tr>
<tr>
<td>+3 -> +4 = 7</td>
</tr>
</table>
<table style="font-family: monospace;">
<caption>Cost of increasing abilities:</caption>
<tr>
<td>+0 -> +1 = 2 (Gaining a new ability)</td>
</tr>
<tr>
<td>+1 -> +2 = 3</td>
</tr>
<tr>
<td>+2 -> +3 = 4</td>
</tr>
<tr>
<td>+3 -> +4 = 6</td>
</tr>
</table>
<table style="font-family: monospace;">
<caption>Cost of increasing skills:</caption>
<tr>
<td>+0 -> +1 = 1 (Gaining a new skill)</td>
</tr>
<tr>
<td>+1 -> +2 = 2</td>
</tr>
<tr>
<td>+2 -> +3 = 2</td>
</tr>
<tr>
<td>+3 -> +4 = 4</td>
</tr>
<tr>
<td>+4 -> +5 = 6</td>
</tr>
</table>
<p>If the task of learning is difficult (such as without a teacher) the GM may require a challenge to improve.</p>
<p>Characters start with whatever items or equipment are considered appropriate for the setting and the character. If in doubt, ask the GM.</p>
<h2 style="text-align: center;">Combat</h2>
<p>In addition to traits, abilities, skills and gear, characters have a number of health boxes which are an abstract representation of their physical condition. The number of health boxes a character has will depend on the style of game that the GM is running and the physical toughness of the character. GMs are encouraged to tie a trait, like &#8220;Health&#8221; or &#8220;Fortitude&#8221; to the number of Health Boxes a character receives (minimum 1). I suggest using a base of 10 boxes. Gritty games may go for 5 or even 3. When a character takes damage, mark off a number of health boxes. When the last one is marked, the character typically goes into a coma or dies, depending on the circumstances. A character&#8217;s health should always be taken into account when determining the &#8220;circumstances&#8221; of a challenge.</p>
<p>Combat can also vary, depending on GM. Presented below are three ways that I suggest handling combat.</p>
<h3>Fearsome Challenges</h3>
<p>Perhaps the simplest way to deal with combat is simply to make it a series of deadly challenges.</p>
<p>Imagine a group of explorers venturing through a forgotten tomb. They come upon a spike-laden pit trap. Jumping across the pit might take two successes against a difficult target number, with failure dealing 4 health boxes of damage, and the extra problem of getting out. Now imagine the explorers come across an ancient tomb guardian. The guardian is slow, and all the players can take actions before the guardian acts. When it does, it swings it&#8217;s hammer at a single character, forcing a challenge to either block or move with failure meaning the victim takes 4 health boxes of damage. Under this system of combat, there is no difference between an environmental hazard and an intelligent opponent, except that opponents are generally deadlier and more adaptable.</p>
<p>This system allows the GM to avoid rolling dice, which lets them stay focused on the group. To determine the number of successes to dodge the attack of a humanoid opponent, just assume that they roll all average. That is, if they are looking for a &#8220;normal&#8221; target number, just make their degree of success = half their dice pool.</p>
<p>Using this system, determine if enemies act first, then take turns where the whole party acts in whatever order they want (though only within reason).</p>
<h3>Single-Action Roundtable</h3>
<p>Good for dueling, this system breaks combat down into a number of rounds, where each player takes a single action.</p>
<p>Each character, at the beginning of combat, performs a challenge to act first, comparing degrees of success. In the case of a tie, the character with the highest &#8220;agility&#8221; trait (or equivalent) acts first, or the GM simply decides. Each character then acts in turn, taking a single action. Typical actions involve directly attacking the opponent, or modifying circumstances to get more dice on a future attack.</p>
<p>Attacks are handled as contested challenges with the defender. Stunned or surprised characters cannot defend. If the attacker wins, he or she deals damage equal to their degree of success (plus any modifier from weapon or armor). If the defender wins, they gain a counter-attack advantage on their next turn of a single die.</p>
<h3>Bloodbath</h3>
<p>This system is good for games that favor violent, or unpredictable combat. In Bloodbath, all characters decide on their actions in secret and act simultaneously. The results of a round of combat depend on the nature of the actions involved.</p>
<p><strong>Independent Non-Challenge:</strong> An example of this is two characters that run away from each other. No rolls are made, and both characters successfully withdraw.</p>
<p><strong>Independent Challenge:</strong> An example of this is two characters that attack each other. Each character rolls a solo challenge to hit and deals their raw successes as damage to their opponent (plus any modifier from weapon or armor). This can mean that both characters kill each other, if they roll high enough.</p>
<p><strong>Conflicting Challenge:</strong> An example of this is a character that attacks a defending or fleeing character. The action is made as an opposed challenge, where the victor is the only one to have their action take effect, and their degree of success is the difference between the rolls.</p>
<p><strong>Asynchronous:</strong> An example of this is a character that attacks a character trying to focus on something. In instances where one action (like attacking) is unaffected by another action (like focusing), but not vice-versa, the action that is not effected works and the other is disrupted.</p>
<p>Bloodbath can become unwieldy in non-one-on-one situations, and favors power in numbers.</p></div>
</div>
<p><br/></p>
<p><em>Thanks to gcardinal for <a href="http://www.flickr.com/photos/30883129@N08/3093982684">the photo</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://raelifin.com/non-programmatic-creations/mastery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zombie Corp.</title>
		<link>http://raelifin.com/code/zombie-corp/</link>
		<comments>http://raelifin.com/code/zombie-corp/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 15:51:18 +0000</pubDate>
		<dc:creator>Raelifin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rapid-prototype]]></category>

		<guid isPermaLink="false">http://raelifin.com/?p=8</guid>
		<description><![CDATA[During my first year of college I showed up one Friday for my C++ class only to find that it was canceled. Not wanting to simply go home quite yet, I talked one of the other teachers into letting me sit in and participate in one of the upper level game-development classes. We were broken [...]]]></description>
			<content:encoded><![CDATA[<p>During my first year of college I showed up one Friday for my C++ class only to find that it was canceled. Not wanting to simply go home quite yet, I talked one of the other teachers into letting me sit in and participate in one of the upper level game-development classes. We were broken into teams and instructed to design a game to work on for the rest of the quarter. I, of course, didn&#8217;t have to code anything, being in the class just for that day, but I jumped in anyway.</p>
<p>Most of the class was thinking of making an obscenely huge strategy game akin to Risk meets Monopoly, which just so happens to be the sort of design which I despise. Having spent many long years learning the hard way to design as small as possible, I helped my team brainstorm a small, grid-based, strategy game based on resource management and simple unit-movement. My hope was that the project would be basic enough that it could be running with an initial rule-set within the week and that the remainder of the term could be devoted to polishing the interface/graphics and working on the rules. (I was only vaguely aware of it at the time, but this sort of thinking would expand into rapid-prototyping, playtest-heavy, and iterative design philosophies in my own work.)</p>
<p><span id="more-8"></span></p>
<p>We decided on a zombie theme, with the twist that the zombies were actually corporate pawns, and the necromancers were CEOs. It&#8217;s kinda vanilla, but it was a 1-hour design within a group of relative strangers. We presented our designs for the class and they decided to work on Risk-Monopoly. That weekend, in about 8 hours*, I built a working alpha for the game:</p>
<p>EDIT: If the images aren&#8217;t working, you may need to <a href="http://raelifin.com/code/zombie-corp/">view this post by itself</a>.<br />
<applet code="master.CoreApplet.class" archive="http://raelifin.com/files/corperateZombies.jar" width="575" height="575"></applet><br />
<blockquote><strong>Rules:</strong><br />
The player on the left (pink/green) goes first. And then blue player takes a turn, and so on.<br />
To move an army, drag them to an adjacent square. (They move like kings in chess.)<br />
Armies are composed of undead: zombies, lawyers, or both.</p>
<p>Each space is commercial, residential or corporate (Starbucks, house or building). At the beginning of each turn, you get cash to buy lawyers with and new interns to turn into zombies. The goal of the game it to capture your opponent&#8217;s skyscraper. The income is as follows:<br />
Corporate Space: +$5,000 &#038; +5 interns / turn<br />
Commercial Space +$2,000 / turn<br />
Residential Space +2 interns / turn</p>
<p>Each turn you get one action (upper-right), in addition to moving each unit. Select a board space then chose:<br />
PROMOTE: Turn all interns into zombies at the selected space.<br />
HIRE: Hire lawyers for $5,000 each at the selected space.<br />
DEVELOP: Selected commercial or residential space now produces 2N+2, where N = current production. (Units are single interns or thousands of dollars.) Each space can only be developed twice.</p>
<p>If you move into a space that has an enemy army, you deal damage to them, killing a number of units. If you defeat all units in a space, you capture it. An army with both lawyers and zombies loses its zombies first. Lawyers deal roughly 5x<br />
more damage to zombies (I forget the actual multiplier).</p></blockquote>
<p>It&#8217;s really a very boring game, but the idea is that it&#8217;s playable and (mostly) bug free. Additional rules and features can easily be added onto the skeleton in an attempt to make it more engaging. At the end of the week you&#8217;ll have a game, though, and you&#8217;ll have a good impression of roughly how fun it is. This last part is vital, I think, to good game design.<br />
<strong>Rapid-prototyping lets me play a game with very little time investment. This lets me determine whether it is worth making.</strong></p>
<p><small>* This amount of time is actually quite excessive for such a simple game. At the time I wasn&#8217;t using <a href="http://slick.cokeandcode.com/">Slick</a>, and I didn&#8217;t have much experience with applets.</p>
<p>Disclaimer: I do not own any of the graphics used in the game, but I feel that they are <a href="http://en.wikipedia.org/wiki/Fair_use">used fairly</a>. Unlike most of my work, this game is not open source, and I ask that you do not redistribute it without permission. Its sole intent is to showcase what I did one weekend, and maybe talk a little about game-programming. :)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://raelifin.com/code/zombie-corp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

