{"id":138,"date":"2013-04-25T12:44:57","date_gmt":"2013-04-25T12:44:57","guid":{"rendered":"https:\/\/shmup-dev.com\/?p=138"},"modified":"2013-04-25T12:46:38","modified_gmt":"2013-04-25T12:46:38","slug":"unity-shmup-development-lecture","status":"publish","type":"post","link":"https:\/\/shmup-dev.com\/?p=138","title":{"rendered":"Unity shmup development lecture."},"content":{"rendered":"<p>I recently gave a lecture on shmup development with Unity as part of a course at RMIT University.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" alt=\"\" src=\"https:\/\/shmup-dev.com\/files\/lecture_preview.jpg\" width=\"736\" height=\"550\" \/><\/p>\n<p>You can download the lecture slides and example project.<\/p>\n<p><a href=\"https:\/\/shmup-dev.com\/files\/experience_design_shmups_lecture.pdf\">Lecture slides<\/a> [PDF]<br \/>\n<a href=\"https:\/\/shmup-dev.com\/files\/unity_shmup_template.zip\">Unity shmup template<\/a> [ZIP &#8211; Unity 3.5.3 project]<\/p>\n<p>The example project is a template for Unity shmup development &#8211; it contains just a player, an enemy and a scrolling background, however it implements many of the optimizations needed to get a shmup to run properly, such as:<\/p>\n<ul>\n<li>Bullet pooling<\/li>\n<li>Collision optimization<\/li>\n<li>Precise controls<\/li>\n<li>Transform caching<\/li>\n<\/ul>\n<p>It&#8217;s written in Javascript, and is thoroughly documented with inline comments. The code is intended to be understandable to novice programmers.<\/p>\n<p><a href=\"https:\/\/shmup-dev.com\/forum\/viewtopic.php?f=6&amp;t=347\">Forum discussion here.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I recently gave a lecture on shmup development with Unity as part of a course at RMIT University. You can download the lecture slides and example project. Lecture slides [PDF] Unity shmup template [ZIP &#8211; Unity 3.5.3 project] The example project is a template for Unity shmup development &#8211; it contains just a player, an [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,8],"tags":[],"class_list":["post-138","post","type-post","status-publish","format-standard","hentry","category-forum-highlights","category-unity"],"_links":{"self":[{"href":"https:\/\/shmup-dev.com\/index.php?rest_route=\/wp\/v2\/posts\/138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shmup-dev.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shmup-dev.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shmup-dev.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shmup-dev.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=138"}],"version-history":[{"count":2,"href":"https:\/\/shmup-dev.com\/index.php?rest_route=\/wp\/v2\/posts\/138\/revisions"}],"predecessor-version":[{"id":140,"href":"https:\/\/shmup-dev.com\/index.php?rest_route=\/wp\/v2\/posts\/138\/revisions\/140"}],"wp:attachment":[{"href":"https:\/\/shmup-dev.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shmup-dev.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shmup-dev.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}