<?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/"
	>

<channel>
	<title>Heat Signature &#8211; Tom Francis Regrets This Already</title>
	<atom:link href="https://www.pentadact.com/category/making-games/heatsig/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.pentadact.com</link>
	<description>We&#039;re back on a default theme because comments broke on my custom one and I don&#039;t have the energy to figure out why</description>
	<lastBuildDate>Mon, 02 Oct 2023 20:28:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>Heat Signature&#8217;s Space Birthday Update Is Live!</title>
		<link>https://www.pentadact.com/2018-09-27-heat-signatures-space-birthday-update-is-live/</link>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Thu, 27 Sep 2018 17:36:33 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=9122</guid>

					<description><![CDATA[Heat Signature is one Space Year old today! To celebrate, we&#8217;ve released a big free update we&#8217;ve been working on for five months, with over 20 features &#8211; including our own twist on a Daily Challenge. Click through for details on each: Character Traits 7 New Hazards Glory Missions &#38; Clients Upgraded AI &#38; Reworked [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Heat Signature is one Space Year old today! To celebrate, we&#8217;ve released a big free update we&#8217;ve been working on for five months, with over 20 features &#8211; including our own twist on a Daily Challenge.</p>
<p>Click through for details on each:</p>
<ul>
<li><a href="https://steamcommunity.com/games/268130/announcements/detail/1708443926949563973">Character Traits</a></li>
<li><a href="https://steamcommunity.com/games/268130/announcements/detail/1708443926954410768">7 New Hazards</a></li>
<li><a href="https://steamcommunity.com/games/268130/announcements/detail/1708443926959692477">Glory Missions &amp; Clients</a></li>
<li><a href="https://steamcommunity.com/games/268130/announcements/detail/1708443926961362135">Upgraded AI &amp; Reworked Alarms</a></li>
<li><a href="https://steamcommunity.com/games/268130/announcements/detail/1708443926960046083">Player Story Trading Cards</a></li>
<li><a href="https://steamcommunity.com/games/268130/announcements/detail/1708443926959917590">Contractors: 4 Unique Enemy Types</a></li>
<li><a href="https://steamcommunity.com/games/268130/announcements/detail/1708443926966998398">The Daily Challenge</a></li>
<li><a href="https://steamcommunity.com/games/268130/announcements/detail/1708443926961702811">10 Quality of Life Features</a></li>
</ul>
<p><span id="more-9122"></span></p>
<p>This update is a one-off, we don&#8217;t plan to do updates like this on a regular basis. You should only buy the game if you want it in its current state &#8211; we don&#8217;t make promises about future content.</p>
<p><strong>This update was made by</strong><br />
Tom Francis: design/code<br />
John Winder: code<br />
John Roberts: art</p>
<p><strong>Dedicated to John Francis</strong><br />
We started this update in April this year, and my dad passed away in May. He was an electrical engineer, a software engineer and an inventor. He got me into computers at an early age, inspired me to be ambitious with his infinite faith in me, and protected me from the fear of failure by making me feel I could never disappoint him. I hope everyone reading this knows they deserve that kind of boost in life, whether you&#8217;ve been lucky enough to receive it or not.</p>
<p>Dad was extremely excited when my games took off, making his own graphs and projections from the sales figures I sent him. All of you who bought Heat Signature or Gunpoint made him so happy and proud. I hope this update can say thank you for that.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Heat Signature&#8217;s Fair Points Update: Reacting To Good Reviews</title>
		<link>https://www.pentadact.com/2017-11-22-heat-signatures-fair-points-update-reacting-to-good-reviews/</link>
					<comments>https://www.pentadact.com/2017-11-22-heat-signatures-fair-points-update-reacting-to-good-reviews/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Wed, 22 Nov 2017 20:34:43 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=9024</guid>

					<description><![CDATA[I was too nervous to read Heat Signature reviews for two weeks after launch. I was relieved to see the scores were great, and after 3.5 years of work, that was all I wanted to hear: I didn&#8217;t want to know what their caveats were. Once I calmed down and read them, though, I was [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I was too nervous to read Heat Signature reviews for two weeks after launch. I was relieved to see the scores were great, and after 3.5 years of work, that was all I wanted to hear: I didn&#8217;t want to know what their caveats were.</p>
<p>Once I calmed down and read them, though, I was delighted: they were not only very positive, but they told entertaining stories and made intelligent points. And almost every critique I read I thought was a fair point. Hence this:<span id="more-9024"></span></p>
<h5>The Fair Points Update</h5>
<p>5 new features and 3 new items, in direct response to review critiques, designed to round the game out and make it more fun for more people.</p>
<p>We also added a gun that fires acid money to melt the flesh from your enemies and leave only chemically bleached bone. No-one asked us for that, we just kind of did it, and now here we are.</p>
<p>This post goes into all the design logic, critiques and features &#8211; if you&#8217;re only interested in what&#8217;s been added, the Steam Announcement covers only that.<!--more--></p>
<h5>Fair Point 1: if you can&#8217;t manage Hard missions, progression is too slow.</h5>
<p>That&#8217;s true, and intentional! I made two assumptions here, both wrong:</p>
<p>1. If you do enough Easy and Medium missions, you have good enough kit that Hard ones become doable for players of any skill level.<br />
2. Easy and Medium missions are boring, and you should eventually be forced to do harder ones.</p>
<p>As it turns out, some players struggle to ever do Hard missions even after acquiring a lot of gear, and are dying often enough on the Medium ones that they&#8217;re usually playing with a new, under-equipped character.</p>
<p>Separately, I was surprised to hear that these players <em>really like</em> Easy and Medium missions. They&#8217;re having fun!</p>
<p>But the fix isn&#8217;t as simple as increasing the rate of liberation progress for easy missions. Most players do have a better time when pushed to take harder missions, so harder missions need to reward you more. And the rate of progress should not be faster across the board, or the game becomes too short for those players. What we really want to do is check: are you making progress too slowly? And if so, can we help you out with that in an interesting way?</p>
<p><a href="https://www.pentadact.com/wp-content/liberators.png"><img fetchpriority="high" decoding="async" src="https://www.pentadact.com/wp-content/liberators.png" alt="" width="854" height="333" class="aligncenter size-full wp-image-9036" srcset="https://www.pentadact.com/wp-content/liberators.png 854w, https://www.pentadact.com/wp-content/liberators-178x69.png 178w, https://www.pentadact.com/wp-content/liberators-500x195.png 500w, https://www.pentadact.com/wp-content/liberators-768x299.png 768w" sizes="(max-width: 854px) 100vw, 854px" /></a></p>
<h5>Feature 1: Liberators</h5>
<p>If you haven&#8217;t liberated a station in a while, one of your choices on character select will be a Liberator: a randomly generated character with high-level gear, and a personal mission to liberate a particular station. They already have the intel and the kit to go out there and do this, so you can just pick them and head straight out.</p>
<p>If you don&#8217;t usually last long enough to find high-level gear, this&#8217;ll be a nice chance to try some out &#8211; and to keep it after you&#8217;re done. Because these characters only appear after you&#8217;ve gone a while without liberating a station, they don&#8217;t make the game any easier or faster for players who aren&#8217;t struggling. They should just ensure that progress is never too slow, whatever your skill level, and that you&#8217;re unlocking new things and having new experiences along the way regardless.</p>
<h5>Fair Point 2: Stronghold liberations are too hard for some players</h5>
<p>Heat Signature&#8217;s philosophy is to always give you a huge range of difficulty options for every mission, to cater to all skill levels, all character levels, and player tastes. We didn&#8217;t really do that for Strongholds, the 4 climactic missions you have to do to complete the game &#8211; they&#8217;re just outright hard. Perfect for some players, nigh impossible for others. It wouldn&#8217;t quite work to let you choose the difficulty of these &#8211; there&#8217;d be an incentive to play it safe and make them easier than your real ability level. So instead:</p>
<h5>Feature 2: Stronghold Liberators</h5>
<p>If and only if you fail a Stronghold mission, you&#8217;ll find a Stronghold Liberator in the bar. These are like the other liberators but even better equipped, so they should make Stronghold missions easier. Still not easy, but you can also afford to take more risks and lose them, since it&#8217;s not hours and hours of progress on the line. And each time you&#8217;re offered one, their kit will be different &#8211; so may be better or worse-suited to the job.</p>
<h5>Fair Point 3: Permadeath encourages you to choose missions below your skill level, because so much is at stake</h5>
<p>Huh! This one completely surprised me because it makes perfect sense and yet I&#8217;ve never experienced it. I play Heat Sig with a cavalier attitude, taking on missions I&#8217;m not at all sure I can do, assuming I&#8217;ll figure it out or at least be able to abort in spectacular style if things go south. But if you&#8217;re more risk-averse about your characters and kit, it&#8217;s true, the threat of permanently losing them is a factor pushing you to take easier missions, not harder. And for the reasons above, that&#8217;s the opposite of what we want to do!</p>
<h5>Feature 3: Glitchback Guarantee</h5>
<p>Sometimes, one of the harder missions on offer will come with a Glitchback Guarantee. This means your client will teleport you out the moment you get hit, avoiding any permanent damage. So there&#8217;s absolutely no risk in taking these missions, you can&#8217;t lose anything no matter how badly it goes. It doesn&#8217;t make the mission easier, though &#8211; if you have to be glitched out, the mission is canceled. So this also serves as a modifier to make some missions trickier: you only get one shot.</p>
<p>Even though we added this feature to cater to players who think the opposite way to me, I&#8217;ve ended up really enjoying it myself. I&#8217;ll just dive into an Audacious mission with a brand new character and no real hope, and just see how the chaos plays out.</p>
<h5>Fair Point 4: I just don&#8217;t do missions with shielded or armoured guards</h5>
<p>Aha. These two types of kit are special, in that they are nearly impossible to deal with without specialised tools. That&#8217;s intentional, for two reasons: </p>
<p>1. It makes those tools especially desirable, creating a progression path and meaningful differences between what different loadouts are good for.<br />
2. Sometimes, having to deal with an enemy you cannot take out gets really interesting, and brings out possibilities you don&#8217;t otherwise discover.</p>
<p>Where we screwed up, a little, is that you don&#8217;t know how many of these you&#8217;ll encounter. So even if you have a 5-use Crashbeam, you might not take a mission with shielded guards because there could be 15 of them. So you play it safe and don&#8217;t take it. </p>
<h5>Feature 4A: Guard counts</h5>
<p>You&#8217;re now told how many of each type of guard you&#8217;ll encounter on a mission, so you can plan accordingly. You&#8217;ll be able to tell: yes, I have enough tools to deal with this many shielded guards. But I&#8217;m also hoping you&#8217;ll sometimes think &#8220;I <em>nearly</em> have enough tools to deal with that many, I bet I can avoid the rest&#8230;.&#8221; A 5-use Crashbeam vs 8 shielded guards is a much more interesting proposition than an unknown number.</p>
<p>We&#8217;ve also made the number of bosses on a mission something that can vary separately, to increase variety: so you&#8217;ll now see missions that take place on a large ship but with only a handful of armoured bosses, and others where there&#8217;s more than one boss per cluster. There are more missions with 3-6 bosses, which is very doable if you have just one tool that deals with their protection type.</p>
<p><a href="https://www.pentadact.com/wp-content/crash-trap-2.gif"><img decoding="async" src="https://www.pentadact.com/wp-content/crash-trap-2.gif" alt="" width="366" height="214" class="aligncenter size-full wp-image-9031" /></a></p>
<h5>Feature 4B: Acid and Crash Traps</h5>
<p>We&#8217;re also adding two new item types to help you better deal with armour and shields. Acid Traps can be placed to strip the armour of any guard who walks on them, and Crash Traps will crash all of their electronic kit, shields included. You&#8217;ll have to use some guile to set them up and lure the target into them, but they both come with a powerful advantage: they&#8217;re always self-charging. That means even the common ones are endlessly re-usable, so there&#8217;s no upper limit on how many armoured or shielded guards you can deal with &#8211; if you can lure them in.</p>
<h5>Fair Point 5: I sometimes have trouble making things out</h5>
<p>We did a lot of work on clarity before launch, and saw great improvements in feedback &#8211; I think we got it to a point where it&#8217;s clear enough for the vast majority of people and also looks really nice. So I was gonna say &#8220;screw it, we did our best&#8221;. But then my friend Zack said two interesting things on the subject:<br />
1. He has the same kind of colour blindness as at least one other person who had this trouble.<br />
2. He wishes there was a mode he could turn on that made everything ultra-clear, regardless of the visual quality cost.</p>
<p>We haven&#8217;t heard about a specific colour-based distinction that&#8217;s causing trouble (we avoided knowingly relying on colour alone for this reason), but that angle helped me realise this is an accessibility issue. It doesn&#8217;t really matter whether the cause is an eye thing or a brain thing, if a percentage of people can&#8217;t see what&#8217;s going on, we should fix that.</p>
<p>His second point made it easier to see how we could: clarity is only hard if you&#8217;re trying to also optimise for visual richness and variety. We successfully did that for most people. For those we left behind, clarity is waaaay more important than prettiness. So if we have a way of making it clearer but less fancy, let&#8217;s make that an option!</p>
<p><a href="https://www.pentadact.com/wp-content/simple-art-mode.png"><img decoding="async" src="https://www.pentadact.com/wp-content/simple-art-mode.png" alt="" width="500" height="255" class="aligncenter size-full wp-image-9032" srcset="https://www.pentadact.com/wp-content/simple-art-mode.png 500w, https://www.pentadact.com/wp-content/simple-art-mode-178x91.png 178w" sizes="(max-width: 500px) 100vw, 500px" /></a></p>
<h5>Feature 5A: Simple Art mode</h5>
<p>Under Accessibility Options, there&#8217;s now a Simple Art Mode you can enable. It makes all ships use a simpler version of the Foundry ship look, which is already our clearest and plainest. We&#8217;ve clarified and plainified it a bit further in this mode: the traversible space is almost entirely blank, and the solid stuff is tweaked to all look identical. Hope this helps!</p>
<h5>Feature 5B: Explosive guard annotations</h5>
<p>We now annotate explosive guards when they first appear on screen, since some people had trouble spotting those. You can turn this off in the options if you don&#8217;t like it.</p>
<h5>Fair Point 6: I just hate permadeath</h5>
<p>OK, no reviewer said this. But one or two players did, and my mental response was &#8220;Well, this game is not for you.&#8221; I&#8217;m not gonna completely remove permadeath, it would be a totally different game, and one that generates less interesting stories overall.</p>
<p>But maybe that&#8217;s not the right question. It&#8217;s not: would the game be better without permadeath? It&#8217;s: can we help the players who hate it? Is there something we can do for them? And that&#8217;s actually an easy answer: sure! We could let them turn it off.</p>
<p>This is a bit mad, so I&#8217;m interested to see how it works out. I&#8217;m very intentionally moving away from &#8216;auteur protecting his precious artistic vision&#8217; and towards &#8216;let&#8217;s welcome everyone we can&#8217; &#8211; as long as we can do it without affecting players who are alrady having fun.</p>
<h5>Feature 6: A Cheat Option to turn off permadeath</h5>
<p>We&#8217;ve added this under Cheat Options to be clear that it&#8217;s not how the game is meant to be played &#8211; I don&#8217;t want other players to feel like they&#8217;re being asked to design how the game should work. This is a cheat. Play without it unless you need it. We warn you about the ways it can make the game less interesting. It&#8217;s only there for people who cannot enjoy the game as it stands.</p>
<p>When permadeath is off, anything that would normally permanently kill your character instead resets you to when you were last at a station.</p>
<h5>Fair Point 7: As it stands, there&#8217;s no way to strip the flesh from my enemies with a corrosive form of currency?</h5>
<p>Yes, sorry, that was an oversight.</p>
<p><a href="https://www.pentadact.com/wp-content/acid-gun-33.gif"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/acid-gun-33.gif" alt="" width="460" height="174" class="aligncenter size-full wp-image-9033" /></a></p>
<h5>Feature 7: The Fleshstripper</h5>
<p>The Fleshstripper is a new unique weapon that fires the same acid used as currency in the Drift &#8211; extracted from those colourful nebulae you&#8217;ve been flying through. It belts out a heavy rain of the stuff in an arc, melting through armour and flesh alike, leaving only skeletons behind. Its ammo is your savings: it costs 1 acid to fire.</p>
<p>From the 22nd of Space November to the 6th of Space December, there&#8217;s a shipment passing through the drift carrying the Fleshstripper &#8211; that&#8217;s your sure-fire way to obtain it. Regardless of whether you steal the shipment, it&#8217;s also available to all players as a very rare random drop.</p>
<h5>A note on Updates</h5>
<p><strong>Us:</strong> Here&#8217;s a significant free update!<br />
<strong>You:</strong> Great! I can&#8217;t believe we get these regularly for free forever!<br />
<strong>Us:</strong> Oh, geez. This is awkward.</p>
<p>This update is a one-off, we don&#8217;t plan to do updates like this on a regular basis. We might add items from time to time, but only buy the game if you want the game as it stands &#8211; we don&#8217;t make promises about future content.</p>
<p><a href="http://store.steampowered.com/app/268130/Heat_Signature/"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/faqbg.jpg" alt="" width="1895" height="657" class="aligncenter size-full wp-image-9034" srcset="https://www.pentadact.com/wp-content/faqbg.jpg 1895w, https://www.pentadact.com/wp-content/faqbg-178x62.jpg 178w, https://www.pentadact.com/wp-content/faqbg-500x173.jpg 500w, https://www.pentadact.com/wp-content/faqbg-768x266.jpg 768w, https://www.pentadact.com/wp-content/faqbg-1024x355.jpg 1024w" sizes="auto, (max-width: 1895px) 100vw, 1895px" /></a></p>
<h5>Nominate us in the Steam Awards!</h5>
<p>Heat Signature is all about player choice, so we would never try to influence how or when you choose to vote for us in the Steam Awards, in the &#8216;Choices Matter&#8217; category for player choice, before the 28th of November, by <a href="http://store.steampowered.com/app/268130/Heat_Signature/">clicking here</a>. That would have to be your choice.</p>
<p>Either way, if you&#8217;ve played enough Heat Signature to know if you recommend it, we&#8217;d love for you to <a href="http://store.steampowered.com/recommended/recommendgame/268130">leave a quick review!</a> As you can tell from this update, we like reviews.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2017-11-22-heat-signatures-fair-points-update-reacting-to-good-reviews/feed/</wfw:commentRss>
			<slash:comments>24</slash:comments>
		
		
			</item>
		<item>
		<title>Death is Canceled for Space Halloween</title>
		<link>https://www.pentadact.com/2017-10-27-death-is-canceled-for-space-halloween/</link>
					<comments>https://www.pentadact.com/2017-10-27-death-is-canceled-for-space-halloween/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Fri, 27 Oct 2017 16:11:11 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=9009</guid>

					<description><![CDATA[For the duration of Space Halloween (27th of Space October to the 1st of Space November), life and death in the Drift will be a little different: Removed: Death Due to science, you cannot die during Space Halloween. Bleeding out, suffocating, or being incinerated in an exploding pod will permanently turn you into a living [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>For the duration of Space Halloween (27th of Space October to the 1st of Space November), life and death in the Drift will be a little different:<span id="more-9009"></span></p>
<h5>Removed: Death</h5>
<p>Due to science, you cannot die during Space Halloween. Bleeding out, suffocating, or being incinerated in an exploding pod will permanently turn you into a living skeleton. Once Halloween is over, you&#8217;ll remain a skeleton but any lethal damage will finish you off. On the plus side, skeletons are undetectable by guard&#8217;s heat sensors, and can spacewalk indefinitely since they no longer need to breathe.</p>
<p><a href="https://www.pentadact.com/wp-content/skeleton-at-the-bar.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/skeleton-at-the-bar.png" alt="" width="782" height="195" class="aligncenter size-full wp-image-9014" srcset="https://www.pentadact.com/wp-content/skeleton-at-the-bar.png 782w, https://www.pentadact.com/wp-content/skeleton-at-the-bar-178x44.png 178w, https://www.pentadact.com/wp-content/skeleton-at-the-bar-500x125.png 500w, https://www.pentadact.com/wp-content/skeleton-at-the-bar-768x192.png 768w" sizes="auto, (max-width: 782px) 100vw, 782px" /></a></p>
<h5>Actual Ghost Missions</h5>
<p>When taking a mission with the Ghost Clause, you are now an actual ghost. As with real-life ghosts, you can still be seen but all attacks pass through you. You&#8217;ll return to normal once the mission is over.</p>
<p><a href="https://www.pentadact.com/wp-content/ghost-500.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/ghost-500.png" alt="" width="500" height="234" class="aligncenter size-full wp-image-9017" srcset="https://www.pentadact.com/wp-content/ghost-500.png 500w, https://www.pentadact.com/wp-content/ghost-500-178x83.png 178w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a></p>
<h5>Actual Skeleton Crew</h5>
<p>Ships running a Skeleton Crew are now literally running a crew of skeletons. The skeletons are functionally the same as normal guards except that they can no longer feel hope.</p>
<p><a href="https://www.pentadact.com/wp-content/skeleton-450000.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/skeleton-450000.png" alt="" width="500" height="207" class="aligncenter size-full wp-image-9016" srcset="https://www.pentadact.com/wp-content/skeleton-450000.png 500w, https://www.pentadact.com/wp-content/skeleton-450000-178x74.png 178w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a></p>
<h5>Does That Mean I Could Potentially Become A Skeleton Ghost?</h5>
<p>That&#8217;s a ridiculous question. Of course you can become a skeleton ghost.</p>
<p><a href="http://steamcommunity.com/games/268130/announcements/">A few other patch notes here</a>. If you don&#8217;t have Heat Signature, well, <a href="http://store.steampowered.com/app/268130/Heat_Signature/">getting it</a> would be step one.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2017-10-27-death-is-canceled-for-space-halloween/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature&#8217;s Launch, And First Player Legend</title>
		<link>https://www.pentadact.com/2017-09-27-heat-signatures-launch-and-first-player-legend/</link>
					<comments>https://www.pentadact.com/2017-09-27-heat-signatures-launch-and-first-player-legend/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Wed, 27 Sep 2017 14:25:57 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8925</guid>

					<description><![CDATA[I reshuffled this post a bit so I can link this part more easily: Update On The Everything Gun It&#8217;s been great to see how much people are loving this very silly weapon, and how excited people are to send us shots of them finding it. One thing I didn&#8217;t forsee was that for a [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I reshuffled this post a bit so I can link this part more easily:</p>
<h5><a name="Everything">Update On The Everything Gun</a></h5>
<p>It&#8217;s been great to see how much people are loving <a href="https://www.youtube.com/watch?v=zGRddCgdKPQ">this very silly weapon</a>, and how excited people are to send us shots of them finding it. One thing I didn&#8217;t forsee was that for a small number of people, it could cause anxiety: the fear of missing out, or even when they have it, the fear of somehow losing it. So we&#8217;re going to simplify it:<span id="more-8925"></span></p>
<h4>If you play any time between now and Oct 5th, you&#8217;ll unlock the Everything Gun as a random drop.</h4>
<h4>Within six months, we&#8217;ll unlock it as a random drop for everyone.</h4>
<p>I hope that allows it to still be a special thing for everyone who was part of our launch, without causing anyone worry. A few more details if you need them:</p>
<ul>
<li>If you&#8217;ve already stolen it from the shipment (even if you died right after), you&#8217;ve already unlocked it even if you don&#8217;t play again before Oct 5.</li>
<li>You can still steal it from the shipment if you haven&#8217;t already, that&#8217;s just a reliable way of obtaining it the first time.</li>
<li>Its unlocked status is stored both in your saves and backed up on Steam Cloud (unless you&#8217;re playing off Steam or have disabled Steam Cloud).</li>
<li>It&#8217;s a file called Progress.dat if you want to back it up manually.</li>
<li>Once it&#8217;s unlocked for everyone it&#8217;ll just be in the game, no save file involved, so there isn&#8217;t and never will be any way to permanently lose it.</li>
</ul>
<p>Three things to know about finding it as a random drop:</p>
<ul>
<li>It&#8217;s a Unique Item, the rarest tier, so it doesn&#8217;t come up frequently.</li>
<li>It&#8217;s a Unique Item, so there&#8217;s only one per galaxy. If one of your active characters has it, you won&#8217;t be finding it in crates in this galaxy, because look, there it is, that person&#8217;s got it.</li>
<li>Any time it&#8217;s not owned by one of your active characters, you can find it. Doesn&#8217;t matter how/why/when it was lost. Doesn&#8217;t matter if a character retired with it and didn&#8217;t pass it on. Doesn&#8217;t matter if you blew it up or flung it into space. Honestly it sounds like you&#8217;re <em>trying</em> to lose it, but tough, you can&#8217;t.</li>
</ul>
<h5>How The Launch Went</h5>
<p>Heat Signature has been out for six days, and my God. It has been a storm. The good kind. It took three and a half years and I spent about £200,000 on it, making it probably the biggest risk of my life. And by the time it was done, the chance for any given indie game to succeed had dropped enough that the term for this trend ends in &#8216;pocalypse&#8217;.</p>
<p>I knew I wouldn&#8217;t have another Gunpoint-size success &#8211; that came out in the sweet spot for indie, when demand was high and supply was low. So my best-case-scenario was to do half as well as Gunpoint did in the same timeframe.<!--more--></p>
<p>It&#8217;s done <em>better</em> than Gunpoint. Not by much, and it&#8217;s too soon to know if it&#8217;ll have the same long-tail Gunpoint did, but so far it really is a Gunpoint-size success. We hit #1 on Steam on launch day, and stayed in the top 10 for most of the week. Thank you so much to everyone who bought it and spread the word, and to everyone who&#8217;s left such lovely reviews. This was a huge gamble and I&#8217;m so relieved and grateful and frankly surprised it paid off.</p>
<p>If you haven&#8217;t got it yet but plan to, <a href="http://store.steampowered.com/app/268130/Heat_Signature/">the 10% discount ends tomorrow</a>.</p>
<h5>Reception</h5>
<p>The other shock is how people are reacting to it. I knew I&#8217;d designed a weird thing &#8211; it&#8217;s like a roguelike but in a persistent world, it&#8217;s like Hotline Miami but it&#8217;s not about skill, it has a goal but it&#8217;s not the point. Whatever you think it is before you play, it&#8217;s probably not quite that, and I&#8217;ve seen that not-as-expected thing lead to a bad reception for games I love.</p>
<p><a href="http://store.steampowered.com/app/268130/Heat_Signature/"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/heat-sig-overwhelming-500x272.png" alt="" width="500" height="272" class="aligncenter size-medium wp-image-8942" srcset="https://www.pentadact.com/wp-content/heat-sig-overwhelming-500x272.png 500w, https://www.pentadact.com/wp-content/heat-sig-overwhelming-178x97.png 178w, https://www.pentadact.com/wp-content/heat-sig-overwhelming-768x418.png 768w, https://www.pentadact.com/wp-content/heat-sig-overwhelming.png 984w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a></p>
<p>That does not seem to have stopped it. Overwhelmingly people get it, and I can use that word now because at time of writing our user reviews are &#8216;Overwhelmingly Positive (95%)&#8217; on Steam. But more than that, so many people are having the perfect response to it: they&#8217;re telling stories. For me a Story Generator is one of the highest goals in game design, it&#8217;s the common thread between my love for Deus Ex, Spelunky and Invisible Inc. So it&#8217;s wonderful to see Heat Sig is not just generating ones that players enjoy, but ones they&#8217;re excited to share. This didn&#8217;t happen with Gunpoint &#8211; people liked it, but at best they&#8217;d share jokes I wrote, not unique experiences they&#8217;d had.</p>
<p>If you browse <a href="https://twitter.com/search?f=tweets&amp;vertical=default&amp;q=%40heatsig&amp;src=typd">a Twitter search for @HeatSig</a> you&#8217;ll see them still pouring out. <a href="https://www.patreon.com/posts/14577892">This one</a> by my friend roBurky is a favourite. Today someone sent us fan art they&#8217;d done of their <em>own</em> characters, their own story. That feels like a sign we got something important right.</p>
<div align="center">
<blockquote class="twitter-tweet" data-lang="en">
<p lang="en" dir="ltr"><a href="https://twitter.com/Pentadact">@Pentadact</a> My favorite story from the game so far; a brother breaking his idiot brother out of captivity. I had to make an art of them after <a href="https://t.co/iPr3AbmAT9">pic.twitter.com/iPr3AbmAT9</a></p>
<p>&mdash; Shane Stapley (@ShaSta_SC) <a href="https://twitter.com/ShaSta_SC/status/912983968797954048">September 27, 2017</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
</p></div>
<p>Which brings us to:</p>
<h5>Our First Player Legend Trading Card</h5>
<p>We want real player stories to be the legends of Heat Signature&#8217;s world, so we&#8217;ve been asking you to send us clips of your hijinks and turning the best ones into our Steam Trading Cards. We&#8217;re still accepting these on Twitter and haven&#8217;t nearly finished selection, but one came in that was such an easy Yes that we made the card right away. I&#8217;m posting it now to give you an idea of the glory that awaits you, and what a good entry looks like. To be clear, you just send us the clip (below &#8211; put @HeatSig at the end not the start) and say roughly what happened &#8211; John does your glamour shot, I give you a nickname and write your story. (I&#8217;m a recovering games journalist, let me have this.)</p>
<div align="center">
<blockquote class="twitter-tweet" data-lang="en">
<p dir="ltr" lang="en">Window Swapper Takedown, Pre gif format <a href="https://twitter.com/HeatSig">@HeatSig</a> <a href="https://t.co/1uJqiwzZcI">pic.twitter.com/1uJqiwzZcI</a></p>
<p>— Somguie Anon Ymus (@Underscore_lord) <a href="https://twitter.com/Underscore_lord/status/912205677644333056">September 25, 2017</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
</p></div>
<h4>Ferris &#8216;Swapshot&#8217; Harris</h4>
<p><a href="https://www.pentadact.com/wp-content/Swapshot-Harris.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-8926" src="https://www.pentadact.com/wp-content/Swapshot-Harris.png" alt="" width="234" height="269" srcset="https://www.pentadact.com/wp-content/Swapshot-Harris.png 234w, https://www.pentadact.com/wp-content/Swapshot-Harris-178x205.png 178w" sizes="auto, (max-width: 234px) 100vw, 234px" /></a></p>
<p><em>As a ship&#8217;s security guard, especially as an armoured elite, you have to be ready for anything. This one saw Ferris Harris coming. He saw an Offworld Angel coming at his ship&#8217;s broken window full burn, and even though he knew it couldn&#8217;t dock, he was ready for whatever other nonsense they were about to try.</em></p>
<p>At the moment of impact, Harris hit eject. He threw himself from his pod, through the pressure-retention field, and skidded to a halt directly in front of the guard. The guard didn&#8217;t flinch. He fired. And Harris swapped with him.</p>
<p>The guard was not ready for this. He suddenly found himself staring at the blue glow of the forcefield Harris just came through. He couldn&#8217;t process the situation fast enough to realise what would happen next: his own bullet hit him in the back of the head. His heavy armour saved him from the lethal impact, but the force was just enough to nudge him one step forwards &#8211; into the pressure field.</p>
<p>What we don&#8217;t know is if, in the 15 seconds between being flung into the icy void and asphyxiating, he had time to figure out what the hell just happened.</p>
<h5>Now</h5>
<p>Now I&#8217;m in a state of simultaneously needing a) a break, b) to catch up on a backlog of urgent things I let slide during development, and c) to tweak the game in response to feedback. But I&#8217;m happy to be doing all that in the aftermath of a success, rather than eg. the shadow of a massive financial disaster. So thank you for that!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2017-09-27-heat-signatures-launch-and-first-player-legend/feed/</wfw:commentRss>
			<slash:comments>25</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature Is Out!</title>
		<link>https://www.pentadact.com/2017-09-22-heat-signature-is-out/</link>
					<comments>https://www.pentadact.com/2017-09-22-heat-signature-is-out/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Fri, 22 Sep 2017 17:23:03 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8912</guid>

					<description><![CDATA[Or you can buy it from the Humble Store. Supporter&#8217;s Edition There&#8217;s also a Supporter&#8217;s Edition, which comes with a bunch of fun extras: Play through Heat Signature&#8217;s development with 8 early prototypes from its 3.5 year development. Watch 9 developer commentary videos showing and explaining its evolution: from drilling through hulls to liberating empires. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p align="center"><iframe loading="lazy" src="https://store.steampowered.com/widget/268130/35481/" width="646" height="190" frameborder="0"></iframe></p>
<p align="center">Or you can <a href="https://www.humblebundle.com/store/heat-signature">buy it from the Humble Store</a>.</p>
<div class="VideoWrapper"><iframe loading="lazy" src="https://www.youtube.com/embed/ifgjEMIqRO4" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>
<h4>Supporter&#8217;s Edition</h4>
<p>There&#8217;s also a Supporter&#8217;s Edition, which comes with a bunch of fun extras:<span id="more-8912"></span></p>
<ul>
<li>Play through Heat Signature&#8217;s development with 8 early prototypes from its 3.5 year development.</li>
<li>Watch 9 developer commentary videos showing and explaining its evolution: from drilling through hulls to liberating empires. (Total: 70 minutes)</li>
<li>Own the full soundtrack in 320kbps MP3 format. (19 tracks, 83 minutes)</li>
</ul>
<p align="center"><iframe loading="lazy" src="https://store.steampowered.com/widget/268130/205473/" width="646" height="190" frameborder="0"></iframe></p>
<p align="center"><a href="https://www.humblebundle.com/store/heat-signature-supporters-edition">And on the Humble Store</a>.</p>
<div class="VideoWrapper"><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/7P6S8YKUPIA" frameborder="0" allowfullscreen></iframe></div>
<h4>Technical Issues</h4>
<p>If you&#8217;re having any technical issues, we&#8217;re posting any known solutions <a href="http://steamcommunity.com/app/268130/discussions/0/1496741765123664804/">here</a>, and you can report bugs to us <a href="https://docs.google.com/forms/d/e/1FAIpQLScOK4-CDLfd4wEmykZQpe2XyRUKdtoiOh4TP1D1Rl73iRyTiw/viewform">here</a>.</p>
<h4>Thaaaaaaaanks!</h4>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2017-09-22-heat-signature-is-out/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature Release Date And Launch Celebrations</title>
		<link>https://www.pentadact.com/2017-09-11-heat-signature-release-date-and-launch-celebrations/</link>
					<comments>https://www.pentadact.com/2017-09-11-heat-signature-release-date-and-launch-celebrations/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Mon, 11 Sep 2017 17:51:12 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8854</guid>

					<description><![CDATA[Heat Signature will be out on Steam 21st of September 2017! At time of writing, that&#8217;s Thursday of next week. It&#8217;s for Windows PCs, other platforms will depend on how this one goes. We don&#8217;t do pre-order bonuses because I don&#8217;t want to pressure you to buy before reviews are out. But I am super [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Heat Signature will be out on Steam <strong>21st of September 2017</strong>! At time of writing, that&#8217;s Thursday of next week. It&#8217;s for Windows PCs, other platforms will depend on how this one goes.</p>
<p>We don&#8217;t do pre-order bonuses because I don&#8217;t want to pressure you to buy before reviews are out. But I am super grateful to those who buy at launch, because our whole future depends on how we do that first week. So we&#8217;re doing a few special things to celebrate it and thank those of you who are joining us:<span id="more-8854"></span></p>
<div class="VideoWrapper"><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/3yUPIElOdfA?rel=0" frameborder="0" allowfullscreen></iframe></div>
<div style="float:left; padding-left:15px;padding-right:10px;"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/PU_Weapon_R11-1.png" alt="" width="30" height="30" class="alignleft size-full wp-image-8874" style="border-width: 0px;"/></div>
<h5>Unique Shipment: The Everything Gun</h5>
<p>For the first two weeks, there&#8217;s a ship carrying a unique weapon passing through the galaxy. It&#8217;s called the Everything Gun, and if you steal it, you&#8217;ll also unlock it as a random drop in this and all your future games. <a href="#Shipments">More info below</a>.</p>
<p align="center">&#8211;</p>
<div style="float:left; padding-left:15px;padding-right:10px;"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/trading30.png" alt="" width="26" height="30" class="alignleft size-full wp-image-8867" /></div>
<h5>Be One Of Our Trading Cards</h5>
<p>Heat Signature is all about the stories that emerge from what you get up to in game, not our pre-written lore. So for Steam Trading Cards, we want them to be about your stories. We want to see GIFs or short videos of crazy situations you&#8217;ve got into or clever tricks you&#8217;ve discovered, and we&#8217;ll turn the best into trading cards with your name on! You&#8217;ll have the strange sensation of being traded, sold, and perhaps broken down to make a badge. <a href="#Trading">More info below</a>.</p>
<p align="center">&#8211;</p>
<h5 id="Shipments">Unique Shipment FAQ</h5>
<p><strong>How do I find the shipment?</strong><br />
You&#8217;ll come across it randomly (about every 30 secs) as you fly around, quite frequently, and you&#8217;ll know it by a big golden light flashing on it, like in the video.</p>
<p><strong>Does this mean I have to be online to play?</strong><br />
Haha, God no. It&#8217;s a single player game and we&#8217;re not assholes. This is just a bit of fun.</p>
<p><strong>What happens if I board the ship but fail?</strong><br />
That&#8217;s fine! The ship will still be flying around until the date it&#8217;s due to leave, so you&#8217;ve got as many chances as you like, with whatever characters you like.</p>
<p><strong>What if I buy the game after the date the shipment leaves?</strong><br />
Same, you won&#8217;t get the Everything Gun, and it won&#8217;t drop randomly for you.</p>
<p><strong>If miss out, will it ever return?</strong><br />
Yes, though we haven&#8217;t planned when exactly.</p>
<p><strong>Is the ship hard?</strong><br />
Nope! See the video.</p>
<p align="center">&#8211;</p>
<h5 id = "Trading">Be On A Trading Card FAQ</h5>
<p><strong>What kind of clips are you looking for?</strong></p>
<p>&#8211; Clever or ridiculous: my favourite are &#8216;I was in this impossible situation and here&#8217;s the mad thing I tried to solve it&#8217;<br />
&#8211; Less than 1 minute in length, preferably less than 30 secs.<br />
&#8211; GIF, GFY or very short YouTube clip. You can also link to a particular timestamp in a longer YouTube or Twitch vid if you like<br />
&#8211; Cut, or link, straight to the good bit, or at most a few seconds before. No lead-in &#8211; if it needs that it&#8217;s probably not what we&#8217;re after.<br />
&#8211; Tell us in the Tweet what is happening, as best you can in the character limit.</p>
<p><strong>How do I submit one?</strong></p>
<p>On Twitter! But!</p>
<p>&#8211; Do it as a normal tweet, not a reply to us &#8211; we&#8217;d like people who don&#8217;t already follow us to see it. That means don&#8217;t start your tweet with @HeatSig.<br />
&#8211; Instead, mention @HeatSig at the end! You can say something like &#8220;I just did X in @HeatSig [link]&#8221; &#8211; that way we&#8217;ll see it.<br />
&#8211; Upload or link your clip, obviously. GIFs uploaded direct to Twitter are the coolest, but I know they&#8217;re more hassle to make and if they&#8217;re more than a few seconds they won&#8217;t fit in Twitter&#8217;s 7Mb, so links are fine.</p>
<p>Example:<br />
I just used a Glitchtrap to teleport a body into space and then Swapped with it to escape the ship in @HeatSig https://youtu.be/zGRddCgdKPQ </p>
<p><strong>What&#8217;s the deadline?</strong><br />
We&#8217;ll start looking at entries September 28th, but we&#8217;ll keep accepting them until we have enough that we love!</p>
<p><strong>How will I know if I&#8217;m picked?</strong><br />
We&#8217;ll reply to you on Twitter.</p>
<p><strong>How will I be credited on the Trading Card?</strong></p>
<p>We&#8217;d like to make the title of the card your name, but!<br />
&#8211; If you prefer an alias we can do that (caveat below).<br />
&#8211; If you&#8217;d rather we used the name of the character you were playing at the time we&#8217;re very happy do that (we can still credit your real name in the description or not, your choice).<br />
&#8211; If we&#8217;re using your name or an alias it&#8217;ll be subject to our approval: we don&#8217;t want anything that is or sounds like a joke name or something that&#8217;ll clash with the fiction.<br />
&#8211; We can discuss this if you&#8217;re picked.</p>
<p>The description on the card will probably be our summary of your cool moment.</p>
<p><strong>How do I capture videos or GIFs?</strong></p>
<p>If your PC has an nVidia card I like nVidia ShadowPlay. It&#8217;s included in the <a href="https://www.geforce.co.uk/geforce-experience/download">GeForce Experience</a> (unfortunately you have to make an nVidia account) and you can set it up to always be recording, then hit a key to have it save the last 5 minutes. Amazingly it seems to have almost no performance impact. That&#8217;s what I do. </p>
<p>Otherwise, <a href="https://obsproject.com">OBS</a> is your best bet. You&#8217;ll want to go to Settings > Broadcast Settings > Mode > File Output Only to make it save to disk instead of streaming live. I think it can do a similar always-recording thing but I haven&#8217;t used it for that myself.</p>
<p>For editing, I like <a href="http://avidemux.sourceforge.net/">Avidemux</a>.</p>
<p>For sharing, I suggest YouTube. In theory it&#8217;s possible to upload videos straight to Twitter but it&#8217;s never worked for gameplay videos for me.</p>
<p>To make GIFs, first make a video as above, then I recommend <a href="http://blog.bahraniapps.com/gifcam/">GIFCam</a> for capturing the bit you want. </p>
<p>You just watch your video back and put GIFcam on top of it and hit Record. I&#8217;d say 16 fps is good enough for this, and you&#8217;ll need the file size to be under 7MB to upload it on Twitter, which is the best way. </p>
<p>Failing that, you can upload small videos to <a href="https://gfycat.com/">GFYCat</a> and it&#8217;ll both GIF them and GFY them &#8211; GFYs are better quality equivalent of GIFs, but they don&#8217;t embed natively in Twitter.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2017-09-11-heat-signature-release-date-and-launch-celebrations/feed/</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature Factions Trailer, Working At Valve</title>
		<link>https://www.pentadact.com/2016-12-21-heat-signature-factions-trailer-working-at-valve-looking-for-a-programmer/</link>
					<comments>https://www.pentadact.com/2016-12-21-heat-signature-factions-trailer-working-at-valve-looking-for-a-programmer/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Wed, 21 Dec 2016 17:42:43 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8777</guid>

					<description><![CDATA[Surprising news! I made a new video showing off John Roberts&#8217; excellent new art for the game&#8217;s four factions! (Not that surprising) I&#8217;m looking for a programmer in the Seattle area to help me finish the game! (Seattle part seems surprising) &#8230; because I&#8217;m moving to Bellevue to work on the game at Valve&#8217;s offices! [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Surprising news!</p>
<ul>
<li><strong>I made a new video showing off John Roberts&#8217; excellent new art for the game&#8217;s four factions!</strong> (Not that surprising)</li>
<li><strong><del datetime="2017-02-01T06:52:35+00:00">I&#8217;m looking for a programmer in the Seattle area to help me finish the game!</del></strong> (Seattle part seems surprising)</li>
<li><strong>&#8230; because I&#8217;m moving to Bellevue to work on the game at Valve&#8217;s offices!</strong> (Extremely surprising but now the Seattle thing is less surprising)</li>
</ul>
<p>Here&#8217;s the new video, which also shows what teleporters and the <em>What Now?</em> screen add to the game:</p>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="https://www.youtube.com/embed/QIsAIdafoes?rel=0" frameborder="0" allowfullscreen></iframe></div>
<p>If you haven&#8217;t already, <a href="http://store.steampowered.com/app/268130/?snr=1_7_7_230_150_1">put it on your Steam Wishlist</a> so you hear about it when it comes out. Also, if you were in on a Steam beta, it was probably taken off your wishlist because Steam briefly thought you owned it, so check. And if you want to be in on future tests, make sure you&#8217;re on the mailing list (top right).<span id="more-8777"></span></p>
<h5>The Valve thing</h5>
<p>They want my input on something, and I&#8217;d obviously welcome theirs on Heat Sig, so I&#8217;ve accepted their offer to come and work on it at their offices instead of my bedroom. I&#8217;ll still be independent, self-employed and pretty much full time on Heat Sig, but I&#8217;m very excited to be around people again &#8211; especially these people. I&#8217;ll be there for 3 months at most, at which point the siren song of visa waiver laws will call me home.</p>
<h5>The job (updated)</h5>
<p>Found someone, thanks!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2016-12-21-heat-signature-factions-trailer-working-at-valve-looking-for-a-programmer/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature: What I&#8217;ve Been Working On</title>
		<link>https://www.pentadact.com/2016-11-26-heat-signature-what-ive-been-working-on/</link>
					<comments>https://www.pentadact.com/2016-11-26-heat-signature-what-ive-been-working-on/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sat, 26 Nov 2016 15:46:37 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8742</guid>

					<description><![CDATA[As well as the update above, I&#8217;ve been putting up some day-by-day logs of what I&#8217;m working on in Heat Signature. I&#8217;m only doing them for my own benefit, so they&#8217;re not mega interesting and I don&#8217;t do one every day I work &#8211; only when I think it&#8217;ll help.]]></description>
										<content:encoded><![CDATA[<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="https://www.youtube.com/embed/_cV8ha2ys_U?rel=0" frameborder="0" allowfullscreen></iframe></div>
<p>As well as the update above, I&#8217;ve been putting up <a href="https://www.youtube.com/playlist?list=PLUtKzyIe0aB3XehTDkDGqQFjNNh7tqed0">some day-by-day logs of what I&#8217;m working on in Heat Signature</a>. I&#8217;m only doing them for my own benefit, so they&#8217;re not mega interesting and I don&#8217;t do one every day I work &#8211; only when I think it&#8217;ll help.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2016-11-26-heat-signature-what-ive-been-working-on/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Testing, Wishlists, And A New Video</title>
		<link>https://www.pentadact.com/2016-04-25-testing-wishlists-and-a-new-video/</link>
					<comments>https://www.pentadact.com/2016-04-25-testing-wishlists-and-a-new-video/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Mon, 25 Apr 2016 09:12:21 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8645</guid>

					<description><![CDATA[As promised on Twitter, I recently sent everyone on our mailing list instructions on how to get in on a new alpha test of Heat Signature. Keys went out to the first 2,000 people to do so, but I&#8217;ll also be keeping the testing list active and inviting people to future alphas from there, so [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>As <a href="https://twitter.com/Pentadact/status/722118002548871168">promised</a> on Twitter, I recently sent everyone on our mailing list instructions on how to get in on a new alpha test of Heat Signature. Keys went out to the first 2,000 people to do so, but I&#8217;ll also be keeping <a href="http://eepurl.com/bYNb_D">the testing list</a> active and inviting people to future alphas from there, so you can still get on it now if you haven&#8217;t already. <strong>Clarification:</strong> this says you can still get <em>on</em> the list, not you can still get <em>in on</em> this alpha test. That test is over and there&#8217;s no date for the next one.</p>
<p><strong>If you&#8217;re in the alpha: </strong><span id="more-8645"></span></p>
<ul>
<li>Yes, it&#8217;s fine to stream, screenshot, write about, and publish videos of, monetised or otherwise!</li>
<li>As requested in the invite mail, please don&#8217;t send me bug reports on Twitter or DM or e-mail, I&#8217;m getting bombarded with these from all sides and I can&#8217;t sort through them this way. Using the form means I have it all in one place.</li>
</ul>
<p><strong>If you&#8217;re press or anyone with an audience:</strong><br />
I&#8217;d like to fix the first batch of crashes and bugs before I really recommend you play it. Once I&#8217;ve done that, I&#8217;ll get in touch. If I haven&#8217;t already told you I&#8217;ll send you a key, DM <a href="https://twitter.com/HeatSig">@HeatSig</a> (DMs are open) to let me know you&#8217;re interested.</p>
<p><strong>If you&#8217;re just a regular joe, real salt-of-the-earth type, good people, never hurt nobody, keeps emselves to emselves:</strong><br />
Did you see we have <a href="http://store.steampowered.com/app/268130">a store page</a> now? And a new short video? And that you can <a href="http://store.steampowered.com/app/268130">Wishlist the game</a>, so you&#8217;ll be told when it&#8217;s out? See those things!</p>
<div class="VideoWrapper"><iframe loading="lazy" src="https://www.youtube.com/embed/5FO2gu7B0r0" width="1280" height="720" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2016-04-25-testing-wishlists-and-a-new-video/feed/</wfw:commentRss>
			<slash:comments>28</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature Will Be At Rezzed 2016 Next Week</title>
		<link>https://www.pentadact.com/2016-03-30-heat-signature-will-be-at-rezzed-2016-next-week/</link>
					<comments>https://www.pentadact.com/2016-03-30-heat-signature-will-be-at-rezzed-2016-next-week/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Wed, 30 Mar 2016 17:46:40 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8632</guid>

					<description><![CDATA[Hello! I&#8217;ll be at Rezzed in London next week, 7-9 April 2016, and you can come and play Heat Signature while I watch, panic, and frantically patch it on a different PC. Saturday&#8217;s sold out, but Thurs and Fri tickets are still available. Our artist John Roberts made this fantastic piece for our booth:]]></description>
										<content:encoded><![CDATA[<p>Hello! I&#8217;ll be at <a href="https://www.egx.net/rezzed">Rezzed in London next week</a>, 7-9 April 2016, and you can come and play Heat Signature while I watch, panic, and frantically patch it on a different PC. Saturday&#8217;s sold out, but <a href="https://www.egx.net/rezzed/tickets">Thurs and Fri tickets</a> are still available. Our artist John Roberts made this fantastic piece for our booth:<span id="more-8632"></span></p>
<p><a href="https://www.pentadact.com/wp-content/Rezzed2016_Final.jpg" rel="attachment wp-att-8634"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-8634" src="https://www.pentadact.com/wp-content/Rezzed2016_Final.jpg" alt="Rezzed2016_Final" width="2835" height="4904" srcset="https://www.pentadact.com/wp-content/Rezzed2016_Final.jpg 2835w, https://www.pentadact.com/wp-content/Rezzed2016_Final-178x308.jpg 178w, https://www.pentadact.com/wp-content/Rezzed2016_Final-500x865.jpg 500w, https://www.pentadact.com/wp-content/Rezzed2016_Final-768x1328.jpg 768w, https://www.pentadact.com/wp-content/Rezzed2016_Final-592x1024.jpg 592w" sizes="auto, (max-width: 2835px) 100vw, 2835px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2016-03-30-heat-signature-will-be-at-rezzed-2016-next-week/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature: Infinitely Scaling Vapour Layers</title>
		<link>https://www.pentadact.com/2015-12-22-heat-signature-infinitely-scaling-vapour-layers/</link>
					<comments>https://www.pentadact.com/2015-12-22-heat-signature-infinitely-scaling-vapour-layers/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Tue, 22 Dec 2015 20:23:46 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8412</guid>

					<description><![CDATA[Excerpt from an e-mail I just sent to artist John: A brief history of zooming and backgrounds: We worry about how to make the game look good at all the zooms between &#8216;local&#8217; and &#8216;galaxy map&#8217;. You ask if anything actually happens at those zooms. It doesn&#8217;t! I rejig the zoom system to skip them. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Excerpt from an e-mail I just sent to artist John:<span id="more-8412"></span></p>
<p>A brief history of zooming and backgrounds:</p>
<ol>
<li>We worry about how to make the game look good at all the zooms between &#8216;local&#8217; and &#8216;galaxy map&#8217;.</li>
<li>You ask if anything actually happens at those zooms. It doesn&#8217;t! I rejig the zoom system to skip them.</li>
<li>I find very close zooms are disorienting because there&#8217;s no background for a sense of speed.</li>
<li>You make tiling vapour layers and stars/dust.</li>
<li>I tell them to display at certain zoom levels, and fade in between. It looks good but is awkward code-wise, everything&#8217;s hard-coded to a certain zoom level and I have to create a new special case instance for each zoom level.</li>
<li>For unrelated reasons, I start to let the camera auto-zoom to keep two things on screen: eg. the player and their ship, if they&#8217;ve ejected.</li>
<li>The slow zoom-out gives an awesome sense of scale, except now the star layer tiles very obviously and soon the vapour layers stop showing and it&#8217;s all a big blur, which is kinda pretty but you lose the feel of &#8216;zooming&#8217;.</li>
<li>I think: &#8220;What we really need is for the layer itself to spot when it&#8217;s being asked to tile an unacceptable number of times, like 4, and if so create a new layer of double scale that we can fade up, and then when the old one is fully invisible, it destroys itself, and trusts the new one to spawn bigger or smaller layers as required and fade between them smoothly and destroy itself when it&#8217;s no longer needed. And vice versa for zooming in.&#8221;</li>
<li>Aeons pass.</li>
<li>I do it!</li>
</ol>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="https://www.youtube-nocookie.com/embed/RDoTFJbJlLI?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe></div>
<p>Update: better video!</p>
<ul>
<li>You can&#8217;t fly this fast, I&#8217;m using fast-forward.</li>
<li>I fade the layers out entirely once the shapes of the galactic blobs are visible, so it doesn&#8217;t texture parts where there&#8217;s no vapour.</li>
<li>The slight pulsing of vapour opacity on zoom is not intentional, though not sure if it&#8217;s worth fixing. It&#8217;s probably to do with the fact that two 0.5 opacity layers do not equal one 1.0 opacity layer.</li>
</ul>
<p>It works! I love it. Feels like a real victory of code and art: we had this big scary problem, a gap in what we could do to a good standard, and we dodged around it for a while, and then your perfectly tiling dust layer and my new autozoom system came together in a way that suggested a smarter approach, and it just solves it completely. We fade through hundreds of orders of magnitude of scale, and the background layers just transition seamlessly as you go. And the sense of scale is so much better &#8211; it&#8217;s actually got easier to catch yourself in your pod now, because you can tell between &#8216;it got further away&#8217; and &#8216;the camera zoomed in a bit&#8217; &#8211; previously both looked the same.</p>
<p>This new system will mean I can tweak the zoom controls to not skip that big gulf between local and map, and use autozoom more liberally, for things like being chased or approaching an objective or an autopilot destination. Turns out once those zoom levels look good, there are a few gameplay uses for them!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-12-22-heat-signature-infinitely-scaling-vapour-layers/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Generating Locks And Keys In Heat Signature&#8217;s Ships</title>
		<link>https://www.pentadact.com/2015-11-28-generating-locks-and-keys-in-heat-signatures-ships/</link>
					<comments>https://www.pentadact.com/2015-11-28-generating-locks-and-keys-in-heat-signatures-ships/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sat, 28 Nov 2015 00:33:47 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<category><![CDATA[Procedural Generation]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8354</guid>

					<description><![CDATA[My summary of where we are after the last ship-generation post would be: The Drunk Snake is probably the best algorithm so far, for generating the amount of branching and length of critical path we want while looking fairly pleasing. But! There&#8217;s a lot of room for improvement. But! Improvement is getting harder: we don&#8217;t [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>My summary of where we are after <a href="https://www.pentadact.com/2015-11-26-laying-out-heat-signatures-ships-snakey-vs-branchy/">the last ship-generation post</a> would be:</p>
<ul>
<li>The Drunk Snake is probably the best algorithm so far, for generating the amount of branching and length of critical path we want while looking fairly pleasing.</li>
<li>But! There&#8217;s a lot of room for improvement.</li>
<li>But! Improvement is getting harder: we don&#8217;t have a huge amount of control with these types of algorithms, so we can&#8217;t fine-tune things precisely without a big rewrite.</li>
<li>And! We don&#8217;t know enough about our requirements to get really fussy yet &#8211; maybe some things that seem bad now will be good when we have certain security devices or guard patrols in.</li>
</ul>
<p><span id="more-8354"></span></p>
<p>In other words, it&#8217;s not worth getting tunnel vision and tinkering with layout algorithms until we start fleshing out the systems and elements they&#8217;re meant to support.</p>
<p>The most basic one of these is locked doors and keys. The keys and even the doors are partly placeholders: some will literally be keycards and locked doors, but instead of some keycards we might put a terminal that can override things of that security level, and instead of some doors we might put a security camera that needs to be turned off.</p>
<p>I&#8217;ve had some version of that system in there since the first post, but it was literally dumping they keys in front of the doors. I wanted them placed in dead ends off the beaten track, so I can put security measures on them.</p>
<p>This turns out to be harder than it sounds. I want an early sector to branch off in three directions &#8211; two are dead ends with keycards behind various obstacles, and the third is the locked door either could open. I don&#8217;t want <em>exactly</em> that every time, obviously, but that kind of thing.</p>
<p>But because we generate as we go, at the time we place the next sector along, we don&#8217;t know whether there&#8217;ll be other branches coming from the last one, or if this is the only path. It could be like this sector, whose phallic shape allows for two keycards to be placed in easy reach:</p>
<p><a href="https://www.pentadact.com/wp-content/Two-keys-and-a-door.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Two-keys-and-a-door.png" alt="Two keys and a door" width="395" height="255" class="aligncenter size-full wp-image-8356" srcset="https://www.pentadact.com/wp-content/Two-keys-and-a-door.png 395w, https://www.pentadact.com/wp-content/Two-keys-and-a-door-178x115.png 178w" sizes="auto, (max-width: 395px) 100vw, 395px" /></a></p>
<p>Or this one, which did not branch at all before the door that leads to the rest of the ship.</p>
<p><a href="https://www.pentadact.com/wp-content/No-keys-no-branches.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/No-keys-no-branches.png" alt="No keys, no branches" width="531" height="428" class="aligncenter size-full wp-image-8355" srcset="https://www.pentadact.com/wp-content/No-keys-no-branches.png 531w, https://www.pentadact.com/wp-content/No-keys-no-branches-178x143.png 178w, https://www.pentadact.com/wp-content/No-keys-no-branches-500x403.png 500w" sizes="auto, (max-width: 531px) 100vw, 531px" /></a></p>
<p>The Drunk Snake places all the sectors that form the longest path first, and only afterwards does it look for room to make branching paths. The Branching Algorithm is not much better: it&#8217;ll let the first sector branch first, but after that it&#8217;s effectively random.</p>
<p>Long story short, it gets very tricky if you want to place keys and locks at the same time you place the sectors. It was pretty clear that &#8216;Security&#8217; needed to be added in a second pass, after the basic geometry of the ship has been generated.</p>
<p>In case I haven&#8217;t made it clear yet, keys and doors work on Security Levels: a Security 3 Key can open Security 3 doors as well as Security 2 and 1. And they&#8217;re reusable. If you had one Security 9 key, you could open every door on the ship with it.</p>
<p>I&#8217;ll spare you my false start at this and skip to the algorithm that worked. What we&#8217;re doing kind of involves pathfinding &#8211; to ensure there&#8217;s a route to Key 2 that doesn&#8217;t go through any Lock 2 doors. But it would be complicated to integrate it with Game Maker&#8217;s pathfinding systems or to write my own, so I basically do it by making lots of lists.</p>
<p>We place the first sector as normal. But when we join a second sector onto it, we tell that sector to remember that &#8216;Sector 1&#8217; is one of the ones you have to go through to get here. When we join something onto Sector 2, it copies Sector 2&#8217;s list of sectors-you-have-to-go-through, and adds Sector 2 to it. So every sector has a list of every other sector you need to go through to get to it.</p>
<p>Once the whole ship is generated, we go through the sectors and make a list of all the ones that are dead ends.</p>
<p>Then, until we run out of dead ends, we:</p>
<ul>
<li>Find the nearest two dead ends &#8211; the ones with the fewest &#8216;sectors you have to go through&#8217;.</li>
<li>Remove them from the list.</li>
<li>Put a keycard of security level S in each.</li>
<li>Tell every sector that leads to either of those dead ends: your security level is fixed now.</li>
<li>For all sectors whose security level is not fixed yet, upgrade them to security level S.</li>
<li>Increase S.</li>
<li>Do it all again.</li>
</ul>
<p>Lastly, we go through every door in the ship and tell it: your security level is equal to the highest of the two sectors you&#8217;re between. So if you join a Sec 1 to a Sec 2, you are a Sec 2 door.</p>
<p>This works! Look!</p>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="https://www.youtube-nocookie.com/embed/sPcn8LWKT5o?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe></div>
<p>Next I should either try adding hazards &#8211; like security cameras or specially placed guards &#8211; or I should put all the functional modules back in and check it still works: thrusters, cockpit, etc.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-11-28-generating-locks-and-keys-in-heat-signatures-ships/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>Laying Out Heat Signature&#8217;s Ships: Snakey Vs Branchy</title>
		<link>https://www.pentadact.com/2015-11-26-laying-out-heat-signatures-ships-snakey-vs-branchy/</link>
					<comments>https://www.pentadact.com/2015-11-26-laying-out-heat-signatures-ships-snakey-vs-branchy/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Thu, 26 Nov 2015 00:29:47 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<category><![CDATA[Procedural Generation]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8323</guid>

					<description><![CDATA[Last time I covered how I taught Heat Signature to build ships out of sectors, join those sectors together, lock some of those doors, then place keycards in the right places to ensure they&#8217;re all openable. I&#8217;d got the algorithm generating layouts like this, which is great: But as I said at the end of [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Last time I covered <a href="https://www.pentadact.com/2015-11-14-teaching-heat-signatures-ship-generator-to-think-in-sectors/">how I taught Heat Signature to build ships out of sectors</a>, join those sectors together, lock some of those doors, then place keycards in the right places to ensure they&#8217;re all openable. I&#8217;d got the algorithm generating layouts like this, which is great:<span id="more-8323"></span></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey.png" alt="Runner 2015-11-13 18-50-07-72 with security doors, snakey" width="1133" height="654" class="aligncenter size-full wp-image-8312" srcset="https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey.png 1133w, https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey-178x103.png 178w, https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey-500x289.png 500w, https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey-1024x591.png 1024w" sizes="auto, (max-width: 1133px) 100vw, 1133px" /></a></p>
<p>But as I said at the end of the post, there might be a problem with this layout. Here&#8217;s the route you&#8217;d have to take to get from the airlock to the front of the ship:</p>
<p><a href="https://www.pentadact.com/wp-content/Snakey-Route.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Snakey-Route.png" alt="Snakey Route" width="840" height="704" class="aligncenter size-full wp-image-8324" srcset="https://www.pentadact.com/wp-content/Snakey-Route.png 840w, https://www.pentadact.com/wp-content/Snakey-Route-178x149.png 178w, https://www.pentadact.com/wp-content/Snakey-Route-500x419.png 500w" sizes="auto, (max-width: 840px) 100vw, 840px" /></a></p>
<h5>The Snaking Algorithm</h5>
<p>That long, snakey, back-and-forth route is common to a lot of ships this code generates, and it comes from the order in which it places the sectors. It starts with one at the airlock, then tries to surround it with new sectors. But! I also wanted each of those sectors to be surrounded too, so as soon as it creates the first one, it tries to surround that. And as soon as it places the first surrounding sector, it tries to surround that one too.</p>
<p>If you keep trying to surround the last sector you placed, what you&#8217;re really doing is placing sectors one after the other in a line. And since we connect each sector we place to the last one we put down, we end up making one long route that weaves back and forth across the ship.</p>
<p>There are a few possible problems with this:</p>
<ul>
<li>It&#8217;s obviously inefficient for the crew of the ship, though that&#8217;s not necessarily a major problem.</li>
<li>A bigger concern is that the player might feel they&#8217;re being messed around, that the layout is contrived to take up their time.</li>
<li>And the biggest one is that this long, linear path doesn&#8217;t lead to much branching &#8211; a few little twiglets sprout off here and there, but usually only one at a time. That doesn&#8217;t give me a lot of places to put keycards: ideally, before every locked door, I want to place two different key-type things that let the player open it, and put different types of hazards or obstacles in front of them. That way, the player has a choice of challenges.</li>
</ul>
<p>I call this the <strong>Snaking Algorithm</strong>, because it tends to create one long and winding snakey path. Since my biggest concern was the lack of branching, I tried to come up with a new one that would focus on that.</p>
<h5>The Branching Algorithm</h5>
<p>The snaking, as I say, comes from trying to surround each sector as soon as it&#8217;s created. So I took that part out, and just let the algorithm finish surrounding that first sector.</p>
<p>That gives you lots of branching, but obviously doesn&#8217;t fill the whole ship. At some point, it&#8217;s got to decide which of the remaining sectors to try to surround next. So I defaulted to what I always default to: random.</p>
<p>It goes through all sectors that haven&#8217;t been surrounded yet, picks one at random, and surrounds it. Since we make doorways between sectors at the time we join them on, this gives the early sectors it picks lots of branches. But then as the ship fills up, it has less and less room to place new sectors around the one it&#8217;s picked, and so those later sectors have fewer branches. But where those are on the ship is pretty random.</p>
<p>Once every sector has had its turn being surrounded, we&#8217;re done.</p>
<p><a href="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-3.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-3.png" alt="Branching Ship Sectors 3" width="1253" height="742" class="aligncenter size-full wp-image-8327" srcset="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-3.png 1253w, https://www.pentadact.com/wp-content/Branching-Ship-Sectors-3-178x105.png 178w, https://www.pentadact.com/wp-content/Branching-Ship-Sectors-3-500x296.png 500w, https://www.pentadact.com/wp-content/Branching-Ship-Sectors-3-1024x606.png 1024w" sizes="auto, (max-width: 1253px) 100vw, 1253px" /></a></p>
<p>Nice!</p>
<p><a href="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-2.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-2.png" alt="Branching Ship Sectors 2" width="848" height="574" class="aligncenter size-full wp-image-8328" srcset="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-2.png 848w, https://www.pentadact.com/wp-content/Branching-Ship-Sectors-2-178x120.png 178w, https://www.pentadact.com/wp-content/Branching-Ship-Sectors-2-500x338.png 500w" sizes="auto, (max-width: 848px) 100vw, 848px" /></a></p>
<p>Cool!</p>
<p><a href="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-1.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-1.png" alt="Branching Ship Sectors 1" width="574" height="624" class="aligncenter size-full wp-image-8329" srcset="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-1.png 574w, https://www.pentadact.com/wp-content/Branching-Ship-Sectors-1-178x194.png 178w, https://www.pentadact.com/wp-content/Branching-Ship-Sectors-1-500x544.png 500w" sizes="auto, (max-width: 574px) 100vw, 574px" /></a></p>
<p>Well! You can see pretty clearly here that the sector the player&#8217;s ship is docked with, in the bottom right, was surrounded by other sectors &#8211; and joined to all of them &#8211; before anything else.</p>
<p><a href="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-4.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-4.png" alt="Branching Ship Sectors 4" width="858" height="465" class="aligncenter size-full wp-image-8326" srcset="https://www.pentadact.com/wp-content/Branching-Ship-Sectors-4.png 858w, https://www.pentadact.com/wp-content/Branching-Ship-Sectors-4-178x96.png 178w, https://www.pentadact.com/wp-content/Branching-Ship-Sectors-4-500x271.png 500w" sizes="auto, (max-width: 858px) 100vw, 858px" /></a></p>
<p>And now I&#8217;m starting to see the problem.</p>
<h5>The Problem</h5>
<p>On anything but a tiny ship, branching a lot early on ends up leading to multiple long paths.</p>
<p><a href="https://www.pentadact.com/wp-content/Branching-Routes.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Branching-Routes.png" alt="Branching Routes" width="858" height="465" class="aligncenter size-full wp-image-8331" srcset="https://www.pentadact.com/wp-content/Branching-Routes.png 858w, https://www.pentadact.com/wp-content/Branching-Routes-178x96.png 178w, https://www.pentadact.com/wp-content/Branching-Routes-500x271.png 500w" sizes="auto, (max-width: 858px) 100vw, 858px" /></a></p>
<p>This clashes a bit with our policy of &#8220;place multiple keys protected by varied hazards before placing a locked door&#8221;. What kind of keys and doors do we place along these multiple parallel paths? Either:</p>
<p><strong>1.</strong> We have multiple parallel tracks of level 1 key > level 1 door > level 2 key > etc.<br />
<strong>2.</strong> Or we have only one track like that, and all the others start with higher sec doors &#8211; level 6 or so &#8211; ones you don&#8217;t get the key for until you reach the end of the first path.</p>
<p>Neither option appeals much. The first feels redundant, messy, and an inefficient use of space &#8211; we&#8217;d need very big ships to ensure one path is long enough to be interesting, and big ships are daunting and expensive performance-wise. The second involves a lot of backtracking, and makes the critical path &#8211; Where You Have To Go &#8211; almost impossible to read without meticulous examination. I tried to design a set of keys and doors for a big Branching ship by hand, and it was laborious even to draw:</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-door-sec-level-mockup-colour-coded.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-door-sec-level-mockup-colour-coded.png" alt="Heat Signature door sec level mockup colour coded" width="787" height="668" class="aligncenter size-full wp-image-8332" srcset="https://www.pentadact.com/wp-content/Heat-Signature-door-sec-level-mockup-colour-coded.png 787w, https://www.pentadact.com/wp-content/Heat-Signature-door-sec-level-mockup-colour-coded-178x151.png 178w, https://www.pentadact.com/wp-content/Heat-Signature-door-sec-level-mockup-colour-coded-500x424.png 500w" sizes="auto, (max-width: 787px) 100vw, 787px" /></a></p>
<p>The more ways the Branching Algorithm clashed with my plans for keys and locks, the more I thought &#8220;Boy, that Snaking Algorithm really wasn&#8217;t far off.&#8221;</p>
<h5>Tweaking The Snake</h5>
<p>So the Snake&#8217;s problems were a) an almost dickish determination to take you on the longest possible route to your objective, and b) not enough branching to place multiple keys before a locked door. But maybe these are fixable. Like everything at this early stage, I wrote every step of this code in whatever way was easy, simple and short, so there are loads of biases and cheats in it.</p>
<p>I looked for the easiest one to mess with, and it&#8217;s this: when surrounding a sector, it always tries placing them above and below, then switches to looking down both sides. To be more &#8216;true random&#8217;, it should find all the adjacent modules and then pick a random one to start a sector from. But even that seemed too much like hard work to me, so first I wanted to test if this ordering stuff even made much of a difference. There is one <em>super</em> easy way to do that: switch those two bits of code round. Try placing sectors along the sides, <em>then</em> try above and below. I give you <strong>The Sidewinder</strong>:</p>
<p><a href="https://www.pentadact.com/wp-content/Sidewinder-layout.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Sidewinder-layout.png" alt="Sidewinder layout" width="1072" height="545" class="aligncenter size-full wp-image-8335" srcset="https://www.pentadact.com/wp-content/Sidewinder-layout.png 1072w, https://www.pentadact.com/wp-content/Sidewinder-layout-178x90.png 178w, https://www.pentadact.com/wp-content/Sidewinder-layout-500x254.png 500w, https://www.pentadact.com/wp-content/Sidewinder-layout-1024x521.png 1024w" sizes="auto, (max-width: 1072px) 100vw, 1072px" /></a></p>
<p>It&#8217;s snakey, but it&#8217;s trying to snake lengthwise.</p>
<p><a href="https://www.pentadact.com/wp-content/Sidewinder-path.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Sidewinder-path.png" alt="Sidewinder path" width="1072" height="545" class="aligncenter size-full wp-image-8336" srcset="https://www.pentadact.com/wp-content/Sidewinder-path.png 1072w, https://www.pentadact.com/wp-content/Sidewinder-path-178x90.png 178w, https://www.pentadact.com/wp-content/Sidewinder-path-500x254.png 500w, https://www.pentadact.com/wp-content/Sidewinder-path-1024x521.png 1024w" sizes="auto, (max-width: 1072px) 100vw, 1072px" /></a></p>
<p>And right away this answers lots of questions. Firstly: yep, this makes a huge difference. This ship is nuts. And secondly: look! Branching! Enough? Too much? Dunno! But it&#8217;s worth taking the next step.</p>
<p>I&#8217;m still too lazy to do true random selection of adjacent modules, so I came up with another super easy trick: instead of always doing vertical first, or always doing horizontal first, it flips a coin. And because this one piece of code is run again for every module, the coin flip will mean some snake horizontally and others vertically. I give you: <strong>The Drunk Snake Algorithm</strong>.</p>
<p><a href="https://www.pentadact.com/wp-content/Small-Drunk-Snake.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Small-Drunk-Snake.png" alt="Small Drunk Snake" width="1440" height="900" class="aligncenter size-full wp-image-8340" srcset="https://www.pentadact.com/wp-content/Small-Drunk-Snake.png 1440w, https://www.pentadact.com/wp-content/Small-Drunk-Snake-178x111.png 178w, https://www.pentadact.com/wp-content/Small-Drunk-Snake-500x313.png 500w, https://www.pentadact.com/wp-content/Small-Drunk-Snake-1024x640.png 1024w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>That&#8217;s lovely, but small ships almost always are with sector systems, I&#8217;m finding.</p>
<p><a href="https://www.pentadact.com/wp-content/Large-Drunk-Snake.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Large-Drunk-Snake.png" alt="Large Drunk Snake" width="1440" height="900" class="aligncenter size-full wp-image-8339" srcset="https://www.pentadact.com/wp-content/Large-Drunk-Snake.png 1440w, https://www.pentadact.com/wp-content/Large-Drunk-Snake-178x111.png 178w, https://www.pentadact.com/wp-content/Large-Drunk-Snake-500x313.png 500w, https://www.pentadact.com/wp-content/Large-Drunk-Snake-1024x640.png 1024w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>This huge one is a bit ugly, but just because it picked a lot of 3&#215;1 rooms all next to each other &#8211; I may bias it against that. But pathwise, it&#8217;s surprisingly good &#8211; the critical path is not dickishly circuitous, and there&#8217;s a good amount of branching along the way. There&#8217;s a huge amount of path <em>after</em> the objective, but I don&#8217;t know yet if that&#8217;s bad. </p>
<p><a href="https://www.pentadact.com/wp-content/Large-Drunk-Snake-Paths.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Large-Drunk-Snake-Paths.png" alt="Large Drunk Snake Paths" width="1440" height="900" class="aligncenter size-full wp-image-8338" srcset="https://www.pentadact.com/wp-content/Large-Drunk-Snake-Paths.png 1440w, https://www.pentadact.com/wp-content/Large-Drunk-Snake-Paths-178x111.png 178w, https://www.pentadact.com/wp-content/Large-Drunk-Snake-Paths-500x313.png 500w, https://www.pentadact.com/wp-content/Large-Drunk-Snake-Paths-1024x640.png 1024w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>My next step involved giving every sector a &#8216;distance&#8217; value: how many sectors do you have to go through to get to this one? So the airlock sector is 0, any attached to it are 1, and so on. They usually go up to about 8, on a medium ship. Then I boarded one and saw the number <em>23</em>. I thought it was a bug at first, but then I traced the route, and no, the Drunk Snake is just a dick sometimes:</p>
<p><a href="https://www.pentadact.com/wp-content/Dickish-Drunk-Snake.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Dickish-Drunk-Snake.png" alt="Dickish Drunk Snake" width="835" height="665" class="aligncenter size-full wp-image-8337" srcset="https://www.pentadact.com/wp-content/Dickish-Drunk-Snake.png 835w, https://www.pentadact.com/wp-content/Dickish-Drunk-Snake-178x142.png 178w, https://www.pentadact.com/wp-content/Dickish-Drunk-Snake-500x398.png 500w" sizes="auto, (max-width: 835px) 100vw, 835px" /></a></p>
<p>I actually love that layout. And it gave me an idea: these distance values could also be used to spot good places for a shortcut. So if this sector is at distance 14, but it&#8217;s right next to one that has distance 3, maybe we just make a door. Maybe it&#8217;s locked. Maybe it has a hazard on it. Dunno! That&#8217;s what I&#8217;m gonna play with next.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-11-26-laying-out-heat-signatures-ships-snakey-vs-branchy/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>Teaching Heat Signature&#8217;s Ship Generator To Think In Sectors</title>
		<link>https://www.pentadact.com/2015-11-14-teaching-heat-signatures-ship-generator-to-think-in-sectors/</link>
					<comments>https://www.pentadact.com/2015-11-14-teaching-heat-signatures-ship-generator-to-think-in-sectors/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sat, 14 Nov 2015 21:40:19 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<category><![CDATA[Procedural Generation]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8300</guid>

					<description><![CDATA[I haven&#8217;t talked about the way I randomly generate spaceships in Heat Signature since this post &#8211; before it even had actual art. That&#8217;s partly because I&#8217;ve barely touched it since then. I showed the game to developer friends and the press in LA and SF a few weeks ago, and got lots of great [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I haven&#8217;t talked about the way I randomly generate spaceships in Heat Signature since <a href="https://www.pentadact.com/2014-07-19-improving-heat-signatures-randomly-generated-ships-inside-and-out/">this post</a> &#8211; before it even had actual art. That&#8217;s partly because I&#8217;ve barely touched it since then. I showed the game to developer friends and the press in LA and SF a few weeks ago, and got lots of great input and ideas, but the main thing I came away thinking was: the on-board game needs to be more interesting. And I think better ship interiors are the foundation of that.<span id="more-8300"></span></p>
<p>So that&#8217;s why I was <a href="https://www.pentadact.com/2015-11-08-what-works-and-why-multiple-routes-in-deus-ex/">replaying the Deus Ex games</a> recently. My conclusions from that combined with two other ideas I&#8217;d been having about how to improve ship generation, namely:</p>
<p><strong>1.</strong> Getting from the airlock to your objective should involve a series of Gates and Keys. For each locked Gate you encounter, there&#8217;s a corresponding Key somewhere in the area you can access, and fighting/hacking/sneaking your way to that is how you progress.</p>
<p><strong>2.</strong> Whenever I sketch out what a cool ship interior might look like, I draw it as a series of little bubbles of space, about 3-6 modules each. One might be a long room, another might be a row of rooms, another might just be corridors that connect the rest. I call them Sectors. It feels like these lead to natural/pleasing/readable ship layouts &#8211; can I teach the game to build them this way?</p>
<p><a href="https://www.pentadact.com/wp-content/Ship-made-of-sectors-sketh.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Ship-made-of-sectors-sketh.jpg" alt="Ship made of sectors - sketh" width="2307" height="2165" class="aligncenter size-full wp-image-8302" srcset="https://www.pentadact.com/wp-content/Ship-made-of-sectors-sketh.jpg 2307w, https://www.pentadact.com/wp-content/Ship-made-of-sectors-sketh-178x167.jpg 178w, https://www.pentadact.com/wp-content/Ship-made-of-sectors-sketh-500x469.jpg 500w, https://www.pentadact.com/wp-content/Ship-made-of-sectors-sketh-1024x961.jpg 1024w" sizes="auto, (max-width: 2307px) 100vw, 2307px" /></a></p>
<p>And the relevant conclusions from my Deus Ex replay are:</p>
<p><strong>3.</strong> The player needs multiple routes to their objective.</p>
<p><strong>4.</strong> Those routes must be blocked by different obstacles, which require different methods to get past.</p>
<p>There&#8217;s some <a href="https://www.pentadact.com/2015-11-08-what-works-and-why-multiple-routes-in-deus-ex/">other stuff</a>, but that&#8217;s what&#8217;s relevant to ship layout.</p>
<p>The first two are more instinct than rigorous logic: I feel like 1 will make the ships feel more like &#8216;levels&#8217;, and I think that&#8217;s more positive than it sounds: right now they feel like random, empty mazes &#8211; to use an even less liked term, they don&#8217;t feel like &#8216;content&#8217;. And they need to &#8211; if each ship isn&#8217;t a fun little challenge, the game has nothing at its core.</p>
<p>And 2 is my best guess at how to combat the corresponding visual &#8216;blah&#8217; factor: they <em>look</em> like random mazes, and I want them to look more designed.</p>
<h5>Teaching the computer to think in Sectors</h5>
<p>Checking all these boxes is a massively complicated challenge both technically and creatively, so I tried to start as simple as possible. Let&#8217;s just have one type of Sector for now: a 3&#215;1 room. Can you build a ship out of these?</p>
<p>The two neat features of my current ship generation algorithm are:</p>
<p><strong>a)</strong> The interior layout always fills the whole ship<br />
<strong>b)</strong> You can always get from every module to every other module</p>
<p>a) would be tricky with only 3&#215;1 sectors, but should be doable with sectors in general &#8211; we just let one of the Sector types be a 1&#215;1 module and then any gaps are fillable.</p>
<p>b) sounds tricky, but actually I&#8217;m already fulfilling it in the sketches I draw, and the way I draw them is the key to teaching the computer to do it. I start by drawing one Sector, then draw another adjacent to it, then new ones adjacent to those, and so on. If I created a doorway from the existing sector to the new one I&#8217;m drawing each time, every sector would have a route back to the start, and therefore every sector has a route to every other.</p>
<p>So after tinkering for a bit, I got the algorithm to do this:</p>
<p><a href="https://www.pentadact.com/wp-content/First-Sector.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/First-Sector.png" alt="First Sector" width="1440" height="900" class="aligncenter size-full wp-image-8304" srcset="https://www.pentadact.com/wp-content/First-Sector.png 1440w, https://www.pentadact.com/wp-content/First-Sector-178x111.png 178w, https://www.pentadact.com/wp-content/First-Sector-500x313.png 500w, https://www.pentadact.com/wp-content/First-Sector-1024x640.png 1024w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>And then this:</p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-11-10-18-36-05-72-first-ship-made-of-sectors.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-11-10-18-36-05-72-first-ship-made-of-sectors.png" alt="Runner 2015-11-10 18-36-05-72 first ship made of sectors" width="1440" height="900" class="aligncenter size-full wp-image-8303" srcset="https://www.pentadact.com/wp-content/Runner-2015-11-10-18-36-05-72-first-ship-made-of-sectors.png 1440w, https://www.pentadact.com/wp-content/Runner-2015-11-10-18-36-05-72-first-ship-made-of-sectors-178x111.png 178w, https://www.pentadact.com/wp-content/Runner-2015-11-10-18-36-05-72-first-ship-made-of-sectors-500x313.png 500w, https://www.pentadact.com/wp-content/Runner-2015-11-10-18-36-05-72-first-ship-made-of-sectors-1024x640.png 1024w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>Great! They&#8217;re not connected yet, and they all tend to point in the same direction, but this is promising. The little 1&#215;1 rooms are spaces where it couldn&#8217;t fit a 3&#215;1 sector, in the order that they were laid. It&#8217;s definitely possible to do a better job of it than that, but that&#8217;s irrelevant &#8211; those little pockets look nice, I want them. If they were all clustered in one corner it&#8217;d look bad, but randomly dotted around like that is great.</p>
<p>So next, remove that direction bias. It&#8217;s happening because the code tries to place the sector lengthwise, and then if it doesn&#8217;t fit, goes through each possible rotation in turn. Since it always tries them in the same order, you end up with a lot of lengthwise ones. I tweaked it to try the rotations in a random order, producing this:</p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-11-11-15-02-41-12-fixred-bias.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-11-11-15-02-41-12-fixred-bias.png" alt="Runner 2015-11-11 15-02-41-12 fixred bias" width="1440" height="798" class="aligncenter size-full wp-image-8308" srcset="https://www.pentadact.com/wp-content/Runner-2015-11-11-15-02-41-12-fixred-bias.png 1440w, https://www.pentadact.com/wp-content/Runner-2015-11-11-15-02-41-12-fixred-bias-178x99.png 178w, https://www.pentadact.com/wp-content/Runner-2015-11-11-15-02-41-12-fixred-bias-500x277.png 500w, https://www.pentadact.com/wp-content/Runner-2015-11-11-15-02-41-12-fixred-bias-1024x567.png 1024w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>Lovely!</p>
<p>Now we need to connect them. As I say, it seems like you could just do this each time you place one: connect it to the old one. It&#8217;s a little trickier than it sounds to find the co-ords of the two modules in question (we need to know which modules to link, not just which sectors), but I got something logical working:</p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-11-11-16-48-59-17-conneced-sectors.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-11-11-16-48-59-17-conneced-sectors.png" alt="Runner 2015-11-11 16-48-59-17 conneced sectors" width="1440" height="900" class="aligncenter size-full wp-image-8309" srcset="https://www.pentadact.com/wp-content/Runner-2015-11-11-16-48-59-17-conneced-sectors.png 1440w, https://www.pentadact.com/wp-content/Runner-2015-11-11-16-48-59-17-conneced-sectors-178x111.png 178w, https://www.pentadact.com/wp-content/Runner-2015-11-11-16-48-59-17-conneced-sectors-500x313.png 500w, https://www.pentadact.com/wp-content/Runner-2015-11-11-16-48-59-17-conneced-sectors-1024x640.png 1024w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>I actually don&#8217;t know <em>why</em> this works so well. My connect-as-you-go concept assumes that every module is part of some sector, but at this stage those 1&#215;1 bits aren&#8217;t part of any sector &#8211; they&#8217;re just leftovers. I don&#8217;t quite have a good enough handle on my own code to tell you how it knows to link those up too, but it does.</p>
<p>So now I need to do some messy replumbing: right now we&#8217;re working with a single fixed sector size, but obviously I want a variety of sectors. After some deliberating, I decided to make each Sector type an object &#8211; a sort of invisible template the ship can refer to when creating itself. The template for each sector could store what its dimensions are, and what kinds of modules it contains.</p>
<p>Making those is easy, but having the algorithm read them in, rotate them to try 8 different orientations, then actually place them is all rather fiddly. For now I&#8217;ve settled on a slightly rigid system, where a Sector can either be a &#8216;Big Room&#8217; or &#8216;Corridors&#8217; or &#8216;Small Rooms&#8217;, but it can&#8217;t specify an arrangement of multiple elements &#8211; like one small room surrounded by corridors, for example. Supporting that would add a lot of complexity, so I decided to leave it until I&#8217;m really sure I need it.</p>
<p>So, with the new Sector templates in &#8211; just 3&#215;1 and 1&#215;1 for now &#8211; how does it look?</p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-11-12-17-05-11-01-not-filled-and-not-connected.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-11-12-17-05-11-01-not-filled-and-not-connected.png" alt="Runner 2015-11-12 17-05-11-01 not filled and not connected" width="1440" height="688" class="aligncenter size-full wp-image-8307" srcset="https://www.pentadact.com/wp-content/Runner-2015-11-12-17-05-11-01-not-filled-and-not-connected.png 1440w, https://www.pentadact.com/wp-content/Runner-2015-11-12-17-05-11-01-not-filled-and-not-connected-178x85.png 178w, https://www.pentadact.com/wp-content/Runner-2015-11-12-17-05-11-01-not-filled-and-not-connected-500x239.png 500w, https://www.pentadact.com/wp-content/Runner-2015-11-12-17-05-11-01-not-filled-and-not-connected-1024x489.png 1024w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>Oh, it&#8217;s broken. Parts of this layout are OK, but it fails both our conditions: doesn&#8217;t fill the ship, and the bits it does fill aren&#8217;t all connected to each other. Doesn&#8217;t make sense as a ship.</p>
<p>This, and a similar glitch, took me about a day to solve. I kept thinking there was some flaw in the way I&#8217;d implemented &#8216;connect as you go&#8217; that could lead to a Sector being created but not connected to the previous one. As it turned out, the reason I couldn&#8217;t find a flaw in this code is that it was exactly right. I just had two very stupid, unrelated mistakes that both caused very similar symptoms, and kept looking like one thing.</p>
<p>a) I&#8217;d created a 3&#215;1 &#8216;Corridor&#8217; sector, but forgot to tell each module of it to link to the next &#8211; it wasn&#8217;t internally connected. The connections to other sectors were fine.</p>
<p>b) I&#8217;d set the dimension values of the 1&#215;1 Sector to 1&#215;3. This is incorrect. Maths tells us that 1 = 1 and not 3, so that 3 should be 1, so that it reads &#8216;1&#215;1&#8217;, because one is not three, in fact it is less. Stop me if I&#8217;m going too fast.</p>
<p>Fixed these, and blam:</p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-11-13-16-04-18-10-big-ship-with-fixed-connections.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-11-13-16-04-18-10-big-ship-with-fixed-connections.png" alt="Runner 2015-11-13 16-04-18-10 big ship with fixed connections" width="1289" height="867" class="aligncenter size-full wp-image-8311" srcset="https://www.pentadact.com/wp-content/Runner-2015-11-13-16-04-18-10-big-ship-with-fixed-connections.png 1289w, https://www.pentadact.com/wp-content/Runner-2015-11-13-16-04-18-10-big-ship-with-fixed-connections-178x120.png 178w, https://www.pentadact.com/wp-content/Runner-2015-11-13-16-04-18-10-big-ship-with-fixed-connections-500x336.png 500w, https://www.pentadact.com/wp-content/Runner-2015-11-13-16-04-18-10-big-ship-with-fixed-connections-1024x689.png 1024w" sizes="auto, (max-width: 1289px) 100vw, 1289px" /></a></p>
<p>Blam is the sound of a ship being generated with a connected and spanning interior graph:</p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-11-13-16-05-26-09-small-ship-with-fixed-connections.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-11-13-16-05-26-09-small-ship-with-fixed-connections.png" alt="Runner 2015-11-13 16-05-26-09 small ship with fixed connections" width="1440" height="900" class="aligncenter size-full wp-image-8313" srcset="https://www.pentadact.com/wp-content/Runner-2015-11-13-16-05-26-09-small-ship-with-fixed-connections.png 1440w, https://www.pentadact.com/wp-content/Runner-2015-11-13-16-05-26-09-small-ship-with-fixed-connections-178x111.png 178w, https://www.pentadact.com/wp-content/Runner-2015-11-13-16-05-26-09-small-ship-with-fixed-connections-500x313.png 500w, https://www.pentadact.com/wp-content/Runner-2015-11-13-16-05-26-09-small-ship-with-fixed-connections-1024x640.png 1024w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>This is looking great to me, especially on smaller ships. So, on to Gates and Keys!</p>
<h5>On, indeed, to Gates and Keys</h5>
<p>Again I wanted to start as simple as possible. Some ships will play host to a particular mission with a specific objective, but for any that don&#8217;t, we should default to treating the ship&#8217;s cockpit as the &#8216;objective&#8217; &#8211; it&#8217;s the thing they&#8217;d most want to protect.</p>
<p>Because we generate as we go, we don&#8217;t actually know how far along your path to the objective we are when we place a Sector. But we can fudge it: if the next sector is physically closer to the objective&#8217;s location, then we increase the security level of the door we&#8217;re placing between them. And to ensure you can open it, we put a keycard of the same level somewhere in the previous sector. Again, for now, I went ultra-basic: it dumps it right in front of the door.</p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey.png" alt="Runner 2015-11-13 18-50-07-72 with security doors, snakey" width="1133" height="654" class="aligncenter size-full wp-image-8312" srcset="https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey.png 1133w, https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey-178x103.png 178w, https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey-500x289.png 500w, https://www.pentadact.com/wp-content/Runner-2015-11-13-18-50-07-72-with-security-doors-snakey-1024x591.png 1024w" sizes="auto, (max-width: 1133px) 100vw, 1133px" /></a></p>
<p>This works! You can&#8217;t see them well, but those black square outlines in some modules are where keycards are placed, and some are placed less gracefully in corridors and stuff. The level it generates is always completable, though obviously not challenging yet.</p>
<p>So we need to move those keycards to more secluded locations, so that we can put obstacles between the player and them: enemies, security, etc. But before I put a lot of work into ensuring that can happen, I wanted to look into a possible worry with the kind of layout this is generating. And since this has taken a while to write up already, I&#8217;ll save that for the next post!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-11-14-teaching-heat-signatures-ship-generator-to-think-in-sectors/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Natural Numbers In Game Design</title>
		<link>https://www.pentadact.com/2015-09-25-natural-numbers-in-game-design/</link>
					<comments>https://www.pentadact.com/2015-09-25-natural-numbers-in-game-design/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Fri, 25 Sep 2015 00:19:39 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8230</guid>

					<description><![CDATA[In maths, &#8216;natural numbers&#8217; are the ones you might use to count observable, whole things: eg. there are six people here. Anything that doesn&#8217;t work in place of &#8216;six&#8217; there, like 3.4 or -2, is not natural. They&#8217;re kind of &#8216;numbers you can see&#8217;. I&#8217;d like to use the term in game design to mean [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>In maths, &#8216;natural numbers&#8217; are the ones you might use to count observable, whole things: eg. there are six people here. Anything that doesn&#8217;t work in place of &#8216;six&#8217; there, like 3.4 or -2, is not natural. They&#8217;re kind of &#8216;numbers you can see&#8217;.</p>
<p>I&#8217;d like to use the term in game design to mean specifically that: numbers you can see. Things that are represented so simply and wholly and countably that you don&#8217;t need to display an actual numeric figure to tell the player how much they&#8217;re seeing. They can just <em>see</em>.<span id="more-8230"></span></p>
<p>Here&#8217;s an FTL screenshot, showing how it presents your ship&#8217;s various weapons and systems:</p>
<p><a href="https://www.pentadact.com/wp-content/FTL-Panel.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/FTL-Panel.png" alt="FTL Panel" width="937" height="138" class="aligncenter size-full wp-image-8231" srcset="https://www.pentadact.com/wp-content/FTL-Panel.png 937w, https://www.pentadact.com/wp-content/FTL-Panel-178x26.png 178w, https://www.pentadact.com/wp-content/FTL-Panel-500x74.png 500w" sizes="auto, (max-width: 937px) 100vw, 937px" /></a></p>
<p>FTL is a game with masses of systems and numbers and configurations, which are part of what makes it great: there&#8217;s a huge range of possible ship loadouts to put together, and a huge number of sophisticated ways for them to go wrong. But I never would have played it, and I suspect it wouldn&#8217;t have got popular, if it felt complex. It doesn&#8217;t &#8211; you learn it pretty quickly, and pretty much anyone can play.</p>
<p>For me, that was down to how &#8216;natural&#8217; the numbers involved were, especially those power pips shown above. Do I have enough power to bring my drone systems online? You can see the three green pips of spare power on the left, and the two empty pips next to the drone system on the right, and you know immediately: yes. Interestingly, I don&#8217;t think this even involves any counting or comparing of numbers, in the mathsy sense &#8211; for small values like this, we have some kind of low-level spatial recognition routines that just come back with an instant &#8220;yes&#8221;.</p>
<p>It&#8217;s further simplified by how these natural numbers reuse their same values in all contexts: the hitpoints of each system is equal to the power it&#8217;s consuming and that&#8217;s also the total power of subsystems it can support. These are concepts you have to learn, but learning them is easy because there&#8217;s no maths to do, everything is one-to-one.</p>
<p>Here&#8217;s a screenshot of Heat Signature:</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Approach.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Approach.png" alt="Heat Signature Approach" width="1496" height="829" class="aligncenter size-full wp-image-8225" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Approach.png 1496w, https://www.pentadact.com/wp-content/Heat-Signature-Approach-178x99.png 178w, https://www.pentadact.com/wp-content/Heat-Signature-Approach-500x277.png 500w, https://www.pentadact.com/wp-content/Heat-Signature-Approach-1024x567.png 1024w" sizes="auto, (max-width: 1496px) 100vw, 1496px" /></a></p>
<p>The player, in the small ship, is approaching a big ship. These are randomly generated and have lots of properties that vary from ship to ship, all of which are important. But there&#8217;s no stats panel for them, here or anywhere else, showing that info as bars or figures. Partly inspired by FTL, I show everything I can in &#8216;natural&#8217; numbers.</p>
<p>What&#8217;s this ship&#8217;s attack rating? Well, it&#8217;s got one gun. That, to me, goes one better than answering the question. If an info panel said &#8220;Attack rating: 1&#8221;, you still don&#8217;t know what that means in real terms. I&#8217;ve spent hundreds of hours in RPGs without ever finding out what their &#8216;attack&#8217; stat actually means &#8211; sometimes it&#8217;s like accuracy, sometimes damage, sometimes attack speed. But if you&#8217;ve ever seen a gun fire in Heat Signature, you know everything there is to know about this ship&#8217;s offensive capabilities right off the bat.</p>
<p>What&#8217;s its manoeuvrability rating? If you&#8217;ve ever seen a thruster fire in Heat Signature, you know that it has 4 of them and you have a sense for how it&#8217;ll feel to fly.</p>
<p>How many hits can it take? Well, one hit destroys one module, so just look at how many modules it has. Also inspired by FTL, things have a one-to-one-to-one relationship wherever possible. One gun fires one missile. One missile destroys one room. One gun takes up one room. So if you&#8217;ve ever seen one ship shoot another, you&#8217;ve already permanently memorised every conversion factor for every relationship between attack and defence, because &#8216;one&#8217; is as natural as numbers get. So you can see at a glance how many hits this ship can take.</p>
<p>You probably can&#8217;t <em>count</em> how many, at a glance. But what I like about natural numbers, if you use them throughout, is that you don&#8217;t need to. There&#8217;s no reason you need to know whether there&#8217;s 13 modules here or 15, because nothing else is expressed in terms of figures. You can see that there&#8217;s <em>that</em> many.</p>
<p>That visual, spatial, intuitive sense data is more immediate, more memorable, and easier to compare than a dry number. If you see a ship with more guns than this has modules, no number comparison is necessary to see what happens next &#8211; in fact, you can&#8217;t help but picture it.</p>
<p>And your sense of by how much that ship is outmatched is more powerful than if you&#8217;d learnt it from figures: if you were on the smaller ship, the urgency to get off it would be that much more intense.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-09-25-natural-numbers-in-game-design/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
			</item>
		<item>
		<title>Gunpoint Exclusive Edition Owners Now Have A Two-Week Alpha Of Heat Signature</title>
		<link>https://www.pentadact.com/2015-08-16-gunpoint-exclusive-edition-owners-now-have-a-two-week-alpha-of-heat-signature/</link>
					<comments>https://www.pentadact.com/2015-08-16-gunpoint-exclusive-edition-owners-now-have-a-two-week-alpha-of-heat-signature/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sun, 16 Aug 2015 13:56:45 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8100</guid>

					<description><![CDATA[If you own the Exclusive Edition of Gunpoint on Steam &#8211; or the Exclusive Extras as DLC &#8211; you now have access to a Windows-only, very rough and time-limited alpha test version of Heat Signature! If you don&#8217;t, though, I don&#8217;t recommend buying it just to get in on this! This is very unfinished, very [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>If you own the Exclusive Edition of Gunpoint on Steam &#8211; or the Exclusive Extras as DLC &#8211; you now have access to a Windows-only, very rough and time-limited alpha test version of Heat Signature!</p>
<p>If you don&#8217;t, though, I don&#8217;t recommend buying it just to get in on this! This is very unfinished, very unoptimised, and time-limited: I will close it down in two weeks and then you won&#8217;t have it anymore. It exists purely to help me find problems with the game and get people&#8217;s thoughts, not necessarily to give them the best experience or one I&#8217;d charge for individually.<span id="more-8100"></span></p>
<p>In case it&#8217;s not yet abundantly clear: this is not like early access, getting in on this alpha does not get you the game. As with Gunpoint, I&#8217;ll also be doing free closed alphas too, and I&#8217;ll let everyone on the mailing list know when they can sign up for that. This first one is just a perk of the Exclusive Edition, part of what I promised to say thanks to those who supported Gunpoint so generously. I did the same thing with Floating Point &#8211; Exclusive Edition folks got the first alpha, then later ones went to people who signed up.</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Sig-Alpha-Launch.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Sig-Alpha-Launch.png" alt="Heat Sig Alpha Launch" width="377" height="181" class="aligncenter size-full wp-image-8108" srcset="https://www.pentadact.com/wp-content/Heat-Sig-Alpha-Launch.png 377w, https://www.pentadact.com/wp-content/Heat-Sig-Alpha-Launch-178x85.png 178w" sizes="auto, (max-width: 377px) 100vw, 377px" /></a></p>
<p>All that said, if you are in on this test, I hope you like it! Please do follow the link in-game and fill out the feedback form at some point in the next two weeks &#8211; I&#8217;ll be keeping a list of all the people who actually give me feedback, so I can include you in some future tests if I want to make sure I get responses.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-08-16-gunpoint-exclusive-edition-owners-now-have-a-two-week-alpha-of-heat-signature/feed/</wfw:commentRss>
			<slash:comments>25</slash:comments>
		
		
			</item>
		<item>
		<title>Vapour Trail Experiments</title>
		<link>https://www.pentadact.com/2015-07-26-vapour-trail-experiments/</link>
					<comments>https://www.pentadact.com/2015-07-26-vapour-trail-experiments/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sun, 26 Jul 2015 13:21:24 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8070</guid>

					<description><![CDATA[It&#8217;s Sunday, so I&#8217;m allowed to work on things that aren&#8217;t important. This started as a test for an idea I have of how to create a &#8216;wake&#8217; that expands behind you, something I ultimately want to use to cut through some layers of cloud as you fly. But I accidentally made a cooler version [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s Sunday, so I&#8217;m allowed to work on things that aren&#8217;t important. This started as a test for an idea I have of how to create a &#8216;wake&#8217; that expands behind you, something I ultimately want to use to cut through some layers of cloud as you fly. But I accidentally made a cooler version of the existing contrail, so I tried randomly colouring it, and here we are.</p>
<p>Not sure what to do with it from here. I like everything about it except the end, it has what I call &#8216;fat tail&#8217; problem: no matter how gently I tell the alpha to fade out, the final, big chunk of vapour always looks like it ends rather suddenly, like your ship just has this big fat tail following it.</p>
<p>I like the idea that breacher ships of different factions would have different contrail colours, though. And I think engine upgrades will probably affect this too.</p>
<p>Here are a million shots:<span id="more-8070"></span></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-01.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-01.png" alt="Vapour Trail Tests 01" width="1920" height="1080" class="aligncenter size-full wp-image-8071" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-01.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-01-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-01-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-01-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-02.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-02.png" alt="Vapour Trail Tests 02" width="1920" height="1080" class="aligncenter size-full wp-image-8072" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-02.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-02-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-02-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-02-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-03.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-03.png" alt="Vapour Trail Tests 03" width="1920" height="1080" class="aligncenter size-full wp-image-8073" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-03.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-03-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-03-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-03-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-04.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-04.png" alt="Vapour Trail Tests 04" width="1920" height="1080" class="aligncenter size-full wp-image-8074" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-04.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-04-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-04-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-04-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-06.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-06.png" alt="Vapour Trail Tests 06" width="1920" height="1080" class="aligncenter size-full wp-image-8075" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-06.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-06-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-06-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-06-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-07.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-07.png" alt="Vapour Trail Tests 07" width="1920" height="1080" class="aligncenter size-full wp-image-8076" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-07.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-07-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-07-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-07-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-08.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-08.png" alt="Vapour Trail Tests 08" width="1920" height="1080" class="aligncenter size-full wp-image-8077" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-08.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-08-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-08-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-08-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-09.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-09.png" alt="Vapour Trail Tests 09" width="1920" height="1080" class="aligncenter size-full wp-image-8078" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-09.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-09-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-09-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-09-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-10.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-10.png" alt="Vapour Trail Tests 10" width="1920" height="1080" class="aligncenter size-full wp-image-8079" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-10.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-10-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-10-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-10-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-11.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-11.png" alt="Vapour Trail Tests 11" width="1920" height="1080" class="aligncenter size-full wp-image-8080" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-11.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-11-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-11-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-11-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-201.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-201.png" alt="Vapour Trail Tests 201" width="1920" height="1080" class="aligncenter size-full wp-image-8081" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-201.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-201-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-201-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-201-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-202.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-202.png" alt="Vapour Trail Tests 202" width="1920" height="1080" class="aligncenter size-full wp-image-8082" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-202.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-202-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-202-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-202-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-203.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-203.png" alt="Vapour Trail Tests 203" width="1920" height="1080" class="aligncenter size-full wp-image-8083" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-203.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-203-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-203-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-203-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-204.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-204.png" alt="Vapour Trail Tests 204" width="1920" height="1080" class="aligncenter size-full wp-image-8084" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-204.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-204-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-204-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-204-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-205.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-205.png" alt="Vapour Trail Tests 205" width="1920" height="1080" class="aligncenter size-full wp-image-8085" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-205.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-205-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-205-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-205-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-206.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-206.png" alt="Vapour Trail Tests 206" width="1920" height="1080" class="aligncenter size-full wp-image-8086" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-206.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-206-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-206-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-206-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-207.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-207.png" alt="Vapour Trail Tests 207" width="1920" height="1080" class="aligncenter size-full wp-image-8087" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-207.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-207-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-207-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-207-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-208.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-208.png" alt="Vapour Trail Tests 208" width="1920" height="1080" class="aligncenter size-full wp-image-8088" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-208.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-208-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-208-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-208-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-211.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-211.png" alt="Vapour Trail Tests 211" width="1920" height="1080" class="aligncenter size-full wp-image-8089" srcset="https://www.pentadact.com/wp-content/Vapour-Trail-Tests-211.png 1920w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-211-178x100.png 178w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-211-500x281.png 500w, https://www.pentadact.com/wp-content/Vapour-Trail-Tests-211-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-07-26-vapour-trail-experiments/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
			</item>
		<item>
		<title>Spot The Bug</title>
		<link>https://www.pentadact.com/2015-07-25-spot-the-bug/</link>
					<comments>https://www.pentadact.com/2015-07-25-spot-the-bug/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sat, 25 Jul 2015 11:50:02 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8054</guid>

					<description><![CDATA[My current task in Heat Signature is to tweak the airlocks so there&#8217;s room to put a closed door between you and the rest of the ship when you board. That way, you have as much time as you like to plan out your attack and wait till the guards are where you want them. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>My current task in Heat Signature is to tweak the airlocks so there&#8217;s room to put a closed door between you and the rest of the ship when you board. That way, you have as much time as you like to plan out your attack and wait till the guards are where you want them.</p>
<p>I needed the airlocks to clear 4 squares on the ship&#8217;s collision grid, to give you room to stand. But I hit a weird bug: some of them, maybe a third, did not clear. I checked the &#8216;clear grid&#8217; function was executing on each of them, but still some of them ended up blocked.<span id="more-8054"></span></p>
<p>I could see nothing wrong with the code no matter how hard I looked, so the only way to solve it was to look at a lot of test cases and see if I could spot what the bad ones had in common. As I said in <a href="https://www.youtube.com/watch?v=LS9b_eqVu3o&#038;index=25&#038;list=PLUtKzyIe0aB2HjpmBhnsHpK7ig0z7ohWw">my tutorial episode on debugging</a>, it&#8217;s often impossible to see the problem until you get a clue about where to look. So I spawned lots of ships, checked each airlock, and screenshotted each one. And it was only looking back at the screenshots that I spotted what all the bad ones had in common &#8211; or rather, what all the good ones did.</p>
<p>I thought it might be fun to just put up all the shots I looked at and see if you can spot it yourself. Not the actual explanation of the bug, of course, that&#8217;s tricky without seeing all my source code, but I was just looking for any commonality at all. And in case you think I&#8217;m Tom Sawyering you into solving it for me, I have no compunction about <a href="https://www.pentadact.com/2015-01-27-help-me-with-a-trigonometry-problem-for-heat-signature/">just asking for help</a> when I really am stuck. This one was kind of fun to figure out, for a certain definition of fun.</p>
<p>Here are all <strong>the bad ones</strong>. The grid thing is showing what bits of the ship are solid, and these are &#8216;bad&#8217; because the part I&#8217;m standing in is all red &#8211; I&#8217;m stuck. None of the debug text is relevant.</p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-14-51-bad.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-14-51-bad.png" alt="Runner 2015-07-25 11-12-14-51 bad" width="1920" height="1080" class="aligncenter size-full wp-image-8055" srcset="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-14-51-bad.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-14-51-bad-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-14-51-bad-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-14-51-bad-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-38-09-bad.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-38-09-bad.png" alt="Runner 2015-07-25 11-12-38-09 bad" width="1920" height="1080" class="aligncenter size-full wp-image-8056" srcset="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-38-09-bad.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-38-09-bad-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-38-09-bad-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-38-09-bad-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-51-97-bad.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-51-97-bad.png" alt="Runner 2015-07-25 11-12-51-97 bad" width="1920" height="1080" class="aligncenter size-full wp-image-8057" srcset="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-51-97-bad.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-51-97-bad-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-51-97-bad-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-51-97-bad-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-55-62-bad.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-55-62-bad.png" alt="Runner 2015-07-25 11-12-55-62 bad" width="1920" height="1080" class="aligncenter size-full wp-image-8058" srcset="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-55-62-bad.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-55-62-bad-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-55-62-bad-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-55-62-bad-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p>And here are all <strong>the good ones</strong> &#8211; the area I&#8217;m standing in is green, I&#8217;m free to move.</p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-10-86-good.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-10-86-good.png" alt="Runner 2015-07-25 11-11-10-86 good" width="1920" height="1080" class="aligncenter size-full wp-image-8059" srcset="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-10-86-good.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-10-86-good-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-10-86-good-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-10-86-good-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-30-26-good.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-30-26-good.png" alt="Runner 2015-07-25 11-11-30-26 good" width="1920" height="1080" class="aligncenter size-full wp-image-8060" srcset="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-30-26-good.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-30-26-good-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-30-26-good-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-30-26-good-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-40-09-good.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-40-09-good.png" alt="Runner 2015-07-25 11-11-40-09 good" width="1920" height="1080" class="aligncenter size-full wp-image-8061" srcset="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-40-09-good.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-40-09-good-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-40-09-good-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-11-40-09-good-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-03-81-good.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-03-81-good.png" alt="Runner 2015-07-25 11-12-03-81 good" width="1920" height="1080" class="aligncenter size-full wp-image-8062" srcset="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-03-81-good.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-03-81-good-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-03-81-good-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-03-81-good-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-32-95-good.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-32-95-good.png" alt="Runner 2015-07-25 11-12-32-95 good" width="1920" height="1080" class="aligncenter size-full wp-image-8063" srcset="https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-32-95-good.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-32-95-good-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-32-95-good-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-07-25-11-12-32-95-good-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p>So there&#8217;s something all the bad ones have in common and something all the good ones have in common, and it&#8217;s evident in these shots. Comment if you spot it!</p>
<p><strong>Update!</strong> People have got it! Both here and on Twitter, in fact I think most people who took a stab either got it or got something close enough. Kudos to <strong>Pompolic</strong> for the first correct solution I saw. I&#8217;ll detail what was going on below, but hide it until you <a href="#Solution" onclick="toggle_visibility('Solution');return false;"><strong>click to reveal the solution</strong></a>, for anyone who still wants to try it for themselves.</p>
<div id="Solution" style="display: none; margin-left:30px;"><strong>Solution!</strong>
<p>As many spotted, all the good ones are indented from the outer edge of the ship. It&#8217;s not as clear from the bad ones in isolation, but the real problem they share is that they&#8217;re all on the very outermost module of the ship. This is a problem because the collision grid only covers the smallest rectangle the ship&#8217;s modules fit into, so the protruding part of the airlock is outside the grid entirely. My collision grid visualiser doesn&#8217;t seem to have a problem with that, but the &#8216;clear grid&#8217; function REALLY does. Not only does it not clear the cells that are outside the grid, it also fails to clear the cells that ARE. It doesn&#8217;t crash but essentially gives up.</p>
<p>Fixing this is a scarily big job, and it&#8217;s something I&#8217;ve attempted before. What we need is for the collision grid to leave some room around the ship. But this is awkward because the way the collision grid is generated depends on using the module and objects&#8217; ship-wise co-ordinates to figure out where on the collision grid they lie. If we add extra space to the collision grid, all those references would be wrong by the size of the border. We could add an offset in the collision grid generator, but then we also have to add that same offset EVERYWHERE we EVER reference collision, including for things like line of sight checks. Nightmare.</p>
<p>We could make the collision grid generate correctly automatically if we changed the ship&#8217;s module grid to add empty modules all around the ship. But we have to decide whether to mess with the loops that generate the ship: right now they go from row 0 to ModulesLong, and column 0 to ModulesWide. Should we keep that the same but add new module spaces outside of those values? That&#8217;s tempting, but now every modules &#8216;row&#8217; and &#8216;column&#8217; variable is technically wrong, and won&#8217;t relate to its &#8216;fore&#8217; and &#8216;starboard&#8217; co-ordinates in ways that I&#8217;ve relied on all over the place.</p>
<p>So in the end I did change those loops &#8211; they now go from ModuleBorder to (ModulesLong &#8211; ModuleBorder), etc. It seems messy at first, and lots of littel variables did need adjusting to account for this, but crucially all of that was in the ship generation scripts. After a few crashes and weird, asymmetrical ships:</p>
<p><a href="https://www.pentadact.com/wp-content/Asymetical-ships.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Asymetical-ships.png" alt="Asymetical ships" width="959" height="735" class="aligncenter size-full wp-image-8068" srcset="https://www.pentadact.com/wp-content/Asymetical-ships.png 959w, https://www.pentadact.com/wp-content/Asymetical-ships-178x136.png 178w, https://www.pentadact.com/wp-content/Asymetical-ships-500x383.png 500w" sizes="auto, (max-width: 959px) 100vw, 959px" /></a></p>
<p>My third set of tweaks finally fixed it, and seemingly nothing else needs changing. That&#8217;s a huge deal, I think both the other routes to solving this would have had me still fixing little exceptions and unforeseen consequences months down the line.</p>
<p>Thanks for indulging me!</p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-07-25-spot-the-bug/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Eurogamer Play Heat Signature</title>
		<link>https://www.pentadact.com/2015-07-22-eurogamer-play-heat-signature/</link>
					<comments>https://www.pentadact.com/2015-07-22-eurogamer-play-heat-signature/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Wed, 22 Jul 2015 17:35:41 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8052</guid>

					<description><![CDATA[I let Eurogamer play Heat Signature and sat in the back seat to passive-aggressively criticise! It went great! This is both a slightly better looking build than the last trailer, and a longer vid &#8211; shows the whole disrupt/isolate/capture cycle.]]></description>
										<content:encoded><![CDATA[<p>I let Eurogamer play Heat Signature and sat in the back seat to passive-aggressively criticise! It went great!</p>
<p>This is both a slightly better looking build than the last trailer, and a longer vid &#8211; shows the whole disrupt/isolate/capture cycle.</p>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="https://www.youtube-nocookie.com/embed/M3CBjaE4h4Y?rel=0" frameborder="0" allowfullscreen></iframe></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-07-22-eurogamer-play-heat-signature/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>What It&#8217;s Like Showing Heat Signature To The Press</title>
		<link>https://www.pentadact.com/2015-07-21-what-its-like-showing-heat-signature-to-the-press/</link>
					<comments>https://www.pentadact.com/2015-07-21-what-its-like-showing-heat-signature-to-the-press/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Tue, 21 Jul 2015 14:45:09 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8050</guid>

					<description><![CDATA[I used to be press! Now I&#8217;m a developer. So I&#8217;m showing them my game, and trying to figure out if what I&#8217;m showing is exciting. Here&#8217;s what that&#8217;s like. I would like it known that I really am saying &#8216;Alec&#8217; when I refer to Alec but it sounds a bit like Alex because of [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="https://www.youtube-nocookie.com/embed/OhC_EjLH8v8?rel=0" frameborder="0" allowfullscreen></iframe></div>
<p>I used to be press! Now I&#8217;m a developer. So I&#8217;m showing them my game, and trying to figure out if what I&#8217;m showing is exciting. Here&#8217;s what that&#8217;s like. I would like it known that I really am saying &#8216;Alec&#8217; when I refer to Alec but it sounds a bit like Alex because of a mouth thing. A similar mouth thing to when I appear to say &#8216;intereted&#8217; right after.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-07-21-what-its-like-showing-heat-signature-to-the-press/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>New Heat Signature Video: Galaxies, Suction And Wrench-Throwing</title>
		<link>https://www.pentadact.com/2015-06-29-new-heat-signature-video-galaxies-suction-and-wrench-throwing/</link>
					<comments>https://www.pentadact.com/2015-06-29-new-heat-signature-video-galaxies-suction-and-wrench-throwing/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Mon, 29 Jun 2015 17:06:11 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=8031</guid>

					<description><![CDATA[As always, follow it on Twitter or sign up to be told when it&#8217;s out, or ready for testing, here. I also made a short montage of all the ways I fucked this video up in previous takes:]]></description>
										<content:encoded><![CDATA[<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="https://www.youtube-nocookie.com/embed/d0-LwSS19iU?rel=0" frameborder="0" allowfullscreen></iframe></div>
<p>As always, <a href="https://twitter.com/HeatSig">follow it on Twitter</a> or sign up to be told when it&#8217;s out, or ready for testing, <a href="http://www.heatsig.com">here</a>.</p>
<p>I also made a short montage of all the ways I fucked this video up in previous takes:<span id="more-8031"></span> </p>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="https://www.youtube-nocookie.com/embed/bHHlA66NV1Y?rel=0" frameborder="0" allowfullscreen></iframe></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-06-29-new-heat-signature-video-galaxies-suction-and-wrench-throwing/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Why I&#8217;m Letting Heat Signature Get Bigger</title>
		<link>https://www.pentadact.com/2015-05-19-why-im-letting-heat-signature-get-bigger/</link>
					<comments>https://www.pentadact.com/2015-05-19-why-im-letting-heat-signature-get-bigger/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Tue, 19 May 2015 15:52:10 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7973</guid>

					<description><![CDATA[Here is a video blog about that, and how I&#8217;m changing how I think about working on it.]]></description>
										<content:encoded><![CDATA[<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="https://www.youtube-nocookie.com/embed/cj6mHgbwTc4?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe></div>
<p>Here is a video blog about that, and how I&#8217;m changing how I think about working on it.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-05-19-why-im-letting-heat-signature-get-bigger/feed/</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title>Galactic Zoom In Heat Signature</title>
		<link>https://www.pentadact.com/2015-04-12-galactic-zoom-in-heat-signature/</link>
					<comments>https://www.pentadact.com/2015-04-12-galactic-zoom-in-heat-signature/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sun, 12 Apr 2015 15:57:44 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7895</guid>

					<description><![CDATA[Heat Signature&#8217;s universe has been infinite since day 2 or 3, but until now you&#8217;ve only been able to see a meager 35,000 x 35,000 pixels of it at once. I knew at some point I wanted to let you see an overview of the part of space you&#8217;re in, a collection of vast gas [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Heat Signature&#8217;s universe has been infinite since day 2 or 3, but until now you&#8217;ve only been able to see a meager 35,000 x 35,000 pixels of it at once. I knew at some point I wanted to let you see an overview of the part of space you&#8217;re in, a collection of vast gas clouds that I think is going to be called The Grove. But I wasn&#8217;t sure if this would have be a map mode or if we could zoom smoothly from one to the other. I&#8217;m still not sure if the latter is viable performance-wise, or even if it&#8217;s the right way to go,  and the galaxy is ugly at the moment, but for what it&#8217;s worth I made it and here it is: (CPU warning, mega-GFY!)<span id="more-7895"></span></p>
<div class="VideoWrapper" align="center"><iframe loading="lazy" src="http://gfycat.com/ifr/YearlySpottedBellfrog" frameborder="0" scrolling="no" width="1920" height="1080" style="-webkit-backface-visibility: hidden;-webkit-transform: scale(1);" align="center"></iframe></div>
<p>I tweeted about how I approached this as I went, here are those tweets:</p>
<div align="center">
<blockquote class="twitter-tweet" lang="en">
<p>Today I try Galactic Zoom!&#10;&#10;Attempt 1: make the room vast.&#10;Failure: room size only goes up to 1 trillion pixels.</p>
<p>&mdash; Heat Signature (@HeatSig) <a href="https://twitter.com/HeatSig/status/586816281892016128">April 11, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<blockquote class="twitter-tweet" lang="en">
<p>Attempt 2: change relative movement code to draw everything smaller and closer to the center for &#39;virtual zoom&#39;.&#10;Aborted: too much work.</p>
<p>&mdash; Heat Signature (@HeatSig) <a href="https://twitter.com/HeatSig/status/586816562906136576">April 11, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<blockquote class="twitter-tweet" lang="en">
<p>Attempt 3: just delete the bit of code I wrote that stops you zooming out further than the room size.&#10;&#10;Success!</p>
<p>&mdash; Heat Signature (@HeatSig) <a href="https://twitter.com/HeatSig/status/586816704984014850">April 11, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<blockquote class="twitter-tweet" lang="en">
<p>Game dev lesson: always give up at the slightest sign of difficult work.</p>
<p>&mdash; Heat Signature (@HeatSig) <a href="https://twitter.com/HeatSig/status/586816997788360704">April 11, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<blockquote class="twitter-tweet" lang="en">
<p>Also the answer was inside you all along. Because you wrote the code that&#39;s pointlessly screwing you.</p>
<p>&mdash; Heat Signature (@HeatSig) <a href="https://twitter.com/HeatSig/status/586817168471392258">April 11, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<blockquote class="twitter-tweet" lang="en">
<p>Looks like the inhabited part of <a href="https://twitter.com/HeatSig">@HeatSig</a>&#39;s universe will only need to be about 121 trillion pixels, and we can zoom as far as 5 quadrillion</p>
<p>&mdash; Heat Signature (@HeatSig) <a href="https://twitter.com/HeatSig/status/586822002092154880">April 11, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<blockquote class="twitter-tweet" lang="en">
<p>Gonna cheerily ignore the occasional dips to 15 fps during the zooming process.</p>
<p>&mdash; Heat Signature (@HeatSig) <a href="https://twitter.com/HeatSig/status/586822289708163072">April 11, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<blockquote class="twitter-tweet" lang="en">
<p>The flipside of &quot;Everything takes longer than you think&quot; in game development is that almost everything *adds* more than you think too.</p>
<p>&mdash; Heat Signature (@HeatSig) <a href="https://twitter.com/HeatSig/status/586916166972612609">April 11, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<blockquote class="twitter-tweet" lang="en">
<p>I knew zooming out further would feel cool, but now that I have some of it in place I&#39;m starting to realise how awesome it&#39;s going to be.</p>
<p>&mdash; Heat Signature (@HeatSig) <a href="https://twitter.com/HeatSig/status/586916415413817345">April 11, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>I also added actual heat signatures for the first time!</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signatures.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signatures.png" alt="Heat Signatures" width="1441" height="1013" class="aligncenter size-full wp-image-7903" srcset="https://www.pentadact.com/wp-content/Heat-Signatures.png 1441w, https://www.pentadact.com/wp-content/Heat-Signatures-178x125.png 178w, https://www.pentadact.com/wp-content/Heat-Signatures-500x351.png 500w, https://www.pentadact.com/wp-content/Heat-Signatures-1024x719.png 1024w" sizes="auto, (max-width: 1441px) 100vw, 1441px" /></a></p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-04-12-galactic-zoom-in-heat-signature/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>From Gunpoint To Heat Signature: A Narrative Journey</title>
		<link>https://www.pentadact.com/2015-04-01-from-gunpoint-to-heat-signature-a-narrative-journey/</link>
					<comments>https://www.pentadact.com/2015-04-01-from-gunpoint-to-heat-signature-a-narrative-journey/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Wed, 01 Apr 2015 17:12:01 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7887</guid>

					<description><![CDATA[Many of you have been asking how the story of Heat Signature follows on from Gunpoint. We can now explain.]]></description>
										<content:encoded><![CDATA[<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="https://www.youtube.com/embed/n6o36yDq0Jg" frameborder="0" allowfullscreen></iframe></div>
<p>Many of you have been asking how the story of Heat Signature follows on from Gunpoint. We can now explain.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-04-01-from-gunpoint-to-heat-signature-a-narrative-journey/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Detpacks</title>
		<link>https://www.pentadact.com/2015-02-24-detpacks/</link>
					<comments>https://www.pentadact.com/2015-02-24-detpacks/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Tue, 24 Feb 2015 16:20:55 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<category><![CDATA[GIFs]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7847</guid>

					<description><![CDATA[Today I added Detpacks to Heat Signature. Here is a Detpack: Detpack FAQ&#10;Q: Why does placing a detpack cause you to also fire your gun?&#10;A: This interview is over. &#8212; Heat Signature (@HeatSig) February 24, 2015]]></description>
										<content:encoded><![CDATA[<p>Today I added Detpacks to Heat Signature. Here is a Detpack:</p>
<div class="VideoWrapper"><iframe loading="lazy" src="http://gfycat.com/ifr/EnviousNeglectedHousefly" frameborder="0" scrolling="no" width="598" height="346" style="-webkit-backface-visibility: hidden;-webkit-transform: scale(1);"  align="center"></iframe></div>
<p><span id="more-7847"></span></p>
<blockquote class="twitter-tweet" lang="en" align="center">
<p>Detpack FAQ&#10;Q: Why does placing a detpack cause you to also fire your gun?&#10;A: This interview is over.</p>
<p>&mdash; Heat Signature (@HeatSig) <a href="https://twitter.com/HeatSig/status/570255574035800066">February 24, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-02-24-detpacks/feed/</wfw:commentRss>
			<slash:comments>24</slash:comments>
		
		
			</item>
		<item>
		<title>How To Find An Object&#8217;s DrawGUI Co-ordinates In Game Maker Studio With A Rotated View</title>
		<link>https://www.pentadact.com/2015-01-27-help-me-with-a-trigonometry-problem-for-heat-signature/</link>
					<comments>https://www.pentadact.com/2015-01-27-help-me-with-a-trigonometry-problem-for-heat-signature/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Tue, 27 Jan 2015 15:34:07 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7820</guid>

					<description><![CDATA[Update: This was originally a post to ask for help, but now that we&#8217;ve solved the problem I&#8217;m posting the solution for anyone who needs it, and changing the title to make it more searchable. It&#8217;s a function that lets you find where an object appears on-screen, so that you can use the DrawGUI event [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>Update:</strong> This was originally a post to ask for help, but now that we&#8217;ve solved the problem I&#8217;m posting the solution for anyone who needs it, and changing the title to make it more searchable. It&#8217;s a function that lets you find where an object appears on-screen, so that you can use the DrawGUI event to draw interface elements over it or annotate it, useful for tutorials. Original post follows, updates and working script at the end!<span id="more-7820"></span></p>
<p>I have a maths problem in Heat Signature that I can&#8217;t quite get my head around, so if you&#8217;re into trigonometry, read on and see if you can help me! I think I know all the rules I need to solve this, but I can never quite reframe the problem into something I recognise.</p>
<p>In Game Maker, everything the player can see on the screen at one time is called &#8216;the view&#8217;. The whole game world is called &#8216;the room&#8217;. In my game, the view moves around the room and also rotates, to follow the action. In the diagram, the whole image is the room, and the rotated black rectangle is the view: what the player sees.</p>
<p><a href="https://www.pentadact.com/wp-content/Finding-view-relative-co-ordinates.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Finding-view-relative-co-ordinates.png" alt="Finding view-relative co-ordinates" width="932" height="635" class="aligncenter size-full wp-image-7821" srcset="https://www.pentadact.com/wp-content/Finding-view-relative-co-ordinates.png 932w, https://www.pentadact.com/wp-content/Finding-view-relative-co-ordinates-178x121.png 178w, https://www.pentadact.com/wp-content/Finding-view-relative-co-ordinates-500x340.png 500w" sizes="auto, (max-width: 932px) 100vw, 932px" /></a></p>
<p>What I&#8217;m trying to do is find rx and ry: an object&#8217;s x and y co-ordinates relative to the screen, at its current position and rotation. I have every other piece of information:</p>
<ul>
<li>x and y, the co-ordinates of the object, relative to the upper left corner of the room.</li>
<li>vx and vy, the co-ordinates of the top left corner of the view</li>
<li>theta, the rotation of the view, measured in degrees from horizontal, going anti-clockwise.</li>
</ul>
<p>So, how do I combine those things to find rx and ry?</p>
<p>My usual method is to bash my head against these problems for a day or two, drawing endless diagrams and running tests and simulations in code. But lately I&#8217;ve realised how quickly some problems can be solved by just checking in with someone who already knows or finds it easy, so I&#8217;m trying that! Any help much appreciated.</p>
<p><strong>Update:</strong> Thanks for all the suggestions so far! It&#8217;s possible that my diagram implies some assumptions I didn&#8217;t intend. To be clear:</p>
<ul>
<li>y and vy are not the same, it&#8217;s just coincidence that they&#8217;re close here. No values mentioned are the same, related, or constrained by each other.</li>
<li>theta can range from 0 to 360, meaning the whole view could be upside down relative to the room.</li>
<li>vx and vy are the &#8216;top left&#8217; of the view when it&#8217;s at theta 0. <del datetime="2015-01-27T20:01:11+00:00">It rotates around that point as theta increases, meaning it could end up not being the top left.</del> I am mistaken about this! See below.</li>
<li>The object can be completely outside the view, we still want to know rx and ry even if they&#8217;re negative or larger than the view size.</li>
</ul>
<p>To illustrate the full shittiness of the problem, here&#8217;s another diagram this also has to solve:</p>
<p><a href="https://www.pentadact.com/wp-content/Finding-view-relative-co-ordinates-nightmare-mode.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Finding-view-relative-co-ordinates-nightmare-mode.png" alt="Finding view-relative co-ordinates nightmare mode" width="1092" height="675" class="aligncenter size-full wp-image-7828" srcset="https://www.pentadact.com/wp-content/Finding-view-relative-co-ordinates-nightmare-mode.png 1092w, https://www.pentadact.com/wp-content/Finding-view-relative-co-ordinates-nightmare-mode-178x110.png 178w, https://www.pentadact.com/wp-content/Finding-view-relative-co-ordinates-nightmare-mode-500x309.png 500w, https://www.pentadact.com/wp-content/Finding-view-relative-co-ordinates-nightmare-mode-1024x632.png 1024w" sizes="auto, (max-width: 1092px) 100vw, 1092px" /></a></p>
<p><strong>Update 2:</strong> The plot thickens! The reason nothing has worked for me so far is that I have misunderstood how the view rotates. vx and vy do stay the same as it rotates, BUT the rectangle itself rotates around its center! So for most angles, vx,vy is well outside the screen area! Bizarre! We still need rx,ry relative to what the player will see as the top left of the screen.</p>
<p>Of your many clever and much appreciated suggestions, the two I&#8217;ve had most success understanding and implementing are, roughly:</p>
<p><strong>The Andrew/Andrey &#8216;cos-sin&#8217; version</strong></p>
<p>xDifference = x &#8211; view_xview[0]<br />
yDifference = y &#8211; view_yview[0]<br />
Angle = view_angle[0] * -1</p>
<p>GUIx = (xDifference * dcos(Angle)) &#8211; (yDifference * dsin(Angle))<br />
GUIy = (xDifference * dsin(Angle)) + (yDifference * dcos(Angle))</p>
<p><strong>The Puzey/Varanas &#8216;arctan&#8217; version</strong></p>
<p>xDifference = x &#8211; view_xview[0]<br />
yDifference = y &#8211; view_yview[0]<br />
Distance = point_distance(0,0,xDifference,yDifference)<br />
Angle = darctan(yDifference/xDifference) &#8211; view_angle[0]</p>
<p>GUIx = Distance * dcos(Angle)<br />
GUIy = Distance * dsin(Angle)</p>
<p>These both work at view_angle[0] = 0, but drift in a circular way when the view is rotated, because it&#8217;s not rotating around the point I thought it was. The point it&#8217;s rotating around must be something like:<br />
view_xview[0] + (view_wview[0]/2)<br />
view_yview[0] + (view_hview[0]/2)<br />
But we still need co-ord relative to &#8216;the top left of the screen&#8217;, which is something I no longer even have a variable name for.</p>
<p>Now that I know this I might have a way of figuring it out, will update if I do so.</p>
<p><strong>Update 3:</strong> Got it! For anyone who needs it, here&#8217;s a rotation-proof function to find an object&#8217;s position in screen co-ordinates, for us in the Game Maker Studio&#8217;s DrawGUI function so you can draw HUD elements over it and annotate it and stuff. Now accounts for zoom too!</p>
<p>Thanks so much to everyone who helped!</p>
<p>var ViewCenterX = view_xview[0] + (view_wview[0]/2);<br />
var ViewCenterY = view_yview[0] + (view_hview[0]/2);<br />
var Zoom = view_wport[0] / view_wview[0];</p>
<p>var MyDistanceFromCenter = point_distance(ViewCenterX,ViewCenterY,x,y) * Zoom;<br />
var MyDirectionFromCenter = point_direction(ViewCenterX,ViewCenterY,x,y) + view_angle[0];</p>
<p>GUIx = (view_wport[0]/2) + lengthdir_x(MyDistanceFromCenter,MyDirectionFromCenter)<br />
GUIy = (view_hport[0]/2) + lengthdir_y(MyDistanceFromCenter,MyDirectionFromCenter)</p>
<p><strong>Update 4:</strong> One year later, I needed to do the reverse &#8211; find world co-ordinates from GUI co-ords. So here&#8217;s that, slightly more verbose to explain what&#8217;s happening:</p>
<p>var ScreenViewCenterX = view_wport / 2;<br />
var ScreenViewCenterY = view_hport / 2;<br />
var Zoom = view_wport[0] / view_wview[0];<br />
var MyDistanceFromScreenViewCenter = point_distance(ScreenViewCenterX,ScreenViewCenterY,GUIx,GUIy);<br />
var MyDirectionFromScreenViewCenter = point_direction(ScreenViewCenterX,ScreenViewCenterY,GUIx,GUIy);<br />
var MyDistanceFromWorldViewCenter = MyDistanceFromScreenViewCenter / Zoom;<br />
var MyDirectionFromWorldViewCenter = MyDirectionFromScreenViewCenter &#8211; view_angle;<br />
var WorldViewCenterX = view_xview + (view_wview / 2);<br />
var WorldViewCenterY = view_yview + (view_hview / 2);<br />
x = WorldViewCenterX + lengthdir_x(MyDistanceFromWorldViewCenter,MyDirectionFromWorldViewCenter)<br />
y = WorldViewCenterY + lengthdir_y(MyDistanceFromWorldViewCenter,MyDirectionFromWorldViewCenter)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2015-01-27-help-me-with-a-trigonometry-problem-for-heat-signature/feed/</wfw:commentRss>
			<slash:comments>21</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature, One Year Later</title>
		<link>https://www.pentadact.com/2014-12-01-heat-signature-one-year-later/</link>
					<comments>https://www.pentadact.com/2014-12-01-heat-signature-one-year-later/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Mon, 01 Dec 2014 20:16:17 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7727</guid>

					<description><![CDATA[I started making Heat Signature on December the 1st, 2013. I know this because I released the first video of it two days later. One year on, and the latest video shows how far it&#8217;s come. But I have to keep reminding myself it hasn&#8217;t been a year of work yet. When I started it, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I started making Heat Signature on December the 1st, 2013. I know this because I released the first video of it two days later.<span id="more-7727"></span></p>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube.com/embed/lrfRJZ6mOAU" frameborder="0" allowfullscreen></iframe></div>
<p>One year on, and the latest video shows how far it&#8217;s come.</p>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube.com/embed/ysEoAH9dT8A" frameborder="0" allowfullscreen></iframe></div>
<p>But I have to keep reminding myself it hasn&#8217;t been a year of work yet. When I started it, I was still torn between this and another project, a heist game using grappling hooks. In the year since I started Heat Signature, I have also:</p>
<ul>
<li><strong>Worked for about two months on that grappling hook heist game.</strong> The last two <a href="https://www.youtube.com/playlist?list=PLUtKzyIe0aB24aOwEbNcouCZYk2isONlf">dev log videos</a> I made for that show what I did on it in that time.</li>
<li>Took the grappling hook tech from the heist game and <strong><a href="https://www.pentadact.com/2014-06-10-floating-point-development-breakdown/">spent five weeks to make Floating Point</a></strong>, a peaceful game about swinging around elegantly, released on Steam for free.</li>
<li><strong><a href="https://www.pentadact.com/2014-04-02-the-bafta-games-awards/">Went to the BAFTA Games Awards</a></strong>: for Gunpoint, lost to some shitty car game.</li>
<li><strong>Collaborated with Natalie Hanke and Jukio Kallio to make <a href="https://www.pentadact.com/2014-06-07-distance-a-visual-short-story-for-the-space-cowboy-game-jam/">Distance</a></strong>, a short visual story piece for the Space Cowboy Game Jam.</li>
<li><strong><a href="https://www.pentadact.com/2014-10-23-our-super-game-jam-episode-is-out/">Collaborated with Liselore Goedhart to make SimAntics</a></strong>: a two-player competitive anteater licking simulator, where you steer a prehensile tongue with the mouse to lick up more ants than your opponent. Filmed and released as part of the Super Game Jam documentary.</li>
<li>In my &#8216;spare time&#8217;, <strong>knocked together <a href="https://www.youtube.com/playlist?list=PLUtKzyIe0aB0fg4vtXCRt3QKvCMNuo4Yg">a basic RTS-style framework</a></strong> for possible use in a civ-building game I&#8217;d like to try some day.</li>
<li>Wrote and successfully pitched an hour-long talk for next year&#8217;s GDC.</li>
</ul>
<p>And I&#8217;ve also done a bunch of Heat Signature related stuff other than the actual development:</p>
<ul>
<li><strong><a href="https://www.pentadact.com/2014-02-22-how-indiecade-went-for-heat-signature-and-the-grappling-hook-game/">IndieCade East</a>, New York:</strong> to show the heist game and Heat Sig.</li>
<li><strong>GDC, San Francisco:</strong> to show Heat Sig.</li>
<li><strong><a href="https://www.pentadact.com/2014-10-01-showing-heat-signature-at-fantastic-arcade-and-egx/">Fantastic Arcade</a>, Austin:</strong> to show and give a presentation of Heat Sig.</li>
<li><strong><a href="https://www.pentadact.com/2014-10-01-showing-heat-signature-at-fantastic-arcade-and-egx/">EGX</a>, London:</strong> to show Heat Sig.</li>
<li>Made <strong><a href="https://www.youtube.com/playlist?list=PLUtKzyIe0aB2I4e025z5OBzDyMt3HpewW">a bunch of videos</a></strong> about it.</li>
<li>Spent more than a month <strong>finding and reviewing applicants for the artist and composer positions</strong> on the team, and eventually making a decision on both.</li>
<li>With John, <strong>built <a href="http://www.heatsig.com/">a nice website</a></strong> for it.</li>
</ul>
<p>I&#8217;m listing all this mostly for myself, because I&#8217;m always haunted by this feeling that I&#8217;m not being productive enough, that I should have done more. When I write it all down, though, it seems like a lot.</p>
<p>I intentionally let myself wander a bit after Gunpoint, since that had taken three years of sustained focus to finish. And Heat Signature itself is actually the result of that: I let myself get distracted from the heist game to try it out, and it turned into something both cooler and easier to make.</p>
<p>When I started working on it properly, I had a time frame in mind. But right away, it started to stress me out. The scope would change or my ETAs for individual features would be off, and I&#8217;d start to feel like I was failing even though nothing had gone wrong. So now I don&#8217;t even have an internal release date, it&#8217;s just a thing I&#8217;ll work on as efficiently as possible, at least until it feels ready, and then until I feel like moving on. I&#8217;m having a great time doing that, so I&#8217;m not going to let anything spoil it.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-12-01-heat-signature-one-year-later/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
			</item>
		<item>
		<title>New Heat Signature Trailer Shows Art, Music, Wrenches And Guns</title>
		<link>https://www.pentadact.com/2014-11-19-new-heat-signature-trailer-shows-art-music-wrenches-and-guns/</link>
					<comments>https://www.pentadact.com/2014-11-19-new-heat-signature-trailer-shows-art-music-wrenches-and-guns/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Wed, 19 Nov 2014 18:11:06 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7722</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube.com/embed/ysEoAH9dT8A" frameborder="0" allowfullscreen></iframe></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-11-19-new-heat-signature-trailer-shows-art-music-wrenches-and-guns/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature Screenshots</title>
		<link>https://www.pentadact.com/2014-11-06-heat-signature-screenshots/</link>
					<comments>https://www.pentadact.com/2014-11-06-heat-signature-screenshots/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Thu, 06 Nov 2014 09:47:25 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7677</guid>

					<description><![CDATA[Here&#8217;s what Heat Signature looks like these days! The new art is by the multi-talented John Roberts, who also did art for our last game, Gunpoint. Next week I&#8217;ll put up a trailer to show all this in action. For those who haven&#8217;t seen it moving yet, there&#8217;s no break between inside and out: you [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Here&#8217;s what Heat Signature looks like these days! The new art is by the multi-talented John Roberts, who also did art for our last game, Gunpoint. Next week I&#8217;ll put up a trailer to show all this in action. For those who haven&#8217;t seen it moving yet, there&#8217;s no break between inside and out: you zoom smoothly from the scale of these interior shots to the big-scale space battles.</p>
<p>When I have new shots in future, I&#8217;ll add them on this page and take down any outdated ones. I&#8217;ll keep <strong>the first three as reasonably representative ones</strong>, then below them it&#8217;ll be newest-first. Everyone has permission to use these shots in any articles or videos, print or online, as long as you make it clear what game they&#8217;re from.<span id="more-7677"></span></p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Approach.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Approach.png" alt="Heat Signature Approach" width="1496" height="829" class="aligncenter size-full wp-image-8225" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Approach.png 1496w, https://www.pentadact.com/wp-content/Heat-Signature-Approach-178x99.png 178w, https://www.pentadact.com/wp-content/Heat-Signature-Approach-500x277.png 500w, https://www.pentadact.com/wp-content/Heat-Signature-Approach-1024x567.png 1024w" sizes="auto, (max-width: 1496px) 100vw, 1496px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-10-21-21-46-58-92.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7689" src="https://www.pentadact.com/wp-content/Runner-2014-10-21-21-46-58-92.png" alt="Runner 2014-10-21 21-46-58-92" width="1360" height="768" srcset="https://www.pentadact.com/wp-content/Runner-2014-10-21-21-46-58-92.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-10-21-21-46-58-92-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-10-21-21-46-58-92-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-10-21-21-46-58-92-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Open-Area.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Open-Area.png" alt="Heat Signature Open Area" width="1920" height="1080" class="aligncenter size-full wp-image-8224" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Open-Area.png 1920w, https://www.pentadact.com/wp-content/Heat-Signature-Open-Area-178x100.png 178w, https://www.pentadact.com/wp-content/Heat-Signature-Open-Area-500x281.png 500w, https://www.pentadact.com/wp-content/Heat-Signature-Open-Area-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/GoD-Peach.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/GoD-Peach.png" alt="GoD Peach" width="1920" height="1080" class="aligncenter size-full wp-image-8423" srcset="https://www.pentadact.com/wp-content/GoD-Peach.png 1920w, https://www.pentadact.com/wp-content/GoD-Peach-178x100.png 178w, https://www.pentadact.com/wp-content/GoD-Peach-500x281.png 500w, https://www.pentadact.com/wp-content/GoD-Peach-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Galaxy-Fade-Green.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Galaxy-Fade-Green.png" alt="Galaxy Fade Green" width="973" height="1015" class="aligncenter size-full wp-image-8426" srcset="https://www.pentadact.com/wp-content/Galaxy-Fade-Green.png 973w, https://www.pentadact.com/wp-content/Galaxy-Fade-Green-178x186.png 178w, https://www.pentadact.com/wp-content/Galaxy-Fade-Green-500x522.png 500w" sizes="auto, (max-width: 973px) 100vw, 973px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-11-01-19-20-09-00.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7691" src="https://www.pentadact.com/wp-content/Runner-2014-11-01-19-20-09-00.png" alt="Runner 2014-11-01 19-20-09-00" width="1360" height="768" srcset="https://www.pentadact.com/wp-content/Runner-2014-11-01-19-20-09-00.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-11-01-19-20-09-00-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-11-01-19-20-09-00-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-11-01-19-20-09-00-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Orange-aqua-galaxy.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Orange-aqua-galaxy.png" alt="Orange aqua galaxy" width="1920" height="1080" class="aligncenter size-full wp-image-8420" srcset="https://www.pentadact.com/wp-content/Orange-aqua-galaxy.png 1920w, https://www.pentadact.com/wp-content/Orange-aqua-galaxy-178x100.png 178w, https://www.pentadact.com/wp-content/Orange-aqua-galaxy-500x281.png 500w, https://www.pentadact.com/wp-content/Orange-aqua-galaxy-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Salmon-constellation.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Salmon-constellation.png" alt="Salmon constellation" width="1920" height="1080" class="aligncenter size-full wp-image-8419" srcset="https://www.pentadact.com/wp-content/Salmon-constellation.png 1920w, https://www.pentadact.com/wp-content/Salmon-constellation-178x100.png 178w, https://www.pentadact.com/wp-content/Salmon-constellation-500x281.png 500w, https://www.pentadact.com/wp-content/Salmon-constellation-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Blue-Ship.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7678" src="https://www.pentadact.com/wp-content/Blue-Ship.png" alt="Blue Ship" width="1360" height="768" srcset="https://www.pentadact.com/wp-content/Blue-Ship.png 1360w, https://www.pentadact.com/wp-content/Blue-Ship-178x100.png 178w, https://www.pentadact.com/wp-content/Blue-Ship-500x282.png 500w, https://www.pentadact.com/wp-content/Blue-Ship-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Red-Offworld.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Red-Offworld.png" alt="Red Offworld" width="1920" height="1080" class="aligncenter size-full wp-image-8418" srcset="https://www.pentadact.com/wp-content/Red-Offworld.png 1920w, https://www.pentadact.com/wp-content/Red-Offworld-178x100.png 178w, https://www.pentadact.com/wp-content/Red-Offworld-500x281.png 500w, https://www.pentadact.com/wp-content/Red-Offworld-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Blue-pink-thrust.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Blue-pink-thrust.png" alt="Blue pink thrust" width="1920" height="1080" class="aligncenter size-full wp-image-8421" srcset="https://www.pentadact.com/wp-content/Blue-pink-thrust.png 1920w, https://www.pentadact.com/wp-content/Blue-pink-thrust-178x100.png 178w, https://www.pentadact.com/wp-content/Blue-pink-thrust-500x281.png 500w, https://www.pentadact.com/wp-content/Blue-pink-thrust-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Screenshot-Saturday-Hijacking.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7692" src="https://www.pentadact.com/wp-content/Screenshot-Saturday-Hijacking.png" alt="Screenshot Saturday - Hijacking" width="1360" height="768" srcset="https://www.pentadact.com/wp-content/Screenshot-Saturday-Hijacking.png 1360w, https://www.pentadact.com/wp-content/Screenshot-Saturday-Hijacking-178x100.png 178w, https://www.pentadact.com/wp-content/Screenshot-Saturday-Hijacking-500x282.png 500w, https://www.pentadact.com/wp-content/Screenshot-Saturday-Hijacking-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Galaxy-Fade-Purple.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Galaxy-Fade-Purple.png" alt="Galaxy Fade Purple" width="915" height="1014" class="aligncenter size-full wp-image-8425" srcset="https://www.pentadact.com/wp-content/Galaxy-Fade-Purple.png 915w, https://www.pentadact.com/wp-content/Galaxy-Fade-Purple-178x197.png 178w, https://www.pentadact.com/wp-content/Galaxy-Fade-Purple-500x554.png 500w" sizes="auto, (max-width: 915px) 100vw, 915px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/GoD-Green.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/GoD-Green.png" alt="GoD Green" width="1338" height="997" class="aligncenter size-full wp-image-8424" srcset="https://www.pentadact.com/wp-content/GoD-Green.png 1338w, https://www.pentadact.com/wp-content/GoD-Green-178x133.png 178w, https://www.pentadact.com/wp-content/GoD-Green-500x373.png 500w, https://www.pentadact.com/wp-content/GoD-Green-1024x763.png 1024w" sizes="auto, (max-width: 1338px) 100vw, 1338px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-10-12-16-56-18-25.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7682" src="https://www.pentadact.com/wp-content/Runner-2014-10-12-16-56-18-25.png" alt="Runner 2014-10-12 16-56-18-25" width="1360" height="768" srcset="https://www.pentadact.com/wp-content/Runner-2014-10-12-16-56-18-25.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-10-12-16-56-18-25-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-10-12-16-56-18-25-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-10-12-16-56-18-25-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-10-15-16-09-08-20.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7684" src="https://www.pentadact.com/wp-content/Runner-2014-10-15-16-09-08-20.png" alt="Runner 2014-10-15 16-09-08-20" width="1360" height="768" srcset="https://www.pentadact.com/wp-content/Runner-2014-10-15-16-09-08-20.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-10-15-16-09-08-20-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-10-15-16-09-08-20-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-10-15-16-09-08-20-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Board-Ships-Dead1.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Board-Ships-Dead1.png" alt="Board-Ships-Dead" width="1360" height="768" class="aligncenter size-full wp-image-7706" srcset="https://www.pentadact.com/wp-content/Board-Ships-Dead1.png 1360w, https://www.pentadact.com/wp-content/Board-Ships-Dead1-178x100.png 178w, https://www.pentadact.com/wp-content/Board-Ships-Dead1-500x282.png 500w, https://www.pentadact.com/wp-content/Board-Ships-Dead1-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-10-15-16-23-22-27.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7685" src="https://www.pentadact.com/wp-content/Runner-2014-10-15-16-23-22-27.png" alt="Runner 2014-10-15 16-23-22-27" width="1360" height="768" srcset="https://www.pentadact.com/wp-content/Runner-2014-10-15-16-23-22-27.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-10-15-16-23-22-27-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-10-15-16-23-22-27-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-10-15-16-23-22-27-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-10-18-18-33-55-18.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7686" src="https://www.pentadact.com/wp-content/Runner-2014-10-18-18-33-55-18.png" alt="Runner 2014-10-18 18-33-55-18" width="1360" height="768" srcset="https://www.pentadact.com/wp-content/Runner-2014-10-18-18-33-55-18.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-10-18-18-33-55-18-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-10-18-18-33-55-18-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-10-18-18-33-55-18-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-10-21-16-14-03-64.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7688" src="https://www.pentadact.com/wp-content/Runner-2014-10-21-16-14-03-64.png" alt="Runner 2014-10-21 16-14-03-64" width="1360" height="768" srcset="https://www.pentadact.com/wp-content/Runner-2014-10-21-16-14-03-64.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-10-21-16-14-03-64-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-10-21-16-14-03-64-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-10-21-16-14-03-64-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-11-08-14-22-57-48.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2014-11-08-14-22-57-48.png" alt="Runner 2014-11-08 14-22-57-48" width="1360" height="768" class="aligncenter size-full wp-image-7712" srcset="https://www.pentadact.com/wp-content/Runner-2014-11-08-14-22-57-48.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-11-08-14-22-57-48-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-11-08-14-22-57-48-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-11-08-14-22-57-48-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-44-59-12.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-44-59-12.png" alt="Runner 2014-11-08 18-44-59-12" width="1360" height="768" class="aligncenter size-full wp-image-7713" srcset="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-44-59-12.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-44-59-12-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-44-59-12-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-44-59-12-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-03-16.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-03-16.png" alt="Runner 2014-11-08 18-45-03-16" width="1360" height="768" class="aligncenter size-full wp-image-7714" srcset="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-03-16.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-03-16-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-03-16-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-03-16-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-11-70.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-11-70.png" alt="Runner 2014-11-08 18-45-11-70" width="1360" height="768" class="aligncenter size-full wp-image-7715" srcset="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-11-70.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-11-70-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-11-70-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-45-11-70-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-46-29-92.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-46-29-92.png" alt="Runner 2014-11-08 18-46-29-92" width="1360" height="768" class="aligncenter size-full wp-image-7716" srcset="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-46-29-92.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-46-29-92-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-46-29-92-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-46-29-92-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-48-00-03.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-48-00-03.png" alt="Runner 2014-11-08 18-48-00-03" width="1360" height="768" class="aligncenter size-full wp-image-7717" srcset="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-48-00-03.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-48-00-03-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-48-00-03-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-48-00-03-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-51-07-09.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-51-07-09.png" alt="Runner 2014-11-08 18-51-07-09" width="1360" height="768" class="aligncenter size-full wp-image-7719" srcset="https://www.pentadact.com/wp-content/Runner-2014-11-08-18-51-07-09.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-51-07-09-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-51-07-09-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-11-08-18-51-07-09-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2014-11-08-19-41-16-28.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2014-11-08-19-41-16-28.png" alt="Runner 2014-11-08 19-41-16-28" width="1360" height="768" class="aligncenter size-full wp-image-7720" srcset="https://www.pentadact.com/wp-content/Runner-2014-11-08-19-41-16-28.png 1360w, https://www.pentadact.com/wp-content/Runner-2014-11-08-19-41-16-28-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2014-11-08-19-41-16-28-500x282.png 500w, https://www.pentadact.com/wp-content/Runner-2014-11-08-19-41-16-28-1024x578.png 1024w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-02-09-15-03-30-09.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-02-09-15-03-30-09.png" alt="Runner 2015-02-09 15-03-30-09" width="1920" height="1080" class="aligncenter size-full wp-image-7842" srcset="https://www.pentadact.com/wp-content/Runner-2015-02-09-15-03-30-09.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-02-09-15-03-30-09-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-02-09-15-03-30-09-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-02-09-15-03-30-09-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-02-10-14-32-05-63.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-02-10-14-32-05-63.png" alt="Runner 2015-02-10 14-32-05-63" width="1920" height="1080" class="aligncenter size-full wp-image-7843" srcset="https://www.pentadact.com/wp-content/Runner-2015-02-10-14-32-05-63.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-02-10-14-32-05-63-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-02-10-14-32-05-63-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-02-10-14-32-05-63-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-02-10-15-00-33-10.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-02-10-15-00-33-10.png" alt="Runner 2015-02-10 15-00-33-10" width="1920" height="1080" class="aligncenter size-full wp-image-7844" srcset="https://www.pentadact.com/wp-content/Runner-2015-02-10-15-00-33-10.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-02-10-15-00-33-10-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-02-10-15-00-33-10-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-02-10-15-00-33-10-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-02-10-15-11-03-72.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-02-10-15-11-03-72.png" alt="Runner 2015-02-10 15-11-03-72" width="1920" height="1080" class="aligncenter size-full wp-image-7845" srcset="https://www.pentadact.com/wp-content/Runner-2015-02-10-15-11-03-72.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-02-10-15-11-03-72-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-02-10-15-11-03-72-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-02-10-15-11-03-72-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-04-30-17-49-51-47.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-04-30-17-49-51-47.png" alt="Runner 2015-04-30 17-49-51-47" width="1920" height="1080" class="aligncenter size-full wp-image-7945" srcset="https://www.pentadact.com/wp-content/Runner-2015-04-30-17-49-51-47.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-04-30-17-49-51-47-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-04-30-17-49-51-47-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-04-30-17-49-51-47-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-04-30-17-36-00-74.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-04-30-17-36-00-74.png" alt="Runner 2015-04-30 17-36-00-74" width="1920" height="1080" class="aligncenter size-full wp-image-7944" srcset="https://www.pentadact.com/wp-content/Runner-2015-04-30-17-36-00-74.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-04-30-17-36-00-74-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-04-30-17-36-00-74-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-04-30-17-36-00-74-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-04-30-16-37-05-89.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-04-30-16-37-05-89.png" alt="Runner 2015-04-30 16-37-05-89" width="1920" height="1080" class="aligncenter size-full wp-image-7942" srcset="https://www.pentadact.com/wp-content/Runner-2015-04-30-16-37-05-89.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-04-30-16-37-05-89-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-04-30-16-37-05-89-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-04-30-16-37-05-89-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-04-30-12-06-39-49.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-04-30-12-06-39-49.png" alt="Runner 2015-04-30 12-06-39-49" width="862" height="836" class="aligncenter size-full wp-image-7933" srcset="https://www.pentadact.com/wp-content/Runner-2015-04-30-12-06-39-49.png 862w, https://www.pentadact.com/wp-content/Runner-2015-04-30-12-06-39-49-178x172.png 178w, https://www.pentadact.com/wp-content/Runner-2015-04-30-12-06-39-49-500x484.png 500w" sizes="auto, (max-width: 862px) 100vw, 862px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-04-30-12-59-53-61.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-04-30-12-59-53-61.png" alt="Runner 2015-04-30 12-59-53-61" width="931" height="884" class="aligncenter size-full wp-image-7937" srcset="https://www.pentadact.com/wp-content/Runner-2015-04-30-12-59-53-61.png 931w, https://www.pentadact.com/wp-content/Runner-2015-04-30-12-59-53-61-178x169.png 178w, https://www.pentadact.com/wp-content/Runner-2015-04-30-12-59-53-61-500x474.png 500w" sizes="auto, (max-width: 931px) 100vw, 931px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-04-30-10-06-52-61.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-04-30-10-06-52-61.png" alt="Runner 2015-04-30 10-06-52-61" width="1216" height="991" class="aligncenter size-full wp-image-7928" srcset="https://www.pentadact.com/wp-content/Runner-2015-04-30-10-06-52-61.png 1216w, https://www.pentadact.com/wp-content/Runner-2015-04-30-10-06-52-61-178x145.png 178w, https://www.pentadact.com/wp-content/Runner-2015-04-30-10-06-52-61-500x407.png 500w, https://www.pentadact.com/wp-content/Runner-2015-04-30-10-06-52-61-1024x834.png 1024w" sizes="auto, (max-width: 1216px) 100vw, 1216px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-04-29-14-48-49-30.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-04-29-14-48-49-30.png" alt="Runner 2015-04-29 14-48-49-30" width="1301" height="961" class="aligncenter size-full wp-image-7920" srcset="https://www.pentadact.com/wp-content/Runner-2015-04-29-14-48-49-30.png 1301w, https://www.pentadact.com/wp-content/Runner-2015-04-29-14-48-49-30-178x131.png 178w, https://www.pentadact.com/wp-content/Runner-2015-04-29-14-48-49-30-500x369.png 500w, https://www.pentadact.com/wp-content/Runner-2015-04-29-14-48-49-30-1024x756.png 1024w" sizes="auto, (max-width: 1301px) 100vw, 1301px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-05-03-13-39-47-20-pink.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-05-03-13-39-47-20-pink.png" alt="Runner 2015-05-03 13-39-47-20 pink" width="1920" height="1080" class="aligncenter size-full wp-image-7954" srcset="https://www.pentadact.com/wp-content/Runner-2015-05-03-13-39-47-20-pink.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-05-03-13-39-47-20-pink-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-05-03-13-39-47-20-pink-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-05-03-13-39-47-20-pink-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-05-03-18-37-37-69-orange.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-05-03-18-37-37-69-orange.png" alt="Runner 2015-05-03 18-37-37-69 orange" width="1920" height="1080" class="aligncenter size-full wp-image-7955" srcset="https://www.pentadact.com/wp-content/Runner-2015-05-03-18-37-37-69-orange.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-05-03-18-37-37-69-orange-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-05-03-18-37-37-69-orange-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-05-03-18-37-37-69-orange-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Runner-2015-05-08-20-24-53-15-green.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Runner-2015-05-08-20-24-53-15-green.png" alt="Runner 2015-05-08 20-24-53-15 green" width="1920" height="1080" class="aligncenter size-full wp-image-7956" srcset="https://www.pentadact.com/wp-content/Runner-2015-05-08-20-24-53-15-green.png 1920w, https://www.pentadact.com/wp-content/Runner-2015-05-08-20-24-53-15-green-178x100.png 178w, https://www.pentadact.com/wp-content/Runner-2015-05-08-20-24-53-15-green-500x281.png 500w, https://www.pentadact.com/wp-content/Runner-2015-05-08-20-24-53-15-green-1024x576.png 1024w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Wrenched-Full.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Wrenched-Full.jpg" alt="Wrenched Full" width="1440" height="900" class="aligncenter size-full wp-image-8028" srcset="https://www.pentadact.com/wp-content/Wrenched-Full.jpg 1440w, https://www.pentadact.com/wp-content/Wrenched-Full-178x111.jpg 178w, https://www.pentadact.com/wp-content/Wrenched-Full-500x313.jpg 500w, https://www.pentadact.com/wp-content/Wrenched-Full-1024x640.jpg 1024w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-11-06-heat-signature-screenshots/feed/</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature Trailers</title>
		<link>https://www.pentadact.com/2014-11-05-heat-signature-trailers/</link>
					<comments>https://www.pentadact.com/2014-11-05-heat-signature-trailers/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Wed, 05 Nov 2014 10:43:16 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7675</guid>

					<description><![CDATA[I think if I embed a YouTube playlist, I can make this post always show the latest Heat Signature trailer even when I change it in future.]]></description>
										<content:encoded><![CDATA[<p>I think if I embed a YouTube playlist, I can make this post always show the latest Heat Signature trailer even when I change it in future.</p>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube.com/embed/videoseries?list=PLUtKzyIe0aB1PVemINMRAPIUxXqVzQdIx" frameborder="0" allowfullscreen></iframe></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-11-05-heat-signature-trailers/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Help Me Learn Finite State Machines For Guard AI In Heat Signature</title>
		<link>https://www.pentadact.com/2014-10-09-help-me-learn-finite-state-machines-for-guard-ai-in-heat-signature/</link>
					<comments>https://www.pentadact.com/2014-10-09-help-me-learn-finite-state-machines-for-guard-ai-in-heat-signature/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Thu, 09 Oct 2014 20:09:03 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7569</guid>

					<description><![CDATA[I have long known that &#8216;Finite State Machines&#8217; are a thing I should be using, but when I try to read up on them, the explanations are either hopelessly vague or incredibly specific to a language and situation I don&#8217;t understand. I whined to Mike Cook about this, and he said something to the effect [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I have long known that &#8216;Finite State Machines&#8217; are a thing I should be using, but when I try to read up on them, the explanations are either hopelessly vague or incredibly specific to a language and situation I don&#8217;t understand.</p>
<p>I whined to Mike Cook about this, and he said something to the effect of, &#8220;When you read up about Finite State Machines, it sounds like they&#8217;re this one specific agreed-upon thing, but every time you talk to an actual programmer about them you&#8217;ll get a different version of what they are.&#8221;</p>
<p>But! I am determined to try them in Heat Signature, and I have just reached that point where there&#8217;s enough AI an animation stuff going on that I need some kind of system to manage it. So I&#8217;m going to explain how I plan to use one, and if you&#8217;re a programmer, perhaps you can warn me of any problems I&#8217;m making for myself.</p>
<p>If you&#8217;re not, or if you&#8217;re learning, maybe you&#8217;ll get something out of how hopelessly I&#8217;ve failed at this so far.<span id="more-7569"></span></p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/5005328528_867bd8e88a_o.png" alt="5005328528_867bd8e88a_o" width="500" height="223" class="aligncenter size-full wp-image-7581" srcset="https://www.pentadact.com/wp-content/5005328528_867bd8e88a_o.png 500w, https://www.pentadact.com/wp-content/5005328528_867bd8e88a_o-178x79.png 178w" sizes="auto, (max-width: 500px) 100vw, 500px" /></p>
<h5>How I Did It In Gunpoint</h5>
<p>Guards did have a &#8216;State&#8217; variable in Gunpoint, which I&#8217;d set to things like &#8216;Patrolling&#8217; or &#8216;Preparing to fire&#8217;. But every time I wanted to change state, I&#8217;d have to check against all the possible states that should ignore this change. That was a pain, because every time I added a new state, lots of code in lots of different places needed to change.</p>
<p>Example: When a guard sees the player, he should go into the &#8216;Preparing to fire&#8217; state. Oh, unless State = &#8220;Dead&#8221;. Then later, when I added a separate &#8220;Unconscious&#8221; state, I&#8217;d have to find all the places I made an exception for &#8220;Dead&#8221; and also add one for &#8220;Unconscious&#8221;.</p>
<p>I tried to alleviate this by having extra variables for broader concepts like &#8220;Mobility&#8221; &#8211; if the guard can&#8217;t move, I don&#8217;t care if it&#8217;s because he&#8217;s dead or unconscious or held down by the player, he shouldn&#8217;t run to investigate noises.</p>
<p>The problem was that I had to remember to add &#8220;Mobility = false&#8221; to all the different places that might set a guard&#8217;s state to &#8220;Dead&#8221; or &#8220;Unconscious&#8221;. And the more properties like that I added, the messier it got.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Guards-Knocked-Out.png" alt="Heat Signature Guards Knocked Out" width="1107" height="575" class="aligncenter size-full wp-image-7584" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Guards-Knocked-Out.png 1107w, https://www.pentadact.com/wp-content/Heat-Signature-Guards-Knocked-Out-178x92.png 178w, https://www.pentadact.com/wp-content/Heat-Signature-Guards-Knocked-Out-500x259.png 500w, https://www.pentadact.com/wp-content/Heat-Signature-Guards-Knocked-Out-1024x531.png 1024w" sizes="auto, (max-width: 1107px) 100vw, 1107px" /></p>
<h5>What I&#8217;m Planning For Heat Signature</h5>
<p>Clearly, the problem boiled down to &#8220;Given our current state, can we change to new state X?&#8221; There will always be special case exceptions to that, so my attempt to boil things down into broader concepts like &#8216;Mobility&#8217; would never be a full solution by itself. So I think for each state, there will have to be a list of states we can&#8217;t change to from there.</p>
<p>What would be helpful, though, was if there was only one such list for each state. Only one place in the code where we define those exceptions. It&#8217;ll still need maintaining and updating as the possible states and transitions change, but just the once. Then it would be much easier to maintain and the complexity wouldn&#8217;t increase when we called it from more and more different places in the code.</p>
<p>It could also set any useful broader variables like &#8216;Mobility&#8217;, and as long as it&#8217;s the only bit of code that ever changes state, we can be sure that those will always be set consistently for any given state we&#8217;re changing to. Every time we change to Dead, for example, it&#8217;ll always be this piece of code that runs it, so if it says &#8216;Mobility = false&#8217;, there&#8217;s no way we can ever die with our Mobility flag on, something our grandparents warned us against.</p>
<p>So specifically, I&#8217;m thinking of a function that says something like this:</p>
<h5> ChangeEnemyState(NewState)</h5>
<p><font face = "Courier New">//See if we should change state</font></p>
<p>if State = &#8220;Sitting&#8221; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;//No exceptions, always change regardless of new state<br />
&nbsp;&nbsp;&nbsp;&nbsp;State = NewState<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
} else if State = &#8220;Dead&#8221; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;//No valid transitions, ignore<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
} else if State = &#8220;Unconscious&#8221; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if NewState = &#8220;Dead&#8221; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;State = NewState<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>}</p>
<p>//Set properties of new state (regardless of whether we changed)</p>
<p>if State = &#8220;Sitting&#8221; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Moving = false&nbsp;&nbsp;&nbsp;&nbsp;//Not moving<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mobility = true&nbsp;&nbsp;&nbsp;&nbsp;//Can move if we need to<br />
&nbsp;&nbsp;&nbsp;&nbsp;Shootable = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
} else if State = &#8220;Dead&#8221; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;Moving = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mobility = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;Shootable = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
} else if State = &#8220;Unconscious&#8221; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;Moving = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mobility = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;Shootable = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
}<br />
</p>
<p>Does that make sense? Any problems I&#8217;m going to run into? Is that a Finite State Machine?</p>
<p><strong>Edit:</strong> Thanks everyone! I have a much better idea of how they&#8217;re meant to work now. Lots of different implementations suggested, so I&#8217;ll pick the bits that make the most sense to me and that I already know how to do in Game Maker Language.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-10-09-help-me-learn-finite-state-machines-for-guard-ai-in-heat-signature/feed/</wfw:commentRss>
			<slash:comments>48</slash:comments>
		
		
			</item>
		<item>
		<title>Showing Heat Signature At Fantastic Arcade And EGX</title>
		<link>https://www.pentadact.com/2014-10-01-showing-heat-signature-at-fantastic-arcade-and-egx/</link>
					<comments>https://www.pentadact.com/2014-10-01-showing-heat-signature-at-fantastic-arcade-and-egx/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Wed, 01 Oct 2014 21:01:08 +0000</pubDate>
				<category><![CDATA[Feature]]></category>
		<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7532</guid>

					<description><![CDATA[I&#8217;ve been away the last two weeks, showing Heat Signature first at Fantastic Arcade in Austin, then at EGX in London. I&#8217;ll show you what that all looked like below, but first I&#8217;ll embed my EGX talk so you can play that and look at the photos during the boring bits. From about 5 minutes [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve been away the last two weeks, showing Heat Signature first at Fantastic Arcade in Austin, then at EGX in London. I&#8217;ll show you what that all looked like below, but first I&#8217;ll embed my EGX talk so you can play that and look at the photos during the boring bits. From about 5 minutes in, you can see Heat Signature with some of the new art and music.<span id="more-7532"></span></p>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube.com/embed/JkGswmXgDgs" frameborder="0" allowfullscreen></iframe></div>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-17-21.52.54.jpg" alt="2014-09-17 21.52.54" width="3264" height="2448" class="aligncenter size-full wp-image-7533" srcset="https://www.pentadact.com/wp-content/2014-09-17-21.52.54.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-17-21.52.54-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-17-21.52.54-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-17-21.52.54-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>First night in Austin, met up with fellow Brit and Sokobond co-creator Alan Hazelden for a drink at CU29, appropriately named for the atomic number of copper (Sokobond is about atoms). This is a &#8216;Mexican Coffee&#8217;, which involves setting fire to orange peel. It was goddamn great.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Bx_00IMCEAE0rT1.jpg" alt="Bx_00IMCEAE0rT1" width="1024" height="768" class="aligncenter size-full wp-image-7550" srcset="https://www.pentadact.com/wp-content/Bx_00IMCEAE0rT1.jpg 1024w, https://www.pentadact.com/wp-content/Bx_00IMCEAE0rT1-178x133.jpg 178w, https://www.pentadact.com/wp-content/Bx_00IMCEAE0rT1-500x375.jpg 500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>This was the rather different setup for my rather similar presentation at Fantastic Arcade, in a bar. This trip was my first time doing something on stage with no preparation or script, in a randomised game, so it was nice to do it in a more relaxed atmosphere at Fantastic before going up in front of a larger and more captive audience at EGX. <a href="https://twitter.com/brandonnn/status/513398059653292032">Pic by Brandon Boyer</a>.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-19-14.35.29.jpg" alt="2014-09-19 14.35.29" width="3264" height="2448" class="aligncenter size-full wp-image-7534" srcset="https://www.pentadact.com/wp-content/2014-09-19-14.35.29.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-19-14.35.29-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-19-14.35.29-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-19-14.35.29-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>Typically if the screen is indistinguishably white they&#8217;re playing SimAntics, and if it&#8217;s indistinguishably black they&#8217;re playing Heat Signature.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-20-17.07.30.jpg" alt="2014-09-20 17.07.30" width="2448" height="3264" class="aligncenter size-full wp-image-7535" srcset="https://www.pentadact.com/wp-content/2014-09-20-17.07.30.jpg 2448w, https://www.pentadact.com/wp-content/2014-09-20-17.07.30-178x237.jpg 178w, https://www.pentadact.com/wp-content/2014-09-20-17.07.30-500x666.jpg 500w, https://www.pentadact.com/wp-content/2014-09-20-17.07.30-768x1024.jpg 768w" sizes="auto, (max-width: 2448px) 100vw, 2448px" /></p>
<p>Half of Fantastic Arcade happens in an Alamo Drafthouse theatre, where they bring food and drink to your seat. Me and a new friend who works at Blizzard drank boozy milkshakes and watched the N++ tournament, which is <a href="https://www.youtube.com/watch?v=hXdETgJODdw">one of the best spectator sports</a>.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-21-09.08.35.jpg" alt="2014-09-21 09.08.35" width="3264" height="2448" class="aligncenter size-full wp-image-7536" srcset="https://www.pentadact.com/wp-content/2014-09-21-09.08.35.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-21-09.08.35-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-21-09.08.35-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-21-09.08.35-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-21-14.27.40-HDR.jpg" alt="2014-09-21 14.27.40 HDR" width="3264" height="2448" class="aligncenter size-full wp-image-7537" srcset="https://www.pentadact.com/wp-content/2014-09-21-14.27.40-HDR.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-21-14.27.40-HDR-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-21-14.27.40-HDR-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-21-14.27.40-HDR-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>Robin Arnott and Alexander Bruce play SimAntics, the game Liselore Goedhart and I made for the Super Game Jam. Our SGJ episode was meant to screen in the giant theatre, but unfortunately wasn&#8217;t ready in time.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/ByGRzlrCAAA3Rt7.jpg" alt="ByGRzlrCAAA3Rt7" width="1024" height="1024" class="aligncenter size-full wp-image-7552" srcset="https://www.pentadact.com/wp-content/ByGRzlrCAAA3Rt7.jpg 1024w, https://www.pentadact.com/wp-content/ByGRzlrCAAA3Rt7-178x178.jpg 178w, https://www.pentadact.com/wp-content/ByGRzlrCAAA3Rt7-500x500.jpg 500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>Luftrauser&#8217;s composer and Life on a Mountain creator <a href="https://twitter.com/jukiokallio/status/513852154579128320">Jukio Kallio</a> and I. Jukio and I worked with Natalie Hanke on Distance.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-21-23.08.39.jpg" alt="2014-09-21 23.08.39" width="3264" height="2448" class="aligncenter size-full wp-image-7538" srcset="https://www.pentadact.com/wp-content/2014-09-21-23.08.39.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-21-23.08.39-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-21-23.08.39-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-21-23.08.39-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>Jukio DJ&#8217;ing the Fantastic Arcade closing party as Kozilek, with Fernando Ramallo on visuals.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-22-21.20.21-HDR.jpg" alt="2014-09-22 21.20.21 HDR" width="3264" height="2448" class="aligncenter size-full wp-image-7539" srcset="https://www.pentadact.com/wp-content/2014-09-22-21.20.21-HDR.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-22-21.20.21-HDR-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-22-21.20.21-HDR-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-22-21.20.21-HDR-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>Instead of rushing back to get home for 1 day before having to go to EGX, I stayed in Austin to watch the new Ghibli film (pretty good) and The Stranger (awful), and join some friends for a trip to the Salt Lick (pictured), which had sent at least one of them into surgery previously.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-23-11.22.34.jpg" alt="2014-09-23 11.22.34" width="3264" height="2448" class="aligncenter size-full wp-image-7540" srcset="https://www.pentadact.com/wp-content/2014-09-23-11.22.34.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-23-11.22.34-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-23-11.22.34-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-23-11.22.34-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>Bacon and maple donut at Gourdoughs, a thing I was determined to try before leaving Austin. It was soft and crispy and a massive mistake.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-25-09.50.53.jpg" alt="2014-09-25 09.50.53" width="3264" height="2448" class="aligncenter size-full wp-image-7541" srcset="https://www.pentadact.com/wp-content/2014-09-25-09.50.53.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-25-09.50.53-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-25-09.50.53-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-25-09.50.53-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>EGX.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-25-11.56.54.jpg" alt="2014-09-25 11.56.54" width="3264" height="2448" class="aligncenter size-full wp-image-7542" srcset="https://www.pentadact.com/wp-content/2014-09-25-11.56.54.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-25-11.56.54-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-25-11.56.54-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-25-11.56.54-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>I patched Heat Signature while I watched people play, trying to address usability issues quickly enough to see whether my fixes worked on the next players. I made 12 versions in 4 days, and the game improved hugely.</p>
<p>I think I&#8217;ll do this at events any time I can, rather than standing around and explaining my game to onlookers as I did at PAX. It&#8217;s less sociable, but much easier on the legs and voicebox, and so satisfying and energising to get so much work done &#8211; then to see its value immediately.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/BynuW4IIUAAbKK5.jpg" alt="BynuW4IIUAAbKK5" width="768" height="1024" class="aligncenter size-full wp-image-7556" srcset="https://www.pentadact.com/wp-content/BynuW4IIUAAbKK5.jpg 768w, https://www.pentadact.com/wp-content/BynuW4IIUAAbKK5-178x237.jpg 178w, https://www.pentadact.com/wp-content/BynuW4IIUAAbKK5-500x666.jpg 500w" sizes="auto, (max-width: 768px) 100vw, 768px" /></p>
<p>Each new version took progressively less pointing at things. Thanks again to <a href="https://twitter.com/coffee_nat/status/514846695499505664">Natalie Hanke</a> for designing the awesome poster. <a href="https://twitter.com/The_B/status/516205725295865856">Pic by Ben Borthwick</a>.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-26-13.18.51.jpg" alt="2014-09-26 13.18.51" width="3264" height="2448" class="aligncenter size-full wp-image-7543" srcset="https://www.pentadact.com/wp-content/2014-09-26-13.18.51.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-26-13.18.51-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-26-13.18.51-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-26-13.18.51-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>Matt Lees and Steve Hogarty tried it. I tried, and failed, not to ask journalists &#8220;What did you think?&#8221;, because I hated it when devs did that to me when I was a writer.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-27-10.32.07.jpg" alt="2014-09-27 10.32.07" width="3264" height="2448" class="aligncenter size-full wp-image-7544" srcset="https://www.pentadact.com/wp-content/2014-09-27-10.32.07.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-27-10.32.07-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-27-10.32.07-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-27-10.32.07-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>This fellow boarded a ship, saw a horde of guards coming his way, fired wildly, shot an explosive barrel, and blew this chunk clean off the ship: spinning through space, suddenly alone.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-27-16.42.54.jpg" alt="2014-09-27 16.42.54" width="3264" height="2448" class="aligncenter size-full wp-image-7545" srcset="https://www.pentadact.com/wp-content/2014-09-27-16.42.54.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-27-16.42.54-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-27-16.42.54-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-27-16.42.54-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-27-17.09.44.jpg" alt="2014-09-27 17.09.44" width="3264" height="2448" class="aligncenter size-full wp-image-7546" srcset="https://www.pentadact.com/wp-content/2014-09-27-17.09.44.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-27-17.09.44-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-27-17.09.44-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-27-17.09.44-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>Gunpoint and Heat Signature artist John Roberts manned the station for a while so I could see a little of the show.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-28-11.21.21.jpg" alt="2014-09-28 11.21.21" width="3264" height="2448" class="aligncenter size-full wp-image-7547" srcset="https://www.pentadact.com/wp-content/2014-09-28-11.21.21.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-28-11.21.21-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-28-11.21.21-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-28-11.21.21-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>The random gas clouds keeps producing gorgeous combinations I&#8217;ve never seen before.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/2014-09-28-16.54.44.jpg" alt="2014-09-28 16.54.44" width="3264" height="2448" class="aligncenter size-full wp-image-7548" srcset="https://www.pentadact.com/wp-content/2014-09-28-16.54.44.jpg 3264w, https://www.pentadact.com/wp-content/2014-09-28-16.54.44-178x133.jpg 178w, https://www.pentadact.com/wp-content/2014-09-28-16.54.44-500x375.jpg 500w, https://www.pentadact.com/wp-content/2014-09-28-16.54.44-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></p>
<p>Quite a nice layout on a big ship. I think this is the balance of rooms to corridors I&#8217;d like to see more of, more rooms than this and it starts to look like grid paper.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/10696201_10152805733143783_4613641491869463091_n.jpg" alt="10696201_10152805733143783_4613641491869463091_n" width="960" height="720" class="aligncenter size-full wp-image-7549" srcset="https://www.pentadact.com/wp-content/10696201_10152805733143783_4613641491869463091_n.jpg 960w, https://www.pentadact.com/wp-content/10696201_10152805733143783_4613641491869463091_n-178x133.jpg 178w, https://www.pentadact.com/wp-content/10696201_10152805733143783_4613641491869463091_n-500x375.jpg 500w" sizes="auto, (max-width: 960px) 100vw, 960px" /></p>
<p>Pic sneakily taken by my friend Rossi while I was being interviewed by Chris Bratt for VideoGamer.com. EGX was better for press exposure than any other event I&#8217;ve been to.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/BydgPQXIgAA0AS6.jpg" alt="BydgPQXIgAA0AS6" width="1024" height="577" class="aligncenter size-full wp-image-7551" srcset="https://www.pentadact.com/wp-content/BydgPQXIgAA0AS6.jpg 1024w, https://www.pentadact.com/wp-content/BydgPQXIgAA0AS6-178x100.jpg 178w, https://www.pentadact.com/wp-content/BydgPQXIgAA0AS6-500x281.jpg 500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>Lots of nice tweets during and after my talk. <a href="https://twitter.com/GarethIW/status/515486499161518080">This pic by Gareth Williams</a>.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/ByY3fKVIIAAWu-v.jpg" alt="ByY3fKVIIAAWu-v" width="1024" height="1024" class="aligncenter size-full wp-image-7557" srcset="https://www.pentadact.com/wp-content/ByY3fKVIIAAWu-v.jpg 1024w, https://www.pentadact.com/wp-content/ByY3fKVIIAAWu-v-178x178.jpg 178w, https://www.pentadact.com/wp-content/ByY3fKVIIAAWu-v-500x500.jpg 500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>Sneakily <a href="https://twitter.com/philippawarr/status/515160216032526336">taken by Pip</a> while I nervously watch Heat Signature being played in <em>not the exact way</em> I would play it &#8211; always scary.</p>
<p>Now that I&#8217;m back, there&#8217;s lots of boring business stuff to catch up on, including officially forming our team. But then there&#8217;s the wonderful job of revising my priorities and ideas for the game&#8217;s grand plan based on the truckload of new self-awareness I&#8217;ve gained from watching people play and talking to them about what works.</p>
<p>The response was hugely positive, but the blanks in the current prototype are not the type a new player can fill in for themselves. With Gunpoint, it was &#8220;This, but more levels.&#8221; Heat Signature&#8217;s already infinitely big, so it&#8217;ll increase in definition and systemic richness rather than in size. That&#8217;s something I could inject in any of a million places, so the current build doesn&#8217;t definitively show where it&#8217;s going. But the upside of that breadth is that I can also adapt my focus as I learn more about where the most exciting possibilities are.</p>
<p>As ever, join <a href="http://gunpointgame.us2.list-manage.com/subscribe?u=332b53efcc5be9a48a5c44ea8&#038;id=f68b263ad6">the mailing list</a> if you want to be involved in testing when we do that, or just to be told when it&#8217;s out.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-10-01-showing-heat-signature-at-fantastic-arcade-and-egx/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Introducing The Heat Signature Team</title>
		<link>https://www.pentadact.com/2014-09-18-introducing-the-heat-signature-team/</link>
					<comments>https://www.pentadact.com/2014-09-18-introducing-the-heat-signature-team/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Thu, 18 Sep 2014 13:51:38 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7519</guid>

					<description><![CDATA[Last month I made a new video of my ugly prototype for Heat Signature and put out an open call for artists and composers who might wanna work on it. When I did the same thing for my first game Gunpoint, around 30 artists and 40 composers applied. For Heat Signature, 81 artists and 232 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Last month I made <a href="https://www.pentadact.com/2014-08-07-heat-signature-needs-an-artist-and-a-composer/">a new video of my ugly prototype</a> for Heat Signature and put out an open call for artists and composers who might wanna work on it. When I did the same thing for my first game Gunpoint, around 30 artists and 40 composers applied. For Heat Signature, 81 artists and 232 composers applied. This was extraordinary and flattering, then daunting, then impossible, then exciting once I finally had my decision, then absolutely horrible when I had to tell everyone I hadn&#8217;t picked. You don&#8217;t really know how many &#8216;313 people&#8217; is until you have to say no to 310 of them.</p>
<p>My deep, deep thanks to the amazingly talented people who applied, it meant a huge amount to me that people of your calibre were interested in my thing.</p>
<p>Here&#8217;s who I picked:<span id="more-7519"></span></p>
<h5>Alex Burnett, composer</h5>
<p>[soundcloud url=&#8221;https://api.soundcloud.com/tracks/164108318&#8243; params=&#8221;color=ff5500&#038;auto_play=false&#038;hide_related=false&#038;show_comments=true&#038;show_user=true&#038;show_reposts=false&#8221; width=&#8221;100%&#8221; height=&#8221;166&#8243; iframe=&#8221;true&#8221; /]</p>
<p>I said if composers wanted to make a sample piece for Heat Signature, they could have a go at both the peaceful music that will play as you fly around space, and the tense music that will play once you&#8217;re inside an enemy ship. Alex did a fantastic job of both, but his peaceful track in particular is just divine. Testing it in-game, as some of the first art started to make space look beautiful, it just perfectly matched the feeling of awe and serenity I wanted that experience to have.</p>
<h5>Ivan Semidolin, composer</h5>
<p><iframe loading="lazy" width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/163456829&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false"></iframe></p>
<p>Ivan didn&#8217;t try to match the sample tracks I posted, which I mentioned was an option. His full-length track captures a mood I didn&#8217;t know I wanted. It uses industrial sounds that evoke the workings of this large machine you&#8217;re aboard, and has this unusual rolling, clicking beat I can&#8217;t get enough of. In-game, lots of great &#8216;tension&#8217; samples made me feel like I was in a dangerous place &#8211; Ivan&#8217;s made me feel like a dangerous person.</p>
<h5>John Roberts, artist</h5>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Exterior.png" alt="Exterior" width="2048" height="1408" class="aligncenter size-full wp-image-7523" srcset="https://www.pentadact.com/wp-content/Exterior.png 2048w, https://www.pentadact.com/wp-content/Exterior-178x122.png 178w, https://www.pentadact.com/wp-content/Exterior-500x343.png 500w, https://www.pentadact.com/wp-content/Exterior-1024x704.png 1024w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></p>
<p>Several artists&#8217; samples made me say &#8220;Wow&#8221; out loud, but I think John&#8217;s was the first that made me say &#8220;Holy shit!&#8221; Did we make the game already? I appear to be looking at several screenshots of a rich, meticulously detailed, satisfyingly chunky, gorgeous and completely finished Heat Signature. How does this already exist?</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Interior.png" alt="Interior" width="2048" height="1408" class="aligncenter size-full wp-image-7524" srcset="https://www.pentadact.com/wp-content/Interior.png 2048w, https://www.pentadact.com/wp-content/Interior-178x122.png 178w, https://www.pentadact.com/wp-content/Interior-500x343.png 500w, https://www.pentadact.com/wp-content/Interior-1024x704.png 1024w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></p>
<p>Apart from the crispness and vividness of the thing, what I especially love is the sense of solidity in the interior shot: I feel like I know how heavy these walls are, what the worn floor would feel like to touch. And it&#8217;s full of clever game-savvy touches: all the interactive things are picked out in white, and boundaries between solid and empty space are stressed by hazard lines painted on the floor.</p>
<p><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Silhouette.png" alt="Silhouette" width="2048" height="1408" class="aligncenter size-full wp-image-7525" srcset="https://www.pentadact.com/wp-content/Silhouette.png 2048w, https://www.pentadact.com/wp-content/Silhouette-178x122.png 178w, https://www.pentadact.com/wp-content/Silhouette-500x343.png 500w, https://www.pentadact.com/wp-content/Silhouette-1024x704.png 1024w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></p>
<p>Sharp observers might recognise John&#8217;s name: he was also responsible for the best art sample I got for Gunpoint, and therefore became Gunpoint&#8217;s main artist. Heat Signature&#8217;s style is radically different, but apparently he&#8217;s just incredible at everything. Several other people I&#8217;ve worked with before also applied for these positions, and I didn&#8217;t give them any particular advantage for that. But I also didn&#8217;t exclude them: the point of the open submission process isn&#8217;t to avoid previous collaborators, it&#8217;s just to make sure that if I do work with them, it&#8217;s because they&#8217;re the absolute best fit for this particular game.</p>
<p>It was tough getting there, but I think that&#8217;s what we&#8217;ve got, and it&#8217;s really exciting to see it take shape. Obviously it&#8217;s early days, but if you come and play it at Fantastic Arcade in Austin this week (free), or EGX in London next week, you&#8217;ll be able to see how some of this stuff is already working in-game.</p>
<p><strong>When&#8217;s it out?</strong> Dunno! But if you&#8217;re on <a href="http://gunpointgame.us2.list-manage.com/subscribe?u=332b53efcc5be9a48a5c44ea8&#038;id=f68b263ad6">the mailing list</a> I&#8217;ll tell you once it is.</p>
<p><strong>Can I test?</strong> At some point! Again, I&#8217;ll tell <a href="http://gunpointgame.us2.list-manage.com/subscribe?u=332b53efcc5be9a48a5c44ea8&#038;id=f68b263ad6">the mailing list</a> when there&#8217;s a way to do that. I only use it for major stuff like that.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-09-18-introducing-the-heat-signature-team/feed/</wfw:commentRss>
			<slash:comments>35</slash:comments>
		
		
			</item>
		<item>
		<title>Update On Heat Signature Applications</title>
		<link>https://www.pentadact.com/2014-09-09-update-on-heat-signature-applications/</link>
					<comments>https://www.pentadact.com/2014-09-09-update-on-heat-signature-applications/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Tue, 09 Sep 2014 10:19:42 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7507</guid>

					<description><![CDATA[Just a quick update to say I am still going through the Heat Signature applications. Sorry it&#8217;s taking a while &#8211; if you didn&#8217;t see on Twitter, I got 81 applications for the artist position and 232 for composer. So I am endlessly listening to and re-listening to samples, rigging up makeshift dynamic music systems [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Just a quick update to say I am still going through <a href="https://www.pentadact.com/2014-08-07-heat-signature-needs-an-artist-and-a-composer/">the Heat Signature applications</a>. Sorry it&#8217;s taking a while &#8211; if you didn&#8217;t see <a href="https://twitter.com/HeatSig/status/504721045245657088">on Twitter</a>, I got 81 applications for the artist position and 232 for composer. So I am endlessly listening to and re-listening to samples, rigging up makeshift dynamic music systems in-game to see what kind of things work, burying myself in reams of notes, and making impossible choices. Pretty soon I should be able to let applicants know individually where we&#8217;re at, and a while after that I&#8217;ll be able to announce a decision. The standard of submissions is amazing &#8211; the final game is going to be a thing of beauty.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-09-09-update-on-heat-signature-applications/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature Playable At EGX And Fantastic Arcade</title>
		<link>https://www.pentadact.com/2014-08-22-heat-signature-playable-at-egx-and-fantastic-arcade/</link>
					<comments>https://www.pentadact.com/2014-08-22-heat-signature-playable-at-egx-and-fantastic-arcade/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Fri, 22 Aug 2014 19:15:51 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7461</guid>

					<description><![CDATA[Heat Signature will be playable at two different events next month, in the UK and the US! 18-21 September: Fantastic Arcade at the Alamo Drafthouse in Austin, Texas, US 25-28 September: Eurogamer Expo (EGX) in Earls Court, London, UK I&#8217;ll be at both events to talk you through it and answer any questions with &#8220;I [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Heat Signature will be playable at two different events next month, in the UK and the US!</p>
<p><strong>18-21 September</strong>: <a href="http://fantasticfest.com/news/entry/fantastic-arcade-2014-showcase-and-frenzy">Fantastic Arcade</a> at the Alamo Drafthouse in Austin, Texas, US<br />
<strong>25-28 September</strong>: <a href="http://www.egxlondon.net/">Eurogamer Expo (EGX)</a> in Earls Court, London, UK</p>
<p>I&#8217;ll be at both events to talk you through it and answer any questions with &#8220;I don&#8217;t know,&#8221; &#8220;No,&#8221; or &#8220;We&#8217;ll see.&#8221; I&#8217;ll also be doing some form of presentation at each, probably involving playing the game myself and explaining my plans.</p>
<p><a href="https://www.pentadact.com/wp-content/SimAntics.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/SimAntics.png" alt="SimAntics" width="1079" height="217" class="aligncenter size-full wp-image-7388" srcset="https://www.pentadact.com/wp-content/SimAntics.png 1079w, https://www.pentadact.com/wp-content/SimAntics-178x35.png 178w, https://www.pentadact.com/wp-content/SimAntics-500x100.png 500w, https://www.pentadact.com/wp-content/SimAntics-1024x205.png 1024w" sizes="auto, (max-width: 1079px) 100vw, 1079px" /></a></p>
<p>Earlier this year I also made a game with artist and designer <a href="https://twitter.com/lizzywanders">Liselore Goedhart</a>, in which two players steer the tongues of anteaters and battle each other like disgusting slithery light-cycles as they compete for ants. That&#8217;s <a href="https://www.pentadact.com/2014-08-09-what-im-working-on-and-what-ive-done/">SimAntics: Realistic Anteater Simulator</a>, and it will also be playable at Fantastic Arcade!</p>
<p>And for EGX, I commissioned my friend and graphic designer <a href="http://www.coffeemakescreative.com/">Natalie Hanke</a> (who I worked with on <a href="https://www.pentadact.com/2014-08-09-what-im-working-on-and-what-ive-done/">Distance</a>) to create this spectacularly pink poster!<span id="more-7461"></span></p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Poster-EGX-30001.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Poster-EGX-30001.png" alt="Heat Signature Poster EGX 3000" width="2326" height="3000" class="aligncenter size-full wp-image-7470" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Poster-EGX-30001.png 2326w, https://www.pentadact.com/wp-content/Heat-Signature-Poster-EGX-30001-178x229.png 178w, https://www.pentadact.com/wp-content/Heat-Signature-Poster-EGX-30001-500x644.png 500w, https://www.pentadact.com/wp-content/Heat-Signature-Poster-EGX-30001-793x1024.png 793w" sizes="auto, (max-width: 2326px) 100vw, 2326px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-08-22-heat-signature-playable-at-egx-and-fantastic-arcade/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature Needs An Artist And A Composer</title>
		<link>https://www.pentadact.com/2014-08-07-heat-signature-needs-an-artist-and-a-composer/</link>
					<comments>https://www.pentadact.com/2014-08-07-heat-signature-needs-an-artist-and-a-composer/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Thu, 07 Aug 2014 17:01:40 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7207</guid>

					<description><![CDATA[I&#8217;ve now made enough of Heat Signature to be fairly sure of what it is, which means a) here&#8217;s a new trailer! And b) I&#8217;m ready to start looking for an artist and a composer to work with! Update: the deadline has passed and applications are now closed! We got a lot! More as I [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve now made enough of Heat Signature to be fairly sure of what it is, which means <strong>a)</strong> here&#8217;s a new trailer!</p>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube.com/embed/FURSwneQ1sM" frameborder="0" allowfullscreen></iframe></div>
<p>And <strong>b)</strong> I&#8217;m ready to start looking for an artist and a composer to work with!</p>
<h4>Update: the deadline has passed and applications are now closed! We got a lot! More as I sort through them.</h4>
<p>I&#8217;d like to do it the same way I did for Gunpoint, with Open Submissions. That means anyone can send in a sample of what they can do, and I&#8217;ll pick the best artist and the best composer based on that. In this post I&#8217;ll explain loads about what we&#8217;re looking for, but the highlights are:</p>
<p><strong>&#10003;  Paid!<br />
&#10003;  No experience required!<br />
&#10003;  Work from anywhere!<br />
&#10003;  Flexible hours!<br />
&#10003;  Game already works!<br />
&#10003;  Application deadline: [EXPIRED!]</strong><span id="more-7207"></span></p>
<p><a href="#" onclick="toggle_visibility('About');return false;"><strong>About the game</strong></a></p>
<div id="About" style="display: none; margin-left:30px;">
<p>You can see what the game is really about in the trailer above, and I&#8217;m adding lots more systems to make on-board stuff more intricate and full of interesting possibilities. But for the purposes of this post, I&#8217;ll try to give a bit more context.</p>
<p>It&#8217;ll be set in a region of space prohibitively far from any planets, hidden from long range sensors by colourful vapour clouds, and dotted with dozens of space stations. Being so remote, cults, corporations and gangs fight freely over control of these stations, and form uneasy alliances to get what they need to survive. In the game, you&#8217;ll hopefully be able to zoom out and see a sort of galaxy map of all these stations and who owns them.</p>
<p>Each time you start the game, you&#8217;re playing as a different person &#8211; their location and the faction they belong to might even be chosen at random. They take on missions like the ones in the video to harm other factions, help their own survive, or in some cases maybe just for money. The galaxy is persistent, so anything you do achieve will change it for your future lives. I have plans for how that works, but I won&#8217;t go into them too much till I&#8217;ve had time to try them out.</p>
<p>Death is permanent, though as you&#8217;ll see in the video, there are ways to avoid it. If you want to stop playing or try a new character but haven&#8217;t died yet, you&#8217;ll be able to let your current character rest at a station until you want to play as them again. There will probably be some manner of written stories that you can stumble across out in space, but again, I won&#8217;t go into my plans for that too much until I&#8217;ve had a chance to see what works well in this context.</p></div>
<p><a href="#" onclick="toggle_visibility('Why');return false;"><strong>Why open submissions?</strong></a></p>
<div id="Why" style="display: none; margin-left:30px;">
<p>I like to do it this way because it means:</p>
<ul>
<li>People get judged by their ability</li>
<li>It gives first-timers a chance, breaking the old Catch-22 of &#8220;You need experience to get work, and you need work to get experience&#8221;</li>
<li>I can find the person whose talents best suit this game in particular</li>
<li>It means I don&#8217;t have to restrict my game ideas to ones that suit the skills of a pre-existing team</li>
<li>It means I&#8217;m always working with people who are excited about this particular game</li>
</ul>
<p>Gunpoint&#8217;s main artist John had never done pixel art before. The other, Fabian, was a game design student. All six of us had other jobs or responsibilities. But it&#8217;s hard to imagine that game looking or sounding better.</p>
<p>I&#8217;ve also been on the submitter side of it, for short stories, and it gave me the opportunity to get my first piece of fiction published without any connections in that world.</p></div>
<p><a href="#" onclick="toggle_visibility('Who');return false;"><strong>Who can apply</strong></a></p>
<div id="Who" style="display: none; ">
<ul>
<li>Absolutely anyone who meets the basic practical considerations (below).</li>
<li>You can be anywhere in the world.</li>
<li>No experience required.</li>
<li>Work whatever hours you like &#8211; look at the workload and time frame below and decide for yourself.</li>
</ul>
</div>
<p><a href="#" onclick="toggle_visibility('Samples');return false;"><strong>Sending samples</strong></a></p>
<div id="Samples" style="display: none; margin-left:30px;">
<p>If you want to apply, all I need to see is a sample of your work that would be appropriate for this game. </p>
<ul>
<li>It&#8217;s fine to send in something you made for something else. Bear in mind I&#8217;m not a clever man, though, so if it&#8217;s very different I might have a hard time guessing how good you&#8217;d be for the style Heat Sig needs.</li>
<li>If you do make a sample, don&#8217;t spend too long on it. We had 34 artists apply to work on Gunpoint, so 32 of them did not end up working on it. Personally, I only apply to an open submissions thing if I want to make the thing for fun anyway.</li>
<li>Don&#8217;t do anything until you&#8217;ve read all of this post! There are specific requirements.</li>
<li>Tell me how long your sample took you. Be honest, obviously &#8211; I&#8217;m not prioritising speed, I&#8217;m just checking viability.</li>
<li>If people are up for it, I could do a post showing off the best submissions &#8211; let me know in your e-mail if you&#8217;d be OK to be included in that. Fine if you&#8217;d rather keep it private.</li>

</ul>
</div>
<p><a href="#" onclick="toggle_visibility('Music');return false;"><strong>The work: music</strong></a></p>
<div id="Music" style="display: none; margin-left:30px;">
<p>As you&#8217;ll see in the video, your time in Heat Signature is split about half and half between flying through space and sneaking through the corridors of spaceships. You usually only spend 30 seconds to a minute in each mode, sometimes even less, so we can&#8217;t have the music change every time you dock. But the tension in the game does vary wildly, from serene space travel, to fleeing a missile lock, to hiding in a corner and praying a guard won&#8217;t turn round, to sudden outbursts of lethal violence.</p>
<p>I&#8217;m open to suggestions as to how to handle this, but my current thinking is that each track could have two layers:</p>
<ul>
<li>A serene, beautiful layer that we ramp up as you spend time jetting around peacefully or in empty ships, then fade out when there&#8217;s danger.</li>
<li>A tense layer that we ramp up when you&#8217;re in danger, whether that&#8217;s in space or inside a ship, then we fade this out once the danger is passed.</li>
</ul>
<p>And that would be one track. The tracks themselves could be tied to regions of space, or we could just shuffle them.</p>
<p>I had some luck in <a href="https://www.pentadact.com/2014-06-06-floating-point-is-out-and-free-on-steam-watch-a-trailer/">Floating Point</a> with writing an algorithm that controlled music volume according to a constantly changing level of &#8216;coolness&#8217; of your performance. I found that it feels good for music to be responding to what you&#8217;re doing, but the change has to be more gradual than the variable it&#8217;s responding to, or it&#8217;s jarring and annoying. I could easily track a danger variable in Heat Signature and have individual music layer volumes respond to a smoothed out version of that.</p>
<p>For peaceful music, I love slow, expansive stuff that conjours the majesty of space. Like this:</p>
<div align="center"><iframe loading="lazy" width="400" height="60" src="//www.youtube-nocookie.com/embed/C_MLTbZ5CDk?rel=0&#038;autohide=0" frameborder="0" allowfullscreen></iframe>
<p><iframe loading="lazy" width="400" height="60" src="//www.youtube-nocookie.com/embed/okGb6mmwV5w?rel=0&#038;autohide=0" frameborder="0" allowfullscreen></iframe></p></div>
<p>As a general track, which could probably be taken in a &#8216;tense&#8217; or a &#8216;peaceful&#8217; direction, I like this one from the EVE soundtrack:</p>
<p>[soundcloud url=&#8221;https://api.soundcloud.com/tracks/62931252&#8243; params=&#8221;auto_play=false&#038;hide_related=false&#038;show_comments=false&#038;show_user=false&#038;show_reposts=false&#038;visual=false&#8221; width=&#8221;100%&#8221; height=&#8221;100&#8243; iframe=&#8221;true&#8221; /]</p>
<p><strong>If you&#8217;re making a sample:</strong></p>
<ul>
<li>If you&#8217;re able to have a go at both &#8216;tension&#8217; and &#8216;peaceful&#8217; music, that&#8217;d be great.</li>
<li> You don&#8217;t have to include the transition or try to get them to work together at this stage.</li>
<li>No need to make a whole track, 30s to 1m of each would be plenty, or whatever you feel you need.</li>
<li>If you want to try something completely different to what I&#8217;m suggesting, go ahead!</li>
<li>If you want to try scoring an actual part of the video above, feel free &#8211; you have my permission to edit and distribute that video however you like for this purpose, as long as it&#8217;s clear where it came from.</li>
</ul>
</div>
<p><a href="#" onclick="toggle_visibility('Art');return false;"><strong>The work: art</strong></a></p>
<div id="Art" style="display: none; margin-left:30px;">
<p>I&#8217;m looking for someone to do all the art in the game, which I&#8217;ll break down below. But first an important note:</p>
<p><a href="#" onclick="toggle_visibility('Pixel');return false;"><strong>Important note about style</strong></a></p>
<div id="Pixel" style="display: none; margin-left:30px;">
<p>Everything in Heat Signature will get rotated and stretched by Game Maker as it spins through space and we zoom in and out. There&#8217;s some built-in anti-aliasing to this, so any per-pixel crispness will get blurred (it&#8217;s possible to disable this, but then rotating and scaling mess up fine detail even more). With apologies to John Roberts, this is what it would look like if we tried to use Conway&#8217;s sprite from Gunpoint as the player&#8217;s ship in Heat Signature:</p>
<p><a href="https://www.pentadact.com/wp-content/Gunpoint-Heat-Sig-Art-Comparison.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Gunpoint-Heat-Sig-Art-Comparison.png" alt="Gunpoint Heat Sig Art Comparison" width="654" height="306" class="aligncenter size-full wp-image-7223" srcset="https://www.pentadact.com/wp-content/Gunpoint-Heat-Sig-Art-Comparison.png 654w, https://www.pentadact.com/wp-content/Gunpoint-Heat-Sig-Art-Comparison-178x83.png 178w, https://www.pentadact.com/wp-content/Gunpoint-Heat-Sig-Art-Comparison-500x233.png 500w" sizes="auto, (max-width: 654px) 100vw, 654px" /></a></p>
<p>That is a screenshot. I actually did this.</p>
<p>All this means is: avoid intentionally jagged diagonals or anything where the placement and clarity of individual pixels is critical. </p>
<p>Beyond that, the only styles I&#8217;m pretty sure I don&#8217;t want are &#8216;comical&#8217; or &#8216;abstract&#8217;.</p></div>
<p>The art we&#8217;ll need includes:</p>
<p><a href="#" onclick="toggle_visibility('Space');return false;"><strong>Space</strong></a></p>
<div id="Space" style="display: none; margin-left:30px;">
<p>Heat Signature is set in a region of space dominated by colourful gas clouds. These are huge, you&#8217;d never see a whole one on screen, so in practice it&#8217;s more like each region of space will have a different background colour. I&#8217;d like some regions of darkness, but as you&#8217;ll see from the reference pics below I mostly want space to be colourful.</p>
<p>I might have a &#8216;burn colour&#8217; for these gas clouds, also randomly selected, that would flare up around your ship when you&#8217;re hot. So if you&#8217;re thrusting through a green cloud, you might see the gas you&#8217;re cutting through burning red. You know that bit in the Voyager titles?</p>
<p><a href="https://www.pentadact.com/wp-content/Voyager-Gas.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Voyager-Gas.jpg" alt="Voyager Gas" width="1011" height="574" class="aligncenter size-full wp-image-7214" srcset="https://www.pentadact.com/wp-content/Voyager-Gas.jpg 1011w, https://www.pentadact.com/wp-content/Voyager-Gas-178x101.jpg 178w, https://www.pentadact.com/wp-content/Voyager-Gas-500x283.jpg 500w" sizes="auto, (max-width: 1011px) 100vw, 1011px" /></a></p>
<p>Here are some pictures of space that I find exciting. Sorry that only some of them are credited, my sources for the others were imgur links with no attribution or info.</p>
<p><a href="https://www.pentadact.com/wp-content/Space-8.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Space-8.png" alt="Space 8" width="2048" height="1152" class="aligncenter size-full wp-image-7216" srcset="https://www.pentadact.com/wp-content/Space-8.png 2048w, https://www.pentadact.com/wp-content/Space-8-178x100.png 178w, https://www.pentadact.com/wp-content/Space-8-500x281.png 500w, https://www.pentadact.com/wp-content/Space-8-1024x576.png 1024w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></a><br />
This one&#8217;s from somewhere called <a href="http://stararmy.com/index.php">StarArmy</a> I guess!</p>
<p><a href="https://www.pentadact.com/wp-content/Sins-Ring.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Sins-Ring.png" alt="Sins Ring" width="1309" height="503" class="aligncenter size-full wp-image-7249" srcset="https://www.pentadact.com/wp-content/Sins-Ring.png 1309w, https://www.pentadact.com/wp-content/Sins-Ring-178x68.png 178w, https://www.pentadact.com/wp-content/Sins-Ring-500x192.png 500w, https://www.pentadact.com/wp-content/Sins-Ring-1024x393.png 1024w" sizes="auto, (max-width: 1309px) 100vw, 1309px" /></a><br />
Sins of a Solar Empire</p>
<p><a href="https://www.pentadact.com/wp-content/Space-6.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Space-6.png" alt="Space 6" width="2048" height="1152" class="aligncenter size-full wp-image-7218" srcset="https://www.pentadact.com/wp-content/Space-6.png 2048w, https://www.pentadact.com/wp-content/Space-6-178x100.png 178w, https://www.pentadact.com/wp-content/Space-6-500x281.png 500w, https://www.pentadact.com/wp-content/Space-6-1024x576.png 1024w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Sins-Dark-Space.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Sins-Dark-Space.png" alt="Sins Dark Space" width="1621" height="585" class="aligncenter size-full wp-image-7250" srcset="https://www.pentadact.com/wp-content/Sins-Dark-Space.png 1621w, https://www.pentadact.com/wp-content/Sins-Dark-Space-178x64.png 178w, https://www.pentadact.com/wp-content/Sins-Dark-Space-500x180.png 500w, https://www.pentadact.com/wp-content/Sins-Dark-Space-1024x369.png 1024w" sizes="auto, (max-width: 1621px) 100vw, 1621px" /></a><br />
Sins of a Solar Empire</p>
<p><a href="https://www.pentadact.com/wp-content/Space-5.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Space-5.png" alt="Space 5" width="942" height="354" class="aligncenter size-full wp-image-7219" srcset="https://www.pentadact.com/wp-content/Space-5.png 942w, https://www.pentadact.com/wp-content/Space-5-178x66.png 178w, https://www.pentadact.com/wp-content/Space-5-500x187.png 500w" sizes="auto, (max-width: 942px) 100vw, 942px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Sins-Light-Space.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Sins-Light-Space.png" alt="Sins Light Space" width="1370" height="644" class="aligncenter size-full wp-image-7248" srcset="https://www.pentadact.com/wp-content/Sins-Light-Space.png 1370w, https://www.pentadact.com/wp-content/Sins-Light-Space-178x83.png 178w, https://www.pentadact.com/wp-content/Sins-Light-Space-500x235.png 500w, https://www.pentadact.com/wp-content/Sins-Light-Space-1024x481.png 1024w" sizes="auto, (max-width: 1370px) 100vw, 1370px" /></a><br />
Sins of a Solar Empire</p>
<p><a href="https://www.pentadact.com/wp-content/Space-3.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Space-3.jpg" alt="Space 3" width="1595" height="667" class="aligncenter size-full wp-image-7227" srcset="https://www.pentadact.com/wp-content/Space-3.jpg 1595w, https://www.pentadact.com/wp-content/Space-3-178x74.jpg 178w, https://www.pentadact.com/wp-content/Space-3-500x209.jpg 500w, https://www.pentadact.com/wp-content/Space-3-1024x428.jpg 1024w" sizes="auto, (max-width: 1595px) 100vw, 1595px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Space-4.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Space-4.png" alt="Space 4" width="682" height="949" class="aligncenter size-full wp-image-7220" srcset="https://www.pentadact.com/wp-content/Space-4.png 682w, https://www.pentadact.com/wp-content/Space-4-178x247.png 178w, https://www.pentadact.com/wp-content/Space-4-500x695.png 500w" sizes="auto, (max-width: 682px) 100vw, 682px" /></a></p>
<p>It seems like most of these involve:</p>
<ul>
<li>A strong colour, usually fading into another or into darkness. Not sure how we do this, maybe when you&#8217;re in a gas-cloud-region it&#8217;s a blank background colour, and when you&#8217;re moving between them we use a giant gradient sprite that passes slowly until you&#8217;re fully in the different colour.</li>
<li>Some kind of texture or patterning, sometimes like cloud, can be very faint. We could do this with a tiled sprite we layer over transparently.</li>
<li>Bright pinprick stars. I think these&#8217;ll need to be individual sprites that we move and place in code, as they are right now. They&#8217;re not actual stars, since those wouldn&#8217;t parallax noticeably, so we&#8217;ll say they&#8217;re space stations.</li>
</ul>
<p>As ever, open to totally different approaches if you have something you think will work. For a sample, I don&#8217;t need to know what the individual layers are, I&#8217;m only interested in the overall look.</p>
</div>
<p><a href="#" onclick="toggle_visibility('Scale');return false;"><strong>Scale</strong></a></p>
<div id="Scale" style="display: none; margin-left:30px;">
<p>A ship module is currently 256&#215;256 pixels &#8211; you can stray from that, but not too drastically. Anything solid needs to have dimensions that are multiples of 32: that&#8217;s how big one unit is on the collision grid. That means the thinnest wall has to be 32 thick, and a person should fit inside a 32&#215;32 square. Currently, interior rooms are 6 units across and doorways and corridors are 2 units wide. Click this for a full-size guide:</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Grid-Guide.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Grid-Guide.png" alt="Heat Signature Grid Guide" width="572" height="320" class="aligncenter size-full wp-image-7377" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Grid-Guide.png 572w, https://www.pentadact.com/wp-content/Heat-Signature-Grid-Guide-178x99.png 178w, https://www.pentadact.com/wp-content/Heat-Signature-Grid-Guide-500x279.png 500w" sizes="auto, (max-width: 572px) 100vw, 572px" /></a>
</p></div>
<p><a href="#" onclick="toggle_visibility('Exteriors');return false;"><strong>Ship exteriors</strong></a></p>
<div id="Exteriors" style="display: none; margin-left:30px;">
<p>Ships are made of square modules, as you&#8217;ve hopefully noticed, and the sprites for these are light greyscale, then the game colours them with the ship&#8217;s randomly chosen colour. The way that mask works is that pure white in the sprite becomes the colour of the mask, so overall the sprite gets darker, and the luminance of the mask colour is the max luminance of what you see (i.e. white is impossible). What we can do, though, is layer another sprite on top of that that&#8217;s independent of the ship&#8217;s colour, for any glowing lights or features that should be the same on all ships. </p>
<p>The different modules a ship might have are:</p>
<ul>
<li>Standard: no functional significance, so can look plain from the outside. Could be identical to each other, doesn&#8217;t matter if they&#8217;re not, as long as they don&#8217;t look like they &#8216;do&#8217; something.</li>
<li>Missile turret: gun part turns to track whatever it&#8217;s shooting at.</li>
<li>Thruster: thruster part turns away from the direction the ship&#8217;s travelling, emits a visible thrust whose length is proportional to acceleration.</li>
<li>Bridge: the most crucial module &#8211; if it&#8217;s destroyed, the ship is effectively brain dead. On larger ships, it&#8217;s set one module back from the front, to protect it. Needs to really stand out from the other modules even zoomed out, because it&#8217;s life or death whether this module is still intact.</li>
<li>Probably a Defense module, that&#8217;d shoot down incoming missiles.</li>
<li>Maybe a couple of other module types, if more prove necessary.</li>
</ul>
</div>
<p><a href="#" onclick="toggle_visibility('Interiors');return false;"><strong>Ship interiors</strong></a></p>
<div id="Interiors" style="display: none; margin-left:30px;">
<p>The modules that do stuff will obviously have the controls or workings inside: a seated gunner for Turret modules, a fuel canister plugged into some apparatus for a Thruster module.</p>
<p>I&#8217;d like the rest of the rooms to give a sense of the ship as a real place where people live. Some of these ships will be fighters, others transports, others scouting vessels, but almost all of them will be designed for people to spend more than a day on. So the Standard modules might contain:</p>
<ul>
<li>Beds</li>
<li>Mess hall</li>
<li>Food garden</li>
<li>Space bathrooms</li>
<li>Armoury</li>
<li>Cargo storage</li>
</ul>
<p>However! They also need to be massively reusable. Every bit of art will be reused hundreds of times on different ships, so if there&#8217;s a plate on the floor and some food spilled next to it, it&#8217;s gonna look odd to keep seeing that exact same mess in different places.</p>
<p>Depending on time, it might be nice to have an alternate set of these to distinguish between old, functional rustbuckets and shinier, more expensive new ships. Not vital though.</p></div>
<p><a href="#" onclick="toggle_visibility('Stations');return false;"><strong>Space Stations</strong></a></p>
<div id="Stations" style="display: none; margin-left:30px;">
<p>I don&#8217;t know much about what these will be like yet, but I&#8217;m happy for them to be mostly made out of ship modules. They won&#8217;t be bustling with people, but we might want a few civvies sitting at cafes or bars.</p></div>
<p><a href="#" onclick="toggle_visibility('Pod');return false;"><strong>Player Pod</strong></a></p>
<div id="Pod" style="display: none; margin-left:30px;">
<p>The tiny personal ship you fly around in. It will end up being longer and thinner than what&#8217;s in there now &#8211; the interior will need to be 64 pixels wide and 96 long.</p></div>
<p><a href="#" onclick="toggle_visibility('Player');return false;"><strong>The player character</strong></a></p>
<div id="Player" style="display: none; margin-left:30px;">
<p>You&#8217;ll be playing a different person each time you start a new game, so it&#8217;d be cool to be able to cobble different-looking characters together from component parts. But I don&#8217;t know a) how much work that is, b) how much variety you can show at this scale from this perspective. Interested in your thoughts and ideas.</p>
<p>As a guide to the game&#8217;s scale in pixels, here&#8217;s the current player sprite:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7235" src="https://www.pentadact.com/wp-content/sPlayerGun2.png" alt="sPlayerGun2" width="41" height="22" /></p>
<p>We can vary a little from that.</p>
<p>Animations will include:</p>
<ul>
<li>Sneaking quickly</li>
<li>Pouncing on an enemy at short range and knocking them out</li>
<li>Sitting in a seat using controls</li>
<li>Shooting a rifle</li>
<li>Walking while aiming (in independent directions)</li>
<li>Getting non-fatally shot</li>
<li>Remote-controlling your ship</li>
<li>Adrift in space, unconscious</li>
<li>Adrift in space, shooting your gun</li>
<li>Adrift in space, remote controlling your ship</li>
<li>Carrying a body</li>
<li>Carrying a fuel barrel</li>
<li>All the rifle-related animations but with a pistol (held in both hands)</li>
</ul>
</div>
<p><a href="#" onclick="toggle_visibility('Crew');return false;"><strong>Crew</strong></a></p>
<div id="Crew" style="display: none; margin-left:30px;">
<p><strong>Guards:</strong> who patrol the corridors of the ships, with rifles and sometimes pistols, and sit in any pilot seats. For animations, they&#8217;ll need:</p>
<ul>
<li>Patrolling</li>
<li>Running</li>
<li>Shooting a rifle</li>
<li>Shooting a pistol</li>
<li>Getting fatally shot</li>
<li>Getting knocked out</li>
<li>Adrift in space, unconscious (they could maybe thrash a while before they pass out)</li>
<li>Sitting in a seat using controls</li>
<li>Possibly either surrendering or punching (if they&#8217;re caught unarmed)</li>
</ul>
<p><strong>Other stuff</strong></p>
<p>As mentioned, we may want a few people sitting around in space stations.</p>
<p>May want a &#8216;Heavy&#8217; guard type who&#8217;s resistant to conventional attacks, to encourage interesting ways of dealing with them.</p>
<p>It&#8217;d be good to be able to colour guards with the ship&#8217;s random colour, through the mask system mentioned earlier. Individual variety would be nice if it&#8217;s easy, but not essential.</p>
<p>Missile, explosion and impact effects.</p>
<p>Lots more stuff I&#8217;m forgetting or failing to foresee. As you can probably tell, I like to keep a game to as few unique elements as possible, and then only add variety if it really needs it.
</p></div>
<p><a href="#" onclick="toggle_visibility('UI');return false;"><strong>UI</strong></a></p>
<div id="UI" style="display: none; margin-left:30px;">
<p>I&#8217;ll design the UI, in terms of what goes where and how it functions, but I&#8217;ll probably ask for your help in snazzing it up once it&#8217;s in place.</p></div>
<p><strong>If you&#8217;re making a sample:</strong></p>
<p>Something that shows a bit of space, a spaceship interior, and a person doing something would be awesome.</p></div>
<p><a href="#" onclick="toggle_visibility('Time');return false;"><strong>Time frame</strong></a></p>
<div id="Time" style="display: none; margin-left:30px;">
<p>This is contract job for one game, not a permanent position.</p>
<p>Cut-off for applications will be 23:59.59 UK time on the 22nd of August. From there, it might take me till sometime in September to figure out who to go with for both positions.</p>
<p>I&#8217;d like to get all the art and music in the space of about four months after that. That&#8217;s not when the game will be done, it&#8217;s just when I&#8217;d like that side of things in good shape.</p>
<p>As always with games, though, any part of it could run much longer than expected. I&#8217;ll be paying you for however long it takes. If there&#8217;s anything in your future that&#8217;ll mean &#8220;I have to stop working on it by then&#8221;, let me know when you apply &#8211; it may not be a dealbreaker.</p></div>
<p><a href="#" onclick="toggle_visibility('Pay');return false;"><strong>Pay</strong></a></p>
<div id="Pay" style="display: none; margin-left:30px;">
<ul>
<li>You&#8217;ll be paid by the hour, and it&#8217;s up to you when and how much to work. I&#8217;ll trust you to keep track of your hours.</li>
<li>If it&#8217;s taking a large number of hours to produce a small amount of work, I&#8217;ll give you a heads up that we might be approaching &#8220;I can&#8217;t afford to employ you&#8221; territory.</li>
<li>Tell me when you apply what a fair rate would be &#8211; I have no experience with this.</li>
<li>I won&#8217;t pay you less than I think is fair, even if you ask for it.</li>
<li>If the game does as well as Gunpoint in its first month, and you saw your part of it through to completion, I&#8217;ll add a percentage bonus onto everything I&#8217;ve paid you.</li>
<li>If that happens <em>and</em> you were particularly great about replying to e-mails, making changes, getting stuff done roughly on time etc, I&#8217;ll add an extra bonus on to reflect that.</li>
</ul>
</div>
<p><a href="#" onclick="toggle_visibility('Working');return false;"><strong>How we&#8217;ll work</strong></a></p>
<div id="Working" style="display: none; margin-left:30px;">
<p>You&#8217;re probably not in Bath, England, which is fine. We&#8217;ll communicate mainly by e-mail, so that any feedback/guidance is there for you to refer to, and I have time to articulate what we need as clearly as I can. If you also wanna Skype sometimes I&#8217;m up for that.</p>
<p>I will definitely ask you for changes to your work, regularly. Absolutely nothing to do with talent. If Leonardo da Vinci submitted the Mona Lisa, I&#8217;d say &#8220;Sorry, but for gameplay reasons the smile needs to be readable on low detail settings at wide zoom levels or players might mistake her for hostile. Can you make it a bit more pronounced?&#8221;</p>
<p>Even if you&#8217;re better than him, and a telepath, I will still be asking for changes. If you&#8217;re at all precious about your work or don&#8217;t like being told what to do, don&#8217;t apply. I need to be able to ask for this stuff without feeling like I&#8217;m asking for favours, or the game will suffer.
</p></div>
<p><a href="#" onclick="toggle_visibility('Practical');return false;"><strong>Practical considerations</strong></a></p>
<div id="Practical" style="display: none; margin-left:30px;">
<ul>
<li>You need to be at least 18</li>
<li>You need to be legally able to sign contracts for yourself</li>
<li>You need a bank account I can send money to from England (don&#8217;t know of any exceptions to this, I currently pay to US, Chile and the Netherlands)</li>
<li>You must be the full legal owner of the work you supply &#8211; if you&#8217;re under employment or contract with anyone else, check they don&#8217;t own work you do in off hours. Many do. If they do, you can often get an exemption by asking, but obviously we&#8217;d need that in writing direct from your employer before engaging you. It&#8217;s fine if you&#8217;d like to wait to see if you&#8217;re selected before asking, but do mention it in your submission.</li>
</ul>
</div>
<p><strong>How to submit:</strong><br />
Alas, it is too late! As mentioned at the top, the deadline has now passed.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-08-07-heat-signature-needs-an-artist-and-a-composer/feed/</wfw:commentRss>
			<slash:comments>34</slash:comments>
		
		
			</item>
		<item>
		<title>Improving Heat Signature&#8217;s Randomly Generated Ships, Inside And Out</title>
		<link>https://www.pentadact.com/2014-07-19-improving-heat-signatures-randomly-generated-ships-inside-and-out/</link>
					<comments>https://www.pentadact.com/2014-07-19-improving-heat-signatures-randomly-generated-ships-inside-and-out/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sat, 19 Jul 2014 12:23:55 +0000</pubDate>
				<category><![CDATA[Feature]]></category>
		<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<category><![CDATA[Procedural Generation]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7264</guid>

					<description><![CDATA[I started making Heat Signature mainly to figure out if the mechanics would be as fun as they seemed in my head, so I built all its systems in the cheapest, fastest, simplest possible way. That worked &#8211; it&#8217;s now got to the point where I&#8217;m laughing out loud at something ridiculous happening most times [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I started making Heat Signature mainly to figure out if the mechanics would be as fun as they seemed in my head, so I built all its systems in the cheapest, fastest, simplest possible way. That worked &#8211; it&#8217;s now got to the point where I&#8217;m laughing out loud at something ridiculous happening most times I play.</p>
<p>But the slapdash way I built it has the following problems:<span id="more-7264"></span></p>
<ul>
<li>All collision checks, including guards checking whether they can see the player, are being done on a per-pixel basis. That means the game slows down a lot if there are many guards.</li>
<li>Pathfinding is done ahead of time, meaning <a href="https://www.pentadact.com/2014-02-22-thinking-about-pathfinding-in-heat-signatures-randomised-modularly-destructible-spaceships/">each ship calculates all possible routes within it every time its floorplan changes</a>. For very large ships, that causes slowdown when a missile takes a chunk out of it.</li>
<li>When things on a ship move or are created, they don&#8217;t have a good way of making sure they end up fixed in the right position on the ship, leading to lots of very tricky to diagnose bugs where airlocks appear in the wrong place and won&#8217;t let you inside.</li>
</ul>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Airlock-Problemns.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Airlock-Problemns.png" alt="Heat Signature Airlock Problemns" width="494" height="222" class="aligncenter size-full wp-image-7281" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Airlock-Problemns.png 494w, https://www.pentadact.com/wp-content/Heat-Signature-Airlock-Problemns-178x79.png 178w" sizes="auto, (max-width: 494px) 100vw, 494px" /></a></p>
<h5>The Rewrite</h5>
<p>All of these systems need a total rewrite, and I know how to make each one massively faster and more reliable now that I&#8217;ve had some experience with how they&#8217;ll be used. I&#8217;ve been working with the bad code for so long that I&#8217;m actually really excited to rip this awful shit out and make it all clean, fast and efficient.</p>
<div align="center">
<blockquote class="twitter-tweet" lang="en">
<p>A good way to get motivated about the boring task of redoing code is to just keep working with the bad code until you want to die.</p>
<p>&mdash; Heat Signature (@HeatSig) <a href="https://twitter.com/HeatSig/statuses/488300355730804737">July 13, 2014</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p></div>
<p>But I&#8217;m also aware that this means it will look like exactly the same game until I finish all three rewrites, which might be a while. So while I&#8217;m at it, I&#8217;m making some of the more superficial tweaks I&#8217;ve been planning, just to make the game feel fresh on the outside too. And the first of these are tweaks to the way ships randomly generate their interior floorplans.</p>
<h5>The Old Floor Plan Generator</h5>
<p><a href="https://www.pentadact.com/2014-02-07-randomly-generating-simple-spaceships-in-heat-signature/">I talked about how I built that system</a> at the time, and it&#8217;s really simple:</p>
<ol>
<li>All modules in a row have doors leading to each other</li>
<li>If there&#8217;s a row behind this one, one module in this row has a door leading to it</li>
<li>If a module has exactly two doors and they&#8217;re in a straight line, it&#8217;s a corridor. Otherwise, it&#8217;s a room.</li>
</ol>
<p>That generates interiors that look like this:</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Corridors.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Corridors.jpg" alt="Heat Signature Corridors" width="633" height="434" class="aligncenter size-full wp-image-6842" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Corridors.jpg 633w, https://www.pentadact.com/wp-content/Heat-Signature-Corridors-178x122.jpg 178w, https://www.pentadact.com/wp-content/Heat-Signature-Corridors-500x342.jpg 500w" sizes="auto, (max-width: 633px) 100vw, 633px" /></a></p>
<p>I was pretty pleased with this! From only three rules, it makes sure every module is used, every corridor leads to a room, and there&#8217;s a path from every module to every other, but it&#8217;s usually not trivial. Despite being simple, the pattern didn&#8217;t seem to be obvious &#8211; to me or others. I posted a shot on Twitter and asked people to figure out the rules &#8211; no-one got them right.</p>
<p>Its main shortcomings were:</p>
<ul>
<li>There are a lot of rooms, as opposed to corridors. Rooms obfuscate connections: it&#8217;s harder to see at a glance which ones are connected and which are blocked, which can make the layout visually boring even when it&#8217;s mechanically interesting.</li>
<li>It&#8217;s usually not mechanically interesting either. The fact that there&#8217;s only one logical route between any two rooms will probably be too boring and restrictive once we have more of the on-board game elements in, like sealed doors and hacking.</li>
</ul>
<h5>The New Floor Plan Generator</h5>
<p>So I made a few tweaks, and the new system generates stuff like this:</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Tweaked1.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Tweaked1.png" alt="Heat Signature Floorplan Tweaked" width="802" height="635" class="aligncenter size-full wp-image-7271" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Tweaked1.png 802w, https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Tweaked1-178x140.png 178w, https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Tweaked1-500x395.png 500w" sizes="auto, (max-width: 802px) 100vw, 802px" /></a></p>
<p>How much you get out of this image might depend on how much you care about corridors, but I am fascinated by it. It&#8217;s so much more intricate, organic and complex than the rules I added seemed &#8211; I look at it and think &#8220;Wait, I didn&#8217;t tell you how to do that!&#8221; But evidently I did. Again, I think it has good Rule Stealth: the rules are right there on display, but I don&#8217;t think you&#8217;d guess what they were, right? If you want to try, do so before clicking this:</p>
<p><a href="#" onclick="toggle_visibility('Rules');return false;">Click to show the new rules</a></p>
<div id="Rules" style="display: none; margin-left:30px;">
<ol>
<li>As before, if there&#8217;s a row behind this one, one module is selected to have a door leading back to it.</li>
<li>But now, every other module has a chance to have a back-door too.</li>
<li>As we&#8217;re building this row, if we&#8217;re placing a back-door and one already exists, there&#8217;s a chance we <em>won&#8217;t</em> connect this room to what we&#8217;ve already built of this row.</li>
<li>If a module has only one door, or it contains a ship system, it&#8217;s a room. Otherwise, it&#8217;s a corridor.</li>
<li>I halved the corridor sprite so we can have corners, T-junctions and crossroads as well as the straight corridors and rooms from before, while still building everything from only two sprites.</li>
</ol>
</div>
<h5>The Interesting Bit</h5>
<p>The bits that surprise me are bits like this:</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Isolated-Room1.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Isolated-Room1.png" alt="Heat Signature Floorplan Isolated Room" width="290" height="302" class="aligncenter size-full wp-image-7277" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Isolated-Room1.png 290w, https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Isolated-Room1-178x185.png 178w" sizes="auto, (max-width: 290px) 100vw, 290px" /></a></p>
<p>How did it know to build a corridor branching off from a lengthwise passageway to lead to this out-of-the-way room?! My algorithm builds the ship one lateral row at a time, and each one has no idea what was in the last one. This makes it look like whoever built the ship planned ahead to make sure there was a corridor leading to this otherwise isolated room.</p>
<h5>The Explanation</h5>
<p>I get it, of course: three modules in a row all decided to make a door to the previous row, which meant all of them could block themselves off from each other laterally. And in the row it made afterwards, the middle module failed the chance to create a door leading back, so the room behind it was left with only one connection. And being a dead end, it became a room rather than a corridor.</p>
<p>The fact that it&#8217;s reachable is not luck, it&#8217;s a result of some logic I intentionally put into rule 3: we&#8217;re only allowed to block ourselves off from the rest of the row if we know the rest of the row also has a back-door. That way we can still get to them by going back one row.</p>
<p>But what if there&#8217;s a lateral block there too? Well, they&#8217;ll only create one if they, too, have doors on either side of the block leading backwards. What about the row behind that? Same rule, all the way to the very back row of the ship, which will never create a lateral block because it&#8217;ll never have two back-doors &#8211; it won&#8217;t have any.</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Isolated-Room1.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Isolated-Room1.png" alt="Heat Signature Floorplan Isolated Room" width="290" height="302" class="aligncenter size-full wp-image-7277" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Isolated-Room1.png 290w, https://www.pentadact.com/wp-content/Heat-Signature-Floorplan-Isolated-Room1-178x185.png 178w" sizes="auto, (max-width: 290px) 100vw, 290px" /></a></p>
<h5>Imaginary Intentions</h5>
<p>But it&#8217;s so interesting how much intentionality I can read in to the result of these rules. It looks so much like they isolated this room for a reason, and built that corner corridor to lead to it. And that adds meaning and character to whatever we put there.</p>
<p>Once the room types are in, that might end up being a cargo hold with a locked door and valuable loot in it. Clearly, it&#8217;s isolated by these thick sturdy walls for security reasons.</p>
<p>But random is random, so it could just as easily end up being living quarters. Now the isolation looks like privacy: maybe they don&#8217;t want to be kept up by ship noises. Or it could be a bathroom, and they don&#8217;t want sound to travel for other reasons.</p>
<p>That&#8217;s why this new system fascinates me. It seems to create intentionality out of algorithms, and the more stuff I put into the game for it to combine with, the more unexpected combinations will come out.</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Floorplans-2.png"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Floorplans-2.png" alt="Heat Signature Floorplans 2" width="902" height="584" class="aligncenter size-full wp-image-7283" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Floorplans-2.png 902w, https://www.pentadact.com/wp-content/Heat-Signature-Floorplans-2-178x115.png 178w, https://www.pentadact.com/wp-content/Heat-Signature-Floorplans-2-500x323.png 500w" sizes="auto, (max-width: 902px) 100vw, 902px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-07-19-improving-heat-signatures-randomly-generated-ships-inside-and-out/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature Development Time-Lapse: 5 Months In 2 Minutes</title>
		<link>https://www.pentadact.com/2014-06-24-heat-signature-development-time-lapse-5-months-in-2-minutes/</link>
					<comments>https://www.pentadact.com/2014-06-24-heat-signature-development-time-lapse-5-months-in-2-minutes/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Tue, 24 Jun 2014 17:58:38 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7190</guid>

					<description><![CDATA[The reason it&#8217;s been a while since I last showed off my space stealth game, Heat Signature, is that I want to use the next video to put out a call for artists and musicians to hire. So it needs to show enough new stuff that the press might cover it, people might share it, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The reason it&#8217;s been a while since I last showed off my space stealth game, <a href="https://www.pentadact.com/2014-02-03-heat-signature-a-game-about-sneaking-aboard-randomly-generated-spaceships/">Heat Signature</a>, is that I want to use the next video to put out a call for artists and musicians to hire. So it needs to show enough new stuff that the press might cover it, people might share it, and it might get seen by more people.</p>
<p>Don&#8217;t apply for either of those jobs yet, though! The other thing I need to do before then is nail down enough of the game&#8217;s underlying tech to be sure of precisely what kind of art and music it needs. The way it&#8217;s coded right now is rather glitchy, so now I have to investigate whether it&#8217;s the fixable kind of glitchy, or the &#8220;Fuck this and try a different method entirely&#8221; kind of glitchy.</p>
<h5>Time lapse</h5>
<p>So I&#8217;m not going to show much of its current state, but I did put together a time-lapse of everything I&#8217;ve done so far: Heat Signature&#8217;s five month development in 2 minutes.<span id="more-7190"></span></p>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube-nocookie.com/embed/AU9UdHQXCpo?rel=0" frameborder="0" allowfullscreen></iframe></div>
<p>The jetpack thing you see early on there felt horrible, made your character feel more like a vehicle. The boarding drill was a technical nightmare I never got working, and would have broken most of the infiltration game design anyway. In general, stuff I cut made the game worse.</p>
<p>Here&#8217;s what stuck!</p>
<h5>New things since that last video</h5>
<ul>
<li>Ships now have individual turrets and thrusters you can hijack or destroy.</li>
<li>You can hijack the cockpit to take control of the ship, fly it around, start fights with others.</li>
<li>Ships fire heat-seeking missiles, accelerate to outrun them, then cut thrusters to cool down and lose them.</li>
<li>Christ, did I not even have modular destruction in that video? Modular destruction! Missiles destroy any module they hit.</li>
<li>If blowing up a room on a ship splits the ship, the fragments spin off independently. This caused insane complications with ship IDs and contents that I don&#8217;t want to talk about.</li>
<li>Sexy hot vapour trails on your ship. Trail thickness and brightness proportional to thrust when it was made, fades smoothly over time.</li>
<li>Loot! Find bits that upgrade your ships thrusters and cool rate.</li>
<li>Missions! Actually that&#8217;s the main thing I want to talk about, so I&#8217;ll break out of this list.</li>
</ul>
<h5>Rethinking missions</h5>
<p>Previously, the idea for Heat Signature would be that you would start the game with a single target to hunt down and eliminate, however you like. But, as I discussed in a dev log video, the business of actually searching for your target was inherently unfun. I replaced it with a system where you get progressively closer to finding them almost regardless of what you did, which was better, but weird.</p>
<p>Now I&#8217;m thinking that you&#8217;ll choose a class at the start, then be given a series of shorter missions of that type, forever. Assassins will be assigned to kill specific crewmembers on specific ships. Thieves to steal particular bits of tech from particular ships. Interceptors neutralise hostile ships. Exfiltrators capture and retrieve their targets alive. And you do as many of these missions as you can without dying.</p>
<p>I have the beginnings of that working: randomly generated assassinations and thefts that feel cool to pull off. But I haven&#8217;t entirely settled on whether the game will have permadeath or autosaves: I hope permadeath, but certain frustrations need to be solved design-wise before I can do that without causing bad situations.</p>
<p>As you can see, the &#8220;Who are you and what are you trying to do?&#8221; part of Heat Signature changes a lot, even as the game mechanics stay roughly the same. So these are just my latest thoughts, we&#8217;ll see what I settle on by the time I come to make the next proper demonstration video. It&#8217;ll be a while though, lots of basic tech stuff to redo first.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-06-24-heat-signature-development-time-lapse-5-months-in-2-minutes/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature&#8217;s First Four Objective Systems And Why They All Sucked</title>
		<link>https://www.pentadact.com/2014-04-22-heat-signatures-first-four-objective-systems-and-why-they-all-sucked/</link>
					<comments>https://www.pentadact.com/2014-04-22-heat-signatures-first-four-objective-systems-and-why-they-all-sucked/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Tue, 22 Apr 2014 13:35:20 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=7039</guid>

					<description><![CDATA[I&#8217;ve been designing and trying various ways for you to make progress towards your objective in Heat Signature, and four bad iterations have led me to a surprising conclusion.]]></description>
										<content:encoded><![CDATA[<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube-nocookie.com/embed/OvXtC26eU68" frameborder="0" allowfullscreen></iframe></div>
<p>I&#8217;ve been designing and trying various ways for you to make progress towards your objective in Heat Signature, and four bad iterations have led me to a surprising conclusion.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-04-22-heat-signatures-first-four-objective-systems-and-why-they-all-sucked/feed/</wfw:commentRss>
			<slash:comments>23</slash:comments>
		
		
			</item>
		<item>
		<title>Jerk, Jounce And Rates Of Change</title>
		<link>https://www.pentadact.com/2014-03-09-jerk-jounce-and-rates-of-change/</link>
					<comments>https://www.pentadact.com/2014-03-09-jerk-jounce-and-rates-of-change/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sun, 09 Mar 2014 15:03:40 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=6883</guid>

					<description><![CDATA[Yesterday I tweeted from the Heat Signature account about avoiding a tricky problem with homing missiles by just increasing their acceleration over time &#8211; I called it AccelerationAcceleration. Today, Coriolinus replied to say that the scientific name for this is actually &#8216;jerk&#8216;. This is amazing, and so is the Wikipedia page about it. &#8220;A passenger [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Yesterday I <a href="https://twitter.com/HeatSigGame/status/442318094388957185">tweeted</a> from the Heat Signature account about avoiding a tricky problem with homing missiles by just increasing their acceleration over time &#8211; I called it AccelerationAcceleration. Today, <a href="https://twitter.com/coriolinus">Coriolinus</a> replied to say that the scientific name for this is actually &#8216;<strong>jerk</strong>&#8216;. This is amazing, and so is <a href="https://en.wikipedia.org/wiki/Jerk_(physics)">the Wikipedia page about it</a>.<span id="more-6883"></span></p>
<div style="text-align:center;">
<p>
&#8220;A passenger in a vehicle with zero jerk will feel a constant force.&#8221;</p>
<p>&#8220;Excessive jerk may result in an uncomfortable ride on elevators, trams and the like.&#8221;</p>
<p>&#8220;A device that measures jerk is called a &#8220;jerkmeter&#8221;.&#8221;</p>
<p>&#8220;A jerk system is a system whose behavior is described by a jerk equation&#8221;</p>
<p>&#8220;How long the squooshing takes determines the jerk.&#8221;</p>
</div>
<p>Better still, the rate of change in jerk is called &#8216;<strong>jounce</strong>&#8216;. After that, though, physicists seem to run out of juicy, evocative words:</p>
<p>&#8220;The fourth, fifth and sixth derivatives of position as a function of time are sometimes somewhat facetiously referred to as &#8220;Snap&#8221;, &#8220;Crackle&#8221;, and &#8220;Pop&#8221; respectively.&#8221;</p>
<p>I feel like we can do better than that. So here&#8217;s my proposal for the first thirteen derivatives of position over time:</p>
<p>Change in position: <b>velocity</b><br />
Change in velocity: <b>acceleration</b><br />
Change in acceleration: <b>jerk</b><br />
Change in jerk: <b>jounce</b><br />
Change in jounce: <b>hyperjerk</b><br />
Change in hyperjerk: <b>meta-jounce</b><br />
Change in meta-jounce: <b>binge warp</b><br />
Change in binge warp: <b>migrational spank</b><br />
Change in migrational spank: <b>barflurch</b><br />
Change in barflurch: <b>dark jaunt</b><br />
Change in dark jaunt: <b>catastrophic snap</b><br />
Change in catastrophic snap: <b>whipfuck</b><br />
Change in whipfuck: <b>Newton&#8217;s torment</b></p>
<p>Anyone want to take it beyond thirteen?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-03-09-jerk-jounce-and-rates-of-change/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>Ending A Space War With A Punch In Heat Signature</title>
		<link>https://www.pentadact.com/2014-02-27-ending-a-space-war-with-a-punch-in-heat-signature/</link>
					<comments>https://www.pentadact.com/2014-02-27-ending-a-space-war-with-a-punch-in-heat-signature/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Thu, 27 Feb 2014 21:38:50 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=6876</guid>

					<description><![CDATA[The next thing I wanna let you do in Heat Signature is take the helm of an enemy ship and fly it yourself. But right now, things go very screwy if you&#8217;re on a ship as it accelerates. So I&#8217;m redoing all the relative velocity code to make sure the contents of a ship stay [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The next thing I wanna let you do in Heat Signature is take the helm of an enemy ship and fly it yourself. But right now, things go very screwy if you&#8217;re on a ship as it accelerates. So I&#8217;m redoing all the relative velocity code to make sure the contents of a ship stay stable while it&#8217;s jerking around.</p>
<p>I was testing the new code just now, and headed for a small ship to dock with it.<span id="more-6876"></span> It had rubbish heat sensors, so I came in pretty hot, and my ship was still cooling on its hull when I docked and snuck aboard. Unfortunately, at that exact moment, a much, much larger ship with much, much better heat sensors went past &#8211; and immediately spotted my still-warm ship latched onto the smaller one.</p>
<p>Ships have heat-seeking missile launchers now, of varying number, and when they attack they fire all of them. So as I&#8217;m dealing with the first guard in the small ship, four missiles slam into it. One destroys the module my ship was latched onto, sending it drifting into space. I run for the guard and knock him out, just as a missile destroys the room I was standing in a second earlier. </p>
<p>Two more rooms are blown off the smaller ship, leaving not much left. And once a space war starts, it doesn&#8217;t stop: the big ship might not have been aiming for the small one, but they&#8217;re enemies now, so they&#8217;ll shoot it out until one of them dies. And with four missiles per volley and only three rooms left on this ship, I don&#8217;t like our chances.</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Knockout.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Knockout.jpg" alt="Heat Signature Knockout" width="957" height="449" class="aligncenter size-full wp-image-6877" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Knockout.jpg 957w, https://www.pentadact.com/wp-content/Heat-Signature-Knockout-178x83.jpg 178w, https://www.pentadact.com/wp-content/Heat-Signature-Knockout-500x234.jpg 500w" sizes="auto, (max-width: 957px) 100vw, 957px" /></a></p>
<p>But it suddenly occurs to me that a ship doesn&#8217;t have to be obliterated to &#8216;die&#8217;. If you knock out the captain, its lights and sensors go out and other ships see it as defunct. The time between missile volleys is also randomised &#8211; somewhere between 3 and 6 seconds right now &#8211; so I had no idea if I had time, but I tried it anyway: I sprinted for the cockpit and smacked the captain unconscious. The lights went out, everything went quiet, and&#8230; nothing. </p>
<p>I zoomed out just in time to see the bigger ship&#8217;s sensor radius slip off screen as it cruised off.</p>
<p>I was still boned of course, stranded on this ruined ship without one of my own to leave in, but it felt like a fantastic moment. I&#8217;d never even thought of this as a tactic until I randomly found myself in a situation where it was the only way to survive.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-02-27-ending-a-space-war-with-a-punch-in-heat-signature/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Pathfinding In Heat Signature&#8217;s Randomised, Modularly Destructible Spaceships</title>
		<link>https://www.pentadact.com/2014-02-22-thinking-about-pathfinding-in-heat-signatures-randomised-modularly-destructible-spaceships/</link>
					<comments>https://www.pentadact.com/2014-02-22-thinking-about-pathfinding-in-heat-signatures-randomised-modularly-destructible-spaceships/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sat, 22 Feb 2014 15:09:50 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=6861</guid>

					<description><![CDATA[Updated! see bottom of post. Heat Signature is a game about randomised space ships that you can sneak aboard. These ships have a randomly generated interior of connected rooms and corridors, and crew that patrol those rooms. Right now, there&#8217;s no pathfinding: the crew roam randomly. At some point, though, you&#8217;ll be able to set [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>Updated!</strong> see bottom of post.</p>
<p>Heat Signature is a game about randomised space ships that you can sneak aboard. These ships have a randomly generated interior of connected rooms and corridors, and crew that patrol those rooms.</p>
<p>Right now, there&#8217;s no pathfinding: the crew roam randomly. At some point, though, you&#8217;ll be able to set off alarms or cause other disturbances that the crew should run to. So the problem is: how do find a route to that room? Specifically, how do they find the shortest route to that room?<span id="more-6861"></span></p>
<p>I could cheat a bit: right now each row of rooms in a ship is always internally connected, and each has just one door to the next row. But I might change that layout logic, and as I&#8217;ve been planning the features for Heat Signature, I&#8217;ve noticed something interesting: a lot of the problems I&#8217;ll need to solve utlimately boil down to: <strong>&#8220;Is this module connected to that one?&#8221;</strong> and <strong>&#8220;If so, what&#8217;s the shortest route?&#8221;</strong></p>
<p>Crew pathfinding is one. Player pathfinding is another, if I keep the current controls. But also, when a ship is hit by a missile, the module that got hit is destroyed. If you blow up enough modules to cut a ship in half, it ought to break apart. How do we tell when that should happen, and which modules should belong to which half? Well, we need to know <strong>&#8220;Is this module connected to that one?&#8221;</strong></p>
<p>Fourthly, and this is just a pipe dream, but if it&#8217;s not too hard I would love to have vacuum suck you out into space. So when that module gets destroyed, it takes a second for the doors that were leading to it to seal, and everything would be sucked towards it in that time. To figure out what gets sucked and in which direction, we&#8217;d need to know: <strong>&#8220;Is this module connected to that one?&#8221;</strong> and <strong>&#8220;If so, what&#8217;s the shortest route?&#8221;</strong></p>
<p>In programming, you&#8217;re always hitting challenges other people have already solved. The best policy is to do your research, find out what the best solution out there is, and adapt it to you purposes. But I hate research, and I love figuring things out, so I have a different policy: try to figure it out for yourself. If you can&#8217;t, or your solution seems insanely hard to implement, then look it up.</p>
<p>So I haven&#8217;t looked up how you do pathfinding &#8211; I&#8217;m going to try my own way first. And since it&#8217;s a big subject and I&#8217;m blundering through it in my head, I thought I&#8217;d write out the approach I&#8217;m going to try before I actually try it, partly to make sure the logic is sound before I do the legwork of implementing it. So here&#8217;s my plan:</p>
<h5>Pathfinding By Induction</h5>
<p>In maths, there&#8217;s a very useful process called induction: if you want to solve a problem for all numbers, start by solving it for &#8216;1&#8217;, then use that result for &#8216;2&#8217;, and so on. Algorithmically finding the shortest route between two distant points in a selectively blocked grid seems daunting to me, so I think I&#8217;ll start with the case I can solve and work from there. If two modules are connected by a door, I can <em>definitely</em> tell you the shortest route between them.</p>
<p>It would work like this:</p>
<p>Every module is assigned a number, from 1 to however many modules there are on the ship.</p>
<p>We want to give every module two lists: one is how far it is to each other module on the ship, and the other is which way you should head if you&#8217;re going to that module.</p>
<p>So if the Cockpit is module 1, module 8&#8217;s lists will hopefully end up including something like:</p>
<ul>
<li>DistanceTo[1] = 5 modules</li>
<li>NextStepTo[1] = go to Module[7]</li>
</ul>
<p>But we don&#8217;t know that yet. So when the ship is created, all these distances are set to a big number (ModuleCount) &#8211; no module knows of a good route to any other one yet.</p>
<p>Then we go through the modules one by one.</p>
<p>For each module, we check to see if it has a door to any of its neighbours.</p>
<p>For each of its connected neighbours, we say:</p>
<ul>
<li>The distance to that neighbouring module from here is 1 (DistanceTo[n]  = 1)</li>
<li>To get to this module, just head straight to it (NextStepTo[n] = Module[n])</li>
</ul>
<p>These ones are easy! But obviously we can&#8217;t stop there. So we also look at the neighbouring module&#8217;s list of distances to each other module in the ship, and ask:</p>
<ul>
<li>Is your best known distance to that module much (2) shorter than ours?</li>
<li>If so, we can find a better route to that module by going through you!</li>
<li>Our distance to that module is now your distance + 1: we take one step to get to you, then use your route (DistanceTo[d]  = Module[n].DistanceTo[d] + 1)</li>
<li>So our NextStepTo that module is you (NextStepTo[d] = Module[n])</li>
</ul>
<p>So that&#8217;ll get us some routes to modules that aren&#8217;t our neighbours, but obviously it won&#8217;t get them all &#8211; not on first run. When we run this for the first module in the ship, none of the other modules have routes to anywhere, so it&#8217;ll only know about its neighbours.</p>
<p>But this process is sound: it&#8217;ll never replace a good route with a worse one, and each time you run it it&#8217;ll find efficient routes to more and more distant modules, until all the lists are optimal.</p>
<p>How many times do we have to run it for that?</p>
<p>Well, we can stop running it when the routes aren&#8217;t changing anymore &#8211; if none of them change on one run, they also won&#8217;t change on the next one, so the process is finished.</p>
<h5>Why This Method?</h5>
<p>For a single pathfinding operation, this method is probably super inefficient: it involves a lot of nested loops, so the total number of operations it&#8217;ll do is very high. I&#8217;m trying it because: </p>
<p>a) I&#8217;m too dumb to see how to optimise it, and<br />
b) it doesn&#8217;t really matter if it&#8217;s a bit slow, because it doesn&#8217;t need to run at all for people to navigate. Every room has a static list that tells everyone where to go next without performing any actual calculations. So you could have thousands of crew and thousands of modules and still spend zero cycles on pathfinding. It only needs to recalculate when the ship physically changes shape, which happens much more rarely.</p>
<p>It&#8217;s probably still a dumb method and I&#8217;m sure many of you will point out problems or better ways of doing it &#8211; please do! But I&#8217;m interested to give it a go and see how it works. I might even put in some visualisation stuff so I can see it working, and the paths it creates.</p>
<h5>Update</h5>
<p>It worked! Here&#8217;s a shot where every room is showing the shortest route to the player from there (click for big):</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Pathfinding-Works.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Pathfinding-Works.jpg" alt="Heat Signature Pathfinding Works" width="1057" height="682" class="aligncenter size-full wp-image-6871" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Pathfinding-Works.jpg 1057w, https://www.pentadact.com/wp-content/Heat-Signature-Pathfinding-Works-178x114.jpg 178w, https://www.pentadact.com/wp-content/Heat-Signature-Pathfinding-Works-500x322.jpg 500w, https://www.pentadact.com/wp-content/Heat-Signature-Pathfinding-Works-1024x660.jpg 1024w" sizes="auto, (max-width: 1057px) 100vw, 1057px" /></a></p>
<p>Next step is to check it works when a ship is damaged &#8211; maybe I could also make crew run to the point of impact to give it a test run, too. Might do a video once everything&#8217;s all working together &#8211; I&#8217;ve also added heat seeking missiles and infighting between ships since the last one.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-02-22-thinking-about-pathfinding-in-heat-signatures-randomised-modularly-destructible-spaceships/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>How IndieCade Went For Heat Signature And The Grappling Hook Game</title>
		<link>https://www.pentadact.com/2014-02-22-how-indiecade-went-for-heat-signature-and-the-grappling-hook-game/</link>
					<comments>https://www.pentadact.com/2014-02-22-how-indiecade-went-for-heat-signature-and-the-grappling-hook-game/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sat, 22 Feb 2014 13:55:51 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<category><![CDATA[Screenshots]]></category>
		<category><![CDATA[The Grappling Hook Game]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=6848</guid>

					<description><![CDATA[IndieCade East was lovely. It&#8217;s a convention in New York, held at the Museum of the Moving Image, consisting mostly of people giving talks about games or showing their games. For example, Zack Johnson talked to Margaret Robertson about the crazy 11-year history of his still actively developed web game Kingdom of Loathing: And in [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>IndieCade East was lovely. It&#8217;s a convention in New York, held at the Museum of the Moving Image, consisting mostly of people giving talks about games or showing their games. For example, Zack Johnson talked to Margaret Robertson about the crazy 11-year history of his still actively developed web game Kingdom of Loathing:<span id="more-6848"></span></p>
<p><a href="https://www.pentadact.com/wp-content/Kingdom-of-Loathing.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Kingdom-of-Loathing.jpg" alt="Kingdom of Loathing" width="3264" height="2448" class="aligncenter size-full wp-image-6849" srcset="https://www.pentadact.com/wp-content/Kingdom-of-Loathing.jpg 3264w, https://www.pentadact.com/wp-content/Kingdom-of-Loathing-178x133.jpg 178w, https://www.pentadact.com/wp-content/Kingdom-of-Loathing-500x375.jpg 500w, https://www.pentadact.com/wp-content/Kingdom-of-Loathing-1024x768.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></a></p>
<p>And in the showing-games part, there was Dry Ice: a top-down local multiplayer game in which all four of you control craft that go invisible &#8211; even to you &#8211; until you fire. </p>
<p>(I talk more about both these things in the latest <a href="http://crateandcrowbar.com/forum/episode-discussion/episode-30-the-strange-riches-of-the-meat-tornado/">Crate and Crowbar podcast</a>)</p>
<p>I was there partly to show both the games I&#8217;m working on, get people to play them, and ask them which they preferred. That forced me to get both in suitable shape to be played by strangers: as soon as I committed to doing it, I realised the grappling hook game needed objectives to make the co-operative movement useful, and Heat Signature needed visibility tweaks and player guidance to make it comprehensible.</p>
<p>Once I had a build of each ready for IndieCade, I made videos to show their current states to the internet too. The internet spoke pretty clearly: <a href="http://www.youtube.com/watch?v=GAdjrGMu2ZM">the grappling hook game&#8217;s video has about 3,000 views</a>, and <a href="http://www.youtube.com/watch?v=AsPOBNRSRQQ">Heat Signature&#8217;s now has 27,000</a> and got coverage on big gaming sites.</p>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube-nocookie.com/embed/GAdjrGMu2ZM?rel=0" frameborder="0" allowfullscreen></iframe></div>
<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube-nocookie.com/embed/AsPOBNRSRQQ?rel=0" frameborder="0" allowfullscreen></iframe></div>
<p>At IndieCade, though, the first three people to play both prototypes all said they liked the grappling hook game more. Two people said they were more excited by Heat Signature at first, but changed their vote after playing the grappling hook game. And after around ten people had played or seen both games, the votes were about 60% in favour of the grappling hook game.</p>
<p>That&#8217;s not a significant lead, and a tiny sample size compared to the internet, but it&#8217;s alleviated my worry that the grappling hook game might have been <em>really</em> far from working. The build I showed has lots of extremely awkward control problems, and I think with a few simple fixes it would have got an even better response. As with Gunpoint at the IGF in 2012, lots of these were things I knew were problems, but wasn&#8217;t 100% sure how to solve until I saw people struggle with them right in front of me.</p>
<p><a href="https://www.pentadact.com/wp-content/Necrodancer.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Necrodancer.jpg" alt="Necrodancer" width="3264" height="1991" class="aligncenter size-full wp-image-6857" srcset="https://www.pentadact.com/wp-content/Necrodancer.jpg 3264w, https://www.pentadact.com/wp-content/Necrodancer-178x108.jpg 178w, https://www.pentadact.com/wp-content/Necrodancer-500x304.jpg 500w, https://www.pentadact.com/wp-content/Necrodancer-1024x624.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></a></p>
<p>It&#8217;s always been the plan to make both games, and it still is. I was showing the two partly to force myself to focus on what each one truly needed to be playable, partly to see if either one of them was just not going to work for people, and partly to see which one it makes sense to finish first.</p>
<p>It seems like they both work, but Heat Signature will be a lot quicker to finish. I&#8217;ll keep working on Grappling Hook Game in between &#8211; I&#8217;m excited about making those tweaks &#8211; but I have a clearer picture of how to prioritise them now.</p>
<p>Speaking of which, I talked a bit about both games, and story in Heat Signature, and the appeal of sudden death, in <a href="https://www.developersaccomplice.co.uk/heat-signature-qa-tom-francis/">this here interview</a>.</p>
<p>Here are some more photos of IndieCade and New York.</p>
<p><a href="https://www.pentadact.com/wp-content/Oculus.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Oculus.jpg" alt="Oculus" width="2943" height="1436" class="aligncenter size-full wp-image-6856" srcset="https://www.pentadact.com/wp-content/Oculus.jpg 2943w, https://www.pentadact.com/wp-content/Oculus-178x86.jpg 178w, https://www.pentadact.com/wp-content/Oculus-500x243.jpg 500w, https://www.pentadact.com/wp-content/Oculus-1024x499.jpg 1024w" sizes="auto, (max-width: 2943px) 100vw, 2943px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Rockefeller-Snow.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Rockefeller-Snow.jpg" alt="Rockefeller Snow" width="3264" height="1857" class="aligncenter size-full wp-image-6854" srcset="https://www.pentadact.com/wp-content/Rockefeller-Snow.jpg 3264w, https://www.pentadact.com/wp-content/Rockefeller-Snow-178x101.jpg 178w, https://www.pentadact.com/wp-content/Rockefeller-Snow-500x284.jpg 500w, https://www.pentadact.com/wp-content/Rockefeller-Snow-1024x582.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/New-York-Snow.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/New-York-Snow.jpg" alt="New York Snow" width="3264" height="1683" class="aligncenter size-full wp-image-6855" srcset="https://www.pentadact.com/wp-content/New-York-Snow.jpg 3264w, https://www.pentadact.com/wp-content/New-York-Snow-178x91.jpg 178w, https://www.pentadact.com/wp-content/New-York-Snow-500x257.jpg 500w, https://www.pentadact.com/wp-content/New-York-Snow-1024x528.jpg 1024w" sizes="auto, (max-width: 3264px) 100vw, 3264px" /></a></p>
<p><a href="https://www.pentadact.com/wp-content/Rockefeller-Snow-Portrait.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Rockefeller-Snow-Portrait.jpg" alt="Rockefeller Snow Portrait" width="2324" height="3176" class="aligncenter size-full wp-image-6852" srcset="https://www.pentadact.com/wp-content/Rockefeller-Snow-Portrait.jpg 2324w, https://www.pentadact.com/wp-content/Rockefeller-Snow-Portrait-178x243.jpg 178w, https://www.pentadact.com/wp-content/Rockefeller-Snow-Portrait-500x683.jpg 500w, https://www.pentadact.com/wp-content/Rockefeller-Snow-Portrait-749x1024.jpg 749w" sizes="auto, (max-width: 2324px) 100vw, 2324px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-02-22-how-indiecade-went-for-heat-signature-and-the-grappling-hook-game/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Randomly Generating Simple Spaceships In Heat Signature</title>
		<link>https://www.pentadact.com/2014-02-07-randomly-generating-simple-spaceships-in-heat-signature/</link>
					<comments>https://www.pentadact.com/2014-02-07-randomly-generating-simple-spaceships-in-heat-signature/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Fri, 07 Feb 2014 23:31:25 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<category><![CDATA[Procedural Generation]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=6835</guid>

					<description><![CDATA[The way Heat Signature randomly generates its ships at the moment is very basic &#8211; I&#8217;m new to random generation, and I don&#8217;t polish or improve things until all the other systems are in. Its process for the ship&#8217;s shapes is probably obvious from the video: Pick a random &#8216;length&#8217; in ship modules That many [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The way Heat Signature randomly generates its ships at the moment is very basic &#8211; I&#8217;m new to random generation, and I don&#8217;t polish or improve things until all the other systems are in.</p>
<p>Its process for the ship&#8217;s shapes is probably obvious from the video:<span id="more-6835"></span></p>
<ul>
<li>Pick a random &#8216;length&#8217; in ship modules</li>
<li>That many times:</li>
</ul>
<ul style="margin-left:30px;">
<li>Pick a random &#8216;width&#8217; for this row</li>
<li>Generate that many modules</li>
<li>Center them along the ship&#8217;s middle</li>
</ul>
<p>So they&#8217;re all symmetrical, and contain no gaps, holes or curves &#8211; conventional. You still get some interesting oddities &#8211; like the rare very wide ship that&#8217;s only one module long &#8211; but the pattern is pretty obvious.</p>
<p>For the layout of the internal rooms and corridors, I tried the same approach: just the simplest thing I could think of that would always work. But I think it&#8217;s harder to see the pattern in the results. Even knowing the rules, I still find layouts that surprise me.</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Corridors.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Corridors.jpg" alt="Heat Signature Corridors" width="633" height="434" class="aligncenter size-full wp-image-6842" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Corridors.jpg 633w, https://www.pentadact.com/wp-content/Heat-Signature-Corridors-178x122.jpg 178w, https://www.pentadact.com/wp-content/Heat-Signature-Corridors-500x342.jpg 500w" sizes="auto, (max-width: 633px) 100vw, 633px" /></a></p>
<p>Curious about this, I asked from <a href="https://twitter.com/HeatSigGame">the game&#8217;s Twitter account</a> if anyone could guess what the rules were from the video. I got lots of good suggestions, and one or two got an individual rule right, but none that I saw got the whole process. Here&#8217;s what it does:</p>
<ul>
<li>When building a row, always add a doorway to the next module in the row.</li>
<li>Pick a random module position in this row that&#8217;s not empty in the next row, and make a doorway between the two.</li>
<li>If a module connects exactly two modules in a straight line, it&#8217;s a corridor. Otherwise, it&#8217;s a room.</li>
</ul>
<p>This ensures every room is connected to every other room, so it&#8217;s never impossible to get somewhere, but also makes it unlikely that the route will be direct. It makes a lot of wildly unrealistic corridor layouts, but I was surprised at how varied they felt.</p>
<p><a href="https://www.pentadact.com/wp-content/Heat-Signature-Corridors-2.jpg"><img loading="lazy" decoding="async" src="https://www.pentadact.com/wp-content/Heat-Signature-Corridors-2.jpg" alt="Heat Signature Corridors 2" width="1158" height="694" class="aligncenter size-full wp-image-6841" srcset="https://www.pentadact.com/wp-content/Heat-Signature-Corridors-2.jpg 1158w, https://www.pentadact.com/wp-content/Heat-Signature-Corridors-2-178x106.jpg 178w, https://www.pentadact.com/wp-content/Heat-Signature-Corridors-2-500x299.jpg 500w, https://www.pentadact.com/wp-content/Heat-Signature-Corridors-2-1024x613.jpg 1024w" sizes="auto, (max-width: 1158px) 100vw, 1158px" /></a></p>
<p>I didn&#8217;t plan it this way, but it&#8217;s also quite similar to a Spelunky level laid down flat: a Spelunky level is a series of floors made up of chunks, and a randomly selected chunk will lead down to the next floor. It doesn&#8217;t guarantee every chunk is connected to every other, though, only the &#8216;leading down&#8217; chunks.</p>
<p>I&#8217;ll change this a fair bit as I go &#8211; once guards are harder to get past, and there&#8217;s more incentive for stealth, I&#8217;ll open up multiple routes between rooms to give you more options.</p>
<p>I&#8217;ll also make the ship generation itself more varied, possibly by faction. At the very least I want &#8216;junk&#8217; type ships that are cobbled together from old wrecks and not at all symmetrical. It&#8217;d also be interesting to have a type that are rotationally symmetric, or have a width-wise axis of symmetry instead. And I can vary module width and length independently, which&#8217;ll change the whole shape, look and feel both inside and out.</p>
<p>But it&#8217;s not worth tinkering with that stuff yet &#8211; after IndieCade, my next job will be to put ship systems in, so that rooms relate to ship capabilities and you can sabotage them. Once ship functions are tied to their layouts, there may be implications for ship generation I haven&#8217;t seen coming. More importantly, it&#8217;ll be a lot more fun to mess around with.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-02-07-randomly-generating-simple-spaceships-in-heat-signature/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>The Heat Signature FAQ</title>
		<link>https://www.pentadact.com/2014-02-07-the-heat-signature-faq/</link>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Fri, 07 Feb 2014 13:51:34 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=6825</guid>

					<description><![CDATA[People often ask me: &#8220;Tom, frequentlyAskedQuestion[floor(random(frequentlyAskedQuestion.Count))].&#8221; &#8220;Well,&#8221; I tell them&#8230; When will&#8230; I don&#8217;t know. I didn&#8217;t finish my question! If it starts with &#8216;When will&#8217;, my answer is always &#8216;I don&#8217;t know&#8217; &#8211; I learned from Gunpoint that it&#8217;s pointless, impossible and even harmful for me to guess how long developing something will take [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>People often ask me: &#8220;Tom, frequentlyAskedQuestion[floor(random(frequentlyAskedQuestion.Count))].&#8221;</p>
<p>&#8220;Well,&#8221; I tell them&#8230;<span id="more-6825"></span></p>
<h5>When will&#8230;</h5>
<p>I don&#8217;t know.</p>
<h5>I didn&#8217;t finish my question!</h5>
<p>If it starts with &#8216;When will&#8217;, my answer is always &#8216;I don&#8217;t know&#8217; &#8211; I learned from Gunpoint that it&#8217;s pointless, impossible and even harmful for me to guess how long developing something will take me. Don&#8217;t worry about it dragging on forever, though, I&#8217;m incredibly impatient.</p>
<h5>When- LET ME FINISH &#8211; when it <em>is</em> ready for testing, can I get in on that?</h5>
<p>Quite possibly! When I do get to that stage, I&#8217;ll let the Suspicious Developments Mailing List know how to sign up, so <a href="http://eepurl.com/xKpTD">join that</a>.</p>
<h5>What are you making it in, and will it come to Mac and Linux?</h5>
<p>Game Maker Studio, a more modern version of the same tool I used for Gunpoint. I can&#8217;t be sure about non-Windows platforms because I&#8217;ve never tried those before in Game Maker (Gunpoint&#8217;s were handled externally). If I export it and it just works, great. If it&#8217;s riddled with platform-specific problems, then I&#8217;m not gonna promise I&#8217;ll have the time and talent to fix enough of those to make it good enough to sell.</p>
<h5>Will you do a Kickstarter?</h5>
<p>Nope, my share of Gunpoint&#8217;s earnings fund Heat Signature&#8217;s development.</p>
<h5>Will you do Early Access?</h5>
<p>I don&#8217;t plan to. I definitely wouldn&#8217;t put the game up in a rough state and start charging for it &#8211; I never want to sell a thing I don&#8217;t believe is worth the money in its current state. The other possibility is to get the game into a good state and then use Early Access like a final beta. I&#8217;m not against that in principle, but my current plan is just to keep doing closed alphas you can <a href="http://gunpointgame.us2.list-manage.com/subscribe?u=332b53efcc5be9a48a5c44ea8&#038;id=f68b263ad6">sign up</a> to.</p>
<h5>Weren&#8217;t you learning Unity? Why did you switch back?</h5>
<p>I still am. I&#8217;m using Game Maker for Heat Signature because part of the appeal of the idea, to me, was that I already knew how to make it in the tools I&#8217;ve previously used. I&#8217;m very slow and very bad at Unity by comparison, so I want to keep learning it while still getting something done.</p>
<h5>I want to make a game, should I use Unity or Game Maker?</h5>
<p>If you&#8217;re a complete beginner and your idea would work in 2D, I suggest Game Maker because it&#8217;s so much quicker to learn.</p>
<p>If you have some programming knowledge, or your idea needs to be in 3D and you&#8217;re patient, I suggest Unity: it&#8217;s more flexible, it&#8217;ll probably be easier to work with other people, and the asset store is really cool. Unity can do 2D games, but I haven&#8217;t tried it for that.</p>
<h5>What tutorials do you recommend for Game Maker or Unity?</h5>
<p>For Game Maker, <a href="https://www.pentadact.com/2015-01-09-video-tutorial-make-a-game-with-no-experience/">mine</a>! I did a video series talking you through making a game with no coding experience, with the free version, in 16 hours. For Unity, I used and liked <a href="https://www.youtube.com/watch?v=QMWhtKjUr10">Alec Holowka&#8217;s</a>, but they&#8217;re for JavaScript and you&#8217;re probably better off in C# in the long run. These days I&#8217;m mostly just using the stuff on their official site.</p>
<h5>Can I suggest something?</h5>
<p>Yes, but! Don&#8217;t make a suggestion if you would be upset to see that suggestion in the game without credit to you. It&#8217;s very common for people to suggest things I&#8217;m already planning, and luckily so far everyone seems lovely and just happy the game is going in the direction they&#8217;d hoped, but I&#8217;m aware of the potential for someone to get the wrong idea.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Heat Signature: A Game About Sneaking Aboard Randomly Generated Spaceships</title>
		<link>https://www.pentadact.com/2014-02-03-heat-signature-a-game-about-sneaking-aboard-randomly-generated-spaceships/</link>
					<comments>https://www.pentadact.com/2014-02-03-heat-signature-a-game-about-sneaking-aboard-randomly-generated-spaceships/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Mon, 03 Feb 2014 17:53:35 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=6809</guid>

					<description><![CDATA[I can now show you what my space stealth game is really about! As long as I don&#8217;t get spotted like three times in a row right at the start of this video. Watch that first if you care, if not, here&#8217;s the summary. You fly around in a little ship with no weapons, trying [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube-nocookie.com/embed/AsPOBNRSRQQ?rel=0" frameborder="0" allowfullscreen></iframe></div>
<p>I can now show you what my space stealth game is really about! As long as I don&#8217;t get spotted like three times in a row right at the start of this video. Watch that first if you care, if not, here&#8217;s the summary.<span id="more-6809"></span></p>
<ul>
<li>You fly around in a little ship with no weapons, trying to avoid being detected by big, powerful, <strong>randomly generated space ships</strong>. </li>
<li>If you can sneak up on them and stay cool enough to avoid their heat sensors, you can latch onto their airlock, breach it, and <strong>climb aboard</strong>.</li>
<li>Once inside their ship, you&#8217;ve got to <strong>avoid any armed crew</strong> patrolling the corridors and rooms of the ship, and if you can get to the helm and subdue the captain, the ship is disabled.</li>
<li>In future, ship systems like guns and thrusters will be in specific rooms of the ship, and you&#8217;ll be able to <strong>sabotage or control them</strong> if you get there. You&#8217;ll also be able to fly their ship if you get to the helm.</li>
<li>My plan is that each time you start the game, you&#8217;ll be <strong>randomly assigned a profession</strong> and a target: &#8220;You are an assassin. Your target is Tom Francis.&#8221; or &#8220;You are a shipjacker. Steal the Dreadnaught Incisor.&#8221;</li>
<li>You&#8217;d locate your target by boarding ships and <strong>hacking their server</strong>, which would either give you info on your target&#8217;s location, or on which types of ships are likely to have that info.</li>
</ul>
<h5>If you&#8217;re interested</h5>
<p>If you want to be told when it comes out, or when I&#8217;m looking for testers, get on <a href="http://eepurl.com/xKpTD">the Suspicious Developments mailing list</a>. I only use this for very rarely for major news like the above, it&#8217;s mainly a way to ensure you don&#8217;t miss anything big.</p>
<p>For more regular shots and dev diary videos and stuff, you can follow it on Twitter <a href="https://twitter.com/HeatSig">@HeatSig</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-02-03-heat-signature-a-game-about-sneaking-aboard-randomly-generated-spaceships/feed/</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
			</item>
		<item>
		<title>Game Design: The Non-Stick Plan</title>
		<link>https://www.pentadact.com/2014-01-25-game-design-the-non-stick-plan/</link>
					<comments>https://www.pentadact.com/2014-01-25-game-design-the-non-stick-plan/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Sat, 25 Jan 2014 15:16:11 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<category><![CDATA[The Grappling Hook Game]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=6784</guid>

					<description><![CDATA[Thought I&#8217;d take a break from programming talk to get into game design, and how I approach it. I am aware my mug is ridiculous &#8211; it&#8217;s an old GTA III promo one. I&#8217;m bad at shutting up once I get talking about this stuff, so I&#8217;ll also summarise the basic points in this post. [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube-nocookie.com/embed/iDN7jA7hEhA" frameborder="0" allowfullscreen></iframe></div>
<p>Thought I&#8217;d take a break from programming talk to get into game design, and how I approach it. I am aware my mug is ridiculous &#8211; it&#8217;s an old GTA III promo one.</p>
<p>I&#8217;m bad at shutting up once I get talking about this stuff, so I&#8217;ll also summarise the basic points in this post. Not all of this stuff is in the video and not all of the video is in this &#8211; good summary Tom.<span id="more-6784"></span></p>
<h5>Starting</h5>
<p>I usually have an idea for a game when I&#8217;m excited about something else. With Gunpoint, it was thinking of cool ways to infiltrate buildings in Deus Ex. </p>
<p>For the Grappling Hook Game, I was watching a great Chinese/Korean heist movie where they use a lot of ropes (it&#8217;s on Netflix: <a href="http://movies.netflix.com/WiMovie/The_Thieves/70259456?trkid=2361637">The Thieves</a>), and it clicked with all the rope-related moments I&#8217;d loved in Worms and Chaos Theory co-op and Rainbow Six: Vegas. </p>
<p>And for Heat Signature, it was an old idea I&#8217;d had for a triple-A 3D roguelike, which I&#8217;d always assumed to be impossible. I got talking to Graham about how it might work in 2D, and the more we talked about it the more doable it seemed, and the less I felt it needed to be anything else.</p>
<p>With all these, what turns it from &#8216;something I&#8217;m excited about&#8217; to &#8216;something I want to make a game about&#8217; is a conviction that this exciting, magical thing can be compressed down to a simple set of rules. Rules that wouldn&#8217;t just be a crude shadow of what&#8217;s cool about these things, but actually condense what makes them exciting, and generate that excitement again and again.</p>
<h5>Making Things Modular</h5>
<p>When there are big sweeping unknowns in how I&#8217;m going to handle something in a game, they usually get cleared up when I find some way to classify what needs to fill that gap, to summarise it as a simple template that can be varied and repeated to create things that&#8217;ll be interestingly different.</p>
<p>In Gunpoint, the question of &#8220;What kind of things can you hack?&#8221; was answered when I figured out how to define these things: each one is an electrical device, each one can be connected to any other, and each one can trigger whatever else it&#8217;s connected to. From that template, I can fill the levels with these crosslinkable &#8216;modules&#8217;: light switches, electronically locked doors, security cameras, trapdoors, etc.</p>
<p>How that same principle applied to Heat Signature is what I talk about in the video above.</p>
<h5>Leaving Flexible Gaps</h5>
<p>It&#8217;s very hard to answer all the unknowns in a plan all at once, and it doesn&#8217;t really make sense to &#8211; you need to make some of it to really bring into focus what it&#8217;s missing or what it would benefit from. So it&#8217;s good to leave these gaps flexible: I try never to say things like, &#8220;And I&#8217;ll have to come up with a full text parser to make AI-driven conversations work.&#8221; </p>
<p>It works out better if you keep that gap flexible: &#8220;And then you&#8217;ll talk to these characters, but I&#8217;ll decide how in depth and interactive we make that when I come to build it &#8211; anything from completely pre-scripted text boxes to dialogue trees to the nutty text-parsing thing.&#8221;</p>
<h5>Having A Plan And Not Sticking To It</h5>
<p>I do plan, a lot, but it&#8217;s more like navigation than a strict design document. I hate to waste time, and making things work is very time consuming, whereas purely theoretical design is very easy. Purely theoretical design can&#8217;t fully predict what the finished system will feel like or what the consequences of it will be, but it can foresee some problems, and when it does, it&#8217;s usually right. </p>
<p>There are an infinite number of things you could make &#8211; it doesn&#8217;t make sense to spend your time exploring ones that already seem problematic after a few minutes mapping them out in a text document.</p>
<p>But having that document doesn&#8217;t stop you from changing course when the thing you build turns out differently than you imagined. The plan for the Grappling Hook Game says only one character should have the grappling hook, to encourage co-operation. Now that I&#8217;ve built that much, playing as the non-grappling hook characters feels a bit paralysing, so now I&#8217;m figuring out if it&#8217;s viable to give them all grappling hooks in addition to their speciality gadget. </p>
<p>If that feels good, the whole game could become about latching onto friends and swinging off them mid-air to do ridiculous things. If it doesn&#8217;t, maybe the solution is just to improve on-foot movement or something. I don&#8217;t know yet, but the plan is always just &#8216;what seems most promising on paper &#8211; try this first&#8217;.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2014-01-25-game-design-the-non-stick-plan/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>Heat Signature, A Stealth Space Game About Temperature</title>
		<link>https://www.pentadact.com/2013-12-03-heat-signature-a-stealth-space-game-about-temperature/</link>
					<comments>https://www.pentadact.com/2013-12-03-heat-signature-a-stealth-space-game-about-temperature/#comments</comments>
		
		<dc:creator><![CDATA[Pentadact]]></dc:creator>
		<pubDate>Tue, 03 Dec 2013 22:03:09 +0000</pubDate>
				<category><![CDATA[Game development]]></category>
		<category><![CDATA[Heat Signature]]></category>
		<guid isPermaLink="false">http://www.pentadact.com/?p=6723</guid>

					<description><![CDATA[Here&#8217;s the first video of Heat Signature, a temperature-based space stealth game I&#8217;ve been making the last two days. It&#8217;s about sneaking up on ships while keeping your ship cool enough to fool their sensors. So you can jet around an infinite galaxy super fast, but your thrusters generate heat, and enemies can detect that [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="VideoWrapper"><iframe loading="lazy" width="1280" height="720" src="//www.youtube.com/embed/lrfRJZ6mOAU" frameborder="0" allowfullscreen></iframe></div>
<p>Here&#8217;s the first video of Heat Signature, a temperature-based space stealth game I&#8217;ve been making the last two days. It&#8217;s about sneaking up on ships while keeping your ship cool enough to fool their sensors.</p>
<p>So you can jet around an infinite galaxy super fast, but your thrusters generate heat, and enemies can detect that from far away. The closer you want to get to them, the cooler you have to stay, and the more precise you have to be with your thrusters. And to take them out, you have to physically clamp onto their hull and shut down their systems.</p>
<p><a href="https://www.pentadact.com/2013-11-08-ghgc-dev-log-4-rules-of-retraction/">GHGC</a> is still my main project, I&#8217;m just taking a break from the brutal process of learning Unity to make something quick in Game Maker, where I already speak the language. How far I take this depends on how the next few features work out.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.pentadact.com/2013-12-03-heat-signature-a-stealth-space-game-about-temperature/feed/</wfw:commentRss>
			<slash:comments>24</slash:comments>
		
		
			</item>
	</channel>
</rss>
