<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Hyperlink Your Heart - life</title><link href="https://blog.hyperlinkyourheart.com/" rel="alternate"></link><link href="https://blog.hyperlinkyourheart.com/feeds/tag.life.atom.xml" rel="self"></link><id>https://blog.hyperlinkyourheart.com/</id><updated>2025-08-08T14:10:00+02:00</updated><subtitle>Until there's nothing left.</subtitle><entry><title>The Power of Breaks</title><link href="https://blog.hyperlinkyourheart.com/breaks.html" rel="alternate"></link><published>2025-08-08T14:10:00+02:00</published><updated>2025-08-08T14:10:00+02:00</updated><author><name>Kevin Houlihan</name></author><id>tag:blog.hyperlinkyourheart.com,2025-08-08:/breaks.html</id><summary type="html">&lt;p&gt;Sometimes taking a break makes the solution to a problem obvious when you return to&amp;nbsp;it.&lt;/p&gt;</summary><content type="html">&lt;p&gt;A few months ago I was stuck on a particularly frustrating problem in the development of &lt;a href="https://github.com/khoulihan/digression" title="Digression repository on GitHub."&gt;Digression&lt;/a&gt;, my dialogue graph editor for &lt;a href="https://godotengine.org/" title="The game engine you waited for."&gt;Godot&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I had recently switched it to a main screen editor, as discussed in my &lt;a href="https://blog.hyperlinkyourheart.com/lovely.html" title="Post-mortem of my Ludum Dare entry Lovely, Dark and Deep."&gt;post-mortem of my last Ludum Dare entry&lt;/a&gt;, and added a list of open graphs, and another of anchor points in the currently edited graph, similar to the scripts and methods list in the built-in script editor. Basically I have decided to reproduce the &lt;span class="caps"&gt;UI&lt;/span&gt; conventions of the script editor where they are at all&amp;nbsp;applicable.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/khoulihan/digression" title="Digression repository on GitHub."&gt;&lt;img alt="Screenshot of the graph editor main screen described above." src="https://blog.hyperlinkyourheart.com/images/breaks/digression.png" title="It's nearly looking like a built-in part of the editor now."&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This seemed fine initally, but as I got stuck into a big refactor of how the underlying resources are updated by the &lt;span class="caps"&gt;GUI&lt;/span&gt;, and how and when those are saved, I noticed something really weird: sometimes when I pressed ctrl-s to save the scene and current graph, the editor would switch to one of the other open&amp;nbsp;graphs!&lt;/p&gt;
&lt;p&gt;I think I must have spent two weeks on and off trying to figure out this problem. The code was absolutely littered with debug log lines trying to trace the sequence of events triggered by the save, but there didn&amp;#8217;t seem to be any connection between the code doing the saving, or the code handling key input, and the code responsible for switching between graphs. Eventually I gave up in frustration, and decided to &lt;a href="https://blog.hyperlinkyourheart.com/coming-down.html" title="Coming Down art post."&gt;do some art&lt;/a&gt; in my spare time instead. Then I played some video&amp;nbsp;games.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Marketing image for the game &amp;quot;The Alters&amp;quot;, showing the main character and his clones in a huddle on the right, with the name of the game on the left." src="https://blog.hyperlinkyourheart.com/images/breaks/alters.jpg" title="It's really good."&gt;&lt;/p&gt;
&lt;p&gt;Well, when I finally came back to it, I figured out what was going on within five minutes. First I noticed that the graph that was being switched to was always one with a name starting with the letter s, and if there wasn&amp;#8217;t one starting with an s, then nothing happened. I tried other ctrl key combos and those switched to graphs starting with the corresponding letter, if there was one. It wasn&amp;#8217;t anything to do with saving, or how I&amp;#8217;d implemented it, or anything to do with my code at all, it was just a &lt;a href="https://github.com/godotengine/godot/issues/109274" title="Issue on the Godot issue tracker for the described bug."&gt;bug in the search feature of the ItemList node&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;When I was deep into the development I had a very blinkered view of what was going on: I&amp;#8217;m working on saving, it happens when I save, it must have something to do with that, and it must be due to changes I&amp;#8217;ve made. A little break from it gave me enough perspective to see that none of that was the case, and there was ample evidence demonstrating&amp;nbsp;that.&lt;/p&gt;
&lt;p&gt;This of course isn&amp;#8217;t the first time in my life, in programming or other endeavours, that taking a break has helped me solve a problem or even develop skills. I often find that taking a break from art results in a seemingly huge improvement in my skills when I return to it. In that case I think it is down to being more relaxed and putting less pressure on myself when starting a new piece after a break than when I have recently finished a piece that I feel I need to improve&amp;nbsp;upon.&lt;/p&gt;
&lt;p&gt;In conclusion: breaks good. Take a step back&amp;nbsp;sometimes.&lt;/p&gt;</content><category term="Game Development"></category><category term="godot"></category><category term="life"></category><category term="self-care"></category></entry></feed>