{"id":4565,"date":"2010-10-06T16:17:51","date_gmt":"2010-10-06T08:17:51","guid":{"rendered":"http:\/\/nick.onetwenty.org\/?p=4565"},"modified":"2010-10-06T16:17:51","modified_gmt":"2010-10-06T08:17:51","slug":"dungeons-dragons-development","status":"publish","type":"post","link":"https:\/\/nick.onetwenty.org\/index.php\/2010\/10\/06\/dungeons-dragons-development\/","title":{"rendered":"Dungeons &#038; Dragons &#038; development"},"content":{"rendered":"<p>September went by so fast that I missed the deadline for the <a href=\"http:\/\/experimentalgameplay.com\/\">Experimental Gameplay Project<\/a>&#8216;s &#8220;<a href=\"http:\/\/experimentalgameplay.com\/blog\/2010\/09\/neverending-roundup\/\">Neverending Theme<\/a>&#8220;. No matter, I&#8217;ve been busy with other things&#8230; sometimes involving these:<\/p>\n<p><img data-attachment-id=\"4583\" data-permalink=\"https:\/\/nick.onetwenty.org\/index.php\/2010\/10\/06\/dungeons-dragons-development\/dice\/\" data-orig-file=\"https:\/\/i0.wp.com\/nick.onetwenty.org\/wp-content\/uploads\/2010\/10\/dice.jpg?fit=480%2C360&amp;ssl=1\" data-orig-size=\"480,360\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPod touch&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1286037074&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.85&quot;,&quot;iso&quot;:&quot;100&quot;,&quot;shutter_speed&quot;:&quot;0.016666666666667&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"dice\" data-image-description=\"\" data-medium-file=\"https:\/\/i0.wp.com\/nick.onetwenty.org\/wp-content\/uploads\/2010\/10\/dice.jpg?fit=300%2C225&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/nick.onetwenty.org\/wp-content\/uploads\/2010\/10\/dice.jpg?fit=480%2C360&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/nick.onetwenty.org\/wp-content\/uploads\/2010\/10\/dice.jpg?resize=480%2C360\" alt=\"\" title=\"dice\" width=\"480\" height=\"360\" class=\"aligncenter size-full wp-image-4583\" srcset=\"https:\/\/i0.wp.com\/nick.onetwenty.org\/wp-content\/uploads\/2010\/10\/dice.jpg?w=480&amp;ssl=1 480w, https:\/\/i0.wp.com\/nick.onetwenty.org\/wp-content\/uploads\/2010\/10\/dice.jpg?w=300&amp;ssl=1 300w\" sizes=\"(max-width: 480px) 85vw, 480px\" data-recalc-dims=\"1\" \/><\/p>\n<p><a href=\"http:\/\/james.onetwenty.org\/\">Jim<\/a> has been bitten by the <a href=\"http:\/\/www.wizards.com\/DnD\/\">Dungeon &#038; Dragons<\/a> bug since attending the <a href=\"http:\/\/www.wizards.com\/DnD\/Event.aspx?x=dnd\/4new\/event\/gameday\">Worldwide D&#038;D Game Day<\/a> early in September. His fascination with D&#038;D appears to have started via <a href=\"http:\/\/www.penny-arcade.com\/\">Penny Arcade<\/a>&#8216;s involvement in the <a href=\"http:\/\/www.wizards.com\/dnd\/podcasts.aspx\">D&#038;D podcast<\/a>, and was further cemented after watching the <a href=\"http:\/\/www.adultswim.com\/shows\/robot-chicken\/index.html\">Robot Chicken<\/a> writers play <a href=\"http:\/\/www.youtube.com\/user\/BartCarroll\">D&#038;D on YouTube<\/a>:<\/p>\n<p><object width=\"480\" height=\"295\"><param name=\"movie\" value=\"http:\/\/www.youtube.com\/v\/RiW56B79ZNI?fs=1&amp;hl=en_US\"><\/param><param name=\"allowFullScreen\" value=\"true\"><\/param><param name=\"allowscriptaccess\" value=\"always\"><\/param><\/object><\/p>\n<p>Jim has since been <a href=\"http:\/\/en.wikipedia.org\/wiki\/Dungeon_Master\">Dungeon Master<\/a> for a few short game sessions at his apartment, and I&#8217;ve been playing a character called &#8220;Gakk: The Face-stabber&#8221;. It&#8217;s been interesting to see how the game has changed since I last played it in primary school. It feels more like a board-and-card game&#8230; but maybe that&#8217;s just because I never played it properly before.<\/p>\n<p>The character sheets are fairly intimidating for newcomers. They feel onerous to interpret and update (&#8220;Um&#8230; are these values cumulative?&#8221;), and somewhat volatile (subject to being misplaced or damaged). Maybe it&#8217;s just because we&#8217;re not used to them, but they seem a little convoluted.<\/p>\n<p>Which brings me on to &#8220;development&#8221;. I&#8217;ve been trying to <a href=\"http:\/\/en.wikipedia.org\/wiki\/Grok\">grok<\/a> web development from the ground up. There are a lot of <a href=\"http:\/\/www.djangoproject.com\/\">new<\/a> <a href=\"http:\/\/rubyonrails.org\/\">technologies<\/a> that make things easier for seasoned web developers, but I have little practical appreciation for the models they follow or the problems they solve.<\/p>\n<p>I decided to try to learn web development foundations by using just the most basic (and widely used) software: <a href=\"http:\/\/www.apache.org\/\">Apache<\/a>, <a href=\"http:\/\/www.mysql.com\/\">MySQL<\/a>, and <a href=\"http:\/\/www.php.net\/\">PHP<\/a>&#8230; with a little <a href=\"http:\/\/www.w3schools.com\/css\/\">CSS<\/a> and <a href=\"http:\/\/en.wikipedia.org\/wiki\/JavaScript\">JavaScript<\/a> thrown in for good measure. I&#8217;m using <a href=\"http:\/\/subversion.tigris.org\/\">Subversion<\/a> for version control and a simple <a href=\"http:\/\/en.wikipedia.org\/wiki\/Bash_%28Unix_shell%29\">Bash<\/a> script that invokes <a href=\"http:\/\/www.samba.org\/rsync\/\">rsync<\/a> for deployment.<\/p>\n<p>Creating web-based D&#038;D character sheets seemed like a good project to undertake. They may make D&#038;D more enjoyable, and we could learn more about web development. I got a copy of <a href=\"http:\/\/oreilly.com\/catalog\/9780596157142\">Learning PHP, MySQL, and Javascript<\/a> and set to work on modifying some examples to suit our requirements.<\/p>\n<p>My first problem was setting up a development environment under Windows. I usually develop on my desktop computer (which runs <a href=\"http:\/\/www.ubuntu.com\/\">Ubuntu<\/a> 10.04 and I use a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Virtual_machine\">virtual machine<\/a> as a <a href=\"http:\/\/en.wikipedia.org\/wiki\/LAMP_%28software_bundle%29\">LAMP<\/a> server), but I would be working on my Windows laptop over at Jim&#8217;s place.<\/p>\n<p>I went with software that I had used before and added some recommendations from the book. This meant installing <a href=\"http:\/\/tortoisesvn.tigris.org\/\">TortoiseSVN<\/a>, <a href=\"http:\/\/www.cygwin.com\/\">Cygwin<\/a> (with rsync and <a href=\"http:\/\/en.wikipedia.org\/wiki\/SSH\">SSH<\/a> for <a href=\"http:\/\/www.csse.uwa.edu.au\/~ryan\/tech\/ssh-no-password.html\">key-based authentication<\/a> when uploading to the live server), and <a href=\"http:\/\/www.easyphp.org\/\">EasyPHP<\/a> to provide a <a href=\"http:\/\/en.wikipedia.org\/wiki\/WAMP\">WAMP<\/a> stack.<\/p>\n<p>After a couple of programming sessions, we had a basic website where users could sign-up, login, create a profile, and create characters. Jim has more database experience than me, so he directed the database design. It seems pretty lightweight because character sheets are formulaic and a lot of the data is fixed.<\/p>\n<p>I figured that it would be nice to have a <a href=\"http:\/\/www.apple.com\/webapps\/\">web app<\/a> version for <a href=\"http:\/\/www.apple.com\/iphone\/\">iPhone<\/a>, so I bought an <a href=\"http:\/\/www.apple.com\/ipodtouch\/\">iPod Touch 4<\/a> (8GB) for $268 at <a href=\"http:\/\/www.bigw.com.au\/\">BigW<\/a>. I haven&#8217;t really been interested in iOS devices before, but the new <a href=\"http:\/\/appadvice.com\/appnn\/2010\/06\/fast-app-switching-multitasking\/\">(pseudo) multi-tasking<\/a> features and high-resolution &#8220;<a href=\"http:\/\/www.apple.com\/iphone\/features\/retina-display.html\">Retina display<\/a>&#8221; address what I considered two of the devices&#8217; biggest shortcomings.<\/p>\n<p>It&#8217;s clear that Apple have put a lot of thought into product and software design for their iOS range. The iPod Touch 4 is responsive and intuitive, and tailored web-pages look fantastic and load quickly. This made me even more keen to develop a mobile version of the site, and also to get an <a href=\"http:\/\/www.android.com\/\">Android<\/a> device in the not-too-distant future.<\/p>\n<p>Unfortunately, the battery life on these sorts of devices is abysmal. So I may be sticking to a feature phone for a while longer (such as the <a href=\"http:\/\/www.nokia.com.au\/find-products\/all-phones\/nokia-c1\">Nokia C1<\/a> which boasts a whopping <a href=\"http:\/\/www.techdigest.tv\/2010\/06\/nokia_c1_mobile.html\">6 week battery<\/a>).<\/p>\n<p>Anyhow, James is still <a href=\"http:\/\/twitter.com\/jamesonetwenty\/status\/26371633807\">looking for more D&#038;D players<\/a>. So let him know if you are keen and you may be able to also help us test our web-based character sheets. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>September went by so fast that I missed the deadline for the Experimental Gameplay Project&#8216;s &#8220;Neverending Theme&#8220;. No matter, I&#8217;ve been busy with other things&#8230; sometimes involving these: Jim has been bitten by the Dungeon &#038; Dragons bug since attending the Worldwide D&#038;D Game Day early in September. His fascination with D&#038;D appears to have &hellip; <a href=\"https:\/\/nick.onetwenty.org\/index.php\/2010\/10\/06\/dungeons-dragons-development\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Dungeons &#038; Dragons &#038; development&#8221;<\/span><\/a><\/p>\n","protected":false},"author":67,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[1],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paLsRH-1bD","_links":{"self":[{"href":"https:\/\/nick.onetwenty.org\/index.php\/wp-json\/wp\/v2\/posts\/4565"}],"collection":[{"href":"https:\/\/nick.onetwenty.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nick.onetwenty.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nick.onetwenty.org\/index.php\/wp-json\/wp\/v2\/users\/67"}],"replies":[{"embeddable":true,"href":"https:\/\/nick.onetwenty.org\/index.php\/wp-json\/wp\/v2\/comments?post=4565"}],"version-history":[{"count":26,"href":"https:\/\/nick.onetwenty.org\/index.php\/wp-json\/wp\/v2\/posts\/4565\/revisions"}],"predecessor-version":[{"id":4592,"href":"https:\/\/nick.onetwenty.org\/index.php\/wp-json\/wp\/v2\/posts\/4565\/revisions\/4592"}],"wp:attachment":[{"href":"https:\/\/nick.onetwenty.org\/index.php\/wp-json\/wp\/v2\/media?parent=4565"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nick.onetwenty.org\/index.php\/wp-json\/wp\/v2\/categories?post=4565"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nick.onetwenty.org\/index.php\/wp-json\/wp\/v2\/tags?post=4565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}