{"assets":[{"original":"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2013\/05\/screenshot2-150x150.png","local":"\/data\/posts\/2013\/05\/ec55f1262c06590bc4e54f25de8eb862.png"}],"author_link":"author\/redwater\/","author_name":"wzl","cat":"LD #26","categories":["LD #26"],"comments":[],"epoch":1367601840,"event":"LD26","likes":3,"metadata":{"p_key":"79328","p_author":"wzl","p_authorkey":"0","p_urlkey":"288338","p_title":"TunnelVision \u2013 Post Mortem\u2026wait, who died?!","p_cat":"LD #26","p_event":"LD26","p_time":"1367601840","p_likes":"3","p_comments":"0","p_status":"WAYBACK","us_key":null,"us_name":null,"us_username":null,"event_start":"1366934400","event_key":"16","event_name":"LD26"},"source_url":"2013\/05\/03\/tunnelvision-post-mortem-wait-who-died\/","text":"<h1 style=\"text-align: center\"><\/h1>\n<p style=\"text-align: center\"><span style=\"font-size: 2em\">\u00a0<strong>The Summary<\/strong><\/span><\/p>\n<p>I totally had fun this LD! Even the painful aftermath helped a lot with figuring stuff out. I was at long last able to upgrade to glsl 1.5, fix my shader setup, get more familiar with matrices again (even if i\u2019ll forget it all by next week) and was able to deliver <a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-26\/?action=preview&amp;uid=5751\">a solid entry<\/a>, that\u2019s actually gamy, unless most of my previous entries.<\/p>\n<p>\u00a0<\/p>\n<p><iframe allowfullscreen=\"\" frameborder=\"0\" height=\"375\" src=\"http:\/\/www.youtube.com\/embed\/eI3Gr1MQMW8?feature=oembed\" width=\"500\"><\/iframe><\/p>\n<p>\u00a0<\/p>\n<h2 style=\"text-align: center\">The Theme<\/h2>\n<p>Like every other LD i need a good half day to get over the theme. I keep complaining on IRC, to my housemates, to basically everyone that dares trying to talk to me within the first couple hours of saturday. I don\u2019t try to intenionally violate it, but i usually end up doing something that only remotely could be considered themed. This time around it was technically quite challenging to set up, but the gameplay atleast mechanics are simple:<\/p>\n<p>Get Gems, don\u2019t run into things, get to goal.<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<h2 style=\"text-align: center\">Day 1: The Work<\/h2>\n<p>After a bunch of coffee and ranting i fired up the IDE and started working on TunnelVision, not actually being determined on pulling it through. I made the ring model, imported it and have it arranged along a spline. I realized that this solution is not at all sufficient because rotating the rings along the spline direction is a task i didn\u2019t want to bother with. I remembered that you can construct a rotation matrix out of forward, right and up vectors, so i use an array of those to make up a track, where each node has a definite position and orientation i can further work with.<\/p>\n<p>Applying a constant rotation along the forward axis, and a translation along its up and right vectors allowed for some interesting level design components to create segments that don\u2019t look dynamic and not too uniform, like a rotation of 12 degrees every ring in distance 2; although it is nice to have that kind of control. \u00a0Basic ship and camera mechanics were added aswell, but in even cruder forms than it is in the entry. Also i started implementing phong shading only realizing later that there will a be whole lot more problems arising.<\/p>\n<style type=\"text\/css\">\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n<div class=\"gallery galleryid-255444 gallery-columns-3 gallery-size-thumbnail\" id=\"gallery-1\"><dl class=\"gallery-item\">\n<dt class=\"gallery-icon landscape\">\n<a href=\"http:\/\/ludumdare.com\/compo\/2013\/05\/03\/tunnelvision-post-mortem-wait-who-died\/screenshot2-154\/\"><img alt=\"Textured rings along a spline\" class=\"attachment-thumbnail\" height=\"150\" src=\"\/data\/posts\/2013\/05\/ec55f1262c06590bc4e54f25de8eb862.png\" width=\"150\"\/><\/a>\n<\/dt>\n<dd class=\"wp-caption-text gallery-caption\">\n\t\t\t\tTextured rings along a spline\n\t\t\t\t<\/dd><\/dl><dl class=\"gallery-item\">\n<dt class=\"gallery-icon landscape\">\n<a href=\"http:\/\/ludumdare.com\/compo\/2013\/05\/03\/tunnelvision-post-mortem-wait-who-died\/screenshot24-2\/\"><img alt=\"Random orientation and scale changes. The path looks nicely dynamic but the rings arent aligned towards eachother\" class=\"attachment-thumbnail\" height=\"150\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2013\/05\/screenshot24-150x150.png\" width=\"150\"\/><\/a>\n<\/dt>\n<dd class=\"wp-caption-text gallery-caption\">\n\t\t\t\tRandom orientation and scale changes. The path looks nicely dynamic but the rings arent aligned towards eachother\n\t\t\t\t<\/dd><\/dl><dl class=\"gallery-item\">\n<dt class=\"gallery-icon landscape\">\n<a href=\"http:\/\/ludumdare.com\/compo\/2013\/05\/03\/tunnelvision-post-mortem-wait-who-died\/screenshot26-2\/\"><img alt=\"Chaotic Cubes\" class=\"attachment-thumbnail\" height=\"150\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2013\/05\/screenshot26-150x150.png\" width=\"150\"\/><\/a>\n<\/dt>\n<dd class=\"wp-caption-text gallery-caption\">\n\t\t\t\tChaotic Cubes\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\"\/><dl class=\"gallery-item\">\n<dt class=\"gallery-icon landscape\">\n<a href=\"http:\/\/ludumdare.com\/compo\/2013\/05\/03\/tunnelvision-post-mortem-wait-who-died\/screenshot36\/\"><img alt=\"Curvy\" class=\"attachment-thumbnail\" height=\"150\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2013\/05\/screenshot36-150x150.png\" width=\"150\"\/><\/a>\n<\/dt>\n<dd class=\"wp-caption-text gallery-caption\">\n\t\t\t\tCurvy \n\t\t\t\t<\/dd><\/dl><dl class=\"gallery-item\">\n<dt class=\"gallery-icon landscape\">\n<a href=\"http:\/\/ludumdare.com\/compo\/2013\/05\/03\/tunnelvision-post-mortem-wait-who-died\/screenshot34-3\/\"><img alt=\"Paths\" class=\"attachment-thumbnail\" height=\"150\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2013\/05\/screenshot341-150x150.png\" width=\"150\"\/><\/a>\n<\/dt>\n<dd class=\"wp-caption-text gallery-caption\">\n\t\t\t\tPaths\n\t\t\t\t<\/dd><\/dl>\n<br style=\"clear: both\"\/>\n<\/div>\n<p>\u00a0<\/p>\n<h2 style=\"text-align: center\"><strong>Day 2: The Joy<\/strong><\/h2>\n<p>After implementing most of the basic mechanics in day 1 i could focus on building actual tracks and a add little more variety to them, get some polish done and get a smooth release. Glad that i decided as i did because i was just on time, so i thought. I realized a bug in the intersection code just after the submission hour started, i tried my best to get rid of it, but i wasn\u2019t able to figure out exactly what the problem was and i wanted to wrap it up, so i left it in.<\/p>\n<p>Another thing that is still bugging me are the ship controls and camera logic. I wasn\u2019t able to get the physics done in a way they behave like i intended them to, so i didn\u2019t bother with it for the time being. The camera logic is another beast. Just attaching the camera do the back of the ship looks very boring and undynamic, i wanted to have it follow the ship with a slight delay but that turned out more diffucult than i imaged. So for now it keeps following the path left behind by the ship in a certain distance. The result is not quite like what i had in mind, but it\u2019s close.<\/p>\n<p>Otherwise it was a smooth process; I planned to have enough time for everything so i didn\u2019t need to resolve to botching. Only thing i regret is that i weren\u2019t able to squeez in a second tune.<\/p>\n<div class=\"wp-caption alignnone\" id=\"attachment_255672\" style=\"width: 310px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/2013\/05\/03\/tunnelvision-post-mortem-wait-who-died\/screenshot27-3\/\" rel=\"attachment wp-att-255672\"><img alt=\"Spiral Power! ORE WO DARE DA TO OMOTTEYAGARU\" class=\"size-medium wp-image-255672 aligncenter\" height=\"187\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/05\/screenshot27-300x187.png\" width=\"300\"\/><\/a><p class=\"wp-caption-text\">Spiral Power! ORE WO DARE DA TO OMOTTEYAGARU<\/p><\/div>\n<p>\u00a0<\/p>\n<h2 style=\"text-align: center\">Day 3-6: The Pain<\/h2>\n<p>Only the day after submitting is when the actual work started. \u201cError\u201d, \u201cNot working\u201d and \u201cCrash on startup\u201d are only a few of the messages you can read in my comment thread. Again. AGAIN. ATI oh why you just do not care when compiling shaders. At first shaders weren\u2019t able to compile on nvidia systems at all because i called functions that aren\u2019t available in the shader-version i specified (Thanks for realizing ATI). Then, after upgrading to #version 150 nvidia complained about attribute\/varying keywords being obsolete (Thanks for mentioning ATI).<\/p>\n<p>After fixing that the game started to run, but the normals were totally wrecked. At this point i already got a lot of help by you guys, providing me with info in your reports and helping me to fix this, so let me say thank you: <strong>THANKS YOU!<\/strong> A \u00a0remote debug session with NeiloGD in a Hangout enabled us to figure out the culprit. I am at fault myself\u00a0for not realizing this one: I assigned the correct shader only after buffering the modeldata and assigning the attributes. Since the wrong shader was loaded at that point, the Normal-attribute was not active due to optimizations by the compiler. I can see how that is my fault, but damn, ATI, why you allow for such lax programming!<\/p>\n<p>\u00a0<\/p>\n<p><iframe allowfullscreen=\"\" frameborder=\"0\" height=\"375\" src=\"http:\/\/www.youtube.com\/embed\/xyB24QjU_JE?feature=oembed\" width=\"500\"><\/iframe><\/p>\n<p>\u00a0<\/p>\n<h2 style=\"text-align: center\">The Conclusion<\/h2>\n<p>All in all i\u2019m very happy with TunnelVision. It turned out mostly like i planned, and you guys seem to like it too <img alt=\":D\" class=\"wp-smiley\" src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/icon_biggrin.gif\"\/><\/p>\n<p>But yeah, i\u2019m sorry i forgot to add the option for inverting vertical controls. It will come soon =]<\/p>\n<p>Speaking of which: A post compo version is planned, and partly in production. If you want to be kept up-to-date on that you can <a href=\"https:\/\/twitter.com\/wzl_\">follow me<\/a> or visit <a href=\"http:\/\/wzl.vg\/\">my burrow<\/a>\u00a0[<a href=\"http:\/\/wzl.vg\/rss.xml\">RSS<\/a>].<\/p>\n<p>And if you haven\u2019t played it yet DO SO NOW!<\/p>\n<p style=\"text-align: center\">\u00a0[<a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-26\/?action=preview&amp;uid=5751\">PLAY<\/a>]<\/p>","time":"May 3rd, 2013 5:24 pm","title":"TunnelVision \u2013 Post Mortem\u2026wait, who died?!","title_was_empty":false}