{"id":17,"date":"2024-02-08T21:50:01","date_gmt":"2024-02-08T21:50:01","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/?p=17"},"modified":"2024-02-08T21:50:01","modified_gmt":"2024-02-08T21:50:01","slug":"new-tech","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/2024\/02\/08\/new-tech\/","title":{"rendered":"New Tech"},"content":{"rendered":"\n<p>My group is creating a breakout clone in Unity and training a neural network to play the game using software called ML-Agents.  This is my first time using Unity and it&#8217;s been a blast!  It really feels like a playground.  I can only imagine how difficult programming a physics engine and then linking that with graphics is, but with unity it&#8217;s all abstracted away to the point that you can assign physics to sprites or models you&#8217;ve created in a graphical user interface.  Luckily I took cs 450 last semester which has helped me tremendously in understanding the graphics sprites we&#8217;ve created, the use of the cameras for rendering our scene, 3d space, 2d and 3d vectors, and just generally interacting with software that partially abstracts code to a GUI.  Although data structures and algorithms are very interesting to me, its been incredibly fun to use coding and software to create something more tangible with Unity and C#.  <\/p>\n\n\n\n<p>In my opinion one thing that could be changed to improve Unity is the sort of double actions you sometimes have to take in your code and the GUI.  For instance, when I need to link a script or gameObject to another script, I declare a variable in the script but then have to go into the GUI and physically drag the script icon into a slot that appears in the script or gameObject component, otherwise a null reference error is produced.  I think a better solution is to handle the pathing in code even if that means having to specify a more complicated path.  This may be possible, but as far as I can tell what I described is a common accepted approach.<\/p>\n\n\n\n<p>Our project uses AI directly in the form of a neural network.  We use the ML-Agents API to train a neural network.  It&#8217;s been a very interesting process.  When you work with ML-Agents you don&#8217;t work directly with the ML algorithms,  you essentially set observations in C# scripts and tweak &#8220;hyper parameters&#8221; until you get the desired result.  This is a sometimes frustrating process that sometimes seems to be more of an art than a science, but ultimately leads you to think perhaps more deeply about the problem than you might otherwise.  <\/p>\n","protected":false},"excerpt":{"rendered":"<p>My group is creating a breakout clone in Unity and training a neural network to play the game using software called ML-Agents. This is my first time using Unity and it&#8217;s been a blast! It really feels like a playground. I can only imagine how difficult programming a physics engine and then linking that with [&hellip;]<\/p>\n","protected":false},"author":14075,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-17","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/wp-json\/wp\/v2\/posts\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/wp-json\/wp\/v2\/users\/14075"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":1,"href":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/wp-json\/wp\/v2\/posts\/17\/revisions"}],"predecessor-version":[{"id":18,"href":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/wp-json\/wp\/v2\/posts\/17\/revisions\/18"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/wp-json\/wp\/v2\/media?parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/wp-json\/wp\/v2\/categories?post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/wheelihz467\/wp-json\/wp\/v2\/tags?post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}