{"id":1492,"date":"2014-12-09T18:15:34","date_gmt":"2014-12-09T18:15:34","guid":{"rendered":"http:\/\/astoryisnotatree.net\/?p=1492"},"modified":"2020-04-22T21:35:20","modified_gmt":"2020-04-22T21:35:20","slug":"streamer-hiderseeker-group-game","status":"publish","type":"post","link":"https:\/\/astoryisnotatree.net\/?p=1492","title":{"rendered":"Games from Nothing: Group Game #2 \u2014 Streamer"},"content":{"rendered":"<p>When I first started Streamer, I made 2 related observations about the base code.<\/p>\n<ol>\n<li>It\u00a0was (at first) difficult to grasp, and therefore would\u00a0be difficult to\u00a0change.<\/li>\n<li>It\u00a0was also interesting on its own, meaning it needn&#8217;t be changed too much to provide an interesting application.<\/li>\n<\/ol>\n<p>From those ideas, I thought about what I could do to make the application my own without heavily modifying the seeker code itself. \u00a0The two ideas that presented themselves (and stuck) were changes in graphical representation, and the idea of scrolling or otherwise moving all of the objects along some path.<\/p>\n<p>The graphical representation quickly became a grid, both out of love for old, 8-bit graphics and out of my new infatuation with pixellation in general. \u00a0The only question remaining on that front was how big the rectangles should be&#8230; but that question was answered later. \u00a0For the time being I kept my program flexible.<\/p>\n<p><a href=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/3x3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-1498\" src=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/og-300x200.png\" alt=\"og\" width=\"502\" height=\"334\" srcset=\"https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/og-300x200.png 300w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/og-1024x682.png 1024w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/og-624x416.png 624w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/og.png 1074w\" sizes=\"auto, (max-width: 502px) 100vw, 502px\" \/>\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-1495\" src=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/3x3-300x199.png\" alt=\"3x3\" width=\"502\" height=\"333\" srcset=\"https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/3x3-300x199.png 300w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/3x3-1024x680.png 1024w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/3x3-624x414.png 624w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/3x3.png 1072w\" sizes=\"auto, (max-width: 502px) 100vw, 502px\" \/><\/a> <a href=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/bigger1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-1499\" src=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/bigger1-300x199.png\" alt=\"bigger\" width=\"505\" height=\"335\" srcset=\"https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/bigger1-300x199.png 300w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/bigger1-1024x681.png 1024w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/bigger1-624x415.png 624w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/bigger1.png 1076w\" sizes=\"auto, (max-width: 505px) 100vw, 505px\" \/><\/a> <a href=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/biggest.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-1497\" src=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/biggest-300x199.png\" alt=\"biggest\" width=\"504\" height=\"334\" srcset=\"https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/biggest-300x199.png 300w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/biggest-624x415.png 624w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/a><\/p>\n<p>After this, it became a matter of what one might want to do in this new, grid-style area.<\/p>\n<p>Being able to &#8220;paint&#8221; squares was probably the first thing to come to mind:<a href=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_og.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-1501\" src=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_og-300x160.png\" alt=\"love_og\" width=\"503\" height=\"268\" srcset=\"https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_og-300x160.png 300w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_og-1024x548.png 1024w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_og-624x334.png 624w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_og.png 1272w\" sizes=\"auto, (max-width: 503px) 100vw, 503px\" \/><\/a><\/p>\n<p>Soon after that, the idea of randomly changing colors:<a href=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_ugly.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-1502\" src=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_ugly-300x160.png\" alt=\"love_ugly\" width=\"501\" height=\"267\" srcset=\"https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_ugly-300x160.png 300w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_ugly-1024x547.png 1024w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_ugly-624x333.png 624w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/love_ugly.png 1279w\" sizes=\"auto, (max-width: 501px) 100vw, 501px\" \/><\/a><\/p>\n<p>(While the above doesn&#8217;t look all that great, in general the effect seemed pretty cool.)<\/p>\n<p>A little more color play would eventually occur, but after messing around within the same basic application\u00a0for so long, I felt that the seeking mechanic needed to be changed at least slightly.<\/p>\n<p>This is where a few new features came in all at once. \u00a0First, the idea of scrolling was pretty natural, as the blocky and colorful graphics reminded me of old 2D shooters like Galaga. \u00a0I had a few types of scrolling to choose from, but the one implemented seemed the easiest. \u00a0With scrolling came a bug that colored the background with scrolling bars of color. \u00a0It ended up being a very cool thing, and after fixing the bug I immediately reimplemented the color bars as a feature.<\/p>\n<p><a href=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-1504\" src=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_2-300x160.png\" alt=\"line_2\" width=\"503\" height=\"268\" srcset=\"https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_2-300x160.png 300w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_2-1024x548.png 1024w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_2-624x334.png 624w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_2.png 1273w\" sizes=\"auto, (max-width: 503px) 100vw, 503px\" \/><\/a> <a href=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-1505\" src=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_3-300x160.png\" alt=\"line_3\" width=\"504\" height=\"269\" srcset=\"https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_3-300x160.png 300w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_3-1024x546.png 1024w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_3-624x333.png 624w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_3.png 1275w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/a> <a href=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-1506\" src=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_4-300x160.png\" alt=\"line_4\" width=\"506\" height=\"270\" srcset=\"https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_4-300x160.png 300w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_4-1024x548.png 1024w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_4-624x334.png 624w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_4.png 1274w\" sizes=\"auto, (max-width: 506px) 100vw, 506px\" \/><\/a> <a href=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-1507\" src=\"http:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_5-300x160.png\" alt=\"line_5\" width=\"504\" height=\"269\" srcset=\"https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_5-300x160.png 300w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_5-1024x546.png 1024w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_5-624x333.png 624w, https:\/\/astoryisnotatree.net\/wp-content\/uploads\/2014\/12\/line_5.png 1274w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/a><\/p>\n<p>Finally, I toyed around with various mechanics for spawning and killing semi-randomized seekers, and came up with the finished product.<\/p>\n<p>While in dire need of some sound, overall I&#8217;m proud of this project. \u00a0The\u00a0program was a great lesson on how minor tweaks and offshoots of ideas can lead to very cool applications.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When I first started Streamer, I made 2 related observations about the base code. It\u00a0was (at first) difficult to grasp, and therefore would\u00a0be difficult to\u00a0change. It\u00a0was also interesting on its own, meaning it needn&#8217;t be changed too much to provide&#8230;<\/p>\n","protected":false},"author":16,"featured_media":1495,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[87,36],"class_list":["post-1492","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-games-from-nothing","tag-group-game-2","tag-group-games","wpcat-5-id"],"_links":{"self":[{"href":"https:\/\/astoryisnotatree.net\/index.php?rest_route=\/wp\/v2\/posts\/1492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/astoryisnotatree.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/astoryisnotatree.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/astoryisnotatree.net\/index.php?rest_route=\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/astoryisnotatree.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1492"}],"version-history":[{"count":3,"href":"https:\/\/astoryisnotatree.net\/index.php?rest_route=\/wp\/v2\/posts\/1492\/revisions"}],"predecessor-version":[{"id":13813,"href":"https:\/\/astoryisnotatree.net\/index.php?rest_route=\/wp\/v2\/posts\/1492\/revisions\/13813"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/astoryisnotatree.net\/index.php?rest_route=\/wp\/v2\/media\/1495"}],"wp:attachment":[{"href":"https:\/\/astoryisnotatree.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/astoryisnotatree.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1492"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/astoryisnotatree.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}