<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on Hunter Dyar</title><link>https://hdyar.com/blog/</link><description>Recent content in Blog on Hunter Dyar</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 16 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://hdyar.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Launcher Software for an Arcade Cabinet</title><link>https://hdyar.com/blog/posts/cabinet-launcher/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/cabinet-launcher/</guid><description>&lt;p&gt;&lt;img src="./launcher.gif" alt="gif of launcher being used to select a game"&gt;&lt;/p&gt;
&lt;p&gt;In the Immersive Media studio, one of our project showcase tools is an arcade cabinet. It runs multiple games, and we need a way to switch between them, and to leave old projects accessible.&lt;/p&gt;
&lt;p&gt;Naturally, I built a custom launcher for it. While simple, it uses a few tricks that may be nice to know as software developers, and on how I set up the machine to run everything automatically.&lt;/p&gt;</description></item><item><title>Lang Jam Game Jam 2025</title><link>https://hdyar.com/blog/posts/langjamgamejam25/</link><pubDate>Sun, 21 Dec 2025 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/langjamgamejam25/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A 7-day hackathon where you build a programming language and then make a game using it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://langjamgamejam.com/"&gt;langjamgamejam.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Did I succeed? Nope! &lt;a href="https://github.com/hunterdyar/LangJamGameJam25"&gt;I didn&amp;rsquo;t finish!&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I traveled for the holidays, finished making some rugs as gifts, and watched football with my family instead of going full hackathon. Sorry not sorry!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Despite not finishing, here&amp;rsquo;s what I learned during the process.&lt;/p&gt;
&lt;p&gt;&lt;img src="./game.png" alt="Screenshot. I did not, for even a second, consider spending any amount of time on graphics"&gt;
&lt;em&gt;I gleefully embraced &amp;lsquo;programmer art&amp;rsquo;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>I published a Dice Rolling app ...9 Years Ago</title><link>https://hdyar.com/blog/posts/dice-roller-app-for-pebble/</link><pubDate>Thu, 09 Oct 2025 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/dice-roller-app-for-pebble/</guid><description>&lt;p&gt;9 years ago, I published a &lt;a href="https://apps.repebble.com/en_US/application/5791726850c752e32e0000e1?query=dice%2520roller&amp;amp;section=watchapps"&gt;dice rolling app&lt;/a&gt; for pebbles on the pebble app store. Today, that app&amp;hellip; still exists!&lt;/p&gt;
&lt;p&gt;Today, the &lt;a href="https://repebble.com/"&gt;revival&lt;/a&gt; of Pebble continues, and Eric Migicovsky &lt;a href="https://ericmigi.com/blog/re-introducing-the-pebble-appstore"&gt;announced&lt;/a&gt; that the new appstore is the same as the old appstore.
Old pebble apps will continue to be supported on the &lt;a href="https://store.repebble.com/"&gt;new devices&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As a massive fan of Pebble, it&amp;rsquo;s great to see my old app still around.&lt;/p&gt;
&lt;p&gt;It wasn&amp;rsquo;t the only Dice rolling app, and it probably wasn&amp;rsquo;t the best - but it wasn&amp;rsquo;t the worst either. I am not particularly proud of design of this old weekend project, but I am proud that I published something, and that it&amp;rsquo;s somehow still kicking. Very cool too see.&lt;/p&gt;</description></item><item><title>A New Set of Beginner Unity Learning Videos</title><link>https://hdyar.com/blog/posts/unity-intro-videos25/</link><pubDate>Tue, 23 Sep 2025 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/unity-intro-videos25/</guid><description>&lt;p&gt;This summer, I finally got around to re-recording my no-prior-knowledge, start-here, introduction to Unity videos.&lt;/p&gt;
&lt;p&gt;Instead of one long lecture recording, I split things up as much as I could into videos as short as possible. The goal is for them to be review materials for my &lt;a href="https://unitymicro.hdyar.com/"&gt;class&lt;/a&gt; lectures, and students can easily jump to the content they need.&lt;/p&gt;
&lt;h2 id="retrospective"&gt;Retrospective&lt;/h2&gt;
&lt;p&gt;In terms of wins, I like the aesthetic of sitting at a desk with the content behind me. It&amp;rsquo;s a nice mix of informal-streamer-chatting and formal-lesson video that I think lands well.&lt;/p&gt;</description></item><item><title>Lightning Talk at Innovation in Tech &amp; Learning Conference</title><link>https://hdyar.com/blog/posts/lightningtalkst2025/</link><pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/lightningtalkst2025/</guid><description>&lt;p&gt;Last week I flew to St. Louis to give a lightning talk at the Innovation in Teaching and Learning Conference 2025.&lt;/p&gt;
&lt;p&gt;The talk is about the work I did putting together a fairly novel course structure that tackles challenges of project-based pedagogy. I&amp;rsquo;m very proud of this course.&lt;/p&gt;
&lt;p&gt;The entire talk is available online on &lt;a href="https://hdyar.com/talks/alacartrubrics/"&gt;this very website&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>My Favorite Programming Challenges for the Classroom</title><link>https://hdyar.com/blog/posts/fav-programming-challenges/</link><pubDate>Thu, 20 Feb 2025 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/fav-programming-challenges/</guid><description>&lt;p&gt;When teaching programming, I use a hybrid-flipped approach. I use video and &amp;ldquo;remote lecture&amp;rdquo; activities (flipped-classroom) purely as a way to prioritize the time I spent watching students program in the classroom.&lt;/p&gt;
&lt;p&gt;Nothing is more effective than watching a student write code at understanding their mental model. From there, providing direct feedback in a 1-on-1 over-the-shoulder way.&lt;/p&gt;
&lt;p&gt;However, just working on projects isn&amp;rsquo;t always the best use of classroom time. One isn&amp;rsquo;t always doing &amp;ldquo;The conceptually interesting thing&amp;rdquo; when working. Sometimes they are just fixing fiddly syntax errors. Or, they just spend a lot of time typing.&lt;/p&gt;</description></item><item><title>A Display of Live Chess Games for the Wall</title><link>https://hdyar.com/blog/posts/chess-viewer/</link><pubDate>Sun, 05 Jan 2025 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/chess-viewer/</guid><description>&lt;p&gt;My dad is a big chess fan. For Christmas this year, I created a gift. A display that constantly streamed live chess games.&lt;/p&gt;
&lt;p&gt;&lt;img src="./chessViewer.jpg" alt="The finished project, installed on my Dad&amp;rsquo;s shelf of chess things"&gt;&lt;/p&gt;
&lt;p&gt;For the display, I simply used a 2018 Galaxy Tablet I was given for free. Recycling!&lt;/p&gt;
&lt;p&gt;For the stand, I designed and 3D printed it myself. I am a week or so into learning Fusion 360, and I am still quite a novice at the software. After more pain than it should have caused, I had a tablet stand printed.&lt;/p&gt;</description></item><item><title>Starship Home - Filming Trailers for a Mixed Reality Game</title><link>https://hdyar.com/blog/posts/starship-home-trailer/</link><pubDate>Wed, 02 Oct 2024 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/starship-home-trailer/</guid><description>&lt;p&gt;A few days ago, &lt;a href="https://www.meta.com/experiences/starship-home/5959677854068956/"&gt;Starship Home&lt;/a&gt; by &lt;a href="https://www.creature.page/"&gt;Creature&lt;/a&gt; released. The game is great! Go buy it!&lt;/p&gt;
&lt;p&gt;I was grateful enough to get to help film some of the trailers for the game for Creature. First, we filmed the teaser trailer.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/aZNnLL9bI5g?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Shotlist in hand, we just worked through it all laboriously. My primary skill I brought to the table was patience and pickiness. It took forever, we wanted to stop and say &amp;ldquo;good enough&amp;rdquo; the entire time. My job was to fight that urge, stay picky; and handle all of the administrative and logistics so Doug can stay focused on his performance.&lt;/p&gt;</description></item><item><title>A Million Pixels of Falling Sand</title><link>https://hdyar.com/blog/posts/falling-sand/</link><pubDate>Sat, 31 Aug 2024 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/falling-sand/</guid><description>&lt;p&gt;For the Game Makers Toolkit Jam this year, the theme was &amp;lsquo;Built to Scale&amp;rsquo;. I decided to make a &lt;a href="https://en.wikipedia.org/wiki/Falling-sand_game"&gt;falling sand&lt;/a&gt; in Unity. I managed to leverage the Burst compiler and the Jobs system to make a simulation that can handle over ;a million particles.&lt;/p&gt;
&lt;p&gt;&lt;img src="bigsand3.gif" alt="Gif of a small section of the simulation"&gt;&lt;/p&gt;
&lt;p&gt;My only goal was to try and push my limits of how big I could make the simulation, here is what I learned.&lt;/p&gt;</description></item><item><title>Redesigning The Guidebook</title><link>https://hdyar.com/blog/posts/guidebook-redesign/</link><pubDate>Mon, 12 Aug 2024 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/guidebook-redesign/</guid><description>&lt;p&gt;I&amp;rsquo;ve been working on &lt;a href="https://guidebook.hdyar.com/"&gt;guidebook.hdyar.com&lt;/a&gt; for years, now. It&amp;rsquo;s my longest running academic project, and something of a repository for various class lessons, notes, and resources.&lt;/p&gt;
&lt;p&gt;&lt;img src="prstats.jpg" alt="Github stats for the Pull Request. 410 changes, +1259, -4387 line changes"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This ended up being a very large effort.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;While primarily about Unity development, the purpose of the guidebook is not content related (&amp;ldquo;be a Unity resource&amp;rdquo;) The objective is user-defined: It&amp;rsquo;s a resource for my students. (&amp;ldquo;Here&amp;rsquo;s how to do that thing I see student&amp;rsquo;s needing&amp;rdquo;).&lt;/p&gt;</description></item><item><title>Parsing and Visualizing Dice Results in C#</title><link>https://hdyar.com/blog/posts/dice-results-viz/</link><pubDate>Wed, 19 Jun 2024 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/dice-results-viz/</guid><description>&lt;p&gt;I created a simple webapp that allows you to enter standard dice notation, and get the probability of different results in pretty graphs.&lt;/p&gt;
&lt;p&gt;Check out the project at &lt;a href="http://diceresults.hdyar.com"&gt;diceresults.hdyar.com&lt;/a&gt;, and the source code on &lt;a href="https://github.com/hunterdyar/Dice-Results-Visualizer"&gt;github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="dice-screenshot.png" alt="A screenshot of diceresults.hdyar.com. An inputfield with &amp;ldquo;2d6&amp;rdquo; entered, above a bar graph of each result and it&amp;rsquo;s probability."&gt;&lt;/p&gt;
&lt;h2 id="why"&gt;Why?&lt;/h2&gt;
&lt;p&gt;A while ago, I was working on a &lt;a href="https://github.com/hunterdyar/3D-Dice-Roller-Unity"&gt;3D Dice Roller&lt;/a&gt; package for Unity. This is a more useful tool, and I do plan to finish it. In writing it, I had to put together a simple dice parser. The idea of polishing that never quite escaped me.&lt;/p&gt;</description></item><item><title>Control Your Computer Mouse like a Car</title><link>https://hdyar.com/blog/posts/mouse-car/</link><pubDate>Wed, 15 May 2024 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/mouse-car/</guid><description>&lt;h2 id="mouse-car-mouse-car"&gt;Mouse Car? Mouse Car!&lt;/h2&gt;
&lt;p&gt;Have you ever wanted to drive your mouse around the screen like a car? No? Well. Now you can anyway.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/wMCC6-0N4Ds?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;This project was made in Unity. It uses &lt;a href="https://github.com/MrTimcakes/Unity-DirectInput.git"&gt;Unity-DirectInput&lt;/a&gt; to get data from the steering wheel, and calls to windows dll&amp;rsquo;s to send &lt;a href="https://github.com/hunterdyar/Mouse-Car/blob/main/Assets/Scripts/MouseControl.cs"&gt;mouse clicks&lt;/a&gt; and make the fullscreen, always-on-top game have a &lt;a href="https://github.com/hunterdyar/Mouse-Car/blob/main/Assets/Scripts/Windowless.cs"&gt;transparent window&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>VR in Education &amp; Training - Panel talk at MagFest 2024</title><link>https://hdyar.com/blog/posts/vr-in-education-talk/</link><pubDate>Fri, 05 Apr 2024 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/vr-in-education-talk/</guid><description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=sMO-Dl2APEI"&gt;https://www.youtube.com/watch?v=sMO-Dl2APEI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In January at &lt;a href="https://magfest.org"&gt;MAGFest&lt;/a&gt; 2024, I spoke on a panel about VR in Education and Training.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/sMO-Dl2APEI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;</description></item><item><title>Zoomy Cat!</title><link>https://hdyar.com/blog/posts/zoomy-cat/</link><pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/zoomy-cat/</guid><description>&lt;p&gt;I made a video game this weekend!&lt;/p&gt;


