{"id":44,"date":"2014-04-20T08:23:23","date_gmt":"2014-04-20T08:23:23","guid":{"rendered":"http:\/\/procyonic.org\/blog\/?p=44"},"modified":"2014-04-20T19:29:58","modified_gmt":"2014-04-20T19:29:58","slug":"watch-as-i-liveblog-death-of-the-corpse-wizard-development","status":"publish","type":"post","link":"https:\/\/procyonic.org\/blog\/watch-as-i-liveblog-death-of-the-corpse-wizard-development\/","title":{"rendered":"Watch as I Liveblog &#8220;Death of the Corpse Wizard&#8221; development."},"content":{"rendered":"<p>I&#8217;ve always wanted to make videogames. I&#8217;ve been programming in one way or another for nearly half my life, so you&#8217;d think I would have created at least one so far, but usually my scope gets too big and I end grinding to a halt or getting distracted by something else. Today I&#8217;m trying something different. For the rest of the day I&#8217;ll be liveblogging, at this post, my development of a small game called `Death of the Corpse Wizard.` I&#8217;ll be using HTML5\/Canvas, Javascript, an Oryx Tileset I bought, and a game design I thought of in the shower yesterday. Here is the inaugural image:<\/p>\n<figure id=\"attachment_45\" aria-describedby=\"caption-attachment-45\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-45\" alt=\"Hello World\" src=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/01-300x180.png\" width=\"300\" height=\"180\" srcset=\"https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/01-300x180.png 300w, https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/01.png 678w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-45\" class=\"wp-caption-text\">Hello World<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><span style=\"line-height: 1.5;\">Very briefly the game intends to be an &#8220;Arena Roguelike&#8221;. \u00a0Your character sits in the center of the screen and enemies approach from all sides. \u00a0If an enemy bumps into you, you lose one vitality. \u00a0If you bump into an enemy you take one vitality from it (most monsters have only one vitality). \u00a0You may also choose, on your turn, to use a vitality to build or reinforce a wall, which costs one vitality. \u00a0 Monsters can attack walls and when the wall&#8217;s vitality is reduced to zero, it disappears. \u00a0The goal of the game is to survive as long as possible.\u00a0<\/span><\/p>\n<p>For now, those are the only rules.<\/p>\n<p>Watch this space for updates.<\/p>\n<h3>Update 11:30 am, Strasbourg Time<\/h3>\n<figure id=\"attachment_48\" aria-describedby=\"caption-attachment-48\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-48\" alt=\"Tile Sheet Support\" src=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/02-300x185.png\" width=\"300\" height=\"185\" srcset=\"https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/02-300x185.png 300w, https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/02.png 686w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-48\" class=\"wp-caption-text\">Tile Sheet Support<\/figcaption><\/figure>\n<p><span style=\"line-height: 1.5;\">I&#8217;ve finished support for Tile Sheets and loaded the Oryx sheet. \u00a0Named a few tiles. \u00a0<\/span><\/p>\n<p><span style=\"line-height: 1.5;\">I&#8217;m working on the visual aspects first because they provide pleasing feedback. \u00a0I will now start the game engine. \u00a0<\/span><\/p>\n<p><span style=\"line-height: 1.5;\">161 LOC so far, not counting libraries.<\/span><\/p>\n<h3>Update 12:53 pm, Strasbourg Time<\/h3>\n<figure id=\"attachment_50\" aria-describedby=\"caption-attachment-50\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/03.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-50\" alt=\"Tweening\" src=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/03-300x198.png\" width=\"300\" height=\"198\" srcset=\"https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/03-300x198.png 300w, https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/03.png 768w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-50\" class=\"wp-caption-text\">Tweening<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><span style=\"line-height: 1.5;\">I&#8217;ve added the entities and systems required for drawing the player, set up the user controls, and implemented Tweening so that the player sprite moves smoothly. \u00a0Since this is now &#8220;playable&#8221;, I also uploaded the game <a title=\"Corpse Wizard\" href=\"http:\/\/procyonic.org\/corpseWizard\" target=\"_blank\">here<\/a>, so you can play it. <\/span><\/p>\n<p>Some tidbits about the development process: I&#8217;m using <a title=\"Kran\" href=\"https:\/\/github.com\/paldepind\/Kran\" target=\"_blank\">Kran<\/a>, an awesome, lightweight entity-component system which deserves more attention. \u00a0It is the same system I used to generate my <a title=\"Clocks!\" href=\"http:\/\/procyonic.org\/clocks\" target=\"_blank\">clocks<\/a>.<\/p>\n<h3>3:30 pm, Strasbourg Time<\/h3>\n<figure id=\"attachment_53\" aria-describedby=\"caption-attachment-53\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-53\" alt=\"Timers, Spawners\" src=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/04-300x218.png\" width=\"300\" height=\"218\" srcset=\"https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/04-300x218.png 300w, https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/04.png 668w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-53\" class=\"wp-caption-text\">Timers, Spawners<\/figcaption><\/figure>\n<p>I have added turn-based timer logic, spawners, and the ability to create walls. \u00a0Plus an HUD that shows the player&#8217;s vitality.<\/p>\n<p>You can play the most recent version of the\u00a0game <a title=\"Corpse Wizard\" href=\"http:\/\/procyonic.org\/corpseWizard\" target=\"_blank\">here.<\/a><\/p>\n<h3>5:12 pm, Strasbourg Time<\/h3>\n<p>The game is now playable and you can even lose, sort of: monsters have AI and can attack you, you can kill them, and they can reduce your health to zero.<\/p>\n<figure id=\"attachment_55\" aria-describedby=\"caption-attachment-55\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/05.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-55\" alt=\"Monsters\" src=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/05-300x283.png\" width=\"300\" height=\"283\" srcset=\"https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/05-300x283.png 300w, https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/05.png 700w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-55\" class=\"wp-caption-text\">Monsters<\/figcaption><\/figure>\n<h3>6:04 pm, Strasbourg Time<\/h3>\n<figure id=\"attachment_57\" aria-describedby=\"caption-attachment-57\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-57\" alt=\"Death Screen\" src=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/06-300x283.png\" width=\"300\" height=\"283\" srcset=\"https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/06-300x283.png 300w, https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/06.png 683w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-57\" class=\"wp-caption-text\">Death Screen<\/figcaption><\/figure>\n<p>Added a death screen and death condition! \u00a0It will probably be the start screen too, at some point.<\/p>\n<p>&nbsp;<\/p>\n<h3>6:53 pm, Strasbourg Time<\/h3>\n<figure id=\"attachment_60\" aria-describedby=\"caption-attachment-60\" style=\"width: 245px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/07.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-60\" alt=\"Playable\" src=\"http:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/07-245x300.png\" width=\"245\" height=\"300\" srcset=\"https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/07-245x300.png 245w, https:\/\/procyonic.org\/blog\/wp-content\/uploads\/2014\/04\/07.png 673w\" sizes=\"auto, (max-width: 245px) 100vw, 245px\" \/><\/a><figcaption id=\"caption-attachment-60\" class=\"wp-caption-text\">Playable<\/figcaption><\/figure>\n<p><span style=\"line-height: 1.5;\">Death of the Corpse Wizard is now entirely playable: it has a goal, challenged, and failure conditions. \u00a0I&#8217;m going to declare my first ever single-day Game Jam a success!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve always wanted to make videogames. I&#8217;ve been programming in one way or another for nearly half my life, so you&#8217;d think I would have created at least one so far, but usually my scope gets [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[10,47,7],"tags":[12,11],"class_list":["post-44","post","type-post","status-publish","format-standard","hentry","category-development","category-programming","category-videogames","tag-game-development","tag-javascript"],"_links":{"self":[{"href":"https:\/\/procyonic.org\/blog\/wp-json\/wp\/v2\/posts\/44","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/procyonic.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/procyonic.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/procyonic.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/procyonic.org\/blog\/wp-json\/wp\/v2\/comments?post=44"}],"version-history":[{"count":10,"href":"https:\/\/procyonic.org\/blog\/wp-json\/wp\/v2\/posts\/44\/revisions"}],"predecessor-version":[{"id":61,"href":"https:\/\/procyonic.org\/blog\/wp-json\/wp\/v2\/posts\/44\/revisions\/61"}],"wp:attachment":[{"href":"https:\/\/procyonic.org\/blog\/wp-json\/wp\/v2\/media?parent=44"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/procyonic.org\/blog\/wp-json\/wp\/v2\/categories?post=44"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/procyonic.org\/blog\/wp-json\/wp\/v2\/tags?post=44"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}