{"id":667,"date":"2005-09-07T02:33:53","date_gmt":"2005-09-07T06:33:53","guid":{"rendered":"http:\/\/www.rakkar.org\/blog\/?p=19"},"modified":"2005-09-07T02:33:53","modified_gmt":"2005-09-07T06:33:53","slug":"gdd-feature-implementation-spec-normal-mapping","status":"publish","type":"post","link":"https:\/\/rakkar.org\/blog\/index.php\/2005\/09\/07\/gdd-feature-implementation-spec-normal-mapping\/","title":{"rendered":"GDD, feature implementation spec, normal mapping"},"content":{"rendered":"<p>\t\t\t\tI wrote out a 26 page game design doc yesterday.  Although I&#8217;m practically the only one reading it it helped a lot because it turns a loose collection of ideas into something cohesive and developed.  I was able to resolve several design problems by doing it.  A nice effect of writing it is I was able to put down every creative idea I had without regard to implementation details.  When I think of stuff I usually also consider how well it fits into existing code, which limits my creativity.<\/p>\n<p>The game design doc also helps because knowing what features I&#8217;m going to have, I&#8217;m able to write a list of exact features I need to implement.  This means I can do specific implementations rather than loose and vague concepts where I&#8217;m not sure what I need.  It makes things MUCH easier without really losing flexibility since I still program flexible interfaces where it will have obvious use.<\/p>\n<p>My first pass at the programming feature list was almost pointlessly high level and glossed over all the potential problems.  So halfway through I stopped and went over again, forcing myself to think of where I would actually begin coding.  That made a tremendous positive difference.  Doing this, I am solving difficult programming problems in minutes in my head as compared to hours of refactoring code.  Additionally, I think of unforseen features and find better ways to implement them than I would have otherwise.  One example is that I was originally going to write a physics editor out of context.  Various editors that needed physics would load a predefined physics file.  Upon review, I found that without context it would have very limited use and that furthermore I need the same editor for both the ship design, weapon design, and base design screens.  Making that change substantiallly changes how I was going to design all of these elements and I wouldn&#8217;t have done it if I had already started coding.<\/p>\n<p>Lastly, here&#8217;s my first render of a ship using normal mapping.<\/p>\n<p><img src=\"http:\/\/www.rakkar.org\/blog\/images\/normalmapping.jpg\" alt=\"Normal mapped ship\" \/>\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I wrote out a 26 page game design doc yesterday. Although I&#8217;m practically the only one reading it it helped a lot because it turns a loose collection of ideas into something cohesive and developed. I was able to resolve several design problems by doing it. A nice effect of writing it is I was [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/rakkar.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/667"}],"collection":[{"href":"https:\/\/rakkar.org\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rakkar.org\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rakkar.org\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rakkar.org\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=667"}],"version-history":[{"count":0,"href":"https:\/\/rakkar.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/667\/revisions"}],"wp:attachment":[{"href":"https:\/\/rakkar.org\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rakkar.org\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rakkar.org\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}