<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Apocrivan Musings</title>
	<atom:link href="http://apocriva.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://apocriva.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sun, 02 Oct 2011 17:05:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='apocriva.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/1e2d372a01f43de4ab69664a75251269?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Apocrivan Musings</title>
		<link>http://apocriva.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://apocriva.wordpress.com/osd.xml" title="Apocrivan Musings" />
	<atom:link rel='hub' href='http://apocriva.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Pondering a Strategy for Battle</title>
		<link>http://apocriva.wordpress.com/2011/10/02/pondering-a-strategy-for-battle/</link>
		<comments>http://apocriva.wordpress.com/2011/10/02/pondering-a-strategy-for-battle/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 17:05:38 +0000</pubDate>
		<dc:creator>apocriva</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tako]]></category>

		<guid isPermaLink="false">http://apocriva.wordpress.com/?p=263</guid>
		<description><![CDATA[No build posted today.  Been spending some time getting the task list for Daleth in order, and thinking about how to tackle the framework for combat encounters (henceforth likely referred to as simply &#8220;Battles&#8221;). The Way Things Are A bit of background on roughly how things are implemented at the moment.  Aui is the custom [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=263&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>No build posted today.  Been spending some time getting the task list for Daleth in order, and thinking about how to tackle the framework for combat encounters (henceforth likely referred to as simply &#8220;Battles&#8221;).</p>
<h2>The Way Things Are</h2>
<p>A bit of background on roughly how things are implemented at the moment.  Aui is the custom UI system that all the screens and other interactive bits are built using.  This has a bunch of generic widgets, like buttons, labels, scroll bars, etc.  Within the Tako package, I have all the Tako custom widgets (for things like the agent icon buttons and the codex mantle list), as well as all the screens and popups, which themselves are just widgets.</p>
<p>The component which glues all of this together is the ScreenController.  ScreenController does a bunch of unique stuff.  It is the root widget in the widget family tree.  The Tako game class (Slick-derived) calls ScreenController&#8217;s update(), render() and resize() methods directly.  ScreenController also does a bunch of currently-pretty-nasty event handling such that any screen call do something like triggerEvent(widget, &#8220;screen MainMenu&#8221;) to open the main menu, or triggerEvent(widget, &#8220;popup mantleInfo &lt;mantle Id&gt;&#8221;).  It&#8217;s a little bit gross, but it&#8217;s functional.</p>
<p>ScreenController allows a single screen to be visible, but maintains a popup stack.  This means that while you&#8217;re in the Codex, for example, you can keep clicking on links that pop up more mantle info popups and it keeps something of a history as you keep hitting back.  This will require a bit of reworking in the long run, because you can theoretically get into a situation where you&#8217;re running out of memory due to so many popups being in the stack.</p>
<p>The actual game logic is contained in a separate widget-derived component that exists outside of this system, Campaign.  This Campaign widget is always rendered underneath the currently active screen and popup, and drives the game logic for things like the avatar traveling and triggering encounters, and also responds to events requesting mantle/party changes.</p>
<h2>The Conundrum</h2>
<p>This is all well and good, and everything is working quite well at the moment.  However, it does pose a bit of a strange issue now that I&#8217;m starting to look at battles.  See, the Campaign widget functions like the back-end for gameplay, and there&#8217;s another widget that functions as the front-end: the CampaignScreen widget.  All of the user interaction happens within CampaignScreen.  There are widgets in Campaign that are used for rendering encounters and parties and stuff, and their tooltip displaying is actually handled by CampaignScreen, but nothing on the world map is actually interactive.</p>
<p>So I&#8217;m stuck in a position where I still want to continue keeping the front-end/back-end separation in place &#8212; it actually looks great having the game render in behind the menus without the clutter of the game UI after all &#8212; but if the Battle component is going to be maintaining the queue of agent events, and BattleScreen is maintaining the graphical/interactive representation of that&#8230;  Well, it just gets even uglier, I find.  I have to end up doing a bunch of agent lookups to ensure that the visual timeline aligns with the actual timeline.  Especially when you consider that some agents may from time-to-time disappear altogether from the timeline, it&#8217;s just especially ugly.  Gross!</p>
<h2>The Solution</h2>
<p>Okay, so it&#8217;s really not <em>that</em> big of a deal.  I&#8217;ll keep a queue of battle events in Battle, which will be a bunch of elements containing agent + event (command or action) + optional ability (for active wait or normal action).  Since this queue only updates infrequently, I can make use of the &#8220;refresh&#8221; functionality I have in place with Aui &#8212; essentially I can allow Battle to trigger a &#8216;refresh&#8217; event which will ultimately cause the visual timeline to repopulate.  This will also allow the BattleScreen (which will be responsible for things like selecting abilities and targeting) to update based on whose action is available.</p>
<p>I&#8217;m not entirely sure why this was making my head spin so much, but it doesn&#8217;t matter!  I have a plan of attack, and hopefully Tako will have some playable battles before too long.  <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/apocriva.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/apocriva.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/apocriva.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/apocriva.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/apocriva.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/apocriva.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/apocriva.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/apocriva.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/apocriva.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/apocriva.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/apocriva.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/apocriva.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/apocriva.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/apocriva.wordpress.com/263/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=263&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://apocriva.wordpress.com/2011/10/02/pondering-a-strategy-for-battle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1f0839b960d3d8dc948dd30897817e32?s=96&#38;d=retro&#38;r=G" medium="image">
			<media:title type="html">apocriva</media:title>
		</media:content>
	</item>
		<item>
		<title>Layout Improvement and Leveling Up!</title>
		<link>http://apocriva.wordpress.com/2011/09/25/layout-improvement-and-leveling-up/</link>
		<comments>http://apocriva.wordpress.com/2011/09/25/layout-improvement-and-leveling-up/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 03:09:16 +0000</pubDate>
		<dc:creator>apocriva</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tako]]></category>

		<guid isPermaLink="false">http://apocriva.wordpress.com/?p=259</guid>
		<description><![CDATA[Build: Gimel 25-September-2011 11:47 I revamped the Codex window, and all the other list-of-mantle windows while I was at it.  I needed to do so because I wanted the following for leveling up: Not only did I manage to get that done, but I also (perhaps inadvertently) introduced the basic metagame.  It&#8217;s currently possible to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=259&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Build: <em>Gimel 25-September-2011 11:47</em></p>
<p>I revamped the Codex window, and all the other list-of-mantle windows while I was at it.  I needed to do so because I wanted the following for leveling up:</p>
<p><a href="http://apocriva.files.wordpress.com/2011/09/takoscreen0030.png"><img class="alignnone size-medium wp-image-260" title="takoScreen0030" src="http://apocriva.files.wordpress.com/2011/09/takoscreen0030.png?w=300&#038;h=236" alt="" width="300" height="236" /></a></p>
<p>Not only did I manage to get that done, but I also (perhaps inadvertently) introduced the basic metagame.  It&#8217;s currently possible to spam the skill check in first visible encounter to award a whole bunch of experience and cap out your agents, and this will actually result in the Codex opening up too.  Now, there aren&#8217;t any flashing lights or effects or anything to tell you that you&#8217;ve unlocked new mantles, but the functionality works!</p>
<p>So, the last remaining tasks for Tako-Gimel are:</p>
<ul>
<li><strong>Validate Daleth task breakdown</strong>.  I first did the task breakdown for the next milestone (combat encounters) at the beginning of this milestone.  I think I might have to stop doing these breakdowns a milestone ahead, judging by the amount of learning and revamping I&#8217;ve been doing while working.  This means that the next task&#8230;</li>
<li><strong>He task breakdown</strong>&#8230; is no longer needed for this milestone.  That&#8217;s &#8220;He&#8221; the Phoenician letter (according to <a href="http://en.wikipedia.org/wiki/Greek_alphabet#Main_letters" target="_blank">wikipedia</a>) rather than the pronoun.</li>
<li>And a few miscellaneous development tasks that are either feature-creepy or things I don&#8217;t really need.</li>
<ul>
<li>Tilesheet improvements.</li>
<li>Seasons.</li>
<li>Trading.  (This is something that I don&#8217;t really need a &#8216;system&#8217; for, since I can just whip up something specific to any given encounter.)</li>
<li>Agent AI.  (This will almost certainly end up becoming its own milestone later on &#8212; giving agents personalities and having them react to the things the player does.  Or, it&#8217;ll just end up getting cut!  Dunno!)</li>
</ul>
</ul>
<p>&#8230;and then it&#8217;s on to combat encounters!  Whole new feature, should be interesting.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/apocriva.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/apocriva.wordpress.com/259/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/apocriva.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/apocriva.wordpress.com/259/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/apocriva.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/apocriva.wordpress.com/259/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/apocriva.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/apocriva.wordpress.com/259/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/apocriva.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/apocriva.wordpress.com/259/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/apocriva.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/apocriva.wordpress.com/259/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/apocriva.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/apocriva.wordpress.com/259/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=259&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://apocriva.wordpress.com/2011/09/25/layout-improvement-and-leveling-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1f0839b960d3d8dc948dd30897817e32?s=96&#38;d=retro&#38;r=G" medium="image">
			<media:title type="html">apocriva</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/takoscreen0030.png?w=300" medium="image">
			<media:title type="html">takoScreen0030</media:title>
		</media:content>
	</item>
		<item>
		<title>Class Tree</title>
		<link>http://apocriva.wordpress.com/2011/09/22/class-tree/</link>
		<comments>http://apocriva.wordpress.com/2011/09/22/class-tree/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 03:41:07 +0000</pubDate>
		<dc:creator>apocriva</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tako]]></category>

		<guid isPermaLink="false">http://apocriva.wordpress.com/?p=253</guid>
		<description><![CDATA[Build: Gimel 23-September-2011 12:15 Took a little bit of time tonight to toss in some utility methods for getting agent gender (the current plan is to have the gender tied to race, so you&#8217;d have both male and female races when appropriate), and to fix up the &#8220;Travel&#8221; button ingame.  It was a bit flaky [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=253&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Build: <em>Gimel 23-September-2011 12:15</em></p>
<p><a href="http://apocriva.files.wordpress.com/2011/09/takoscreen0028.png"><img class="alignnone size-medium wp-image-254" title="takoScreen0028" src="http://apocriva.files.wordpress.com/2011/09/takoscreen0028.png?w=300&#038;h=233" alt="" width="300" height="233" /></a></p>
<p>Took a little bit of time tonight to toss in some utility methods for getting agent gender (the current plan is to have the gender tied to race, so you&#8217;d have both male and female races when appropriate), and to fix up the &#8220;Travel&#8221; button ingame.  It was a bit flaky before, and it feels a lot more solid now.</p>
<p>Aside from that, as shown in the screenshot above, I am beginning to work on the leveling system!  Here&#8217;s how leveling is going to roughly work&#8230;  After each encounter, all agents in your party (not in the squad) will receive X amount of experience, based roughly on the difficulty of the encounter.  Once an agent gets a total of, say, N experience, they gain an &#8220;Upgrade Point&#8221;.  The player can then spend that point to upgrade any one of that agent&#8217;s mantles (race, class or artifact) if that mantle has any upgrades available in its &#8220;upgrade path&#8221;.  Looking at the screenshot there, you can see that the Warrior class can upgrade into Warrior II, then Warrior III, and then finally into one of two completely different classes which haven&#8217;t yet been unlocked.  These would become visible once the agent reached Warrior III.</p>
<p>Each additional upgrade point for a specific agent will cost more than the last.  I expect that by doing this, and by having new agents &#8216;collected&#8217; over the course of a campaign, it should hopefully space out gaining these upgrade points pretty evenly without being totally even.  It does create some interesting gameplay twists &#8212; like being able to level up an artifact quickly with a newly-acquired agent to then return to your avatar for whatever reason.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/apocriva.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/apocriva.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/apocriva.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/apocriva.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/apocriva.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/apocriva.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/apocriva.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/apocriva.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/apocriva.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/apocriva.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/apocriva.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/apocriva.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/apocriva.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/apocriva.wordpress.com/253/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=253&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://apocriva.wordpress.com/2011/09/22/class-tree/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1f0839b960d3d8dc948dd30897817e32?s=96&#38;d=retro&#38;r=G" medium="image">
			<media:title type="html">apocriva</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/takoscreen0028.png?w=300" medium="image">
			<media:title type="html">takoScreen0028</media:title>
		</media:content>
	</item>
		<item>
		<title>It&#8217;s My Party and I&#8217;ll Squad If I Want To</title>
		<link>http://apocriva.wordpress.com/2011/09/21/its-my-party-and-ill-squad-if-i-want-to/</link>
		<comments>http://apocriva.wordpress.com/2011/09/21/its-my-party-and-ill-squad-if-i-want-to/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 00:10:43 +0000</pubDate>
		<dc:creator>apocriva</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tako]]></category>

		<guid isPermaLink="false">http://apocriva.wordpress.com/?p=249</guid>
		<description><![CDATA[Build: Gimel 21-September-2011 08:59 After a bit of discussion, I&#8217;ve decided to handle agents in pretty much the same way as artifacts.  You essentially have an &#8216;inventory&#8217; of agents that you can draw from to fill up your party.  If the party is full (currently four members), you have to remove a member first.  I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=249&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Build: <em>Gimel 21-September-2011 08:59</em></p>
<p><a href="http://apocriva.files.wordpress.com/2011/09/takoscreen0027.png"><img class="alignnone size-medium wp-image-250" title="takoScreen0027" src="http://apocriva.files.wordpress.com/2011/09/takoscreen0027.png?w=300&#038;h=233" alt="" width="300" height="233" /></a></p>
<p>After a bit of discussion, I&#8217;ve decided to handle agents in pretty much the same way as artifacts.  You essentially have an &#8216;inventory&#8217; of agents that you can draw from to fill up your party.  If the party is full (currently four members), you have to remove a member first.  I also spent some time reorganizing the party frame to show the agent&#8217;s icon, but I&#8217;m not sure I like it.  Well, I do like the icon being there, but now when you open the member details panel, it&#8217;s REALLY big.  I&#8217;m considering taking the details panel out, and instead using the agent info popup for agent interactions.  That&#8217;s something I&#8217;ll tackle later during revisions, though.</p>
<p>Next up: leveling!  Once I get the leveling system in place, it&#8217;ll be time to move onto combat encounters.  I&#8217;m stoked!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/apocriva.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/apocriva.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/apocriva.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/apocriva.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/apocriva.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/apocriva.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/apocriva.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/apocriva.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/apocriva.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/apocriva.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/apocriva.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/apocriva.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/apocriva.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/apocriva.wordpress.com/249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=249&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://apocriva.wordpress.com/2011/09/21/its-my-party-and-ill-squad-if-i-want-to/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1f0839b960d3d8dc948dd30897817e32?s=96&#38;d=retro&#38;r=G" medium="image">
			<media:title type="html">apocriva</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/takoscreen0027.png?w=300" medium="image">
			<media:title type="html">takoScreen0027</media:title>
		</media:content>
	</item>
		<item>
		<title>Winning and Winning Better</title>
		<link>http://apocriva.wordpress.com/2011/09/17/winning-and-winning-better/</link>
		<comments>http://apocriva.wordpress.com/2011/09/17/winning-and-winning-better/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 02:47:51 +0000</pubDate>
		<dc:creator>apocriva</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tako]]></category>

		<guid isPermaLink="false">http://apocriva.wordpress.com/?p=244</guid>
		<description><![CDATA[Build: Gimel 17-September-2011 11:37 I have put in a system for campaign scenarios, including being able to finish a scenario.  In the example I have in place right now, there&#8217;s only a very rudimentary win/loss script set up, but it should be pretty easy to extent the system to allow for a whole range of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=244&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Build: <em>Gimel 17-September-2011 11:37</em></p>
<p>I have put in a system for campaign scenarios, including being able to finish a scenario.  In the example I have in place right now, there&#8217;s only a very rudimentary win/loss script set up, but it should be pretty easy to extent the system to allow for a whole range of greys versus black-and-white winning-or-losing.  The nice thing about how the demo scenario is set up is that the encounters in the world aren&#8217;t specifically hard-linked to the scenario.  This particular scenario has &#8216;fame&#8217; as a measure of victory, and the encounters simply boost your fame.  This type of relationship will hopefully allow many encounters to &#8216;plug in&#8217; to scenarios without too much effort.</p>
<p><a href="http://apocriva.files.wordpress.com/2011/09/takoscreen0026.png"><img class="alignnone size-medium wp-image-245" title="takoScreen0026" src="http://apocriva.files.wordpress.com/2011/09/takoscreen0026.png?w=300&#038;h=233" alt="" width="300" height="233" /></a></p>
<p>I also have designed a leveling system that I&#8217;m hoping will work, but I&#8217;ll talk about that a little later when I have it in place.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/apocriva.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/apocriva.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/apocriva.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/apocriva.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/apocriva.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/apocriva.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/apocriva.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/apocriva.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/apocriva.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/apocriva.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/apocriva.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/apocriva.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/apocriva.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/apocriva.wordpress.com/244/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=244&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://apocriva.wordpress.com/2011/09/17/winning-and-winning-better/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1f0839b960d3d8dc948dd30897817e32?s=96&#38;d=retro&#38;r=G" medium="image">
			<media:title type="html">apocriva</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/takoscreen0026.png?w=300" medium="image">
			<media:title type="html">takoScreen0026</media:title>
		</media:content>
	</item>
		<item>
		<title>Evil Zombies</title>
		<link>http://apocriva.wordpress.com/2011/09/16/evil-zombies/</link>
		<comments>http://apocriva.wordpress.com/2011/09/16/evil-zombies/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 04:24:36 +0000</pubDate>
		<dc:creator>apocriva</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tako]]></category>

		<guid isPermaLink="false">http://apocriva.wordpress.com/?p=240</guid>
		<description><![CDATA[Build: Gimel 16-September-2011 01:21 I have added traits to the mantles, and added the functionality to prevent conflicting traits from being put together during avatar creation.  Still have to do the same for ingame equipping, but I&#8217;m happy to have done a bit of Tako work tonight at all!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=240&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Build: <em>Gimel 16-September-2011 01:21</em></p>
<p><a href="http://apocriva.files.wordpress.com/2011/09/takoscreen0025.png"><img class="alignnone size-medium wp-image-241" title="takoScreen0025" src="http://apocriva.files.wordpress.com/2011/09/takoscreen0025.png?w=300&#038;h=233" alt="" width="300" height="233" /></a></p>
<p>I have added traits to the mantles, and added the functionality to prevent conflicting traits from being put together during avatar creation.  Still have to do the same for ingame equipping, but I&#8217;m happy to have done a bit of Tako work tonight at all!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/apocriva.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/apocriva.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/apocriva.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/apocriva.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/apocriva.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/apocriva.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/apocriva.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/apocriva.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/apocriva.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/apocriva.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/apocriva.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/apocriva.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/apocriva.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/apocriva.wordpress.com/240/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=240&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://apocriva.wordpress.com/2011/09/16/evil-zombies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1f0839b960d3d8dc948dd30897817e32?s=96&#38;d=retro&#38;r=G" medium="image">
			<media:title type="html">apocriva</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/takoscreen0025.png?w=300" medium="image">
			<media:title type="html">takoScreen0025</media:title>
		</media:content>
	</item>
		<item>
		<title>Refactoring, Part Two</title>
		<link>http://apocriva.wordpress.com/2011/09/14/refactoring-part-two/</link>
		<comments>http://apocriva.wordpress.com/2011/09/14/refactoring-part-two/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 03:00:44 +0000</pubDate>
		<dc:creator>apocriva</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tako]]></category>

		<guid isPermaLink="false">http://apocriva.wordpress.com/?p=237</guid>
		<description><![CDATA[Build: Gimel 14-September-2011 10:45 Have finished changing things over to the slightly-refactored aui, and also added in auto-scaling functionality, so as the window resizes, the game scales up or down properly.  This means that it will no longer be possible to have a UI that overflows the window (unless your window is smaller than 320&#215;240, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=237&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Build: <em>Gimel 14-September-2011 10:45</em></p>
<p>Have finished changing things over to the slightly-refactored aui, and also added in auto-scaling functionality, so as the window resizes, the game scales up or down properly.  This means that it will no longer be possible to have a UI that overflows the window (unless your window is smaller than 320&#215;240, of course).  You can still decide whether you prefer a larger or smaller scale, and Tako will try its best to accommodate.</p>
<p>There are a couple more things I want to refactor before I can really get cracking again on development, but they&#8217;re not major things.  Specifically, I want to add getLeft/Top/Right/Bottom() methods to Widget, and possibly add in some static factory/builder methods for creating widgets.  I&#8217;m not so sure about that last one, though.  Will have to give it a shot and see how the code ends up looking!</p>
<p>Oh, and three weeks until Dark Souls!  <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/apocriva.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/apocriva.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/apocriva.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/apocriva.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/apocriva.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/apocriva.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/apocriva.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/apocriva.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/apocriva.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/apocriva.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/apocriva.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/apocriva.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/apocriva.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/apocriva.wordpress.com/237/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=237&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://apocriva.wordpress.com/2011/09/14/refactoring-part-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1f0839b960d3d8dc948dd30897817e32?s=96&#38;d=retro&#38;r=G" medium="image">
			<media:title type="html">apocriva</media:title>
		</media:content>
	</item>
		<item>
		<title>Refactoring, Part One</title>
		<link>http://apocriva.wordpress.com/2011/09/10/refactoring-part-one/</link>
		<comments>http://apocriva.wordpress.com/2011/09/10/refactoring-part-one/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 04:13:28 +0000</pubDate>
		<dc:creator>apocriva</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tako]]></category>

		<guid isPermaLink="false">http://apocriva.wordpress.com/?p=233</guid>
		<description><![CDATA[Build: Gimel 10-September-2011 01:09 There&#8217;s not really anything new to see in this build, but under the hood, the code is a lot cleaner.    Putting my Effective Java reading to work!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=233&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Build: <em>Gimel 10-September-2011 01:09</em></p>
<p>There&#8217;s not really anything new to see in this build, but under the hood, the code is a lot cleaner.  <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Putting my Effective Java reading to work!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/apocriva.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/apocriva.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/apocriva.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/apocriva.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/apocriva.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/apocriva.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/apocriva.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/apocriva.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/apocriva.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/apocriva.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/apocriva.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/apocriva.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/apocriva.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/apocriva.wordpress.com/233/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=233&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://apocriva.wordpress.com/2011/09/10/refactoring-part-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1f0839b960d3d8dc948dd30897817e32?s=96&#38;d=retro&#38;r=G" medium="image">
			<media:title type="html">apocriva</media:title>
		</media:content>
	</item>
		<item>
		<title>Resizing</title>
		<link>http://apocriva.wordpress.com/2011/09/07/resizing/</link>
		<comments>http://apocriva.wordpress.com/2011/09/07/resizing/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 03:30:06 +0000</pubDate>
		<dc:creator>apocriva</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tako]]></category>

		<guid isPermaLink="false">http://apocriva.wordpress.com/?p=230</guid>
		<description><![CDATA[Build: Gimel 8-September-2011 12:23 I am able to circumvent the &#8216;hacky boxes&#8217; issue (mentioned here) by using a JFrame, which also allows me to have a nicely-resizable window.  However, I have a new issue now where the application is initially blank, until you either resize it larger or move it.  It will become blank again [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=230&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Build: <em>Gimel 8-September-2011 12:23</em></p>
<p>I am able to circumvent the &#8216;hacky boxes&#8217; issue (mentioned <a title="Main Menu, Mostly Done" href="http://apocriva.wordpress.com/2011/08/07/main-menu-mostly-done/">here</a>) by using a JFrame, which also allows me to have a nicely-resizable window.  However, I have a new issue now where the application is initially blank, until you either resize it larger or move it.  It will become blank again if you resize the window smaller.  I&#8217;ve been digging and am having a lot of trouble figuring out why this is the case.  Have yet to try it on another machine, though.  Maybe it&#8217;s just a problem with my video card or something.</p>
<p>I&#8217;ve also finished reading Effective Java, and will likely being doing a bit cleanup of Tako &#8212; most specifically of aui, which is supposed to be the go-to library for me for UI now and in the future.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/apocriva.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/apocriva.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/apocriva.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/apocriva.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/apocriva.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/apocriva.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/apocriva.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/apocriva.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/apocriva.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/apocriva.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/apocriva.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/apocriva.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/apocriva.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/apocriva.wordpress.com/230/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=230&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://apocriva.wordpress.com/2011/09/07/resizing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1f0839b960d3d8dc948dd30897817e32?s=96&#38;d=retro&#38;r=G" medium="image">
			<media:title type="html">apocriva</media:title>
		</media:content>
	</item>
		<item>
		<title>Tutorial: Creating a New Project With Slick in Eclipse</title>
		<link>http://apocriva.wordpress.com/2011/09/02/tutorial-creating-a-new-project-with-slick-in-eclipse/</link>
		<comments>http://apocriva.wordpress.com/2011/09/02/tutorial-creating-a-new-project-with-slick-in-eclipse/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 03:55:41 +0000</pubDate>
		<dc:creator>apocriva</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[hg]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[slick]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://apocriva.wordpress.com/?p=199</guid>
		<description><![CDATA[Slick is a 2D library for Java written on top of LWJGL (itself written on top of OpenGL).  Eclipse is the IDE I use for developing in Java.  I love Slick for being able to get up and running quickly, but I&#8217;m fairly new to Eclipse, so setting things up has proven to be a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=199&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://slick.cokeandcode.com/">Slick</a> is a 2D library for Java written on top of <a href="http://lwjgl.org/">LWJGL</a> (itself written on top of OpenGL).  <a href="http://eclipse.org/">Eclipse</a> is the IDE I use for developing in Java.  I love Slick for being able to get up and running quickly, but I&#8217;m fairly new to Eclipse, so setting things up has proven to be a bit of a repeated pain for me.  This tutorial will describe how I set up Eclipse for my Java projects, to serve mostly as a reference for myself when I next start a new project.</p>
<p>The source for this tutorial is available at Bitbucket (<a href="https://bitbucket.org/apocriva/tutorials" target="_blank">https://bitbucket.org/apocriva/tutorials</a>).  Full tutorial after the break!</p>
<p><span id="more-199"></span></p>
<h2>Directory Structure and Source Control</h2>
<p>For source control, I use a Mercurial (Hg) repository, typically hosted on <a href="https://bitbucket.org/">Bitbucket</a>, using <a href="http://tortoisehg.bitbucket.org/" target="_blank">tortoisehg</a>.  I try to ensure that it&#8217;s possible to sync to the latest, load the project in Eclipse, and build/run right out of the box.  I still don&#8217;t know if I have things 100% correct, but I&#8217;ll make a note below of the Eclipse files which I currently store in Hg, and how the .hgignore file filter is set.  I won&#8217;t, however, belabour Hg, since this is a Slick/Eclipse tutorial, and not a Mercurial tutorial.</p>
<p>With that in mind, I&#8217;ll be referring to the Hg repository root as {Root}.  If that maps to something like &#8220;C:\dev\tutorials&#8221; for you, then you should read &#8220;{Root}\Eclipse&#8221; as &#8220;C:\dev\tutorials\Eclipse&#8221;.</p>
<p>Here&#8217;s the directory structure we&#8217;ll be setting up:</p>
<ul>
<li><strong>{Root}</strong>.  Contains the .hgignore file and the .hg folder.
<ul>
<li><strong>Common</strong>.  Certainly not the most space-saving way of doing things, but a way I&#8217;m used to doing it from my nine-to-five game dev job, I keep a full copy of the version of each common library I&#8217;m using on a project within that project&#8217;s directory structure.  This means that what I have in my repository won&#8217;t suffer from breakages due to new library versions if I have to build the project later.  I&#8217;m almost positive this would also be a legal problem if I had the Common folder in the repositories publicly available, but I don&#8217;t.</li>
<li><strong>Eclipse</strong>.  Eclipse-specific metadata stuff.  I have this in its own folder so that it&#8217;s clear that the .metadata folder is an Eclipse construct, and not part of source control, or directly part of the project.</li>
<li><strong>Project Folders</strong>.  Each project created within Eclipse goes in its own folder, with quite a few source folders.  In the base project folder, you&#8217;ll find the very-important .classpath file.  You may have to hand-edit this later to properly have relative paths.  This folder also contains any Ant build files that are used for things like building data.  The paths within the base project are split into two categories: those which contain source files, or files otherwise needed by the build, and therefore must be in the Hg repository; and those which are generated as part of the build and therefore do not reside in the repository.
<ul>
<li><strong>Source Folders</strong>.
<ul>
<li><strong>lib</strong>.  Contains the jars and native dlls that will later be built into a distribution.  These don&#8217;t technically <em>have</em> to be here, since they exist under Common, but the build scripts were a lot more straightforward to set up assuming we just had to blindly copy this folder over.</li>
<li><strong>src</strong>.  Contains Java source code.</li>
<li><strong>srcData</strong>.  Contains source data, including all working files (things like PSDs, XCFs, etc) and generally most exported files (PNGs, WAVs) which will be copied over directly.  Some files in srcData get processed by the build pipeline, with the resulting generated files ending up elsewhere.</li>
</ul>
</li>
<li><strong>Build Folders</strong>.
<ul>
<li><strong>bin</strong>.  Contains .class files built from src.</li>
<li><strong>data</strong>.  Contains the built and copied data from srcData.  This is the data accessed by the game when running/debugging from within Eclipse.</li>
<li><strong>dist</strong>.  Contains a full distribution of the project.  The projects I work on in development use <a href="http://code.google.com/p/getdown/">getdown</a> for distribution, so this folder contains a bunch of things related to building that distribution.  Most importantly, it contains a zip file with the getdown updater and the built data to post to FTP.</li>
</ul>
</li>
<li>I lied, there&#8217;s a third category:<strong> Miscellaneous Folders</strong>.  Each project generally has a few folders which are unique to that project, or some temporary build folders.  I could clean this up a lot, and I may end up doing so.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Setting up the Eclipse Workspace</h2>
<p><em>I apologize in advance if there&#8217;s anything missing here for getting set up from a fresh installation of Eclipse.  I haven&#8217;t been familiar enough with the IDE to know what settings are project-specific, and which are global.  Just drop me a line if anything doesn&#8217;t jive correctly, and I&#8217;ll get the tutorial fixed up!</em></p>
<p>When booting Eclipse, it will ask you which workspace you&#8217;d like to open.  The workspace for this tutorial is going to be &#8220;tutorials&#8221;, and as mentioned above, the Eclipse workspace files go in the Eclipse subfolder of {Root}, so we tell Eclipse something like: &#8220;{Root}\tutorials\Eclipse&#8221;.</p>
<p><a href="http://apocriva.files.wordpress.com/2011/08/fig00_selectworkspace.jpg"><img class="alignnone size-medium wp-image-202" title="fig00_selectWorkspace" src="http://apocriva.files.wordpress.com/2011/08/fig00_selectworkspace.jpg?w=300&#038;h=138" alt="" width="300" height="138" /><br />
</a></p>
<p>The first thing we do from an empty workspace is create a project.  Select &#8220;Java Project&#8221; from the New Project wizard, and for the project name enter something classy (for me, &#8220;Tut00&#8243;).  We also change the location of the project to be a sibling of the Eclipse folder.</p>
<p><a href="http://apocriva.files.wordpress.com/2011/08/fig01_newproject.jpg"><img class="alignnone size-thumbnail wp-image-204" title="fig01_newProject" src="http://apocriva.files.wordpress.com/2011/08/fig01_newproject.jpg?w=150&#038;h=142" alt="" width="150" height="142" /></a><a href="http://apocriva.files.wordpress.com/2011/09/fig02_newjavaproject.jpg"><img class="alignnone size-thumbnail wp-image-215" title="fig02_newJavaProject" src="http://apocriva.files.wordpress.com/2011/09/fig02_newjavaproject.jpg?w=111&#038;h=150" alt="" width="111" height="150" /></a></p>
<p>You can just hit Finish from here to create the project, and if Eclipse prompts you to go to the &#8220;Java perspective&#8221;, you want to let it!  Note that it is possible, from the next step of the wizard, to set up the project dependencies for things like LWJGL and Slick, but in the event that you&#8217;ve skipped that panel, it&#8217;s just as easy to explain how to do so from the Java perspective directly.  Less straightforward is re-creating the project just to access that step of the wizard.</p>
<p>Once the project is created, right-click on it and add a new folder.  In the new folder wizard, click Advanced, select Linked Folder, click Variables, and add a new variable called COMMON_LOC, which points to ${WORKSPACE_LOC}\..\Common.  Then use this as the location for the folder.</p>
<p><a href="http://apocriva.files.wordpress.com/2011/09/fig07_commonloc.jpg"><img class="alignnone size-thumbnail wp-image-226" title="fig07_commonLoc" src="http://apocriva.files.wordpress.com/2011/09/fig07_commonloc.jpg?w=150&#038;h=82" alt="" width="150" height="82" /></a><a href="http://apocriva.files.wordpress.com/2011/09/fig08_linkedfolder.jpg"><img class="alignnone size-thumbnail wp-image-227" title="fig08_linkedFolder" src="http://apocriva.files.wordpress.com/2011/09/fig08_linkedfolder.jpg?w=103&#038;h=150" alt="" width="103" height="150" /></a></p>
<p>Now go to the project Properties window (by right-clicking on the project).  Go into the Java Build Path tab.  Select &#8220;Add JARs&#8230;&#8221; and find slick.jar in the Common folder we just added.  Once this is added, expand the tree view beside the jar, and set its source, javadoc, and native library locations.  Repeat for lwjgl.jar (and note that the Slick distribution at the time of this writing doesn&#8217;t have the proper 64-bit native libraries for lwjgl, so you&#8217;ll have to get those separately).  Things should end up looking something like this:</p>
<p><a href="http://apocriva.files.wordpress.com/2011/09/fig03_newjars.jpg"><img class="alignnone size-medium wp-image-228" title="fig03_newJars" src="http://apocriva.files.wordpress.com/2011/09/fig03_newjars.jpg?w=300&#038;h=196" alt="" width="300" height="196" /></a></p>
<p>At this point, you&#8217;re able to build and run a simple Slick application!  Feel free to try adding <a href="http://tutorials.apocriva.com/TutGame.java" target="_blank">TutGame.java</a> to test it out.</p>
<h2>Data Build Pipeline</h2>
<p>It was important for me to get a functional data build pipeline in place, since that&#8217;s what I&#8217;m used to from the day job!  I use Ant for this.  The first thing to do is create an Ant project file, which is simply an XML file, in this case called &#8220;build.xml&#8221;.</p>
<p><a href="http://apocriva.files.wordpress.com/2011/09/fig04_buildxml.jpg"><img class="alignnone size-medium wp-image-218" title="fig04_buildXml" src="http://apocriva.files.wordpress.com/2011/09/fig04_buildxml.jpg?w=300&#038;h=277" alt="" width="300" height="277" /></a></p>
<p>I&#8217;m not going to cover anything about Ant here, but here&#8217;s a very simple <a href="http://tutorials.apocriva.com/build.xml" target="_blank">build.xml</a>.  This will simply copy all png files from scrData to data.  From the dropdown beside the run arrows, go to &#8220;External Tools Configurations&#8221;.</p>
<p><a href="http://apocriva.files.wordpress.com/2011/09/fig05_externaltools.jpg"><img class="alignnone size-medium wp-image-219" title="fig05_externalTools" src="http://apocriva.files.wordpress.com/2011/09/fig05_externaltools.jpg?w=300&#038;h=138" alt="" width="300" height="138" /></a></p>
<p>From within that configuration dialog, double-click Ant Build.  It should automatically reference build.xml.  You can rename the run configuration whatever you like, as long as it still points at build.xml.  Under the Refresh tab, I always have &#8220;Refresh resources upon completion.&#8221; -&gt; &#8220;The entire workspace&#8221; checked, so that all the built files show up properly in the workspace view.  In the Common tab, you can check &#8220;External Tools&#8221; under &#8220;Display in favorites menu&#8221; to have the build available all the time easily from the run dropdown as shown in the figure above.</p>
<p>The build script will fail if you don&#8217;t have a srcData folder, but that&#8217;s okay!</p>
<p>Ant is easily extensible if you need to add custom tasks.  The easiest thing to do in my experience has been to add a new project to the workspace, have the build task source code there, and have that project export its .jar back into the main project when it builds via an Ant build step.  There&#8217;s probably a more concise way of doing this, though.</p>
<h2>What to Source Control?</h2>
<p>I&#8217;ll be honest, I&#8217;m not 100% sure about this section.  There are a lot of Eclipse files that definitely need to stay out of source control.</p>
<p>First and foremost, let&#8217;s set up the ignore filter.  Again, as noted above, I&#8217;m expecting you to be using tortoisehg.  Right-click anywhere in Explorer under {Root}, and in the TortoiseHg submenu, select &#8220;Edit Ignore Filter&#8221;.  Here&#8217;s an example of what my ignore filter looks like:</p>
<p><a href="http://apocriva.files.wordpress.com/2011/09/fig06_ignorefilter.jpg"><img class="alignnone size-medium wp-image-220" title="fig06_ignoreFilter" src="http://apocriva.files.wordpress.com/2011/09/fig06_ignorefilter.jpg?w=300&#038;h=230" alt="" width="300" height="230" /></a></p>
<p>The only Eclipse-related files that show up here are the project ones (for Tut00).  In order for the launch settings to be saved in Hg, we have to manually add the files in Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches.  From what I can tell, Eclipse has some hardcoded paths in there, though, so I don&#8217;t know if it&#8217;s possible to have a workspace checked into Hg that will work right out of the box.  One thing that we can do is modify our projects&#8217; .classpath files manually to change the absolute paths to relative paths.</p>
<h2>Further Pipeline Setup</h2>
<p>Beyond the basic data build, I typically have a &#8220;distribution&#8221; pipeline, which includes packaging data and code together, and posting the result in an accessible place.  That&#8217;s a topic for a future tutorial, however!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/apocriva.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/apocriva.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/apocriva.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/apocriva.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/apocriva.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/apocriva.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/apocriva.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/apocriva.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/apocriva.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/apocriva.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/apocriva.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/apocriva.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/apocriva.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/apocriva.wordpress.com/199/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=apocriva.wordpress.com&amp;blog=24716150&amp;post=199&amp;subd=apocriva&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://apocriva.wordpress.com/2011/09/02/tutorial-creating-a-new-project-with-slick-in-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1f0839b960d3d8dc948dd30897817e32?s=96&#38;d=retro&#38;r=G" medium="image">
			<media:title type="html">apocriva</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/08/fig00_selectworkspace.jpg?w=300" medium="image">
			<media:title type="html">fig00_selectWorkspace</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/08/fig01_newproject.jpg?w=150" medium="image">
			<media:title type="html">fig01_newProject</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/fig02_newjavaproject.jpg?w=111" medium="image">
			<media:title type="html">fig02_newJavaProject</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/fig07_commonloc.jpg?w=150" medium="image">
			<media:title type="html">fig07_commonLoc</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/fig08_linkedfolder.jpg?w=103" medium="image">
			<media:title type="html">fig08_linkedFolder</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/fig03_newjars.jpg?w=300" medium="image">
			<media:title type="html">fig03_newJars</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/fig04_buildxml.jpg?w=300" medium="image">
			<media:title type="html">fig04_buildXml</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/fig05_externaltools.jpg?w=300" medium="image">
			<media:title type="html">fig05_externalTools</media:title>
		</media:content>

		<media:content url="http://apocriva.files.wordpress.com/2011/09/fig06_ignorefilter.jpg?w=300" medium="image">
			<media:title type="html">fig06_ignoreFilter</media:title>
		</media:content>
	</item>
	</channel>
</rss>
