<?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>Bytesize Adventures</title>
	<atom:link href="http://www.bytesizeadventures.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bytesizeadventures.com/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 29 Apr 2012 12:45:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Weekly Update #13 – Data Persistence and Levelling Mechanics</title>
		<link>http://www.bytesizeadventures.com/blog/weekly-update-13-data-persistence-and-levelling-mechanics/</link>
		<comments>http://www.bytesizeadventures.com/blog/weekly-update-13-data-persistence-and-levelling-mechanics/#comments</comments>
		<pubDate>Sun, 29 Apr 2012 12:44:33 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development Diary]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[Weekly Update]]></category>
		<category><![CDATA[character levelling]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[experience points]]></category>
		<category><![CDATA[level-up]]></category>
		<category><![CDATA[plist]]></category>
		<category><![CDATA[PPRPG]]></category>
		<category><![CDATA[rpr]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[weekly update]]></category>

		<guid isPermaLink="false">http://www.bytesizeadventures.com/blog/?p=3032</guid>
		<description><![CDATA[These weeks are zipping by rather quickly, don&#8217;t you think? We&#8217;re 13 weekly updates into full production on this project. That puts us about 30% of the way through development. That feels about right to me, with the game engine coming along nicely, place-holder menus present, data inputs functioning, and the game generally feeling playable. [...]]]></description>
			<content:encoded><![CDATA[<p>These weeks are zipping by rather quickly, don&#8217;t you think? We&#8217;re 13 weekly updates into full production on this project. That puts us about 30% of the way through development. That feels about right to me, with the game engine coming along nicely, place-holder menus present, data inputs functioning, and the game generally feeling playable.</p>
<p>Here&#8217;s what I&#8217;ve accomplished this week.</p>
<p>+ Persistent data storage<br />
+ Basic Experience Point and Levelling mechanics</p>
<p><strong>Data Persistence</strong></p>
<p><span id="more-3032"></span>Data persistence is an important part of most, if not all, games. My games up until now have been very basic with the only persistent data required being a level number, and points value to continue from. NSUserDefaults, whilst not intended for this, has been more than adequate.</p>
<p>The development of Coffee Cellar lead me into the murky world of Core Data. Core Data abstracts the data models from the storage method. I ended up using it in conjunction with SQLite3 and it worked quite nicely (Especially since I had relationships between coffees, tasting notes, etc).</p>
<p>For this game I decided to ask my peer group on twitter and got a decent number of opinions. Suggested solutions included plist&#8217;s, the NSCoding protocol, and JSON. These solutions all have their pro&#8217;s and cons.</p>
<p>The data I want to persist in this game is&#8230;</p>
<ul>
<li>The players character level, experience points, and class.</li>
<li>The inventory &#8211; quantities of each tile and amount of &#8220;gold&#8221; (This is complicated slightly by the crafting system)</li>
<li>Quest Data &#8211; completed quests and quests in progress</li>
<li>The levels that have been completed</li>
</ul>
<p>Its not a trivial amount of data but neither is it absolutely huge (something you can&#8217;t know without knowing the underlying solutions for each of those concepts). The solution I&#8217;ve opted for is a single plist (Property List). A plist can only contain a small number of data types but they are more than sufficient for my needs and they tie in well to the solutions for the systems mentioned above. I also use a plist for all of my level data (its the output from my level editor).</p>
<p>There are a couple of downsides to using a plist. All of the data is loaded into memory &#8211; this isn&#8217;t a problem for the persistent data because I know its maximum size up front (and its not storing huge amounts of data). The levels are another matter and I may end up splitting them into individual plist&#8217;s &#8211; I&#8217;ll run performance tests to make that decision.</p>
<p>The other issue is that a plist is not obfuscated in any way so, should someone wish, they have easy access to the data (and therefore easy access to modify it).</p>
<p>That last point is really a non-issue for me right now. This game does not have a competitive element to it (I&#8217;m not planning on leaderboards). I figure I can use a slightly different concept for score data if I do ever feel the desire to incorporate some form of leaderboard.</p>
<p>So, for now, its a singleton writing to, and reading from, a single plist.</p>
<p><strong>Character Levelling</strong></p>
<p>PPRPG is going to have the concept of levelling-up your character. I wan&#8217;t to keep it simple so that its totally transparent to the user as to why they gained a level. I also want to ensure that the complexity fits with the iPhone as a gaming device (i.e. people playing on the go).</p>
<p>You&#8217;re character will not have any attributes other than experience points. No health, stamina, strength, charisma, and what not &#8211; they&#8217;re too complicated for a game that you play when you have a few moments to spare. That&#8217;s not to say the game won&#8217;t have depth (I just don&#8217;t want statistical depth).</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/04/photo-e1335702521112.png"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/04/photo-e1335702521112.png" alt="" title="Character Levelling" width="320" height="480" class="aligncenter size-full wp-image-3047" /></a></p>
<p>(This image is just to show you the concept. It won&#8217;t be this ugly in the finished game.)</p>
<p>So, you&#8217;ll start off as a level 1 character with 0 experience points.</p>
<p>You&#8217;ll be show how many experience points you need for the next level. This is currently calculated as ((current character level * 200) + 50). Adding a static value to the simple multiplication formula ensures that the early levels take a little while to reach, with this effect becoming less relevant in later levels. These values will be tweaked once I have the content in place. I may have oversimplified this but I think it will be easier to tell once I have my 5 level demo.</p>
<p>Tiles in the game have a number of experience points assigned to them. You are awarded these points when you pass over them in the game (that is, you need to have successfully placed them on the board and been able to use them). The experience points will vary dependent upon the tile type and the widget applied (see a future post on crafting :). The experience points you&#8217;ve earned in the current level are displayed during gameplay (This shows you what you&#8217;re playing for).</p>
<p>If you successfully reach the level exit, you keep those points (otherwise they are lost).</p>
<p>You are presented with a screen that shows experience points earned, accumulated total experience points, current character level, and experience points needed for the next level.</p>
<p>Levelling up will give you a choice between 3 perks. These will be randomly generated but influenced by your current level. Potential perks are likely to include a special tile type, a quantity of basic tiles, widgets, a decent amount of gold, a new tile queue slot. These aren&#8217;t defined yet.</p>
<p>I&#8217;m also toying with the possibility of rewarding the player with something more minor (gold and/or basic tiles) for simply reaching the exit.</p>
<p>Balancing all of this is going to be a challenge. That&#8217;s another reason to keep the formula&#8217;s simple. The more complexity added here, the more difficult it will be to create a stable playing experience throughout the full game, across a wide range of players.</p>
<p>I&#8217;m also thinking about grinding. I think ideally I want to avoid it (especially with no stats to level). The easiest way to do this is to prevent the player from earning experience points when replaying completed levels.</p>
<p>Something else I need to consider is a level cap. This is essentially an artificial system for prevent overpowered players. Again, without player statistics, I&#8217;m unlikely to need to do this.</p>
<p><strong>Level 1 Done</strong></p>
<p>So, I&#8217;ve reached my level 1 milestone. Its now onto level 2 which means a new tileset, the loot system, and the quest system.</p>
<p>A few asides that I need to work on. The menu screens need an overhaul since I now dislike them severely. I also feel compelled to get some placeholder sound effects into the game. Oh, and the background for level 1 (or that tileset) is horrible so I&#8217;m going to rework it.</p>
<p><strong>Stuff I liked this week</strong></p>
<p>I totally omitted this the last few times. Oops! Anyway, here&#8217;s some interesting stuff from around the internet.</p>
<ul>
<li><a href="https://twitter.com/#!/notch/status/195141690917523456">https://twitter.com/#!/notch/status/195141690917523456</a> &#8211; Notch asked if any indies wanted to be included in his new game, 0x10c, as fictional software companies. I put Bytesize Adventures forward and it sounds like it was accepted &#8211; how cool is that?</li>
<li><a href="http://not.vlambeer.com/luftrauser/">http://not.vlambeer.com/luftrauser/</a> &#8211; Play this web game.</li>
<li><a href="http://www.ludumdare.com/compo/ludum-dare-23/?action=preview&#038;uid=1163">http://www.ludumdare.com/compo/ludum-dare-23/?action=preview&#038;uid=1163</a> &#8211; I enjoyed this Ludum Dare entry.</li>
<li><a href="http://www.icoderogue.com/2012/04/game-level-and-rapid-prototyping-demo.html">http://www.icoderogue.com/2012/04/game-level-and-rapid-prototyping-demo.html</a> &#8211; This JS web framework looks pretty interesting. Its by <a href="https://twitter.com/#!/lzantal">@LZAntal</a>. More on it here &#8211; <a href="http://raptorgl.com/">http://raptorgl.com/</a></li>
<li><a href="http://frenden.com/the-little-monoprice-graphics-tablet-that-could/">http://frenden.com/the-little-monoprice-graphics-tablet-that-could/</a> &#8211; A Wacom graphics tablet competitor. Shame UK shipping is so expensive (still cheaper than a comparable Wacom though).</li>
<li><a href="http://www.makeuseof.com/tag/7-apps-coffee-lover-ios/">http://www.makeuseof.com/tag/7-apps-coffee-lover-ios/</a> &#8211; Coffee Cellar was featured in a &#8220;7 Apps that every Coffee lover should own&#8221; article.</li>
</ul>
<p>Thanks for reading. More Soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizeadventures.com/blog/weekly-update-13-data-persistence-and-levelling-mechanics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weekly Update #12 – Stability</title>
		<link>http://www.bytesizeadventures.com/blog/weekly-update-12-stability/</link>
		<comments>http://www.bytesizeadventures.com/blog/weekly-update-12-stability/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 10:57:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development Diary]]></category>
		<category><![CDATA[Weekly Update]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[PPRPG]]></category>
		<category><![CDATA[stability]]></category>
		<category><![CDATA[weekly update]]></category>

		<guid isPermaLink="false">http://www.bytesizeadventures.com/blog/?p=3022</guid>
		<description><![CDATA[Right, its been a few weeks so lets get straight to what&#8217;s been achieved? + New GUI elements + Reworked tile queue to buffer taps and keep animations in sync + Wrote two transitions &#8211; one for the end of a level (puzzle) and one for the transition to a level within a level (more [...]]]></description>
			<content:encoded><![CDATA[<p>Right, its been a few weeks so lets get straight to what&#8217;s been achieved?</p>
<p>+ New GUI elements<br />
+ Reworked tile queue to buffer taps and keep animations in sync<br />
+ Wrote two transitions &#8211; one for the end of a level (puzzle) and one for the transition to a level within a level (more on that another time)<br />
+ Basic graphics for level-up screen<br />
+ Changed the way an inventory tile works. It now remains active until you dismiss it (or it auto-dismisses if the tile quantity reaches zero)<br />
+ Started to draft a tile crafting (sort of) mechanism. This may sound like a huge feature but its actually a potential solution to a gameplay problem<br />
+ Coded 2 basic fail states and 1 win state<br />
+ Added basic menus for restarting the level and returning to the map screen<br />
+ Tapping the timer takes it immediately to zero and begins player movement. A second tap increases the player movement speed.</p>
<p><span id="more-3022"></span>Honestly, I had intended to focus on the character levelling side of things but I ended up just working on a bunch of random, less exciting stuff. The past few weeks have mainly focussed around the stability of the core gameplay mechanics. Level 1 is getting to the point where its giving a good indication of the minute-to-minute gameplay. As a result, its throwing up some issues with gameplay flow. A good example is my original inventory implementation which allowed for the placement of a single item before returning to the queue. I&#8217;ve revisited this and the chosen inventory item now stays in play until cancelled.</p>
<p>This may not seem very important but its these gameplay details that heavily impact the quality of the final game. Its balancing the good with the bad. Keeping the inventory item in play adds complexity to the controls (something I&#8217;m trying hard to avoid) but on the positive side it decreases frustration (and multiple taps) during gameplay.</p>
<p>I said I&#8217;d share an image in each of these updates. Here&#8217;s one showing the aforementioned queue and inventory selection system.</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/04/Screen-Shot-2012-04-22-at-11.51.31.png"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/04/Screen-Shot-2012-04-22-at-11.51.31.png" alt="" title="inventory selection gui" width="338" height="139" class="aligncenter size-full wp-image-3028" /></a></p>
<p>I need a few more things before I can move on to level 2.</p>
<ul>
<li>Player persistence &#8211; I&#8217;m currently thinking of using SQLite 3 for persistence.</li>
<li>Basic character levelling &#8211; For now i&#8217;ll just implement the experience points and levelling (sans rewards).</li>
</ul>
<p>That&#8217;s about it I think. There are still plenty of secondary concepts that need implementing</p>
<ul>
<li>Loot</li>
<li>Gold (or some form of in-game currency &#8211; I&#8217;m not talking about freemium, I just mean a system for purchasing in-game items &#8211; like in most roleplaying games)</li>
<li>Shops</li>
<li>Quests</li>
<li>Tile crafting (this will add an element of resource management to the game which could be quite interesting)</li>
</ul>
<p>By then I expect to have a 5-level demo that showcases the majority of the games features. After that its back to the level editor, content creation, graphics, story, sounds, music, and really thinking about the special tile types.</p>
<p>No one said game development was easy :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizeadventures.com/blog/weekly-update-12-stability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weekly Update #11 – Character Classes</title>
		<link>http://www.bytesizeadventures.com/blog/weekly-update-11-character-classes/</link>
		<comments>http://www.bytesizeadventures.com/blog/weekly-update-11-character-classes/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 12:09:02 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development Diary]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[Weekly Update]]></category>
		<category><![CDATA[PPRPG]]></category>
		<category><![CDATA[weekly update]]></category>

		<guid isPermaLink="false">http://www.bytesizeadventures.com/blog/?p=3008</guid>
		<description><![CDATA[These past few weeks have been fairly busy. Here&#8217;s what&#8217;s been achieved&#8230; + Artwork for speech dialogue + Artwork for character selection screen + Artwork for male NPC (non-player character) + Artwork for the three character classes + Started some artwork for the second tileset + Artwork for treasure chest (I&#8217;m not sure about it [...]]]></description>
			<content:encoded><![CDATA[<p>These past few weeks have been fairly busy. Here&#8217;s what&#8217;s been achieved&#8230;</p>
<p>+ Artwork for speech dialogue<br />
+ Artwork for character selection screen<br />
+ Artwork for male NPC (non-player character)<br />
+ Artwork for the three character classes<br />
+ Started some artwork for the second tileset<br />
+ Artwork for treasure chest (I&#8217;m not sure about it though, I think I&#8217;ll end up scrapping it and starting again)<br />
+ Programmed character selection screen</p>
<p>You&#8217;ll notice that the main focus has been on artwork :)</p>
<p>For this blog post, lets focus on character classes. As part of the RPG (Role Playing Game) elements of the game, you&#8217;ll have the opportunity to select from one of 3 character classes. I&#8217;ve gone for the traditional Wizard, Fighter and Rogue.</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/04/characters.png"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/04/characters.png" alt="" title="character classes" width="171" height="48" class="aligncenter size-full wp-image-3014" /></a></p>
<p><span id="more-3008"></span>When you start a new game, you&#8217;ll be presented with the character selection screen. At this point you have a choice. You can either let the game decide your class (&#8220;who am I?&#8221;) or you can manually choose one of the 3 classes.</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/04/pick.png"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/04/pick.png" alt="" title="character selection" width="320" height="480" class="aligncenter size-full wp-image-3015" /></a></p>
<p>Who Am I? &#8211; If you opt to let the game decide your class you&#8217;ll be presented with a series of fun little questions/situations and must select between 3 possible responses. These will allow the game to determine the class it thinks best represents you from your answers. You&#8217;ll remember this system from some older role play games. Hopefully it makes the game more accessible and also acts as a fun diversion.</p>
<p>Your character class will not limit you within the game (or at least that&#8217;s my current thinking). Instead it will purely dictate your starting bonuses. So, for example, a fighter may have access to additional explosive tiles whilst a rogue would get additional gold and perhaps start with more queue spaces revealed.</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/04/select.png"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/04/select.png" alt="" title="fighter" width="320" height="480" class="aligncenter size-full wp-image-3016" /></a></p>
<p>You&#8217;ll level your character throughout the game, giving you access to additional tiles, various perks (affecting attributes in the game), etc. You&#8217;ll be given some choice as to how your character levels, altering the gameplay to suit your play style.</p>
<p>I&#8217;ll discuss levelling in more detail soon. At the moment there isn&#8217;t a system in place other than a basic experience point concept.</p>
<p>That&#8217;s it for this week. Sorry its so short. What&#8217;s been lots of work has resulted in very little to actually talk about.</p>
<p>I&#8217;m still working towards my 5 level demo and I&#8217;ll start thinking about posting some alpha gameplay soon. Thanks for reading and feel free to post your thoughts/questions/suggestions in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizeadventures.com/blog/weekly-update-11-character-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weekly Update #10 – Level 1</title>
		<link>http://www.bytesizeadventures.com/blog/weekly-update-10-level-1/</link>
		<comments>http://www.bytesizeadventures.com/blog/weekly-update-10-level-1/#comments</comments>
		<pubDate>Sun, 25 Mar 2012 13:00:23 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development Diary]]></category>
		<category><![CDATA[Weekly Update]]></category>
		<category><![CDATA[PPRPG]]></category>
		<category><![CDATA[weekly update]]></category>

		<guid isPermaLink="false">http://www.bytesizeadventures.com/blog/?p=2989</guid>
		<description><![CDATA[We&#8217;ve reached a bit of a milestone this week &#8211; the tenth post in this series of weekly updates. That means I&#8217;m at roughly the 2.5 month mark. Of course I&#8217;ve spent considerably more time than that prototyping and working on pre-production elements. Still, I guess it means I&#8217;m about 25% of the way through [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve reached a bit of a milestone this week &#8211; the tenth post in this series of weekly updates. That means I&#8217;m at roughly the 2.5 month mark. Of course I&#8217;ve spent considerably more time than that prototyping and working on pre-production elements. Still, I guess it means I&#8217;m about 25% of the way through the project.</p>
<p>Since <a href="http://www.bytesizeadventures.com/blog/weekly-update-9-a-change-of-tack/">changing tack</a> slightly last week, here what&#8217;s been accomplished.</p>
<p>+ Implemented the inventory selection logic (explained below)<br />
+ Implemented walls and explosives<br />
+ Made good progress with level 1 of the demo<br />
<span id="more-2989"></span><br />
This week I&#8217;ve been building the first level of the game. Actually, It may not end up being the first level of the final game but it&#8217;s certainly the first level of my 5 level gameplay slice. If you missed <a href="http://www.bytesizeadventures.com/blog/weekly-update-9-a-change-of-tack/">last weeks post</a>, I&#8217;ve essentially decided to build a short 5 level demo of the game (in order to test gameplay mechanics and hopefully show off some gameplay).</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/Capture.jpg"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/Capture.jpg" alt="" title="Level 1 WIP" width="376" height="722" class="aligncenter size-full wp-image-3001" /></a></p>
<p>Side-lining the level editor is already paying dividends. It&#8217;s forced me to implement a few new tile types &#8211; the wall and the explosives.</p>
<p>The wall is primarily there to limit player choice (when trying to create a path), forcing them to think a little deeper about the solution. Currently nothing can destroy a wall tile, although I may experiment with this a little.</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/wall1.png"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/wall1.png" alt="" title="Wall Tile" width="64" height="86" class="aligncenter size-full wp-image-3002" /></a></p>
<p>The explosive tile is a key component to the game since it mitigates some of the elements of luck within the gameplay. The tile queue serves up a new random tile each turn which can be placed anywhere in the level. In order to avoid a situation where you fill the grid with useless tiles, you&#8217;ll have access to explosives. These special tiles allow you to destroy any tiles on the grid that you have placed. Of course they&#8217;re a bit of a commodity so you&#8217;ll want to use them sparingly.</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/bomb.png"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/bomb.png" alt="" title="Explosive Tile" width="64" height="85" class="aligncenter size-full wp-image-3000" /></a></p>
<p>I&#8217;ve also focussed a little more on the player inventory. Primarily I&#8217;ve been trying to get the controls right. I don&#8217;t want to fill the interface with hundreds of buttons so I&#8217;m trying to create the right flow for the RPG elements.</p>
<p>Tapping a space in the level places the current tile from the queue. Tapping the inventory allows you to select a tile from your inventory (The game doesn&#8217;t have traditional loot such as swords and armour. Tiles are the games valuable items). You tap a tile in your inventory to select it which then closes the inventory. Your next tap will place this tile in a space in the level. Subsequent taps will revert to using tiles from the queue. I can think of a couple of scenarios that still need thought&#8230;</p>
<ol>
<li>You need to be able to cancel your selection (I&#8217;m currently thinking a tap on the next tile in the queue).</li>
<li>The player will need to be reminded of which tile they have selected from the inventory. The simplest way I can think to achieve this is to temporarily replace the next tile in the queue.</li>
<li>The player will have to constantly open and close the inventory if they want to place lots of the same tile from their own stash.</li>
</ol>
<p>The next step is to complete the first level. I still need a few more things to achieve this&#8230;</p>
<ul>
<li>I need to work on the character models (I have a plan for this)</li>
<li>I need to get the NPC speech graphics in place</li>
<li>I need to implement end tile logic</li>
<li>I need to implement player persistence</li>
<li>I need to implement the experience point mechanics</li>
</ul>
<p>Then it&#8217;s on to level 2 which involves a whole new tileset (I&#8217;m planning a good amount of location variety in the final game so that things don&#8217;t get stale visually). I&#8217;ll also be implementing the quest logic.</p>
<p>Level 3 will see a new sub-location concept (which I still need to experiment with).</p>
<p>Levels 4 &#038; 5 are reserved for experimenting with quest mechanics and new tiles.</p>
<p>Remember this is a mini-slice of the game so that I can test concepts and present some kind of demo. The final game will have many, many more levels and tricks up its sleeve ;)</p>
<p><strong>Stuff I liked this week</strong></p>
<p>I thought I&#8217;d add a new section to these blog posts to share any interesting stuff I find. Here you go&#8230;</p>
<ul>
<li><a href="http://space.angrybirds.com/launch/">http://space.angrybirds.com/launch/</a> &#8211; The Angry Birds Space website. Pretty nifty.</li>
<li><a href="http://www.youtube.com/watch?feature=player_embedded&#038;v=OLqk4aqpXlQ">http://www.youtube.com/watch?feature=player_embedded&#038;v=OLqk4aqpXlQ</a> &#8211; The Portal 2 postmortem from this years GDC.</li>
<li><a href="http://www.sauropodstudio.com/dev-diary-number-five-redesigning-the-bricktron-character/">http://www.sauropodstudio.com/dev-diary-number-five-redesigning-the-bricktron-character/</a> &#8211; Really enjoying the Castle Story dev diaries.</li>
<li><a href="http://www.design3.com/industry-insight">http://www.design3.com/industry-insight</a> &#8211; Loads of great game development interviews.</li>
<li><a href="http://www.indiegamemag.com/dont-get-me-started-on-the-penguins-tiy-talks-upcoming-space-epic-starbound/">http://www.indiegamemag.com/dont-get-me-started-on-the-penguins-tiy-talks-upcoming-space-epic-starbound/</a> &#8211; Starbound is looking great.</li>
</ul>
<p>Until next time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizeadventures.com/blog/weekly-update-10-level-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weekly Update #9 – A change of tack</title>
		<link>http://www.bytesizeadventures.com/blog/weekly-update-9-a-change-of-tack/</link>
		<comments>http://www.bytesizeadventures.com/blog/weekly-update-9-a-change-of-tack/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 13:37:31 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development Diary]]></category>
		<category><![CDATA[Weekly Update]]></category>
		<category><![CDATA[level editor]]></category>
		<category><![CDATA[PPRPG]]></category>
		<category><![CDATA[weekly update]]></category>

		<guid isPermaLink="false">http://www.bytesizeadventures.com/blog/?p=2977</guid>
		<description><![CDATA[I missed my weekly update last week because I didn&#8217;t have much to talk about. Sometimes that&#8217;s just how development goes. A feature, or series of features, can end up taking longer than anticipated. In order to keep these posts semi-intereting, I&#8217;m going to stick to this approach. If I don&#8217;t have anything of significance [...]]]></description>
			<content:encoded><![CDATA[<p>I missed my weekly update last week because I didn&#8217;t have much to talk about. Sometimes that&#8217;s just how development goes. A feature, or series of features, can end up taking longer than anticipated. In order to keep these posts semi-intereting, I&#8217;m going to stick to this approach. If I don&#8217;t have anything of significance to report, I&#8217;ll skip a week. I&#8217;m still aiming to post weekly though.</p>
<p>Completed this week&#8230;</p>
<p>+ NPC (non-player character) placement in the level editor</p>
<p>So, what caused the issue last week? Well, its my level editor. I&#8217;m 100% convinced that building a level editor for this game is the right approach. I also know that I want it to be visually appealing (or at least tidy), easy to use, and also fun to create levels in. The last one may surprise you but if I&#8217;m going to spend hours and hours building levels with this tool, the process needs to be enjoyable. As a result, building the level editor is extremely important.<span id="more-2977"></span></p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/Screen-Shot-2012-03-18-at-13.24.25.png"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/Screen-Shot-2012-03-18-at-13.24.25.png" alt="" title="Level editor with npcs" width="650" height="355" class="aligncenter size-full wp-image-2980" /></a></p>
<p>You may recall that last week I added NPC&#8217;s to my engine, along with a data structure to support them. Much of my time in the last few weeks has been spent thinking through the interface for authoring this in the level editor. I have finally managed to program the functionality for NPC placement but it has been painfully slow. Each time I add a feature I need to design the appearance, program the functionality to display it on screen, add the models for saving to a database, extend my xml generation script (for producing the level data that&#8217;s served to the game), and extend my level parsing to allow the loading of levels within the editor. I&#8217;m sure you get the point, its a lot of work for very little immediate benefit.</p>
<p>Compounding this work is the fact that some of these concepts are experimental (until I know how well they work in the game). I also have lots of outstanding features that are not yet in my engine. As a result, I&#8217;m going to change tack slightly this week. Rather than iterating the level editor along with the game, I&#8217;m going to park the level editor (for a few weeks) and focus on creating a handful of levels in the game. I&#8217;ll still be writing the data structure to support them but I can compose them directly in a local plist.</p>
<p>This will allow me to shift my focus back to game features. I need to see how well the game plays across a number of levels. I can also test some of the concepts I have in mind for quest structure, story, character persistence, and level progression.</p>
<p>So that&#8217;s my new goal. A 5 level mini-story to demo the features of the game. I can come back to the level editor once the concepts are more entrenched in the game engine (and proven to work).</p>
<p>I am interested in how other developers handle the creation of a level editor at the same time as a game. Do you create the level editor first, iterate throughout game development, or leave it to the end? If you have any insights, I&#8217;d love to hear them in the comments.</p>
<p>I&#8217;ll leave you with another tile piece. More to come soon.</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/wall.png"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/wall.png" alt="" title="wall" width="64" height="86" class="aligncenter size-full wp-image-2981" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizeadventures.com/blog/weekly-update-9-a-change-of-tack/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weekly Update #8 – NPC&#8217;s</title>
		<link>http://www.bytesizeadventures.com/blog/weekly-update-8-npcs/</link>
		<comments>http://www.bytesizeadventures.com/blog/weekly-update-8-npcs/#comments</comments>
		<pubDate>Sun, 04 Mar 2012 20:02:52 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development Diary]]></category>
		<category><![CDATA[npcs]]></category>
		<category><![CDATA[PPRPG]]></category>
		<category><![CDATA[rpg]]></category>
		<category><![CDATA[weekly update]]></category>

		<guid isPermaLink="false">http://www.bytesizeadventures.com/blog/?p=2972</guid>
		<description><![CDATA[First up, here&#8217;s a list of what&#8217;s been done this week. + Added NPC&#8217;s to the game engine &#038; a data structure to support them + Added basic NPC interaction + Added NPC rewards - Slight overhaul of the player movement logic As you can see, this week my primary focus has been on NPC&#8217;s. [...]]]></description>
			<content:encoded><![CDATA[<p>First up, here&#8217;s a list of what&#8217;s been done this week.</p>
<p>+ Added NPC&#8217;s to the game engine &#038; a data structure to support them<br />
+ Added basic NPC interaction<br />
+ Added NPC rewards<br />
- Slight overhaul of the player movement logic</p>
<p>As you can see, this week my primary focus has been on NPC&#8217;s. Whilst I&#8217;m moving on to other sub-systems next week, you&#8217;ll be hearing/seeing more about NPC&#8217;s in the future. For now, I just wanted to share some of the basics with you.<span id="more-2972"></span></p>
<p>My current NPC interaction is very basic. As you progress through a level/puzzle you will see NPC&#8217;s who can be approached (providing you can create a path to them). Successfully occupying the same tile as an NPC tile will result in one of three conditions (or a combination thereof). The first is the initialisation/progression of a quest fragment (more on that in a future post), the second is a conversation, and the third is a reward.</p>
<p>Currently a conversation is one sided with a simple text dialogue giving you some information or progressing the story &#8211; the story is very much told through the levels themselves so this is used as an accompaniment to that.</p>
<p>Rewards generally take the form of a number of tiles. Sometimes these are core tiles, sometimes special tiles. I&#8217;ll share more about the reward system in a future post :)</p>
<p>Unfortunately there&#8217;s not much to see visually on the NPC front. Its all rather ugly because I&#8217;ve spent all of my time ensuring its functional and no time on the aesthetics (NPC appearance, text appearance, reward popups etc). As a result, this weeks image is a photograph of a board game that has been a huge source of inspiration for my current game.</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/photo-6.jpg"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/photo-6.jpg" alt="" title="Carcassonne" width="600" height="450" class="aligncenter size-full wp-image-2974" /></a></p>
<p>Next week I&#8217;m switching back to the level editor to focus on the authoring side of my NPC system. I&#8217;m also hoping to create the graphics for two more of the core tile types.</p>
<p>See you next time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizeadventures.com/blog/weekly-update-8-npcs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Video Game soundtracks to code to</title>
		<link>http://www.bytesizeadventures.com/blog/video-game-soundtracks-to-code-to/</link>
		<comments>http://www.bytesizeadventures.com/blog/video-game-soundtracks-to-code-to/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 14:30:53 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Tangents]]></category>
		<category><![CDATA[aquaria]]></category>
		<category><![CDATA[bastion]]></category>
		<category><![CDATA[cthulhu saves the world]]></category>
		<category><![CDATA[minecraft]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[portal 2]]></category>
		<category><![CDATA[pppppp]]></category>
		<category><![CDATA[shatter]]></category>
		<category><![CDATA[super meat boy]]></category>
		<category><![CDATA[sword and sworcery]]></category>
		<category><![CDATA[the binding of isaac]]></category>
		<category><![CDATA[video game soundtracks]]></category>
		<category><![CDATA[world of goo]]></category>

		<guid isPermaLink="false">http://www.bytesizeadventures.com/blog/?p=2936</guid>
		<description><![CDATA[I don&#8217;t know about you but when I&#8217;m coding my games I like to listen to music or, more specifically, music without lyrics. Since I code games, I tend to look for inspiration in the games that I aspire to. I find it really encourages creativity to listen to the soundtracks of video games (its [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know about you but when I&#8217;m coding my games I like to listen to music or, more specifically, music without lyrics. Since I code games, I tend to look for inspiration in the games that I aspire to. I find it really encourages creativity to listen to the soundtracks of video games (its also, for the most part, distraction free).</p>
<p>This then is a list of video game soundtracks to listen to whilst you&#8217;re coding your next big game. This isn&#8217;t an exhaustive list, I think that would be pointless, instead its a list of soundtracks that I think represent the best (I&#8217;ve added links or embedded the music where possible).</p>
<p>I&#8217;d love to hear your recommendations in the comments &#8211; I&#8217;ll aim to keep the list updated.<span id="more-2936"></span></p>
<p><strong>The Binding of Isaac (by Danny Baranowsky)</strong></p>
<object data="http://bandcamp.com/EmbeddedPlayer/album=1071234277/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="100">
				<param name="movie" value="http://bandcamp.com/EmbeddedPlayer/album=1071234277/size=venti/bgcol=FFFFFF/linkcol=4285BB//">
				<param name="quality" value="high">
				<param name="allowNetworking" value="always">
				<param name="wmode" value="transparent">
				<param name="bgcolor" value="#FFFFFF">
				<param name="allowScriptAccess" value="never">
				<object data="http://bandcamp.com/EmbeddedPlayer/album=1071234277/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" width="400" height="100"></object>
			</object>
<p>(<a href="http://dbsoundworks.bandcamp.com/album/the-binding-of-isaac-2">Bandcamp</a>)</p>
<p><strong>Aquaria: Original Soundtrack (by Alec Holowka)</strong></p>
<object data="http://bandcamp.com/EmbeddedPlayer/album=2043579069/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="100">
				<param name="movie" value="http://bandcamp.com/EmbeddedPlayer/album=2043579069/size=venti/bgcol=FFFFFF/linkcol=4285BB//">
				<param name="quality" value="high">
				<param name="allowNetworking" value="always">
				<param name="wmode" value="transparent">
				<param name="bgcolor" value="#FFFFFF">
				<param name="allowScriptAccess" value="never">
				<object data="http://bandcamp.com/EmbeddedPlayer/album=2043579069/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" width="400" height="100"></object>
			</object>
<p>(<a href="http://infiniteammo.bandcamp.com/album/aquaria-original-soundtrack">Bandcamp</a>)</p>
<div style="height:150px;"><strong>Portal 2: Songs to Test (by Aperture Science Psychoacoustics Laboratory)</strong><br />
<a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/Portal_Volume1-e1330783697275.jpg"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/Portal_Volume1-e1330783697275.jpg" alt="" title="Songs to test by" width="100" height="101" class="alignleft size-full wp-image-2958" /></a><br />
(<a href="http://www.thinkwithportals.com/music.php">Website &#8211; Free</a>)</div>
<p><strong>Shatter &#8211; Official Videogame Soundtrack (by Module)</strong></p>
<object data="http://bandcamp.com/EmbeddedPlayer/album=2268236195/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="100">
				<param name="movie" value="http://bandcamp.com/EmbeddedPlayer/album=2268236195/size=venti/bgcol=FFFFFF/linkcol=4285BB//">
				<param name="quality" value="high">
				<param name="allowNetworking" value="always">
				<param name="wmode" value="transparent">
				<param name="bgcolor" value="#FFFFFF">
				<param name="allowScriptAccess" value="never">
				<object data="http://bandcamp.com/EmbeddedPlayer/album=2268236195/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" width="400" height="100"></object>
			</object>
<p>(<a href="http://sidhe.bandcamp.com/album/shatter-official-videogame-soundtrack">Bandcamp</a>)</p>
<p><strong>Sword &#038; Sworcery LP &#8211; The Ballad of the Space Babies (by Jim Guthrie)</strong></p>
<object data="http://bandcamp.com/EmbeddedPlayer/album=572286610/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="100">
				<param name="movie" value="http://bandcamp.com/EmbeddedPlayer/album=572286610/size=venti/bgcol=FFFFFF/linkcol=4285BB//">
				<param name="quality" value="high">
				<param name="allowNetworking" value="always">
				<param name="wmode" value="transparent">
				<param name="bgcolor" value="#FFFFFF">
				<param name="allowScriptAccess" value="never">
				<object data="http://bandcamp.com/EmbeddedPlayer/album=572286610/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" width="400" height="100"></object>
			</object>
<p>(<a href="http://jimguthrie.bandcamp.com/album/sword-sworcery-lp-the-ballad-of-the-space-babies">Bandcamp</a>)</p>
<p><strong>PPPPPP &#8211; The VVVVVV soundtrack (by SoulEye)</strong></p>
<object data="http://bandcamp.com/EmbeddedPlayer/album=2562364272/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="100">
				<param name="movie" value="http://bandcamp.com/EmbeddedPlayer/album=2562364272/size=venti/bgcol=FFFFFF/linkcol=4285BB//">
				<param name="quality" value="high">
				<param name="allowNetworking" value="always">
				<param name="wmode" value="transparent">
				<param name="bgcolor" value="#FFFFFF">
				<param name="allowScriptAccess" value="never">
				<object data="http://bandcamp.com/EmbeddedPlayer/album=2562364272/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" width="400" height="100"></object>
			</object>
<p>(<a href="http://souleyedigitalmusic.bandcamp.com/album/pppppp-the-vvvvvv-soundtrack">Bandcamp</a>)</p>
<p><strong>Minecraft &#8211; Volume Alpha (by C418)</strong></p>
<p>Mainly just the theme though &#8211; track 8</p>
<object data="http://bandcamp.com/EmbeddedPlayer/album=1349219244/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="100">
				<param name="movie" value="http://bandcamp.com/EmbeddedPlayer/album=1349219244/size=venti/bgcol=FFFFFF/linkcol=4285BB//">
				<param name="quality" value="high">
				<param name="allowNetworking" value="always">
				<param name="wmode" value="transparent">
				<param name="bgcolor" value="#FFFFFF">
				<param name="allowScriptAccess" value="never">
				<object data="http://bandcamp.com/EmbeddedPlayer/album=1349219244/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" width="400" height="100"></object>
			</object>
<p>(<a href="http://c418.bandcamp.com/album/minecraft-volume-alpha">Bandcamp</a>)</p>
<p><strong>Bastion Original Soundtrack (by Darren Korb)</strong></p>
<object data="http://bandcamp.com/EmbeddedPlayer/album=503501171/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="100">
				<param name="movie" value="http://bandcamp.com/EmbeddedPlayer/album=503501171/size=venti/bgcol=FFFFFF/linkcol=4285BB//">
				<param name="quality" value="high">
				<param name="allowNetworking" value="always">
				<param name="wmode" value="transparent">
				<param name="bgcolor" value="#FFFFFF">
				<param name="allowScriptAccess" value="never">
				<object data="http://bandcamp.com/EmbeddedPlayer/album=503501171/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" width="400" height="100"></object>
			</object>
<p>(<a href="http://supergiantgames.bandcamp.com/album/bastion-original-soundtrack">Bandcamp</a>)</p>
<p><strong>Super Meat Boy! Soundtrack (by Danny Baranowsky)</strong></p>
<object data="http://bandcamp.com/EmbeddedPlayer/album=763852834/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="100">
				<param name="movie" value="http://bandcamp.com/EmbeddedPlayer/album=763852834/size=venti/bgcol=FFFFFF/linkcol=4285BB//">
				<param name="quality" value="high">
				<param name="allowNetworking" value="always">
				<param name="wmode" value="transparent">
				<param name="bgcolor" value="#FFFFFF">
				<param name="allowScriptAccess" value="never">
				<object data="http://bandcamp.com/EmbeddedPlayer/album=763852834/size=venti/bgcol=FFFFFF/linkcol=4285BB//" type="text/html" width="400" height="100"></object>
			</object>
<p>(<a href="http://dbsoundworks.bandcamp.com/album/super-meat-boy-soundtrack">Bandcamp</a>)</p>
<div style="height:150px;"><strong>Cthulhu Saves the World (by Gordon McNeil)</strong><br />
<a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/6296_220941-e1330784394861.jpg"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/6296_220941-e1330784394861.jpg" alt="" title="cthulhu saves the world" width="83" height="100" class="alignleft size-full wp-image-2962" /></a><br />
(<a href="http://zeboyd.com/2011/07/15/updated-cthulhu-saves-the-world-ost-now-available-free-of-charge/">Website &#8211; Free</a>)</div>
<div style="height:150px;"><strong>World of Goo Soundtrack (by Kyle Gabler)</strong><br />
<a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/WorldOfGooSountrack-e1330784528603.jpg"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/03/WorldOfGooSountrack-e1330784528603.jpg" alt="" title="World of Goo Sountrack" width="170" height="99" class="alignleft size-full wp-image-2963" /></a><br />
(<a href="http://kylegabler.com/WorldOfGooSoundtrack/">Website &#8211; Free</a>)</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizeadventures.com/blog/video-game-soundtracks-to-code-to/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weekly Update #7 – Tools Milestone</title>
		<link>http://www.bytesizeadventures.com/blog/weekly-update-7-tools-milestone/</link>
		<comments>http://www.bytesizeadventures.com/blog/weekly-update-7-tools-milestone/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 14:07:13 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development Diary]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[Weekly Update]]></category>
		<category><![CDATA[level authoring]]></category>
		<category><![CDATA[level editing]]></category>
		<category><![CDATA[PPRPG]]></category>
		<category><![CDATA[web tools]]></category>

		<guid isPermaLink="false">http://www.bytesizeadventures.com/blog/?p=2915</guid>
		<description><![CDATA[For those of you following this series of posts closely, you may have noticed that I missed last weeks update. I was away for a few days taking a break but am now back on track again. This week I&#8217;ve hit a fairly crucial milestone. I can create a level in my web based tools, [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you following this series of posts closely, you may have noticed that I missed last weeks update. I was away for a few days taking a break but am now back on track again.</p>
<p>This week I&#8217;ve hit a fairly crucial milestone. I can create a level in my web based tools, export it, and play it on my iPhone &#8211; all without needing to type a single line of code (or even opening Xcode). I&#8217;ve thrown together a <a href="http://www.youtube.com/watch?v=S0igBoHWaSI">quick video</a> for you (embedded below). Watch it, and then read on for an explanation of what&#8217;s going on.<span id="more-2915"></span></p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/S0igBoHWaSI?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>To explain what&#8217;s going on in the video. The point of creating my tools on the web is to enable me to author levels anywhere (or at least on any device that has a browser). To demonstrate this, the video above shows the level editing tools running in mobile safari on the iPad. In theory all I need is the iPad, my iPhone, and a cup of coffee and I can create content for my game!</p>
<p>The video shows a toolbar across the top and 3 panels in the main view. The toolbar is currently used purely to load existing levels for viewing and editing.</p>
<p>The panel on the far left is the level being created (the canvas). Its comprised of a grid of 30 squares, all of which contain a tile (or not). This defines the tiles displayed when the level starts &#8211; soon it will also define behaviour, npcs, quests, etc.</p>
<p>The middle panel is the palette. These are the tiles available for creating the level.</p>
<p>The panel on the far right is the level meta data. It dictates the level name, reference, and its tile set (which impacts the tiles available in the palette). It also houses the controls to save the level and export it. The final piece of data is the context which is used purely as an aid for describing the current tile.</p>
<p>The video shows the creation of a level using these tools. It then pans to the iPhone which is running the game. The black screen is a temporary level select screen. Hitting refresh polls the tools server for the latest level data. You can see that upon hitting refresh the level just created appears in the list. Tapping that level loads it into the game engine.</p>
<p>I should point out that the gameplay shown in the video is extremely early. Its meant purely to demonstrate the tools.</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/02/P2260139.jpg"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/02/P2260139.jpg" alt="" title="Web based level authoring" width="600" height="450" class="aligncenter size-full wp-image-2920" /></a></p>
<p>The next step is to focus on NPC&#8217;s and the quest system. First i&#8217;ll be writing the components in my game, then adding the parsing to my engine, and finally writing/adding features to the web based level editor to enable me to author them.</p>
<p>This is very much an iterative approach. I&#8217;m don&#8217;t yet have the features to create a single level and it will be a little while before I do. However, when I reach that stage I&#8217;ll have some fairly solid tools to allow me to create the rest of the levels. It all about playing and iterating.</p>
<p>So everything is coming together nicely. Hopefully next week I&#8217;ll have some NPC interaction to show you :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizeadventures.com/blog/weekly-update-7-tools-milestone/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>AltDevConf 2012 &#8211; My Experience</title>
		<link>http://www.bytesizeadventures.com/blog/altdevconf-2012-my-experience/</link>
		<comments>http://www.bytesizeadventures.com/blog/altdevconf-2012-my-experience/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 14:22:46 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[iDevBlogADay]]></category>
		<category><![CDATA[Tangents]]></category>
		<category><![CDATA[altdevblogaday]]></category>
		<category><![CDATA[altdevconf]]></category>
		<category><![CDATA[conferences]]></category>

		<guid isPermaLink="false">http://www.bytesizeadventures.com/blog/?p=2890</guid>
		<description><![CDATA[This weekend I attended AltDevConf, an online game development conference. Their aim is to break down the geographical, and financial, barriers that prevent people from attending game conferences and provide free content from leading experts. AltDevConf is a spin-off of AltDevBlogADay, a blogging website setup by Mike Acton to encourage game professionals to blog more [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/02/altdevconf.jpg"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/02/altdevconf.jpg" alt="" title="altdevconf" width="303" height="163" class="alignleft size-full wp-image-2902" /></a>This weekend I attended <a href="http://altdevconf.org/">AltDevConf</a>, an online game development conference. Their aim is to break down the geographical, and financial, barriers that prevent people from attending game conferences and provide free content from leading experts.</p>
<p><a href="http://altdevconf.org/">AltDevConf</a> is a spin-off of <a href="http://altdevblogaday.com/about/">AltDevBlogADay</a>, a blogging website setup by <a href="http://twitter.com/mike_acton">Mike Acton</a> to encourage game professionals to blog more (Inspired by <a href="http://mysterycoconut.com/">Miguel&#8217;s</a> very own <a href="http://idevblogaday.com/">iDevBlogADay</a>).</p>
<p>You can checkout the <a href="http://altdevblogaday.com/2012/02/02/altdevconf-schedule/">conference schedule here</a>.</p>
<p>There are a total of 23 sessions split across three tracks &#8211; Programming, Education, and Design &#038; Production. Here are the sessions I attended&#8230;<span id="more-2890"></span></p>
<p><strong>Saturday</strong></p>
<ul>
<li>Design &#038; Production: Intro to Producing for Mobile: how to &#8220;go indie&#8221;, actually ship an app, and not die.</li>
<li>Design &#038; Production: Scrum Bowling: Agile Production Methodology for Indie Teams and Student Projects.</li>
<li>Design &#038; Production: How to create a positive online game developer community.</li>
<li>Programming: Control, Configure, Monitor and View your game engine from the web.</li>
</ul>
<p><strong>Sunday</strong></p>
<ul>
<li>Programming: Understanding the second generation of behaviour tress and preparing for challenges beyond.</li>
<li>Design &#038; Production: Effective PR, Marketing, and Community Management in the Indie games space.</li>
<li>Programming: Games Tools as a WebApp: Lessons from Insomniac&#8217;s Next-Gen Tools and Engine.</li>
</ul>
<p><strong>Design &#038; Production: Intro to Producing for Mobile: how to &#8220;go indie&#8221;, actually ship an app, and not die</strong></p>
<p>Speaker: Evangeline Marzec</p>
<p>There was some good information in this talk. Its a fairly emotive subject since so many people are now jumping on this bandwagon. The session very much focussed on the business side of App production and ensuring you build a stable business first and foremost.</p>
<p>Some general notes I made&#8230;</p>
<p>- Cycle through 100 good ideas in order to find a great one.</p>
<p>- Give Luck a small role in your business.</p>
<p>- Define success and failure for your business. These are important for knowing when to continue/quit.</p>
<p>- Choose tools wisely. Don&#8217;t choose tools that will require the production of expensive assets (Unity was used as an example).</p>
<p>- Focus and market research and know your competition. Also mentioned was not developing Apps in a niche that appears dead.</p>
<p>- iOS first, port later. I have to say I&#8217;m not sure about this one. The speaker was making the point that Android only represents on hundredth of their iOS revenue. I think it depends entirely on the experience you&#8217;re creating though as to which target platform you choose.</p>
<p>- You need a minimum of $2k to make an App! This one hit a bit of a nerve for me and, if my twitter stream is anything to go by, other indies too. I checked with the speaker and included in this figure is assets (sounds etc), minimal hardware, license, middleware, and time. That last one is where the figure seems way off. The speaker put developing an App at anything from 3 days to 2 weeks. My experience is that a well produced game/app takes a minimum of 6 months. I guess it totally depends on how you value your time.</p>
<p>In all fairness, this is one persons view and its clearly working for them because they&#8217;re running a successful business (something that I certainly can&#8217;t say is true of my Apps/Games).</p>
<p>- Get a good book keeper. Pay someone else to do this so you don&#8217;t have to.</p>
<p>- Backup your data and keep records.</p>
<p>- The speaker also shared some financial stats. Their first App made $947 in the first week (due to an Apple feature). The second made $12 in its first week. Their 3rd App made $0 in the first week. I wasn&#8217;t able to get any more information on this but this seems to reflect the kind of stats I see and hear about. The App store is getting more and more competitive and more difficult.</p>
<p>- Know when to walk away from a project. Couldn&#8217;t agree more &#8211; See my own <a href="http://www.bytesizeadventures.com/blog/my-iphone-game-graveyard/">iPhone game graveyard</a>.</p>
<p>- Pay yourself a salary and allow yourself a bit of luxury.</p>
<p>- Get a mentor.</p>
<p>- Do what you&#8217;re good at.</p>
<p><strong>Design &#038; Production: Scrum Bowling: Agile Production Methodology for Indie Teams and Student Projects</strong></p>
<p>Speaker: Margaret Moser</p>
<p>The speaker mentioned that they haven&#8217;t followed Scrum to the letter and have instead rolled their own &#8211; specifically rolling up sprint reviews, etc into a single mega-weekly-meeting. I think this is important since Scrum reviews are designed specifically to improve/tweak the Scrum process to better fit your company/team/project.</p>
<p>Some general notes I made&#8230;</p>
<p>- SMART tasks &#8211; specific, measurable, agreed upon, reasonable, tied to a specific time interval. Your tasks should meet these criteria.</p>
<p>- Estimate each team members availability each week since this changes depending on commitments.</p>
<p>- 81 attendees. 14% of attendees were familiar with Scrum. Some openly dislike it. I asked how many were managers vs dev &#8211; 13% were managers vs 37% devs. I was wondering if there was a correlation between who disliked Scrum and their role within a team.</p>
<p>Unfortunately we lost the speaker at this point. Mike Acton stepped in and chatted a bit about his own experiences with Scrum.</p>
<p>For my own part, I introduced SCRUM at work so I have some experience with this. Personally I think its a good development methodology. I think some people expect it to be a silver bullet, which it isn&#8217;t. It takes hard work and effort to get everyone engaged with the process. What it does though is give you better control/metrics for making educated responses to project progress and it increases accountability and engagement.</p>
<p><strong>Design &#038; Production: How to create a positive online game developer community</strong></p>
<p>Speaker: Ryan Arndt</p>
<p>This talk focusses on tips about maintaining and growing a community. I have to confess that I didn&#8217;t get quite as engaged with this talk because it just didn&#8217;t resonate with me. The talk itself was very well presented though and, if you already have a product with a semi-engaged community, it contained some useful tips.</p>
<p>Here are my fairly minimal notes&#8230;</p>
<p>- A community doest maintain itself</p>
<p>- Inclusion. Welcome people</p>
<p>- Engage with people on their platform of choice. Don&#8217;t expect them to move their communication to a single central place of your making.</p>
<p>- Arrange community news/events (<a href="http://www.igda.org/gamejobshashtag">http://www.igda.org/gamejobshashtag</a>)<br />
- Crowdsourced contests<br />
- Casual/light &#8211; community shouldn&#8217;t take itself too seriously.<br />
- Ask open ended questions<br />
- Share positive content (e.g. when game does well)</p>
<p>- 3 strike rule for banning.</p>
<p><strong>Programming: Control, Configure, Monitor and View your game engine from the web</strong></p>
<p>Speaker: John McCutchan</p>
<p>This talk was really interesting. So interesting in fact that I didn&#8217;t take quite as many notes as I would have liked. Moving tools and monitoring to the web is something that I&#8217;m really interested in. You probably know that I&#8217;m creating <a href="http://www.bytesizeadventures.com/blog/weekly-update-6-player-movement-level-exporting/">web based level editing tools</a> for my next game. Its great way to remove the constraints of traditional tools. The talk was really engaging and very clearly presented.</p>
<p>Here are my notes&#8230;</p>
<p>- Simple to create GUI&#8217;s</p>
<p>- Reduced interation time</p>
<p>- Don&#8217;t need to be physically near the tools</p>
<p>- Webgl caching, live performance monitoring, live editing, remote viewing.</p>
<p>- For remote viewing, achieving 30FPS at &#8220;good enough&#8221; quality &#8211; 2MB/Sec though so too much bandwidth remotely, ok locally.</p>
<p>- Web based means easy to update, approachable, easy to demonstrate game changes, browsers getting faster every year</p>
<p>- Why web socket? New web app protocol, TCP connection with tiny overhead, message based, bandwidth reduction.</p>
<p>- Why JSON for data? key->value, easy to parse, text based.</p>
<p>- Interface &#8211; JS generates all HTML dynamically.</p>
<p>- How?<br />
- 1: API for engine tools<br />
- 2: expose API as JSON over web socket<br />
- 3: build engine tools as web App</p>
<p>- Thinking of porting to <a href="http://www.dartlang.org/">Dart</a> due to JS limitations.</p>
<p>- <a href="http://www.johnmccutchan.com/">www.johnmccutchan.com</a></p>
<p><object width="425" height="350"><param name="movie" value="sVHEWB_H_wU"></param><param name="wmode" value="transparent" ></param><embed src="http://www.youtube.com/v/sVHEWB_H_wU" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></p>
<p><strong>Programming: Understanding the second generation of behaviour tress and preparing for challenges beyond</strong></p>
<p>Speaker: Alex Champandard</p>
<p>This talk was all about behaviour trees. The talk focussed predominantly on code based examples, reviewing 1st gen vs 2nd gen trees. It was certainly interesting although I&#8217;m not sure when I&#8217;ll have the opportunity to employ something like this &#8211; unless its just for fun of course :)</p>
<p>Here are my notes&#8230;</p>
<p>- 4 prototypes shown &#8211; 2 first gen, 2 second gen.</p>
<p>- They&#8217;ll be open sourced later in the year on github. For now check out <a href="http://aigamedev.com/">http://aigamedev.com/</a></p>
<p>- Motivation &#8211; behaviour trees are everywhere (halo, spore, red dead, etc). Used in AI, squad logic, animation etc.</p>
<p>- 1st gen vs 2nd gen &#8211; behaviour trees changing fast. having to due to complexity of games and expectations.</p>
<p>- MoveToCover (action), hasAmmo? (condition) &#8211; both behaviours</p>
<p>- trees are comprised of sequences (fixed lists of statements) and selectors (conditional branching). A sequence happens in order &#8211; failure breaks it. A selector tries all children &#8211; individually report success.</p>
<p>- More selectors at top of tree and sequences later in tree.</p>
<p>- That is simplest form &#8211; each NPC needs a new tree (memory issues).</p>
<p>- Nodes and tasks.</p>
<p>- 2nd generation. Specialised interpreter for processing behavior trees (rather than relying on pure C++)</p>
<p>- Shown 2 examples, Data oriented behaviour tree and Event driven behavior tree</p>
<p><strong>Design &#038; Production: Effective PR, Marketing, and Community Management in the Indie games space</strong></p>
<p>Speaker: Erik Johnson</p>
<p>This was a really interesting talk. Most of what was highlighted wasn&#8217;t particularly revolutionary but it was helpful having it brought together and hammered home (with examples). I particularly liked the focus on engaging with the community and leveraging word of mouth (your community become you game evangelists).</p>
<p>Here are my notes&#8230;</p>
<p>- Respect customers. bad example of this: <a href="http://www.penny-arcade.com/resources/just-wow1.html">http://www.penny-arcade.com/resources/just-wow1.html</a></p>
<p>- Dont be defnsive and dont take things personally.</p>
<p>- Let customers know someone is on other end of line.</p>
<p>- Members may become evangelists for your company.</p>
<p>- Website, blog, forum &#8211; should do this as minimum. As long as you maintain them otherwise dont expect them to be active.</p>
<p>- twitter, youtube, facebook, google+, indiedb, reddit, n4g, etc.</p>
<p>- Be open with development</p>
<p>- Consider public alphas, betas &#8211; <a href="http://www.wolfire.com/">http://www.wolfire.com/</a></p>
<p>- Be creative/human &#8211; find out what community is into.</p>
<p>- Exposure &#8211; podcasts, lets play videos, local media etc</p>
<p>- Let peers know about your game to help spread the word</p>
<p>- Research where to reach your potential audience (niches etc)</p>
<p>- Dealing with press &#8211; be unasuming, frank, generous (screenshots, interview, keys etc)</p>
<p>- Organic marketing &#8211; open development, word of mouth</p>
<p>- Malleable marketing throughout dev process &#8211; go with opportunities, change marketing plans to fit, trial and error, know whats appealing about your game (especially what others perceive as appealing &#8211; highlight these in your marketing screenshots etc), trust your instincts.</p>
<p>- Take risks, get creative. Bundles, etc</p>
<p>- Tie it into the game content &#8211; e.g total crates collected tied into content releases.</p>
<p>- Know when to shut up. Leave people wanting more. Understand balance. Keep a few aces up your sleeve &#8211; leave stuff for people to discover.</p>
<p>- Consider price point &#8211; no permanent price drops in first 6 months</p>
<p>- Consider platforms, promotions</p>
<p>- Exhibiting (show game off), kickstarter</p>
<p><strong>Programming: Games Tools as a WebApp: Lessons from Insomniac&#8217;s Next-Gen Tools and Engine</strong></p>
<p>Speaker: Mike Acton</p>
<p>Along with the web monitoring tools, this was the talk I was most looking forward to (because its so relevant to my current game). It certainly didn&#8217;t disappoint and was interesting throughout. I picked up some interesting tech to look into that I hadn&#8217;t considered and it also confirmed my choices in some cases. I would have liked to have seen more of the tool demoed but you can&#8217;t have everything right :)</p>
<p>Here are my notes&#8230;</p>
<p><object width="425" height="350"><param name="movie" value="i_iTzYoAPXY"></param><param name="wmode" value="transparent" ></param><embed src="http://www.youtube.com/v/i_iTzYoAPXY" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></p>
<p>- Picked single browser to avoid browser cross compat issues (Chrome)</p>
<p>- 3D window is custom plugin</p>
<p>- Tools are html and javascript</p>
<p>- Forward thinking. seemed to be where future lies. expectations of new developers.</p>
<p>- Forces data division. Avoids hacks.</p>
<p>- UI dev costs are lower (JS and HTML)</p>
<p>- Opens development up to programmers outside of traditional engine/tools team</p>
<p>- Not a mature platform yet so difficulties exist not present in traditional tools dev.</p>
<p>- Challenges part and parcel of game dev. learn as we go. better to do it now.</p>
<p>- Web server on each client machine (<a href="http://mongoosejs.com/">Mongoose</a>) with asset db (<a href="http://www.mongodb.org/">MongoDB</a>), asset files (backups stored on disk), source files (referenced), file tracker (tracking changes), build manager (managing build process), comms via REST, UI (html5, css3, js), scene editor (native plugin), scripts. Also shared server (logging, help/videos,feedback system,asset comments).</p>
<p>- Had considered flash (years ago) scaleform. Also used to have a standard stack apache/mysql but installation etc too time consuming.</p>
<p>- Asset updating was on-demand, now immediate</p>
<p>- Scene editor (native plugin) &#8211; will run any native application (security fine because its internal)</p>
<p>- jQuery used but building custom controls (rather than prebuilt components such as from jQuery-UI).</p>
<p>- Difficult Q&#8217;s &#8211; File naming, auto-saving disconcerting (switched to manual) </p>
<p>- Installer was difficult as was fighting some of the built-in browser security (xss)</p>
<p>- Undo/Redo was difficult</p>
<p>- Had to build in ability to bring down/up individual system components</p>
<p>- Had to add login to track who was using tools</p>
<p><strong>Conclusion</strong></p>
<p>Overall the conference has been excellent. Very well organised and, despite some technical hitches, things ran very smoothly. I was expecting much more latency and technical issues that simply didn&#8217;t happen. Its a credit to the organisers and all of the speakers.</p>
<p>You should definitely make room in your diary for this event next year. Its fun, free, and a great opportunity to learn something new.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizeadventures.com/blog/altdevconf-2012-my-experience/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weekly Update #6 – Player Movement &amp; Level Exporting</title>
		<link>http://www.bytesizeadventures.com/blog/weekly-update-6-player-movement-level-exporting/</link>
		<comments>http://www.bytesizeadventures.com/blog/weekly-update-6-player-movement-level-exporting/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 12:36:26 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development Diary]]></category>
		<category><![CDATA[PPRPG]]></category>
		<category><![CDATA[weekly update]]></category>

		<guid isPermaLink="false">http://www.bytesizeadventures.com/blog/?p=2880</guid>
		<description><![CDATA[Its been a huge week in terms of progress. Here&#8217;s a quick list&#8230; - Reworked the tile queue system - Added a temporary GUI &#8211; Please ignore the appearance, its nowhere near final. - Added player - Added player movement/pathfinding - Added the timer - Added very early experience point mechanics - Progressed the web [...]]]></description>
			<content:encoded><![CDATA[<p>Its been a huge week in terms of progress. Here&#8217;s a quick list&#8230;</p>
<p>- Reworked the tile queue system<br />
- Added a temporary GUI &#8211; Please ignore the appearance, its nowhere near final.<br />
- Added player<br />
- Added player movement/pathfinding<br />
- Added the timer<br />
- Added very early experience point mechanics<br />
- Progressed the web based level editing tools (Level DB saving and plist export)</p>
<p>Lets take a look at a couple of the more interesting items from that list.<span id="more-2880"></span> First up, the player movement. You don&#8217;t have direct control over the main character. Instead, he will follow the path that you have laid down. The level is based upon a straightforward grid so pathfinding is fairly simple to implement (I have a tile class with edge attributes to determine which edges are open). Your character won&#8217;t begin moving until the timer reaches zero, at this point he&#8217;ll slowly begin to move along the path. Its your job, during the timer and after, to ensure that your character can reach the destination.</p>
<p>(As an aside, the character you see below is a placeholder. I have an aesthetic in mind and some fun RPG tropes to go along with it :)</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/02/Screen-Shot-2012-02-12-at-12.24.42.png"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/02/Screen-Shot-2012-02-12-at-12.24.42.png" alt="" title="PPRPG early GUI" width="396" height="744" class="aligncenter size-full wp-image-2886" /></a></p>
<p>Experience point and levelling mechanics are something I want to discuss in greater detail soon. For now I think its enough to say that you&#8217;ll gain experience points by laying tiles (only awarded upon successfully reaching the exit) and this will allow you to level your character, receiving appropriate perks/rewards.</p>
<p>Finally, the web based level editing tools are taking shape. Whilst they barely look any different on the surface, beneath the hood I now have a level database. This represents the pool of levels that make up the game. I can save to this and, soon, load from it and modify the items. I&#8217;ve also created an export that generates a single plist from all of the level data. My game engine already parses this to generate the level. I&#8217;m hoping to access this plist remotely (during development) to give me a near-realitme level editing facility.</p>
<p><a href="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/02/Screen-Shot-2012-02-12-at-12.21.54-e1329049672430.png"><img src="http://www.bytesizeadventures.com/blog/wp-content/uploads/2012/02/Screen-Shot-2012-02-12-at-12.21.54-e1329049672430.png" alt="" title="PPRPG Level Editor Progress" width="700" height="382" class="aligncenter size-full wp-image-2885" /></a></p>
<p>Next week I&#8217;m going to continue to flesh out the level editing tool and work on an over world map (for now this will just be a list of levels, for speed. I have grander plans for the finished game). I&#8217;m also itching to move onto the quest system so I may dabble in that too.</p>
<p>More soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bytesizeadventures.com/blog/weekly-update-6-player-movement-level-exporting/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