&lt;iframe frameborder="0" src="https://itch.io/embed/2470877" width="100%" height="167"&gt;&lt;a href="https://blooper.itch.io/zoomy-cat"&gt;Zoomy Cat! by Hunter Dyar&lt;/a&gt;&lt;/iframe&gt;

&lt;p&gt;I have been feeling pretty creatively burned out. I have a small number of very large projects that I have not been able to make significant (visible) progress on (because academia). It&amp;rsquo;s been a while since I&amp;rsquo;ve actually finished anything. So, with MLK day giving me 3 days of work, and no plans other than to watch the steelers lose to the bills, I got to work!&lt;/p&gt;</description></item><item><title>Batch Rename Images with their EXIF Data</title><link>https://hdyar.com/blog/posts/python-exif-file-renamer/</link><pubDate>Sun, 07 Jan 2024 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/python-exif-file-renamer/</guid><description>&lt;p&gt;While I work on an educational photography tool, I encountered a specific problem where the solution is worth sharing.&lt;/p&gt;
&lt;p&gt;My problem was loading images by their &lt;a href="https://en.wikipedia.org/wiki/Exif"&gt;exposure setting metadata&lt;/a&gt;. Instead of creating a database of images and settings, it seems much easier to just rename the files with some encoding scheme.&lt;/p&gt;
&lt;p&gt;So that&amp;rsquo;s what I did. &lt;a href="https://github.com/hunterdyar/image-exif-batch-renamer/blob/main/main.py"&gt;This python script&lt;/a&gt; will take a folder and a &amp;lsquo;pattern&amp;rsquo;, and rename all image files in that folder with the pattern.&lt;/p&gt;</description></item><item><title>How To Backup Unity Projects</title><link>https://hdyar.com/blog/posts/backup-unity-projects/</link><pubDate>Wed, 29 Nov 2023 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/backup-unity-projects/</guid><description>&lt;p&gt;Backing up Unity Projects is a pain. They are large and full of small files that are a pain to copy. Regardless, backing up your work is important! Here&amp;rsquo;s how I do it.&lt;/p&gt;
&lt;h2 id="a-consistent-folder-setup"&gt;A Consistent Folder Setup&lt;/h2&gt;
&lt;p&gt;I keep a &amp;ldquo;Unity&amp;rdquo; folder that contains all of my Unity projects. I use this structure for all of my projects that I organize by workflow. I also have /projects/godot, /projects/unreal, and /projects/arduino folders, for example.&lt;/p&gt;</description></item><item><title>Notes on Sketching</title><link>https://hdyar.com/blog/posts/notes-on-sketching/</link><pubDate>Fri, 28 Jul 2023 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/notes-on-sketching/</guid><description>&lt;h2 id="what-is-a-sketch"&gt;What is a Sketch?&lt;/h2&gt;
&lt;p&gt;Ideas are not real and communicable until we attempt to externalize them. A sketch is the lowest fidelity attempt to realize an idea.&lt;/p&gt;
&lt;h2 id="externalization-of-an-idea"&gt;Externalization of an Idea&lt;/h2&gt;
&lt;p&gt;Sketches turn ideas into things that must be sensed or experienced, which we then interpret back into ideas.&lt;/p&gt;
&lt;p&gt;&lt;img src="./sketching.png" alt="The Sketching Loop: Idea in brain to external sketch in reality to internal idea in brain"&gt;&lt;/p&gt;
&lt;h2 id="what-do-we-gain-from-externalizing"&gt;What do we Gain from Externalizing?&lt;/h2&gt;
&lt;p&gt;Looking at the difference between the idea that we perceive, and our original idea, we find the value of a sketch.&lt;/p&gt;</description></item><item><title>An Interactive Explainer for Positional Notation</title><link>https://hdyar.com/blog/posts/interactive-modular-positional-notation/</link><pubDate>Mon, 17 Jul 2023 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/interactive-modular-positional-notation/</guid><description>&lt;p&gt;I created an interactive explainer for Positional Notation, aiming to teach the underlying principles of Binary and Hexadecimal notation.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://explainers.hdyar.com/binary/index.html"&gt;https://explainers.hdyar.com/binary/index.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is a text/image lecture with interactive JavaScript toys, and a video that also walks users through some of the core concepts. In addition, I have taken the JavaScript toys and broken them off to their own webpages, like this &lt;a href="https://explainers.hdyar.com/standalone/color.html"&gt;color picker&lt;/a&gt;. The rest are linked on the &lt;a href="https://explainers.hdyar.com/"&gt;main page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="modular-educational-resources"&gt;Modular Educational Resources&lt;/h2&gt;
&lt;p&gt;For the students that are likely to zone out while reading a wall of text, I also made to sure to cover the most important topics in a video. I didn&amp;rsquo;t want to just make another version of the same lesson. Instead, my goal is to create a set of resources that could be taken all together, or used independently. The video, the web page, and the standalone JavaScript toys are all independently accessible and usable by students. I can teach by bringing the toys up fullscreen, or having students try them during an in-class exercise.&lt;/p&gt;</description></item><item><title>Words Rules - GMTK Jam 2023</title><link>https://hdyar.com/blog/posts/words-rules/</link><pubDate>Tue, 11 Jul 2023 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/words-rules/</guid><description>&lt;p&gt;For this years &lt;a href="https://itch.io/jam/gmtk-2023"&gt;Game Makers&amp;rsquo; Toolkit Game Jam&lt;/a&gt;, I created a word puzzle game.&lt;/p&gt;



