<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Exploding Rabbit</title>
	<atom:link href="https://explodingrabbit.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://explodingrabbit.com</link>
	<description>Adventures in game development</description>
	<lastBuildDate>Wed, 24 Feb 2021 04:27:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.10</generator>

<image>
	<url>https://explodingrabbit.com/wp-content/uploads/2017/02/cropped-Favicon-32x32.png</url>
	<title>Exploding Rabbit</title>
	<link>https://explodingrabbit.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">58897149</site>	<item>
		<title>Exploding Rabbit Podcast #5 &#8211; Unity ECS and Data Oriented Design</title>
		<link>https://explodingrabbit.com/exploding-rabbit-podcast-5-unity-ecs-and-data-oriented-design-1441/</link>
					<comments>https://explodingrabbit.com/exploding-rabbit-podcast-5-unity-ecs-and-data-oriented-design-1441/#comments</comments>
		
		<dc:creator><![CDATA[Jay Pavlina]]></dc:creator>
		<pubDate>Fri, 04 Jan 2019 04:19:37 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Game Development]]></category>
		<guid isPermaLink="false">http://161.35.142.62/?p=1441</guid>

					<description><![CDATA[Jay and Matt take a deep dive into Unity’s upcoming ECS and why its data oriented design is important.]]></description>
										<content:encoded><![CDATA[
<iframe src="https://www.podbean.com/media/player/x23xf-a366e9?from=shortcode&amp;width=100%25&amp;height=100&amp;share=1&amp;fonts=Helvetica&amp;auto=0&amp;download=0&amp;skin=2&amp;resource=episode%3Dx23xf-a366e9&amp;domain=com&amp;btn-skin=109&amp;rtl=0" width="100%" height="100px" frameborder="0"></iframe>



<p>You can listen on <a href="https://itunes.apple.com/us/podcast/exploding-rabbit-podcast/id1366818173">iTunes</a>, &nbsp;<a href="https://play.google.com/music/m/Idfxo26nn2xr2ojr74ws2erhr2u?t=Exploding_Rabbit_Podcast">Google Play</a>, &nbsp;<a href="http://www.stitcher.com/s?fid=180284">Stitcher</a>, or at the <a href="https://explodingrabbit.podbean.com">podcast&#8217;s website</a>.</p>



<h3>Breakdown</h3>



<ul><li>2:06 &#8211; Personal experiences with mice and bats in the home</li><li>8:31 &#8211; Discord server</li><li>13:02 &#8211; Optimized code vs easy to use code</li><li>20:06 &#8211; Reactive vs Pure ECS</li><li>25:45 &#8211; Benefits of data oriented design and caching</li><li>32:13 &#8211; Unity job system</li><li>37:14 &#8211; C# managed memory and blittable types</li><li>42:54 &#8211; limitations you must follow when using Unity ECS and job system</li><li>50:51 &#8211; Jay&#8217;s tips for Unity ECS hybrid mode</li><li>55:51 &#8211; Matt&#8217;s thoughts on Super Smash Bros. Ultimate</li><li>1:04:22 &#8211; Jay&#8217;s thoughts on Marvel&#8217;s Spider-Man</li><li>1:13:47 &#8211; Matt recommends playing Total Chaos</li></ul>



<h3>Links</h3>



<ul><li><a href="https://youtu.be/fp1D45hhVEM">Unity video about caching</a>&nbsp;&#8211; great info about how caching works</li><li><a href="https://docs.microsoft.com/en-us/dotnet/framework/interop/blittable-and-non-blittable-types">Blittable types</a>&nbsp;&#8211; if you want to actually know what blittable types are</li><li><a href="https://waypoint.vice.com/en_us/article/zmdzve/one-designers-15-year-journey-to-ship-the-doom-mod-he-started-as-a-teen">Total Chaos</a>&nbsp;&#8211; indie game Matt recommends</li><li><a href="https://youtu.be/wsmEuHa1eL8">Game Maker&#8217;s Toolkit Skill Trees video&nbsp;</a>&#8211; referenced when talking about Spider-Man</li><li><a href="https://youtu.be/2tM3z20Gn_o">Spider-Man Animation Anaylysis&nbsp;</a>&#8211; another Spider-Man video we referenced</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://explodingrabbit.com/exploding-rabbit-podcast-5-unity-ecs-and-data-oriented-design-1441/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1441</post-id>	</item>
		<item>
		<title>Super Mario Bros. Crossover 4.0 Experimental Preview Released</title>
		<link>https://explodingrabbit.com/super-mario-bros-crossover-4-0-experimental-preview-released-1212/</link>
					<comments>https://explodingrabbit.com/super-mario-bros-crossover-4-0-experimental-preview-released-1212/#comments</comments>
		
		<dc:creator><![CDATA[Jay Pavlina]]></dc:creator>
		<pubDate>Wed, 21 Nov 2018 02:49:57 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Super Mario Bros. Crossover]]></category>
		<category><![CDATA[Video Games]]></category>
		<guid isPermaLink="false">http://161.35.142.62/?p=1212</guid>

					<description><![CDATA[A preview of Super Mario Crossover 4.0 is released for WebGL]]></description>
										<content:encoded><![CDATA[<p><em>Update: The port was canceled due to getting a demanding job.</em></p>
<p>I have good news! I still know how to make games and am not dead. Due to those two things (and also getting a lot of requests), I have been porting <em>Super Mario Bros. Crossover</em> to WebGL. <a href="/games/super-mario-bros-crossover/play/">You can play a preview here</a>.</p>
<p>If you would like to listen to an in-depth conversation about the new version, <a href="/exploding-rabbit-podcast-4-super-mario-crosses-over-to-webgl-1258/">check out the latest episode of our podcast</a>.</p>
<h3>Poor Glitchy Mario</h3>
<p>Please note that this is a very much not done game. It is so not done, that playing the game will make you sad because there are bugs everywhere and performance is not so good. The good news is work on it is going fast, and it will not be too long before it catches up to the flash version.</p>
<p>I have spent the last 5 years working on a general-use 2D platforming codebase and workflow that I could use on multiple projects. It took a while, but it&#8217;s finally ready to start using, and this is the first project I made with it. It&#8217;s built on top of Unity.</p>
<p>It will take much less time to add new content to the game due to the clean codebase and data-based asset workflow. This is a complete rewrite of the game. In fact, I may allow people to mod the game in the future by open-sourcing the data portion of the game. There is no promise or timeline on that, but it&#8217;s a goal I have in mind.</p>
<p><em>Super Mario Bros. Crossover</em> will be updated until it reaches general feature parity with the Flash version, but please note that not every feature will be ported to the WebGL version. There will also be additional features and characters added.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://explodingrabbit.com/super-mario-bros-crossover-4-0-experimental-preview-released-1212/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1212</post-id>	</item>
		<item>
		<title>Exploding Rabbit Podcast #4 &#8211; Super Mario Crosses Over to WebGL</title>
		<link>https://explodingrabbit.com/exploding-rabbit-podcast-4-super-mario-crosses-over-to-webgl-1258/</link>
					<comments>https://explodingrabbit.com/exploding-rabbit-podcast-4-super-mario-crosses-over-to-webgl-1258/#comments</comments>
		
		<dc:creator><![CDATA[Jay Pavlina]]></dc:creator>
		<pubDate>Wed, 21 Nov 2018 02:44:40 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Super Mario Bros. Crossover]]></category>
		<guid isPermaLink="false">http://161.35.142.62/?p=1258</guid>

					<description><![CDATA[We discuss experimental preview of Super Mario Crossover released for WebGL, and then Jay and Matt debate The Legend of Zelda: Breath of the Wild.]]></description>
										<content:encoded><![CDATA[<p><iframe src="https://www.podbean.com/media/player/z63ye-9f91f1?from=shortcode&amp;width=100%25&amp;height=100&amp;share=1&amp;fonts=Helvetica&amp;auto=0&amp;download=0&amp;skin=2&amp;resource=episode%3Dz63ye-9f91f1&amp;domain=com&amp;btn-skin=109&amp;rtl=0" width="100%" height="100px" frameborder="0"></iframe></p>
<p><em>Update: The port was canceled due to getting a demanding job.</em></p>
<p>We talk about the <a href="/games/super-mario-bros-crossover/play/">experimental preview</a> for <em>Super Mario Bros. Crossover </em>released for WebGL, and then Jay and Matt debate <em>The Legend of Zelda: Breath of the Wild</em>.</p>
<p>You can listen on <a href="https://itunes.apple.com/us/podcast/exploding-rabbit-podcast/id1366818173">iTunes</a>,  <a href="https://play.google.com/music/m/Idfxo26nn2xr2ojr74ws2erhr2u?t=Exploding_Rabbit_Podcast">Google Play</a>,  <a href="http://www.stitcher.com/s?fid=180284">Stitcher</a>, or at the <a href="https://explodingrabbit.podbean.com">podcast&#8217;s website</a>.</p>
<h3>Breakdown</h3>
<ul>
<li>2:55 &#8211; Super Mario Bros. Crossover 4.0</li>
<li>17:00 &#8211; Emulated music and Game Music Emu</li>
<li>22:55 &#8211; Why the flash version could not be salvaged</li>
<li>26:53 &#8211; Foundational code and the EcsRx framework</li>
<li>34:40 &#8211; Rebuilding the Exploding Rabbit Community</li>
<li>40:13 &#8211; What does this mean for Glitch Strikers?</li>
<li>43:35 &#8211; Debate about The Legend of Zelda: Breath of the Wild</li>
<li>1:05:15 &#8211; Jay&#8217;s experience with Ni no Kuni II: Revenant Kingdom</li>
<li>1:12:22 &#8211; Broaching the tense subject of politics and morality</li>
</ul>
<h3>Links</h3>
<ul>
<li><a href="https://github.com/EcsRx/ecsrx">EcsRx Framework</a>: A reactive take on the ECS pattern</li>
<li><a href="https://www.no-cartridge.net/">No Cartridge Podcast</a> &#8211; Podcast recommended by Matt</li>
<li><a href="https://www.patreon.com/explodingrabbit">Exploding Rabbit Patreon</a> &#8211; Support the show</li>
<li><a href="/games/super-mario-bros-crossover/play/">Play Super Mario Crossover 4.0</a> &#8211; Play the preview version we talk about</li>
<li><a href="https://mattkap.bandcamp.com/releases">Matt Kap Bandcamp</a> &#8211; Intro music</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://explodingrabbit.com/exploding-rabbit-podcast-4-super-mario-crosses-over-to-webgl-1258/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1258</post-id>	</item>
		<item>
		<title>Exploding Rabbit Podcast #3: The Crypto Plague</title>
		<link>https://explodingrabbit.com/exploding-rabbit-podcast-3-the-crypto-plague-1194/</link>
					<comments>https://explodingrabbit.com/exploding-rabbit-podcast-3-the-crypto-plague-1194/#respond</comments>
		
		<dc:creator><![CDATA[Jay Pavlina]]></dc:creator>
		<pubDate>Fri, 20 Jul 2018 00:07:13 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">http://161.35.142.62/?p=1194</guid>

					<description><![CDATA[Jay and Matt talk about technologies unrelated to games, like cryptocurrencies.]]></description>
										<content:encoded><![CDATA[<p><iframe src="https://www.podbean.com/media/player/t4ypf-956721?from=shortcode&amp;width=100%25&amp;height=100&amp;share=1&amp;fonts=Helvetica&amp;auto=0&amp;download=0&amp;skin=2&amp;resource=episode%3Dt4ypf-956721&amp;domain=com&amp;btn-skin=109&amp;rtl=0" width="100%" height="100px" frameborder="0"></iframe></p>
<p>In this completely different episode of the <strong>Exploding Rabbit Podcast</strong>, Jay and Matt talk about technologies unrelated to games, like cryptocurrencies. Game development will return next episode.</p>
<p>If you are worried about the job mentioned near the end of the podcast and how it affects Exploding  Rabbit, don&#8217;t be. I decided not to take it.</p>
<ul>
<li>0:01:01 &#8211; Matt&#8217;s Job</li>
<li>0:06:42 &#8211; Bike Accidents and Injuries</li>
<li>0:12:46 &#8211; Mac v. Windows</li>
<li>0:17:11 &#8211; Crypto-rabbit hole Part 1</li>
<li>0:22:06 &#8211; FPGA and Electronics Tangent</li>
<li>0:28:11 &#8211; Crypto-rabbit hole Part 2</li>
<li>1:05:01 &#8211; Jobs, work, and new opportunities</li>
<li>1:18:01 &#8211; Web technologies</li>
<li>1:26:35 &#8211; What We&#8217;ve Been Playing, Fortnite, Captain Toad&#8217;s Treasure Tracker, God of War</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://explodingrabbit.com/exploding-rabbit-podcast-3-the-crypto-plague-1194/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1194</post-id>	</item>
		<item>
		<title>Exploding Rabbit Podcast #2: The Exploding Rabbit Hole of Code Architecture</title>
		<link>https://explodingrabbit.com/exploding-rabbit-podcast-2-the-exploding-rabbit-hole-of-code-architecture-1186/</link>
					<comments>https://explodingrabbit.com/exploding-rabbit-podcast-2-the-exploding-rabbit-hole-of-code-architecture-1186/#comments</comments>
		
		<dc:creator><![CDATA[Jay Pavlina]]></dc:creator>
		<pubDate>Fri, 18 May 2018 09:42:45 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">http://161.35.142.62/?p=1186</guid>

					<description><![CDATA[Jay and Matt talk about code architecture, making levels in Super Mario Bros. Crossover, what they've been playing, and quantum computing.]]></description>
										<content:encoded><![CDATA[<p><iframe src="https://www.podbean.com/media/player/p85sn-911c54?from=shortcode&amp;width=100%25&amp;height=100&amp;share=1&amp;fonts=Helvetica&amp;auto=0&amp;download=0&amp;skin=2&amp;resource=episode%3Dp85sn-911c54&amp;domain=com&amp;btn-skin=109&amp;rtl=0" width="100%" height="100px" frameborder="0"></iframe></p>
<p>Jay and Matt dive into an Exploding Rabbit Hole full of code architecture. We also talk about making levels in Super Mario Bros. Crossover, what we&#8217;ve been playing, and quantum computing.</p>
<ul>
<li>2:28 &#8211; ECS Architecture (Entity Component Sytem)</li>
<li>11:00 &#8211; Thoughts on Unity and the Godot Engine</li>
<li>19:54 &#8211; Engine Agnostic Code Design with Entitas</li>
<li>26:07 &#8211; View abstraction</li>
<li>31:06 &#8211; How levels were made in Super Mario Bros. Crossover</li>
<li>41:31 &#8211; Matt&#8217;s been playing Super Meat Boy</li>
<li>44:56 &#8211; Jay&#8217;s been playing Assassin&#8217;s Creed Origins</li>
<li>54:24 &#8211; Interesting thing: Quantum Computing</li>
</ul>
<h4>References</h4>
<ul>
<li><a href="https://www.youtube.com/watch?v=aFFLEiDr3T0">Video Overview of Unity&#8217;s Upcoming ECS System and Burst Compiler</a></li>
<li><a href="http://gameprogrammingpatterns.com/">Game Programming Patterns Book</a></li>
<li><a href="https://github.com/sschmid/Entitas-CSharp/wiki/How-I-build-games-with-Entitas-%28FNGGames%29">FNGGames article about building games with Entitas</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://explodingrabbit.com/exploding-rabbit-podcast-2-the-exploding-rabbit-hole-of-code-architecture-1186/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1186</post-id>	</item>
		<item>
		<title>Exploding Rabbit Podcast: Episode 1 &#8211; The Early Days of Super Mario Bros. Crossover</title>
		<link>https://explodingrabbit.com/exploding-rabbit-podcast-episode-1-the-early-days-of-super-mario-bros-crossover-1168/</link>
					<comments>https://explodingrabbit.com/exploding-rabbit-podcast-episode-1-the-early-days-of-super-mario-bros-crossover-1168/#comments</comments>
		
		<dc:creator><![CDATA[Jay Pavlina]]></dc:creator>
		<pubDate>Tue, 03 Apr 2018 01:28:41 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Exploding Rabbit]]></category>
		<category><![CDATA[Super Mario Bros. Crossover]]></category>
		<guid isPermaLink="false">http://161.35.142.62/?p=1168</guid>

					<description><![CDATA[The first episode of the Exploding Rabbit Podcast features a look at the early days of developing Super Mario Bros. Crossover.]]></description>
										<content:encoded><![CDATA[<p><iframe src="https://www.podbean.com/media/player/avxsp-8e5f28?from=shortcode&amp;width=100%25&amp;height=100&amp;share=1&amp;fonts=Helvetica&amp;auto=0&amp;download=0&amp;skin=2&amp;resource=episode%3Davxsp-8e5f28&amp;domain=com&amp;btn-skin=109&amp;rtl=0" width="100%" height="100px" frameborder="0"></iframe></p>
<p>We started a monthly podcast for Exploding Rabbit. In each episode, we&#8217;ll be taking a deep dive on one topic related to Exploding Rabbit or gamedev, and then we will have a few smaller, supplementary topics like what games we&#8217;re playing, what I&#8217;ve been working on, and anything else we find interesting.</p>
<p>I&#8217;m co-hosting the podcast with my cousin, <a href="https://twitter.com/goo3r">Matt Gyure</a>,  a very smart/funny guy that knows his way around code and other technical parts of gamedev. Matt knew I was trying to figure out a good way to keep people informed about Exploding Rabbit and recommended doing the podcast with me, so you can thank him.</p>
<p>The focus of the first episode is how I started <a href="/games/super-mario-bros-crossover">Super Mario Bros. Crossover</a> and what it was like working on it in the early days. It was just meant to be a test episode, but it turned out so well that we decided to release it.</p>
<p>Matt and I are very excited about where this thing will go. We&#8217;re open to feedback so let us know what you&#8217;re interested in and what you&#8217;d like us to change.</p>
<p>You can listen on <a href="https://itunes.apple.com/us/podcast/exploding-rabbit-podcast/id1366818173">iTunes</a>,  <a href="https://play.google.com/music/m/Idfxo26nn2xr2ojr74ws2erhr2u?t=Exploding_Rabbit_Podcast">Google Play</a>,  <a href="http://www.stitcher.com/s?fid=180284">Stitcher</a>, or at the <a href="https://explodingrabbit.podbean.com">podcast&#8217;s website</a>. Be sure to subscribe so new episodes will be delivered directly to you.</p>
<p><em>The music in the episode is from the <a href="https://mattkap.bandcamp.com/releases">Castle in the Darkness Soundtrack</a>.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://explodingrabbit.com/exploding-rabbit-podcast-episode-1-the-early-days-of-super-mario-bros-crossover-1168/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1168</post-id>	</item>
		<item>
		<title>Exploding Devlog: Panels and Color Picker</title>
		<link>https://explodingrabbit.com/exploding-devlog-panels-and-color-picker-1125/</link>
					<comments>https://explodingrabbit.com/exploding-devlog-panels-and-color-picker-1125/#respond</comments>
		
		<dc:creator><![CDATA[Jay Pavlina]]></dc:creator>
		<pubDate>Tue, 30 Jan 2018 21:33:48 +0000</pubDate>
				<category><![CDATA[Development Log]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Exploding Editor]]></category>
		<category><![CDATA[ReactiveX]]></category>
		<guid isPermaLink="false">http://161.35.142.62/?p=1125</guid>

					<description><![CDATA[I've been working on a panel system and a color picker for Exploding Editor.]]></description>
										<content:encoded><![CDATA[<p>I decided to start writing in-depth posts for the devlog instead of doing tweets because I can add explanations to things. Also, the <a href="http://161.35.142.62/exploding-devlog-1-1073/">last devlog</a> was about what I had done before, but from now on, I&#8217;ll be writing about what I&#8217;m doing now.</p>
<h3>Clean up and Panels</h3>
<p>When I first started working on the <em>Exploding Editor</em>, it was just a personal tool, and I wanted it to get it working fast, so the code was not the best it could be. After I decided to release this to the public, I decided to go back and clean things up to save myself time and headaches in the future. While doing that, I also decided to make a major design change to the editor. Compare the two images below:</p>
<p><a href="http://161.35.142.62/wp-content/uploads/2018/01/Screen-Shot-2018-01-19-at-5.02.05-PM.png"><img decoding="async" class="wp-image-1143 size-full alignnone" src="http://161.35.142.62/wp-content/uploads/2018/01/Screen-Shot-2018-01-19-at-5.02.05-PM.png" alt="" width="3840" height="2160" srcset="https://explodingrabbit.com/wp-content/uploads/2018/01/Screen-Shot-2018-01-19-at-5.02.05-PM.png 3840w, https://explodingrabbit.com/wp-content/uploads/2018/01/Screen-Shot-2018-01-19-at-5.02.05-PM-768x432.png 768w, https://explodingrabbit.com/wp-content/uploads/2018/01/Screen-Shot-2018-01-19-at-5.02.05-PM-1200x675.png 1200w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></a></p>
<p>Here&#8217;s how the editor used to look.</p>
<p><a href="http://161.35.142.62/wp-content/uploads/2018/01/Screen-Shot-2018-01-29-at-2.50.05-PM.png"><img decoding="async" loading="lazy" class="wp-image-1147 size-full alignnone" src="http://161.35.142.62/wp-content/uploads/2018/01/Screen-Shot-2018-01-29-at-2.50.05-PM.png" alt="" width="3840" height="2160" srcset="https://explodingrabbit.com/wp-content/uploads/2018/01/Screen-Shot-2018-01-29-at-2.50.05-PM.png 3840w, https://explodingrabbit.com/wp-content/uploads/2018/01/Screen-Shot-2018-01-29-at-2.50.05-PM-768x432.png 768w, https://explodingrabbit.com/wp-content/uploads/2018/01/Screen-Shot-2018-01-29-at-2.50.05-PM-1200x675.png 1200w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></a></p>
<p>Here&#8217;s how it looks now. The biggest change is the panels, but there is also space for a toolbar at the top, and it&#8217;s now possible to add a toolbar to any panel.</p>
<p>If you&#8217;re interested in the programming details, each panel is now in its own dependency injection subcontainer. I follow the <a href="https://en.wikipedia.org/wiki/Facade_pattern">facade pattern</a>, so each panel is a facade and other classes have no access to the panel&#8217;s internals.</p>
<p>You may also notice in the current image that the textfields are a darker color. I wrote a simple styling system that I can apply to elements. That way, if I decide to change something, I only have to do it in one place. If you do things the regular way in Unity and use prefabs, getting everything to match style can be a real pain, so this is a nice simple solution.</p>
<pre class="lang:c# decode:true">public interface TextInputFieldStyle {
    Color backgroundColor {get;}
    Color textColor {get;}
    Color selectionColor {get;}
}

public static void applyStyle(this TMP_InputField target, TextInputFieldStyle style) {
    target.selectionColor = style.selectionColor;
    target.textComponent.color = style.textColor;
    target.targetGraphic.color = style.backgroundColor;
}

textField.applyStyle(style);</pre>
<p>Here&#8217;s the gist of how it works.</p>
<h2>Color Picker</h2>
<p>People will need to change colors of things in the editor, so I needed to have some kind of color picker tool. There are several solutions on the asset store, but there&#8217;s no way to try them out or see their code without buying them.</p>
<p>Instead I found a <a href="https://forum.unity.com/threads/color-picker.267043/">free one</a> and then built my own while using it as a reference when I ran into trouble. It&#8217;s not completely done, but here&#8217;s how it looks.</p>
<p><a href="http://161.35.142.62/wp-content/uploads/2018/01/color-picker-15fps-zopfli.png"><img decoding="async" loading="lazy" class="alignnone size-full wp-image-1162" src="http://161.35.142.62/wp-content/uploads/2018/01/color-picker-15fps-zopfli.png" alt="" width="272" height="364" /></a></p>
<p>Another reason I didn&#8217;t want to use any of the asset store solutions is that none of them use <a href="https://assetstore.unity.com/packages/essentials/beta-projects/textmesh-pro-84126">TextMesh Pro</a>, the superior text solution in Unity. <em>Exploding Editor</em> supports retina displays, so it will be especially noticable if any text is low resolution.</p>
<p>The color picker doesn&#8217;t generate textures for the color box or the hue slider. They are implemented with shaders so they&#8217;re fast and use little memory.</p>
<h5>Reactive Programming Example</h5>
<p>The color picker UI is a great example of the benefits of <a href="http://reactivex.io">reactive programming</a>. I think in general not enough people use it, so I thought I&#8217;d show how using it can save you a lot of time and make your code lean and clean. The following code is in the ColorSliderView class which is used for each of the RGBA sliders shown in the animation.</p>
<pre class="lang:c# decode:true">public IObservable&lt;ColorSliderView&gt; valueChanged =&gt; slider
  .OnValueChangedAsObservable()
  .Select(x =&gt; (byte)x)
  .Merge(valueInputField.onValueChangedAsObservable()
    .Where(_ =&gt; valueInputField.isFocused)
    .Select(x =&gt; x.safelyParsedByte()))
  .Do(x =&gt; _value = x)
  .Select(_ =&gt; this);</pre>
<p>Take a look at this code. It&#8217;s generating an IObservable to let observers know when something changes. It automatically combines changes from both the slider and the textfield, and it stores that value before sending the event. It also limits the event for the textfield to make sure it only sends it when the textfield has focus. This is to prevent a stack overflow.</p>
<pre class="lang:c# decode:true">sliders
  .Select(x =&gt; x.valueChanged)
  .CombineLatest()
  .Subscribe(_ =&gt;
    picker.color = new Color32(sliders[0].value, sliders[1].value, sliders[2].value, sliders[3].value));</pre>
<p>And here&#8217;s where the IObservables are subscribed to. Whenever any of the sliders change their value, the function in Subscribe is invoked, and the color picker&#8217;s color is updated with the new values.</p>
<h3>What&#8217;s Next?</h3>
<p>There&#8217;s a little bit of work left to finish the color picker, and then I have to finish transitioning the rest of the editor to the panel system. I mainly just have the sprites panel and the panels related to tilemapping remaining.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://explodingrabbit.com/exploding-devlog-panels-and-color-picker-1125/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1125</post-id>	</item>
		<item>
		<title>Exploding Devlog #1</title>
		<link>https://explodingrabbit.com/exploding-devlog-1-1073/</link>
					<comments>https://explodingrabbit.com/exploding-devlog-1-1073/#comments</comments>
		
		<dc:creator><![CDATA[Jay Pavlina]]></dc:creator>
		<pubDate>Tue, 23 Jan 2018 03:08:37 +0000</pubDate>
				<category><![CDATA[Development Log]]></category>
		<category><![CDATA[Exploding Editor]]></category>
		<guid isPermaLink="false">http://161.35.142.62/?p=1073</guid>

					<description><![CDATA[I started posting a development log on Twitter. Here's a consolidated version.]]></description>
										<content:encoded><![CDATA[<p>I started posting a development log on <a href="https://twitter.com/explodingrabbit">Twitter</a>. You can see related tweets by using <a href="https://twitter.com/search?q=%23ExplodingDevLog">#ExplodingDevLog</a>. I&#8217;ll be posting consolidations of the devlogs on this site as well. Here&#8217;s the first one!</p>
<p>Started working on the sprite editor, but all you can do right now is look at a sprite sheet and drag it around. Not too exciting yet.</p>
<p><img decoding="async" loading="lazy" class="wp-image-1087 size-full alignnone" src="http://161.35.142.62/wp-content/uploads/2018/01/sprite-editor-first.png" alt="" width="3370" height="1892" srcset="https://explodingrabbit.com/wp-content/uploads/2018/01/sprite-editor-first.png 3370w, https://explodingrabbit.com/wp-content/uploads/2018/01/sprite-editor-first-480x269.png 480w, https://explodingrabbit.com/wp-content/uploads/2018/01/sprite-editor-first-768x431.png 768w, https://explodingrabbit.com/wp-content/uploads/2018/01/sprite-editor-first-1200x674.png 1200w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></p>
<p>Added an assets panel that displays all files in the project instead of having a separate sprites panel. Also added very basic sprite slicing. Slices lines are drawn with Unity&#8217;s GL class.</p>
<p><img decoding="async" loading="lazy" class="wp-image-1091 size-full alignnone" src="http://161.35.142.62/wp-content/uploads/2018/01/draw-sprite-rectangles.png" alt="" width="1106" height="722" srcset="https://explodingrabbit.com/wp-content/uploads/2018/01/draw-sprite-rectangles.png 1106w, https://explodingrabbit.com/wp-content/uploads/2018/01/draw-sprite-rectangles-460x300.png 460w, https://explodingrabbit.com/wp-content/uploads/2018/01/draw-sprite-rectangles-768x501.png 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></p>
<p>Wrote the basics of the ?Exploding Data file format (why is everything exploding with me?). It uses JSON because it&#8217;s easy to work with and is human readable. I also set up saving and loading of these files.</p>
<p><img decoding="async" loading="lazy" class="alignnone wp-image-1100" src="http://161.35.142.62/wp-content/uploads/2018/01/Screen-Shot-2018-01-18-at-8.54.40-PM-copy-2.png" alt="" width="342" height="557" srcset="https://explodingrabbit.com/wp-content/uploads/2018/01/Screen-Shot-2018-01-18-at-8.54.40-PM-copy-2.png 684w, https://explodingrabbit.com/wp-content/uploads/2018/01/Screen-Shot-2018-01-18-at-8.54.40-PM-copy-2-184x300.png 184w" sizes="(max-width: 342px) 85vw, 342px" /></p>
<p>Added right click to assets panel to allow simple creation of entities, sprites, and animations. Also got basics of properties panel working.</p>
<p><img decoding="async" loading="lazy" class="alignnone wp-image-1104 size-full" src="http://161.35.142.62/wp-content/uploads/2018/01/assets-panel-right-click-2x.png" alt="" width="1316" height="466" srcset="https://explodingrabbit.com/wp-content/uploads/2018/01/assets-panel-right-click-2x.png 1316w, https://explodingrabbit.com/wp-content/uploads/2018/01/assets-panel-right-click-2x-768x272.png 768w, https://explodingrabbit.com/wp-content/uploads/2018/01/assets-panel-right-click-2x-1200x425.png 1200w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></p>
<p>Added grid overlay for sprite sheets. The cell size can be set in the inspector panel. Benefits of grid-based sheets and how they work with Exploding Editor will be shown later.</p>
<p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-1109" src="http://161.35.142.62/wp-content/uploads/2018/01/grid.png" alt="" width="854" height="538" srcset="https://explodingrabbit.com/wp-content/uploads/2018/01/grid.png 854w, https://explodingrabbit.com/wp-content/uploads/2018/01/grid-768x484.png 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://explodingrabbit.com/exploding-devlog-1-1073/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1073</post-id>	</item>
		<item>
		<title>2018: Year of the Exploding Rabbit</title>
		<link>https://explodingrabbit.com/year-of-the-exploding-rabbit-1112/</link>
					<comments>https://explodingrabbit.com/year-of-the-exploding-rabbit-1112/#respond</comments>
		
		<dc:creator><![CDATA[Jay Pavlina]]></dc:creator>
		<pubDate>Sat, 20 Jan 2018 01:03:44 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Exploding Editor]]></category>
		<category><![CDATA[Glitch Strikers]]></category>
		<guid isPermaLink="false">http://161.35.142.62/?p=1112</guid>

					<description><![CDATA[Improved communication, regular devlogs, and several product releases are just some of the things to expect from ?? in 2018.]]></description>
										<content:encoded><![CDATA[<p>The poor  website has been neglected for several months. Let&#8217;s get you caught up!</p>
<h3>Communication Skills +10</h3>
<p>I recently got a community manager, as mentioned <a href="https://www.youtube.com/watch?v=-8XpSafWcuw">in this video</a>, and he has been helping me to plan out a communication strategy that is sustainable and that covers several platforms. We&#8217;ve mainly been focusing on <a href="https://www.facebook.com/ExplodingRabbit/">Facebook</a> and <a href="https://twitter.com/ExplodingRabbit">Twitter</a>, but the website will be getting some <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2764.png" alt="❤" class="wp-smiley" style="height: 1em; max-height: 1em;" /> as well. He&#8217;s helping me to make communication a higher priority, so I&#8217;m factoring it into how I do things going forward. His name is Jason. <a href="https://twitter.com/FFoP_Jason">Here&#8217;s his Twitter</a>.</p>
<h3>Exploding Editor</h3>
<p>When working on <a href="http://161.35.142.62/glitch-strikers/"><em>Glitch Strikers</em></a>, I ended up making a small editor to simplify the development process. The editor kept getting bigger and more advanced as we needed features, and then it got to the point where it seemed good enough that other people could find it useful.</p>
<p>I decided to call it the <strong>Exploding Editor</strong> and made an <a href="https://explodingrabbit.itch.io/exploding-editor">itch.io project</a> for it. I&#8217;ll distribute it through there as soon as I finish some remaining features and make it more user friendly. We&#8217;ll probably do some alphas and betas first. If you&#8217;re interested in participating, follow the project. The editor will not be free, but it will be affordable.</p>
<h3>Exploding Devlog</h3>
<p>I&#8217;ve always wanted to do a development log, and it&#8217;s finally happening. I&#8217;ve been <a href="https://twitter.com/search?q=%23ExplodingDevLog">tweeting it out about once a day</a>, starting with the log for <em>Exploding Editor</em>. I&#8217;ll be posting consolidated versions of the devlog on this website. There&#8217;s also a <a href="https://explodingrabbit.itch.io/exploding-editor/devlog">devlog on itch.io</a>, but that one is only for the editor. The devlog posted on this website is for all ?? projects.</p>
<h3>High Level Plan for 2018</h3>
<p>The first task is to release the <em>Exploding Editor</em>. This should not take too long. After that, I&#8217;ll be finishing up a personal project I&#8217;ve been working on and off for several years. The editor is very closely tied to this project and some features were added to the editor just so I could finish it. The personal project is planned to be a free WebGL game. It shares a lot of similarities with <em>Glitch Strikers,</em> but is simpler and will be a good appetizer.</p>
<p>After that, I&#8217;ll get back to either <em>Glitch Strikers</em> or the game collection <a href="https://www.youtube.com/watch?v=wnIETxIxAYY">mentioned in this video</a>. We&#8217;ll see where things are then and decide what&#8217;s best at that time.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://explodingrabbit.com/year-of-the-exploding-rabbit-1112/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1112</post-id>	</item>
		<item>
		<title>Glitch Strikers Update &#8211; New Codebase and Design Epiphany</title>
		<link>https://explodingrabbit.com/glitch-strikers-progress-update-1047/</link>
					<comments>https://explodingrabbit.com/glitch-strikers-progress-update-1047/#comments</comments>
		
		<dc:creator><![CDATA[Jay Pavlina]]></dc:creator>
		<pubDate>Fri, 26 May 2017 05:49:33 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Glitch Strikers]]></category>
		<guid isPermaLink="false">http://161.35.142.62/?p=1047</guid>

					<description><![CDATA[Glitch Strikers takes giant leaps forward in the code that powers it and in its design with an unexpected epiphany.]]></description>
										<content:encoded><![CDATA[<div class="jetpack-video-wrapper"><iframe loading="lazy" width="840" height="473" src="https://www.youtube.com/embed/3bhNMi7OBkk?feature=oembed" frameborder="0" allowfullscreen></iframe></div>
<p>The last month of development on <a href="http://161.35.142.62/glitch-strikers/" target="_blank" rel="noopener noreferrer"><i>Glitch Strikers</i></a> is the best month the game has ever seen. I&#8217;ve made two huge advancements with the project, and I am more confident than ever that not only will the game get done; it will be great.</p>
<p>You can watch the video above for an in-depth discussion or read below for a summary.</p>
<h3 id="h:1-a-new-beautiful-cl">A New Beautiful, Clean Codebase</h3>
<p>I rewrote all the code for the game in a much cleaner, scalable, and maintainable way. I&#8217;m very close to being done with the refresh; all I have left to do is the attack system and sound effects. If you&#8217;re not a programmer, this may not sound like a big deal, but trust me; it is a huge deal, and it accounts for about 75% of my confidence boost for the project.</p>
<p>I had been working with more or less the same codebase for four and a half years, and I accumulated a lot of <a href="https://en.wikipedia.org/wiki/Technical_debt" target="_blank" rel="noopener noreferrer">technical debt</a>, especially in the months leading up to the trailer. In transitioning to the final iteration of the game, I was getting bogged down, so I decided to start fresh and apply everything I&#8217;ve learned since starting the project.</p>
<p>If programmers are curious, I&#8217;ve rewritten everything using <a href="https://github.com/modesttree/Zenject" target="_blank" rel="noopener noreferrer">dependency injection</a> and <a href="https://github.com/neuecc/UniRx" target="_blank" rel="noopener noreferrer">reactive programming</a> as a foundation. I&#8217;m also now using C# 6, which just became available in the most recent Unity beta.</p>
<h3 id="h:2-a-game-design-epip">A Game Design Epiphany</h3>
<p>Throughout the development of this project, we never had a design that felt &#8220;perfect&#8221;. There aren&#8217;t many games that let you switch between characters that are very different because it&#8217;s hard to make every part of the game fun and challenging for each character. The more different the characters, the harder it becomes.</p>
<p>We solved the character switching problem right before the project was put on hold, and I never implemented the solution because I couldn&#8217;t figure out how to fit it in with the rest of the game.</p>
<p>Then&#8230; last month, an answer struck me like a bolt of lightning, and everything made sense. It&#8217;s a very simple idea, but you probably won&#8217;t recognize it unless it&#8217;s directly pointed out. I&#8217;m taking a well known game formula and tweaking it. The best thing about it is that the game is now unique. Once people see these mechanics working together, they will no longer say <i>Glitch Strikers</i> is unoriginal.</p>
<p>This epiphany also gives me a very clear way to make a non-episodic game. We will instead make a small game based on this formula. Instead of episodes, we can do sequels, and backers will get sequels for free because you deserve the world for what you&#8217;ve been through.</p>
<h3 id="h:next-milestone-beat">Next Milestone? Beat the game.</h3>
<p>In all this time, we&#8217;ve never actually had a &#8220;game.&#8221; By that, I mean we had gameplay and some fragments of levels, but we never had a game that could be played from start to finish. That&#8217;s where I&#8217;m headed next.</p>
<p>I don&#8217;t mean the next step is finishing the game. To put it simply, we have a diagram for the flow of the entire game, from title screen to credits. Currently you can start on any level, but there&#8217;s no beginning or end. So this next step is turning it into a beatable game. Once we have that, it&#8217;s just a matter of filling in content, and we can also start thinking about early access and private betas.</p>
<p>I plan on posting again after I reach the beatable game milestone. See you then!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://explodingrabbit.com/glitch-strikers-progress-update-1047/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1047</post-id>	</item>
	</channel>
</rss>
