{"id":1280,"date":"2015-03-02T00:04:48","date_gmt":"2015-03-02T00:04:48","guid":{"rendered":"http:\/\/phoenixgamedevelopment.com\/blog\/?p=1280"},"modified":"2015-03-02T00:06:02","modified_gmt":"2015-03-02T00:06:02","slug":"p156-phoenix-engine-update-11-navigation-object-loading-and-rendering","status":"publish","type":"post","link":"https:\/\/phoenixgamedevelopment.com\/blog\/p156-phoenix-engine-update-11-navigation-object-loading-and-rendering\/","title":{"rendered":"P156: Phoenix Engine Update 11: Navigation, Object loading and rendering"},"content":{"rendered":"<p>I also spent time this week working on the games world builder. I want to incorporate procedural content into the game, and so I need to come up with a system that can render .OBJ models according to an algorithm.<\/p>\n<p>I need players to be able to navigate around the world, selecting and interacting with objects. I also need to have collision detection between these objects and the player. I have not implemented any projectiles or AI characters yet.<\/p>\n<p>My idea is to create structures as separate pieces, so each wall would be a separate piece, the floor and roof would be separate, etc etc. I can then build larger, more complex structures from these small building blocks using procedural algorithms.<\/p>\n<p>I have created a series of data structures designed to store these objects. The most complex part of it so far is making sure that the doors between rooms match up. A door from one room, for example, must lead to another room, it cannot be blocked by a random object placed in front of it. I have solved this by storing the position and orientation of every object, and making sure that objects with gaps for doors match up with a corroborating object with the opposite facing. This isn&#8217;t done yet, but it looks to be working well so far.<\/p>\n<p>I have also implemented a system which allows the player to unlock and open doors, and to prevent the player from passing through a door until it has been unlocked.<\/p>\n<p>I will also have to look into procedural texturing soon, I have seen some good brick and stone textures that should work well.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I also spent time this week working on the games world builder. I want to incorporate procedural content into the game, and so I need to come up with a system that can render .OBJ models according to an algorithm. I need players to be able to navigate around the world, selecting and interacting with [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,16],"tags":[],"class_list":["post-1280","post","type-post","status-publish","format-standard","hentry","category-software-and-games","category-software-engines","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"aioseo_notices":[],"builder_content":"","_links":{"self":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/1280"}],"collection":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/comments?post=1280"}],"version-history":[{"count":3,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/1280\/revisions"}],"predecessor-version":[{"id":1283,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/1280\/revisions\/1283"}],"wp:attachment":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/media?parent=1280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/categories?post=1280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/tags?post=1280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}