{"id":189,"date":"2016-09-11T15:18:53","date_gmt":"2016-09-11T15:18:53","guid":{"rendered":"http:\/\/blog.qubekwest.com\/?p=189"},"modified":"2016-09-11T15:19:15","modified_gmt":"2016-09-11T15:19:15","slug":"still-plugging-away","status":"publish","type":"post","link":"https:\/\/blog.qubekwest.com\/?p=189","title":{"rendered":"Still Plugging Away"},"content":{"rendered":"<p>It&#8217;s been a while since I&#8217;ve talked about what I&#8217;ve been working on. \u00a0Mostly the reason was that I felt it would get a bit repetitive. \u00a0Development has definitely been plowing along (something like 2500 more lines of code have been added to the project since the last update) but the actual &#8220;things&#8221; I&#8217;ve been working on are from the same list.<\/p>\n<ul>\n<li>I&#8217;m still trying to &#8220;get something on the screen.&#8221;<\/li>\n<li>I&#8217;m still trying to &#8220;make a texture atlas.&#8221;<\/li>\n<li>I&#8217;m still &#8220;messing with serialization.&#8221;<\/li>\n<\/ul>\n<p>Mostly it&#8217;s been a lot of serialization lately. \u00a0There are really two types of serialized objects in QubeKwest. \u00a0The first is the type that is a fixed size. \u00a0These are things like Blocks that always take the same amount of data. \u00a0That makes them easy to deal with on pretty much every level when serializing them. \u00a0They simply have the data they have and it&#8217;s always in the same place.<\/p>\n<p>The other type is variable sized. \u00a0Most of the structures in the game are actually this type. \u00a0For example, even though a Cluster always holds the same number of Chunks and should therefore theoretically be a fixed size, the Chunks themselves can actually be one of three types, each with their own fixed size. \u00a0That means that a Cluster can actually be anywhere from just over 2 KB all the way up to about 33.5 MB. \u00a0That&#8217;s obviously pretty variable.<\/p>\n<p>The reason for my dive back into serialization was actually the difficulties involved with serialization and deserialization of variable sized objects that contain a variable number of variable sized objects. \u00a0(Which is unfortunately exactly what a TextureAtlas is.) \u00a0That led me to create a deserialization factory system. \u00a0Which\u00a0in turn led me to making a bunch of tests for the deserialization factory, because you just have to know it&#8217;s going to work correctly. \u00a0Which in turn led me to the realization that I had a bunch of objects that had the methods needed to be serializable, but that didn&#8217;t do anything.<\/p>\n<p>If you&#8217;ve read my previous posts, this probably sounds like rehashing things about texture atlases, checklists of things that need finishing, or solving problems that led to other problems. \u00a0Naturally, I&#8217;ve been buried in the coding of all the missing serialization functions instead of progressing toward fun goals. \u00a0I figure I&#8217;ll have enough code in this project for it to either become self aware or get something on the screen, what I&#8217;m not sure of is which one will happen first.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s been a while since I&#8217;ve talked about what I&#8217;ve been working on. \u00a0Mostly the reason was that I felt it would get a bit repetitive. \u00a0Development has definitely been plowing along (something like 2500 more lines of code have been added to the project since the last update) but the actual &#8220;things&#8221; I&#8217;ve been &hellip; <a href=\"https:\/\/blog.qubekwest.com\/?p=189\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Still Plugging Away<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-189","post","type-post","status-publish","format-standard","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/blog.qubekwest.com\/index.php?rest_route=\/wp\/v2\/posts\/189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.qubekwest.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.qubekwest.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.qubekwest.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.qubekwest.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=189"}],"version-history":[{"count":4,"href":"https:\/\/blog.qubekwest.com\/index.php?rest_route=\/wp\/v2\/posts\/189\/revisions"}],"predecessor-version":[{"id":193,"href":"https:\/\/blog.qubekwest.com\/index.php?rest_route=\/wp\/v2\/posts\/189\/revisions\/193"}],"wp:attachment":[{"href":"https:\/\/blog.qubekwest.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.qubekwest.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.qubekwest.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}