{"id":23,"date":"2018-01-30T20:27:27","date_gmt":"2018-01-30T20:27:27","guid":{"rendered":"http:\/\/www.chroniclesoftright.com\/blog\/?p=23"},"modified":"2018-01-30T20:27:27","modified_gmt":"2018-01-30T20:27:27","slug":"world-chunks","status":"publish","type":"post","link":"https:\/\/www.chroniclesoftright.com\/blog\/2018\/01\/30\/world-chunks\/","title":{"rendered":"World chunks"},"content":{"rendered":"<p>Lyridia has the potential to be a very big place.\u00a0 Of course, it may never get very big if I don&#8217;t actually create the assets to fill it up, but since I&#8217;m developing the world and the game iteratively I don&#8217;t don&#8217;t want to discover down the road that I&#8217;ve set my sights too low.\u00a0 I&#8217;m basing the world on square chunks of terrain.\u00a0 Each of these chunks is 500 meters x 500 meters.\u00a0 My intended &#8220;starting area&#8221; chunk is at (100, 100).\u00a0 Assuming this chunk is the center of the world, that makes the world 200 chunks x 200 chunks, or 100,000 m x 100,000 m.\u00a0 That&#8217;s 10,000,000,000 sq meters, or about 3,800 sq miles.\u00a0 That&#8217;s bigger than <a href=\"https:\/\/en.wikipedia.org\/wiki\/Delaware\" target=\"_blank\" rel=\"noopener\">Delaware<\/a>, but smaller than <a href=\"https:\/\/en.wikipedia.org\/wiki\/Connecticut\" target=\"_blank\" rel=\"noopener\">Connecticut<\/a>.\u00a0 So pretty big.<\/p>\n<p>Everything is being modeled in and exported from <a href=\"http:\/\/blender.org\" target=\"_blank\" rel=\"noopener\">Blender<\/a>.\u00a0 Since each chunk is 1\/4 of a square kilometer and a bunch of stuff will fit into such a large area, I won&#8217;t have a massive number of files to keep up with unless the game truly does get enormous.\u00a0 Having larger chunks also means it&#8217;s somewhat easier to keep the terrain lined up at the transitions between chunks.\u00a0 Why not just model each area as a separate huge Blender file?\u00a0 Performance and bandwidth.\u00a0 With (somewhat) smaller chunks I can load the area around the player dynamically and unload stuff that&#8217;s too far away to see.\u00a0 Hopefully this will mean the game will run more smoothly on less powerful hardware.\u00a0 It will also hopefully save on bandwidth.\u00a0 If the game only requests assets the player is relatively close to, the server(s) won&#8217;t be wasting resources serving up things for no reason.\u00a0 If the world assets were stored on a disk locally, who cares?\u00a0 It&#8217;s cheap and fast to load from a local disk, so if a game loads up a big fancy model that the player can&#8217;t even see it&#8217;s not that much wasted.\u00a0 But since there&#8217;s no local disk here, every asset that gets downloaded counts.<\/p>\n<p>I&#8217;m continuing to work on the &#8220;Penrith Forest&#8221; area.\u00a0 So far I have a farmhouse, some trees, some fencing, a wheelbarrow, some lamp posts, and a simple terrain.\u00a0 This is intended to be the area where all players start the game.\u00a0 I need a basic development schedule, mostly so I&#8217;ll have self-imposed deadlines to fail.\u00a0 Somehow life just isn&#8217;t the same if you&#8217;re not constantly failing yourself, so look forward to that soon.\u00a0 The schedule, that is, not &#8220;constantly failing yourself.&#8221;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lyridia has the potential to be a very big place.\u00a0 Of course, it may never get very big if I don&#8217;t actually create the assets to fill it up, but since I&#8217;m developing the world and the game iteratively I don&#8217;t don&#8217;t want to discover down the road that I&#8217;ve set my sights too low.\u00a0&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-23","post","type-post","status-publish","format-standard","hentry","category-planning-and-development"],"_links":{"self":[{"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/posts\/23","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/comments?post=23"}],"version-history":[{"count":1,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/posts\/23\/revisions"}],"predecessor-version":[{"id":24,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/posts\/23\/revisions\/24"}],"wp:attachment":[{"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/media?parent=23"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/categories?post=23"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/tags?post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}