&lt;iframe src="https://itch.io/embed/2154123?bg_color=EFE1D1&amp;amp;fg_color=331D2C&amp;amp;link_color=3F2E3E&amp;amp;border_color=c1b3a3" width="100%" height="167" frameborder="0"&gt;&lt;a href="https://blooper.itch.io/words-rules"&gt;Words Rules by Hunter Dyar&lt;/a&gt;&lt;/iframe&gt;


&lt;hr&gt;
&lt;h2 id="concept"&gt;Concept&lt;/h2&gt;
&lt;p&gt;The game plays as a sort of &amp;lsquo;reverse wordle&amp;rsquo;. Instead of being given some list of hints/rules/conditions, and finding the words that fit the criteria, you are given the words. You must find the rules that most specifically fit these words.&lt;/p&gt;
&lt;p&gt;I honestly did not begin thinking I would finish, and I was pleasantly surprised that, after I got the first prototype working, that it was actually kind of fun. So&amp;hellip; well, then I &lt;em&gt;had&lt;/em&gt; to try to finish it.&lt;/p&gt;</description></item><item><title>Methods for Modular Development in Unity</title><link>https://hdyar.com/blog/posts/methods-for-custom-packages/</link><pubDate>Tue, 16 May 2023 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/methods-for-custom-packages/</guid><description>&lt;p&gt;One important skillset to have in game &amp;amp; systems development is a modular approach. Basically, you build out your game systems in a robust and isolated way, such that you could re-use them throughout separate projects. This approach becomes more important the more you scale, and makes working with teams much easier.&lt;/p&gt;
&lt;p&gt;Check out the Unity 2022 talk &lt;a href="https://youtu.be/nk3gHIZZ5Rg?list=PLX2vGYjWbI0Qavt5La4C2xfILQKj8l8g5"&gt;How to adopt a modular code workflow for your team&lt;/a&gt; for a broader overview and discussion. That talk also covers code &amp;amp; architecture strategies, which I don&amp;rsquo;t discuss here. This blog post reviews my experience as a solo developer with the various implementation options for modular development that Unity offers. My packages are mostly focused on code, not assets, so I don&amp;rsquo;t have the con of Git LFS or as many unity version/render pipeline annoyances to deal with.&lt;/p&gt;</description></item><item><title>How To Start Big Projects - Lecture Recording</title><link>https://hdyar.com/blog/posts/how-to-start-big-projects-lecture-recording/</link><pubDate>Sat, 29 Apr 2023 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/how-to-start-big-projects-lecture-recording/</guid><description>&lt;p&gt;Here&amp;rsquo;s a quick and easy lecture recording for future reference; one I&amp;rsquo;ve been meaning to put into video form for a while: &amp;lsquo;how to start large projects&amp;rsquo;. AKA the &amp;ldquo;I told you so&amp;rdquo; lecture.&lt;/p&gt;
&lt;h2 id="the-how-to-start-big-projects-lecture"&gt;The &amp;lsquo;How To Start Big Projects&amp;rsquo; Lecture&lt;/h2&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/fmAdPuJn8Yo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;</description></item><item><title>An Anthology of AI-Generated Poems (They're Bad!)</title><link>https://hdyar.com/blog/posts/aipoems/</link><pubDate>Mon, 03 Apr 2023 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/aipoems/</guid><description>&lt;p&gt;This past weekend, I participated in the first &lt;a href="https://www.cmu-lti-llm.org/"&gt;NO JOKE: We are talking about LLMs&lt;/a&gt; hackathon. It was a 2 day event where a bunch of grad students, PhD&amp;rsquo;s, industry professionals, academics, and researchers got together to discuss, present, and hack on LLM&amp;rsquo;s, hosted at Carnegie Mellon University.&lt;/p&gt;
&lt;p&gt;All weekend, I collected AI generated poetry. I created a web page to display a random one on every page load.&lt;/p&gt;
&lt;h3 id="aipoetryhdyarcom"&gt;&lt;a href="https://aipoetry.hdyar.com/"&gt;aipoetry.hdyar.com&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The poems are bad, but I think it&amp;rsquo;s an interesting exercise to think about &lt;em&gt;why&lt;/em&gt;. Because on a technical level, they&amp;rsquo;re not &amp;hellip; that &amp;hellip; bad.&lt;/p&gt;</description></item><item><title>Squarewavebird Swadge Dev Stories - My Talk at MagFest 2023</title><link>https://hdyar.com/blog/posts/swadge-developer-panel/</link><pubDate>Fri, 17 Mar 2023 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/swadge-developer-panel/</guid><description>&lt;p&gt;I spoke at the swadge developer panel at MafFest 2023, back in Januarry, about my pi-cross game.&lt;/p&gt;
&lt;p&gt;My section begins at about &lt;a href="https://youtu.be/klpT0eg4gv0?t=1509"&gt;25 minutes in&lt;/a&gt;, this link will jump you there.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/klpT0eg4gv0?t=1509?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;</description></item><item><title>Downhill Jam - Using Inheiritance in Unity Follow-along Video Series</title><link>https://hdyar.com/blog/posts/downhill-jam-videos/</link><pubDate>Wed, 08 Mar 2023 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/downhill-jam-videos/</guid><description>&lt;p&gt;I recorded the following video series as an assignment for my programming class, accompanying other projects where they getting introduced to polymorphism in C#. This project is a follow-along demonstration of, in a &amp;ldquo;real&amp;rdquo; game, some of these code architecture techniques in action.&lt;/p&gt;
&lt;p&gt;The first part just sets up the Car Controller. This is the type of thing I would consider skipping, and providing the starter project and sample assets to the students. I took the opportunity to solve an interesting problem with vectors and dot products, and demonstrate the workflow - structuring the &lt;em&gt;rest&lt;/em&gt; of the project to isolate the challenging bit into it&amp;rsquo;s own little area.&lt;/p&gt;</description></item><item><title>I Created a Numpad that is also a Calculator</title><link>https://hdyar.com/blog/posts/numpadcalc-1/</link><pubDate>Fri, 03 Mar 2023 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/numpadcalc-1/</guid><description>&lt;p&gt;I&amp;rsquo;ve always wanted a numberpad that&amp;rsquo;s also a calculator. It&amp;rsquo;s a pretty simple concept! How many different grids-of-numbers do I need sitting on my desk? Why do I need to open the calculator app on my computer? It should just&amp;hellip; be a calculator. And a number pad. It should be both!&lt;/p&gt;
&lt;p&gt;Well, this device doesn&amp;rsquo;t exist, so I went ahead and made it.&lt;/p&gt;
&lt;p&gt;&lt;img src="images/finished.jpg" alt="The Finished numpad/calculator"&gt;&lt;/p&gt;
&lt;h2 id="designing-the-pcb"&gt;Designing the PCB&lt;/h2&gt;
&lt;p&gt;The first step to building a completely custom keyboard from scratch is designing and ordering the PCB. In this world, I have no experience. But luckily, I don&amp;rsquo;t need any! There&amp;rsquo;s a massive community of keyboard and computer peripheral hacking enthusiasts. Many of these kind souls put all their work on the internet, completely open-source. This project is a glorified hack of other people&amp;rsquo;s projects. I stand on the shoulders of nerdy giants.&lt;/p&gt;</description></item><item><title>Introducing my Transition Effects Unity Package</title><link>https://hdyar.com/blog/posts/unity-transition-effect/</link><pubDate>Wed, 08 Feb 2023 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/unity-transition-effect/</guid><description>&lt;p&gt;During Global Game Jam 2023, we raised the possibility of having the camera fade out before a cutscene. I added it to the list, but never had time to implement it. I did think &amp;ldquo;Why should I have to implement that? Fading the camera should just be a thing&amp;rdquo;. Well, with that spirit in mind, I created &lt;a href="https://github.com/hunterdyar/Unity-Transition-Effects/"&gt;Unity Transition Effects&lt;/a&gt;, a package that allows one to easily do camera transitions.&lt;/p&gt;
&lt;p&gt;&lt;img src="images/transitionEffect.gif" alt="Animated Gif demonstrating a few of the effects"&gt;&lt;/p&gt;</description></item><item><title>Make Breakout In Unity - Follow-along video series</title><link>https://hdyar.com/blog/posts/breakout-followalong/</link><pubDate>Tue, 20 Dec 2022 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/breakout-followalong/</guid><description>&lt;p&gt;Put together a follow-along video series for making breakout in Unity.&lt;/p&gt;
&lt;p&gt;My goal is to have a beginner series that I can give my students who want more concrete next steps after taking my workshop. The next steps, then, would be some kind of game manager setup, and thinking through references and dependencies. This makes a good first project for doing that.&lt;/p&gt;
&lt;p&gt;In that spirit, Part 2 is the real heart of this project. But the whole thing is here.&lt;/p&gt;</description></item><item><title>A Few Lessons Learned While Programming for Students</title><link>https://hdyar.com/blog/posts/programming-for-students/</link><pubDate>Thu, 08 Dec 2022 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/programming-for-students/</guid><description>&lt;p&gt;More than many other programmers, much of the code I write will be examined by students in great detail. I would like to share some of the lessons I have learned from that, and how they have affected how I write code.&lt;/p&gt;
&lt;h2 id="write-self-documenting-code"&gt;Write Self Documenting Code&lt;/h2&gt;
&lt;p&gt;Writing comments is good. Writing code that doesn&amp;rsquo;t need comments is better. There are many good articles and &lt;a href="https://www.youtube.com/watch?v=cmh5WzEqbDI"&gt;videos&lt;/a&gt; explaining various perspectives of &lt;a href="https://en.wikipedia.org/wiki/Self-documenting_code"&gt;self documenting code&lt;/a&gt;, so I don&amp;rsquo;t feel the need to explain it in detail.&lt;/p&gt;</description></item><item><title>Welcome to Programming</title><link>https://hdyar.com/blog/posts/welcometoprogramming/</link><pubDate>Thu, 01 Dec 2022 00:00:00 +0000</pubDate><guid>https://hdyar.com/blog/posts/welcometoprogramming/</guid><description>&lt;h2 id="preamble"&gt;Preamble&lt;/h2&gt;
&lt;p&gt;Welcome to programming! I’m glad you’re here.&lt;/p&gt;
&lt;p&gt;Programming is the mysterious art of telling computers what to do.&lt;/p&gt;
&lt;p&gt;&lt;img src="images/venn.png" alt="Venn Diagram of Computers and Humans, with Programming shared"&gt;&lt;/p&gt;
&lt;p&gt;Programming is not easy. It’s a step that makes up a large and complex process. Its semantics are mired in jargon and history, its historical development sudden and ambiguous. Learning programming is hard because there is &lt;em&gt;so much&lt;/em&gt; to learn.&lt;/p&gt;
&lt;p&gt;Learning programming is challenging because it is hard to find the answers to the actual problems you are experiencing. Imagine trying to learn how to drive, and your teacher is going on on about engines and crank shafts… but you’re hurtling down a highway right now, and asking what the road signs mean. So - because this is programming and not driving - you pause and go to the internet to research road signs but only discover information about how turn signals work and what the buttons on the dashboard do. You ask a friend for help and they start telling you about how cool motorcycles are. This is a deeply frustrating situation. There are the mechanical parts of a car, like how the engine works, but also the social-level and systems-level parts of driving, like the rules of the road, or what “validated parking” means.&lt;/p&gt;</description></item></channel></rss>