{"id":55,"date":"2014-04-12T21:21:09","date_gmt":"2014-04-13T01:21:09","guid":{"rendered":"https:\/\/dorcgames.com\/blog\/?p=55"},"modified":"2014-04-12T22:59:40","modified_gmt":"2014-04-13T02:59:40","slug":"introducing-hussar","status":"publish","type":"post","link":"https:\/\/dorcgames.com\/blog\/?p=55","title":{"rendered":"Introducing HUSSAR"},"content":{"rendered":"<p><a href=\"https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR-Logo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-58\" alt=\"HUSSAR Logo\" src=\"https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR-Logo.png\" width=\"442\" height=\"442\" srcset=\"https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR-Logo.png 442w, https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR-Logo-150x150.png 150w, https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR-Logo-300x300.png 300w\" sizes=\"auto, (max-width: 442px) 100vw, 442px\" \/><\/a><\/p>\n<p>A little over a year and a half ago, I started work on a project that I thought would be relatively trivial:\u00a0 build a plugin for Unity that will help people develop games for old systems.\u00a0 Where this endeavor took me was surprising, as it turned into a full suite of tools that would allow someone to take an idea, prototype it, simulate it with the restrictions of the actual hardware, and then export functional assembly language for the Sega Master System, NES, Genesis, SNES, or PC-Engine.\u00a0 Introducing&#8230;<strong>HUSSAR<\/strong>!<\/p>\n<p><!--more--><\/p>\n<ul>\n<li><strong><span style=\"text-decoration: underline;\">H<\/span>olistic<\/strong> &#8211; Encompasses all of the components of the target hardware, from video display to sound chip to memory restrictions.<\/li>\n<li><strong><span style=\"text-decoration: underline;\">U<\/span>nified<\/strong> &#8211; All management is handled within the friendly WYSIWYG interface of Unity with consistent metaphors, not spread over a bunch of special little tools.<\/li>\n<li><span style=\"text-decoration: underline;\"><strong>S<\/strong><\/span><strong>imulator<\/strong> &#8211; Simulate&#8211;<em>not<\/em> emulate!&#8211;the restrictions, quirks, and functionality of the hardware to allow the user to test and prove out their work out before moving forward.<\/li>\n<li><strong><span style=\"text-decoration: underline;\">S<\/span>ome<\/strong> &#8211; It&#8217;s not going to do <em>everything<\/em> for you&#8230;<\/li>\n<li><span style=\"text-decoration: underline;\"><strong>A<\/strong><\/span><strong>ssembly<\/strong> &#8211; While it will export assemble-able source, the user still needs to provide their own optimized routines.\u00a0 This means the format needs to be flexible and amenable to their needs.<\/li>\n<li><span style=\"text-decoration: underline;\"><strong>R<\/strong><\/span><strong>equired<\/strong> &#8211; Well, yeah.<\/li>\n<\/ul>\n<div id=\"attachment_54\" style=\"width: 510px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR1_CROP-e1397348011364.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-54\" class=\"size-large wp-image-54\" alt=\"An early WIP of the Tile Archive.  Metatiles--here using the term &quot;Lego&quot;--are built up of multiple tiles, each with meta parameters such as horizontal or vertical flip.  Simply drag and drop from your list of tiles into the metatile slot.\" src=\"https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR1_CROP-1024x505.png\" width=\"500\" height=\"246\" \/><\/a><p id=\"caption-attachment-54\" class=\"wp-caption-text\">An early WIP shot. Metatiles&#8211;here using the term &#8220;Lego&#8221;&#8211;are built up of multiple tiles, and allow tweaks such as horizontal or vertical flip. Simply drag and drop from your list of tiles into the metatile slot.<\/p><\/div>\n<p>The goals of the product are as follows:<\/p>\n<ul>\n<li>Works in &#8220;vanilla&#8221; Unity, without any required plugins such as 2D Toolkit or the like.<\/li>\n<li>Press &#8220;Play&#8221; to simulate it in the editor.\u00a0 You can even share your game as a PC\/Mac\/Web executable!<\/li>\n<li>Prototype in C# to find the fun <em>early<\/em> instead of banging your head against the wall in 6502 assembly.<\/li>\n<li>Simple to use and understand, sharing the metaphors and user interface that Unity already affords.<\/li>\n<li>Use familiar tools for best results.\u00a0 You know what&#8217;s a good pixel editor?\u00a0 Photoshop or Paint Shop Pro.\u00a0 You know what isn&#8217;t?\u00a0 Some crude tool I tried to stuff into Unity.<\/li>\n<li>Offers hooks for users to customize the routines and output to their needs.\u00a0 Want to customize your output for WLA-DX instead of TASM?\u00a0 The data structures are there for you and the system is built for your plugin!<\/li>\n<li>Extensible for future platforms (I&#8217;m looking at you, Neo Geo!).<\/li>\n<\/ul>\n<div id=\"attachment_61\" style=\"width: 873px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR2.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-61\" class=\"size-full wp-image-61\" alt=\"Create custom definitions of colors for optimal palette distribution.  Eliminate the tedium of manually managing color.\" src=\"https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR2.png\" width=\"863\" height=\"629\" srcset=\"https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR2.png 863w, https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR2-300x218.png 300w, https:\/\/dorcgames.com\/blog\/wp-content\/uploads\/2014\/04\/HUSSAR2-800x583.png 800w\" sizes=\"auto, (max-width: 863px) 100vw, 863px\" \/><\/a><p id=\"caption-attachment-61\" class=\"wp-caption-text\">Create custom definitions of colors for optimal palette distribution. Eliminate the tedium of manually managing color.<\/p><\/div>\n<p>Already the work has led me into some interesting and unexpected areas, and I&#8217;ll be using this space to go in-depth on them.\u00a0 Not only have I become more fluent with the editor side of Unity, but I&#8217;ve had to delve into areas of computer science that I had never touched before:\u00a0 I&#8217;ll talk about how the &#8220;flag problem&#8221; led me into graph theory, or how user-defined rules turned into optimized bin packing and hill climbing.<\/p>\n<p>I&#8217;m hoping that I can use this blog as a method to push forward with the toolset, and I hope to be able to engage in meaningful dialogue with the retro homebrew community!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A little over a year and a half ago, I started work on a project that I thought would be relatively trivial:\u00a0 build a plugin for Unity that will help people develop games for old systems.\u00a0 Where this endeavor took &hellip; <a href=\"https:\/\/dorcgames.com\/blog\/?p=55\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[7],"tags":[],"class_list":["post-55","post","type-post","status-publish","format-standard","hentry","category-hussar"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/dorcgames.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/55","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dorcgames.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dorcgames.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dorcgames.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dorcgames.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=55"}],"version-history":[{"count":10,"href":"https:\/\/dorcgames.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/55\/revisions"}],"predecessor-version":[{"id":68,"href":"https:\/\/dorcgames.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/55\/revisions\/68"}],"wp:attachment":[{"href":"https:\/\/dorcgames.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=55"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dorcgames.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=55"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dorcgames.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=55"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}