{"id":5859,"date":"2017-09-17T12:42:11","date_gmt":"2017-09-17T11:42:11","guid":{"rendered":"http:\/\/phoenixgamedevelopment.com\/blog\/?p=5859"},"modified":"2017-09-17T12:42:11","modified_gmt":"2017-09-17T11:42:11","slug":"p0-ms4-part-241-infinite-universe-ftl-travel","status":"publish","type":"post","link":"https:\/\/phoenixgamedevelopment.com\/blog\/p0-ms4-part-241-infinite-universe-ftl-travel\/","title":{"rendered":"P0-MS4: Part 241: Infinite Universe, FTL Travel"},"content":{"rendered":"<p>I believe I have solved the issue with ship movement.<\/p>\n<p>I now have the ability to translate the entire world in the opposite direction to the ships movement vector, while keeping the ship itself stationary. This seems to work very well, and allows the ship to travel at very high speeds while the player is walking around inside.<\/p>\n<p>There are some issues with the system, mainly jitter caused by the speed of the objects moving, and some performance issues caused by the large numbers of translations that are being done.<\/p>\n<p>The jitter can be solved by forcing the player to travel slower while they are close to other objects, this will mean that the objects wont move as much each &#8220;tick&#8221;, so there should be less jitter. I could also look into adding some kind of interpolation.<\/p>\n<p>The performance issues may be trickier to fix. The ideal thing would be to use a separate thread, but Unity doesn&#8217;t support this. I am currently using a coroutine, which helps, but it isn&#8217;t ideal. I have read that unity 2017 may have some multi-threading capabilities, so I will postpone the optimisation until then. If no multi-threading is available, I will have to look into some other options.<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_5850\" aria-describedby=\"caption-attachment-5850\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-05_59_45-AM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-5850\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-05_59_45-AM-300x163.jpg\" alt=\"Unity 12\/09\/2017 , 05:59:45 AM Unity 5.6.0f3 Personal (64bit) - P0Main.unity - P0-MS3 - PC, Mac &amp; Linux Standalone \" width=\"300\" height=\"163\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-05_59_45-AM-300x163.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-05_59_45-AM-768x416.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-05_59_45-AM-1024x555.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-05_59_45-AM.jpg 1920w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-5850\" class=\"wp-caption-text\">Unity<br \/>12\/09\/2017 , 05:59:45 AM<br \/>Unity 5.6.0f3 Personal (64bit) &#8211; P0Main.unity &#8211; P0-MS3 &#8211; PC, Mac &amp; Linux Standalone<\/figcaption><\/figure>\n<figure id=\"attachment_5851\" aria-describedby=\"caption-attachment-5851\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_20-AM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-5851\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_20-AM-300x163.jpg\" alt=\"Unity 12\/09\/2017 , 06:04:20 AM Unity 5.6.0f3 Personal (64bit) - P0Main.unity - P0-MS3 - PC, Mac &amp; Linux Standalone \" width=\"300\" height=\"163\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_20-AM-300x163.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_20-AM-768x416.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_20-AM-1024x555.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_20-AM.jpg 1920w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-5851\" class=\"wp-caption-text\">Unity<br \/>12\/09\/2017 , 06:04:20 AM<br \/>Unity 5.6.0f3 Personal (64bit) &#8211; P0Main.unity &#8211; P0-MS3 &#8211; PC, Mac &amp; Linux Standalone<\/figcaption><\/figure>\n<figure id=\"attachment_5852\" aria-describedby=\"caption-attachment-5852\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_04-AM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-5852\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_04-AM-300x163.jpg\" alt=\"Unity 12\/09\/2017 , 06:04:04 AM Unity 5.6.0f3 Personal (64bit) - P0Main.unity - P0-MS3 - PC, Mac &amp; Linux Standalone \" width=\"300\" height=\"163\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_04-AM-300x163.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_04-AM-768x416.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_04-AM-1024x555.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-06_04_04-AM.jpg 1920w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-5852\" class=\"wp-caption-text\">Unity<br \/>12\/09\/2017 , 06:04:04 AM<br \/>Unity 5.6.0f3 Personal (64bit) &#8211; P0Main.unity &#8211; P0-MS3 &#8211; PC, Mac &amp; Linux Standalone<\/figcaption><\/figure>\n<figure id=\"attachment_5853\" aria-describedby=\"caption-attachment-5853\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-08_30_49-AM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-5853\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-08_30_49-AM-300x163.jpg\" alt=\"Unity 12\/09\/2017 , 08:30:49 AM Unity 5.6.0f3 Personal (64bit) - P0Main.unity - P0-MS3 - PC, Mac &amp; Linux Standalone* \" width=\"300\" height=\"163\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-08_30_49-AM-300x163.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-08_30_49-AM-768x416.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-08_30_49-AM-1024x555.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2017\/09\/PhoenixGameDevelopment-12_09_2017-08_30_49-AM.jpg 1920w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-5853\" class=\"wp-caption-text\">Unity<br \/>12\/09\/2017 , 08:30:49 AM<br \/>Unity 5.6.0f3 Personal (64bit) &#8211; P0Main.unity &#8211; P0-MS3 &#8211; PC, Mac &amp; Linux Standalone*<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I believe I have solved the issue with ship movement. I now have the ability to translate the entire world in the opposite direction to the ships movement vector, while keeping the ship itself stationary. This seems to work very well, and allows the ship to travel at very high speeds while the player is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,17,10,11],"tags":[],"class_list":["post-5859","post","type-post","status-publish","format-standard","hentry","category-astral-realms","category-p-0","category-software-and-games","category-spiritus-astrum","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\/5859"}],"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=5859"}],"version-history":[{"count":1,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/5859\/revisions"}],"predecessor-version":[{"id":5860,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/5859\/revisions\/5860"}],"wp:attachment":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/media?parent=5859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/categories?post=5859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/tags?post=5859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}