<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Ibb's Dev Blog - totypeatale</title><link href="https://greyshadowsoftware.com/" rel="alternate"/><link href="https://greyshadowsoftware.com/feeds/totypeatale.atom.xml" rel="self"/><id>https://greyshadowsoftware.com/</id><updated>2026-05-31T16:41:00-05:00</updated><entry><title>2026-05-31 To Type a Tale devlog</title><link href="https://greyshadowsoftware.com/totypeatale/2026-05-31-to-type-a-tale-devlog.html" rel="alternate"/><published>2026-05-31T16:41:00-05:00</published><updated>2026-05-31T16:41:00-05:00</updated><author><name>Ibb</name></author><id>tag:greyshadowsoftware.com,2026-05-31:/totypeatale/2026-05-31-to-type-a-tale-devlog.html</id><summary type="html">&lt;p&gt;Second major rework has begun&lt;/p&gt;</summary><content type="html">&lt;p&gt;The first thing you'll notice this week is right there in the title: I've changed the name of the game to &lt;em&gt;To Type a Tale&lt;/em&gt;! This was after several asynchronous brainstorming sessions with Matthew, and it hopefully won't change again. The main downside to changing the name right now is that your savefile won't transfer (i.e. any progress and settings are lost), but it will become much more difficult once I release the public demo.&lt;/p&gt;
&lt;p&gt;The second thing you'll notice is that I've started adding graphics. Right now, I only have a half-implemented background for the text and a fully-implemented stamp to deal with collected words, but it will eventually be a full desk setting. Speaking of the stamp, that's the fun new feature to look at this week: instead of words disappearing after flying to the bank section, they now land in a jumbled pile on top of the bank text. After a period of inactivity, a stamp comes down (notice the branding), erases the jumbled words, and updates the bank counts.&lt;/p&gt;
&lt;p&gt;There is also the major change to how text is collected. In previous builds, words would not be collected until you paused long enough (depending on WPM setting) and then they'd all be collected at once. This was... fine, but I wanted something that felt more dynamic. So now words are immediately collected as soon as they are typed, but you can still type a wall of rainbow (even easier, now that the pause before resetting is much longer). Right now, words you are actively typing, typed/collected words, flying words, and jumbled words are all rainbow highlighted. This can lead to some major noise issues, but I have a plan for solving that, too! If you want to call down the stamp early (and thus, reset the highlighting), you can now press the Enter key to do so.&lt;/p&gt;
&lt;p&gt;My friend Squish has been very helpful in quickly testing these insane new features and pointing out where they feel bad to play. She is responsible for the flight paths of the words not overlapping typing text, typed words remaining highlighted, and several other bugs too numerous to mention here.&lt;/p&gt;
&lt;p&gt;Some smaller changes that you might notice include the daily builds getting the demo flag, WPM/LPM calculations changing (again), a new first-restart message, and some tutorial improvements. Builds with the demo flag cannot proceed beyond chapter 1 (it pops up a message about where to wishlist the game) and I'll have to figure out how to distribute full builds to my beta-testers eventually. The WPM calculations are hopefully better now that I'm using word-collection timings instead of the reset timer. When restarting the story after a bad end (the only kind available right now) for the first time, you'll get a message about meta-progress and how collected words/letters affect choice availability. Finally, the tutorial has been reworked again to hopefully emphasize some mechanics that my alpha-testers did not understand (e.g. nextpage being how you progress).&lt;/p&gt;
&lt;p&gt;I have also started in on separating the save files for options, stories, and chapters into separate files. This is to help with organization, but also to enable larger save data for the chapters, as I will soon be reworking them so that typing progress is preserved between play sessions.&lt;/p&gt;
&lt;p&gt;The game is currently in a partially-broken state due to the rework and larger tickets taking multiple days, but please make sure to keep reporting issues! It should be back to fully playable by the end of next week, but then I'm putting code work on the backburner until I get my marketing materials put together.&lt;/p&gt;</content><category term="totypeatale"/><category term="devlog"/><category term="totypeatale"/></entry><entry><title>2026-05-24 Type It All devlog</title><link href="https://greyshadowsoftware.com/totypeatale/2026-05-24-type-it-all-devlog.html" rel="alternate"/><published>2026-05-24T15:45:00-05:00</published><updated>2026-05-24T15:45:00-05:00</updated><author><name>Ibb</name></author><id>tag:greyshadowsoftware.com,2026-05-24:/totypeatale/2026-05-24-type-it-all-devlog.html</id><summary type="html">&lt;p&gt;Tweaks and research&lt;/p&gt;</summary><content type="html">&lt;p&gt;A lot less visible progress this week than last, but still plenty. The big user-facing changes this week are some tutorial improvements and meta-progress. The backend changes involve improvements (and additions) to the analysis tools I use to help with content creation. Finally, I've started on the marketing research, which also sparked some existential worrying regarding the lack of art.&lt;/p&gt;
&lt;p&gt;The game now starts with an intro message to introduce the player to the basic concept of interaction and the tutorial has been reworked to emphasize this interaction. Per a request from Matthew, the tutorial now de-emphasizes speed, and even no longer has a reference to BPM affecting choices. The tutorial now also emphasizes accessibility options like typing speed adjustments and font sizes.&lt;/p&gt;
&lt;p&gt;The tutorial also now has some music. It's only basic percussion, but still sets the mood. I have some notes from Dad about various instruments I can include in the main music, so I'll be working on that in the coming weeks.&lt;/p&gt;
&lt;p&gt;The player now has some more interaction options to change the behavior: meta-progress allowing faster playthroughs and command-line args to access hidden features. After typing 90% of a paragraph, that paragraph is marked "pre-completed" and will be automatically collected on subsequent playthroughs. The player can change whether 100% or 70% (i.e. minimum) of the letters/words are collected via an option. The player now also has access to the analysis tools and debug mode via command-line args: &lt;code&gt;--debug=true&lt;/code&gt; to launch debug mode, &lt;code&gt;--scene=story&lt;/code&gt; to launch the story analysis tool, and &lt;code&gt;--scene=music&lt;/code&gt; to launch the music analysis tool. The meta-progress has several exploits, but I'll figure out fixes for those later.&lt;/p&gt;
&lt;p&gt;I finally changed the boot splash and app icon. They are currently using the GSS logo, but I'll probably change them to TIA/TTaT-specific logos eventually.&lt;/p&gt;
&lt;p&gt;The backend has also seen some improvements, including fixing the story analysis tool after the major rework, implementing the music analysis tool, and other, smaller fixes. While fixing the story analysis tool, I decided to also add some progress bars so I can track whether it's actually doing anything. The music analysis tool is used to see where a player typing at a constant rate would hear a specific music track. This will be used to fine-tune the logic behind how those tracks fade in and out. On the main scene side, I fixed a tutorial bug that was introduced by the major rework and reported by Matthew. This had identical behavior to a different bug that I had noticed and squashed before the rework, but had a completely different root cause.&lt;/p&gt;
&lt;p&gt;Story changes have been minimal. The first chapter of the crin tale had some edits to introduce more currency-conditionals. The tutorial was reworked to use proper paging instead of custom bookmarks, to better match the expected interaction in the crin tale.&lt;/p&gt;
&lt;p&gt;And then there's the marketing. I poked around in Steam's library to find some other typing-heavy games, read through their descriptions, and browsed their screenshots. Unfortunately, this caused me to start worrying about the complete lack of graphics in my game, so I got sidetracked into experimenting with dynamic graphics generation on Sunday. I might refine and finish implementation of this in some form, or might just toss it out and hope the game is interesting enough without graphics.&lt;/p&gt;
&lt;p&gt;Next week is likely to be more of the same: minor tweaks, getting sidetracked by graphics, and market research. I want to avoid releasing my demo during June, as there will be a lot of internet focus on the Next Fest demos, and I won't be a part of those yet. If I finish all my code/graphics work before July, I'll begin work on prototyping other games.&lt;/p&gt;</content><category term="totypeatale"/><category term="devlog"/><category term="totypeatale"/></entry><entry><title>2026-05-17 Type It All devlog</title><link href="https://greyshadowsoftware.com/totypeatale/2026-05-17-type-it-all-devlog.html" rel="alternate"/><published>2026-05-17T14:49:00-05:00</published><updated>2026-05-17T14:49:00-05:00</updated><author><name>Ibb</name></author><id>tag:greyshadowsoftware.com,2026-05-17:/totypeatale/2026-05-17-type-it-all-devlog.html</id><summary type="html">&lt;p&gt;Tutorial and huge internal rework&lt;/p&gt;</summary><content type="html">&lt;p&gt;Looking over my commit logs, I have no idea how I accomplished this much in a week. The big items you'll notice are the addition of a tutorial story and the second rough draft of music for chapter 1. However, what ate up most of my code time this week was a huge rework of how text is communicated between the main driver and chapter objects.&lt;/p&gt;
&lt;p&gt;Starting with the tutorial: you now start with a tutorial. It's fairly quick, only 14-15 paragraphs long (depending on 1 choice), skippable, and walks the player through the basic interface conceits, such as typing blue words to change the onscreen text or perform other actions. The tutorial can be reached from the main menu story-selection sub-menu if it is skipped. The game will eventually start with a "welcome message" before the tutorial is displayed, but this should be good enough for now.&lt;/p&gt;
&lt;p&gt;The second draft of music for chapter 1 was intended to be "forest" themed, but I think I ended up with "winter wonderland" instead. Since then, I've been listening to some forest-themed and Celtic music and getting ideas for how to improve. I'll also hopefully get my dad to help identify the instruments in said songs, which will speed up progress.&lt;/p&gt;
&lt;p&gt;The options page also got a big rework, with settings now having their own sub-pages where the user can select the specific option value they want, rather than incrementing through them. The story-resets also got their own sub-pages in anticipation of some work I'm going to do on adding meta-progress to stories. The "set instead of increment" change was prompted by a request from Squish and I have to agree that this is much better. She also suggested adding font sizes and that's in the options menu now, too.&lt;/p&gt;
&lt;p&gt;Lots of other, smaller changes have been made to improve the player experience. Fuzzy searching has been improved in reliability and has allowed me to change the collection behavior so that more text is collected, rather than just the first matched string from a random section. And if that still isn't enough and there's an annoying loose letter, you can now click individual letters to collect them! To prevent the "collect all matches" behavior from becoming an exploit, I've also set a threshold limit on matches so the user can't just slowly type the alphabet to collect all on-screen text. Red, spiky challenge words can now be "defused" by typing the words on either side of them, and can also span two words. Later challenge words will require other defusing techniques. Resizing the window no longer erases any typing progress you've made. Unfortunately, it still gets erased when entering the menu and returning, but I've already got ideas on how to prevent that particular annoyance.&lt;/p&gt;
&lt;p&gt;That's all of the user-facing changes, but I also made my life easier by adding a bunch of writing improvements. I've added &lt;code&gt;!ifaddinventory&lt;/code&gt;, &lt;code&gt;!loadmusic&lt;/code&gt;, &lt;code&gt;!pagebreak&lt;/code&gt;, &lt;code&gt;!storereplace&lt;/code&gt;, &lt;code&gt;!markstorycomplete&lt;/code&gt;, and &lt;code&gt;LAUNCH&lt;/code&gt; as text commands this week. Most of those are EWISOTT, but a few demand some clarification. &lt;code&gt;!ifaddinventory&lt;/code&gt; conditionally adds an inventory item, which is primarily useful for setting up future &lt;code&gt;!ifreplace&lt;/code&gt;s. This was practically necessary for chapter 2's hub-and-spoke design. &lt;code&gt;!storereplace&lt;/code&gt; and &lt;code&gt;LAUNCH&lt;/code&gt; are used together in the tutorial (and will be later used in a sub-menu) to allow launching the appropriate Steam/itch.io/Discord links in a browser to report issues or feedback.&lt;/p&gt;
&lt;p&gt;I also finally got syntax-highlighting working for my tiac files in Vim! I can now see exactly how much of my text is commands versus raw, displayed text. Having seen that, it's now clear how much more complex chapter 2 is than chapter 1.&lt;/p&gt;
&lt;p&gt;Some minor updates to the other file types include tias files now allowing custom resource descriptions, which automatically get the default description appended (e.g. "LPM" can be changed to "dex", which becomes "dex (LPM)" in-game). MusicGroup (tiam) files can also now specify the tempo. I still don't know how to include the signature in my calculations for seconds-per-measure, so I'm omitting that for now.&lt;/p&gt;
&lt;p&gt;Finally, we get to the code-only changes. Some minor refactoring was performed to DRY things up (especially &lt;code&gt;_execute_change_command&lt;/code&gt;, which was getting quite messy), but the big change was how the main class and chapter objects communicated about the paragraph text. Previously, chapters would just build a huge string for all of the paragraphs that could be displayed on-screen and then passed that to main, which would build all of the necessary letter labels and manually place them in the right sections. Now, chapters take each paragraph of text and put it in a special Paragraph object which handles building all of the labels, putting them in various Control containers to arrange them, and hooking up all of the collected signals. This means that letters, words, and paragraphs now handle their own collection logic, challenge defusing, letter greying-out, etc. This was a major headache to implement, involving roughly 20 hours of work (in only two sittings, because I'm insane), but it has been very worth it. All of the code cleanliness from this has enabled much faster development on other tickets.&lt;/p&gt;
&lt;p&gt;I only have 5 tickets remaining in the "demo" milestone and two of those are "create music." I still need to put together the marketing materials (gameplay video, screenshots, store page description, etc.), but I hopefully won't get too sidetracked next week before I get around to those.&lt;/p&gt;</content><category term="totypeatale"/><category term="devlog"/><category term="totypeatale"/></entry><entry><title>2026-05-10 Type It All devlog</title><link href="https://greyshadowsoftware.com/totypeatale/2026-05-10-type-it-all-devlog.html" rel="alternate"/><published>2026-05-10T18:30:00-05:00</published><updated>2026-05-10T18:30:00-05:00</updated><author><name>Ibb</name></author><id>tag:greyshadowsoftware.com,2026-05-10:/totypeatale/2026-05-10-type-it-all-devlog.html</id><summary type="html">&lt;p&gt;Two monster tickets finally dealt with&lt;/p&gt;</summary><content type="html">&lt;p&gt;There were two ugly tickets hanging over my head for a while: challenge word highlighting and fuzzy search. Both have now been implemented, but with a bunch of caveats and concessions.&lt;/p&gt;
&lt;p&gt;I fought with the graphics shaders for challenge words for more than 10 hours before I finally gave up and just styled a capsule behind the word, rather than the text itself. This is due to a combination of issues inherent to Godot, namely how it reports the texture size and UV coordinates to the shader code. The especially annoying part is that all text in a CanvasGroup is pre-drawn to a single texture before being passed to the shader (but not necessarily in the same orientation/position as it should be), UV coordinates are given with respect to the full texture, and then, after whatever shader changes are applied to the full texture, Godot cuts out the original size of the letter (ignoring vertex size increases) and places it in the letter's correct position. This results in bizarre behavior when your shader draws outside of the bounds of the letter itself. There were also issues with the capsule shader (namely, it uses a texture size of 1x1 always), but those were more easily overcome.&lt;/p&gt;
&lt;p&gt;The capsule shaders are not finalized and will definitely need tweaking, but they look half-decent now and the red word finally has spikes (and the blue word pulses).&lt;/p&gt;
&lt;p&gt;The other bugbear was fuzzy text searching. There are dozens of algorithms out there, but the majority only search for &lt;strong&gt;presence&lt;/strong&gt; within a given target string, whereas I want the &lt;strong&gt;location&lt;/strong&gt; within the target. So I went with a brain-dead recursive algorithm. It is not performant, but a number of tricks allow it to handle my needs for now. The big blocker on this one was that short typed strings (e.g. &amp;lt;10 words) would work fine, but typing more would start causing hiccups and single-digit FPS by the time I hit 20 words typed. I eventually figured out that this was because it was keeping every possible matched string with missing letters. So typing "apple" would store &lt;code&gt;_pple&lt;/code&gt;, &lt;code&gt;a_ple&lt;/code&gt;, &lt;code&gt;ap_le&lt;/code&gt;, &lt;code&gt;app_e&lt;/code&gt;, and &lt;code&gt;appl_&lt;/code&gt;, even if the full word &lt;code&gt;apple&lt;/code&gt; also matched the target text. I couldn't just discard "worse" matches, because I had to feed previous results into the algorithm to save on compute time and discarding "worse" matches could result in ignoring valid results later on. I got around this by discarding results which had the same starting target index (e.g. that first "a") but a worse skip count. So the algorithm now keeps &lt;code&gt;apple&lt;/code&gt; and &lt;code&gt;_pple&lt;/code&gt;. Not perfect, but good enough for now. Unfortunately, this might have unforeseen/undesired/unexpected consequences for edge cases, but I'm not going to worry about that for now.&lt;/p&gt;
&lt;p&gt;The number of errors "allowed" by fuzzy searching is configurable in the options as the "difficulty."&lt;/p&gt;
&lt;p&gt;Finally, I implemented two features which were deliciously simple in comparison: a &lt;code&gt;!ifreplacelist&lt;/code&gt; text command that builds a textual list based on individual conditions and then joins them with the correct grammatical features (e.g. a simple "or" for two present items or an Oxford comma for three); and cursors indicating the last typed latter, a feature requested by Matthew.&lt;/p&gt;</content><category term="totypeatale"/><category term="devlog"/><category term="totypeatale"/></entry><entry><title>2026-05-05 Type It All devlog</title><link href="https://greyshadowsoftware.com/totypeatale/2026-05-05-type-it-all-devlog.html" rel="alternate"/><published>2026-05-05T07:48:00-05:00</published><updated>2026-05-05T07:48:00-05:00</updated><author><name>Ibb</name></author><id>tag:greyshadowsoftware.com,2026-05-05:/totypeatale/2026-05-05-type-it-all-devlog.html</id><summary type="html">&lt;p&gt;Visual and gameplay improvements; Chapter 1 complete!&lt;/p&gt;</summary><content type="html">&lt;p&gt;My new strategy for motivation is clearly paying off, with another 6 days of progress in ~8 days. The big story news is that I finished the first draft of chapter 1! The big code news is the addition of several new interface and graphical improvements.&lt;/p&gt;
&lt;p&gt;Chapter 1 finishes after gaining entry to the city of Atrion. This begins the much more complex chapter 2, which has a variety of side stories, with hub sections to return to after each side story. Chapter 1 still needs some work to integrate currency-dependent choices and other updates, but most of the writing progress will be on chapter 2 now.&lt;/p&gt;
&lt;p&gt;The biggest interface differences you will see compared to last week are the rearranged text containers and the addition of several new items to the pager. In an effort to make the game look better, I've moved the currency banks to the upper right, the pager below the main text, and removed everything else. This should provide more space for the main text and also make it appear less scattered. The pager has had the addition of the menu and prevpage commands, and a progress bar for typed main text. The prevpage backs up to the last bookmark jumped-to, while the progress bar indicates (at 70%) when the nextpage command will be enabled.&lt;/p&gt;
&lt;p&gt;The menu is the big interface addition, leading to a page with links to the licenses, options, and exit command. The options page currently has settings for volume, typing speed, and fullscreen/windowed, as well as the ability to reset progress on each story. The return from the menu to whatever story you were on before has raised a lingering issue to the forefront: redisplaying main text results in all of the typed letters becoming untyped again, losing all in-paragraph progress. While this is largely a minor issue, I still need to figure out a solution before I consider the game complete.&lt;/p&gt;
&lt;p&gt;The biggest command changes this week are the addition of the last few word and text commands needed by chapter 1, as well as the addition of currency-dependent choices. I've added the word commands RESTART (for bad ends) and SPIKE (the red words which damage your currency), and the text command &lt;code&gt;!ifjump&lt;/code&gt;, which handles jumping (immediately) to a different paragraph based on inventory. With the movement of currency banks into the inventory, I can also now change the text (and thus, available choices) based on how many words/letters have been typed. So far, I have only implemented this in one spot in chapter 1, the first choice the player makes, but it will eventually be sprinkled throughout all story text. I also made it so that choosing the currency-dependent choice reduces that currency (making it cost words/letters to choose the tougher choices).&lt;/p&gt;
&lt;p&gt;But before you notice any of those cool things, the first thing you'll probably notice (why am I waiting until now to mention it?) is that the letters now fade in over time! This gives the illusion of them being typed out for you, a la JRPGs, and helps greatly in improving the game feel. Another big visual/interface change is that typed text is now still visible, in greyed-out form, and is even still typeable. This will help when typing random letters you missed earlier, as you can type full words to pick them out specifically. Finally, the currencies can be conditionally renamed by the tias file, so the crin tale story has "narrative gold" (letters), "gaseous fuel" (words), and dex/str (LPM/WPM).&lt;/p&gt;
&lt;p&gt;The backend has had a few minor improvements and frontend-related refactorings, but the major addition is the analysis engine. This alternate main-scene allows me to programmatically parse through tias stories and run through every possible choice path, spitting the results out to some JSON I can read through more easily to determine various backend facts about the story. For example, it keeps track of the min/max currencies at each choice point, so I can more easily determine decent currency-conditionals for the choices. This will help greatly in writing and updating the stories as I go.&lt;/p&gt;
&lt;p&gt;There were several distractions and sidetracks this week, but I'm getting much closer to a public demo. The only large items remaining are a tutorial story, intro screen, and musical track for the first chapter. I hope to have that done in the following week, but I am very good at finding distractions to prevent me from working on the music.&lt;/p&gt;</content><category term="totypeatale"/><category term="devlog"/><category term="totypeatale"/></entry><entry><title>2026-04-27 Type It All devlog</title><link href="https://greyshadowsoftware.com/totypeatale/2026-04-27-type-it-all-devlog.html" rel="alternate"/><published>2026-04-27T11:54:00-05:00</published><updated>2026-04-27T11:54:00-05:00</updated><author><name>Ibb</name></author><id>tag:greyshadowsoftware.com,2026-04-27:/totypeatale/2026-04-27-type-it-all-devlog.html</id><summary type="html">&lt;p&gt;Story!&lt;/p&gt;</summary><content type="html">&lt;p&gt;The second full week of nose-to-the-grindstone work has a lot of progress to report! The biggest thing playtesters will notice is that I actually have a story to play through now. However, there are a number of other large improvements, both user-facing and backend.&lt;/p&gt;
&lt;p&gt;The story is tentatively titled &lt;em&gt;The Lone Crin Tale&lt;/em&gt;, but will probably be renamed soon. It follows a dragon-like protagonist surviving an attack by mysterious assailants and trying to both figure out who they are and somehow prevent their continued assault. A lot of the CYOA features are implemented (e.g. choosing actions at pivotal moments, gaining inventory, branching narratives), but a lot is also still missing.&lt;/p&gt;
&lt;p&gt;The other major user-facing changes this week involve saving/loading progress and a "story selection" main page on launch. Progress in each story is stored and loaded automatically in the user data folder (search for "Type It All" and then delete "progress.save" to reset progress). Eventually, there will be an in-game option to reset progress on a per-story basis. This is important as the CYOA features that cause story branches have now been implemented, with a hidden inventory tracking things like wounded body parts, gifts from friendly characters, and other valuable (and less valuable) items/trackers.&lt;/p&gt;
&lt;p&gt;On a technical note, the CYOA commands added this week are &lt;code&gt;addinventory&lt;/code&gt;, &lt;code&gt;removeinventory&lt;/code&gt;, &lt;code&gt;ifreplace&lt;/code&gt; (conditionally replaces text in the paragraph based on inventory values), and &lt;code&gt;nextis&lt;/code&gt; (indicates which paragraph is next, rather than just index+1).&lt;/p&gt;
&lt;p&gt;Some minor user-facing changes include a fix for letter-highlighting occasionally glitching out, unpredictable behavior when typing text that includes multiple blue commands, and "orphan" punctuation that is not adjacent to a word (e.g. emdashes with spaces on either side).&lt;/p&gt;
&lt;p&gt;The backend changes, while not immediately visible, will help with better organization and improve my development speed. The &lt;code&gt;.tiat&lt;/code&gt; files I had been using to store the typeable text have been changed to &lt;code&gt;.tiac&lt;/code&gt; "Chapters", which are then grouped into &lt;code&gt;.tias&lt;/code&gt; "Stories", which are in turn managed by StoryManager. This allows me to separate the concerns of typing text from determining what text to display next and when. The &lt;code&gt;.tias&lt;/code&gt; files also contain metadata on both the Story and the Chapters to hopefully prevent version incompatibilities. They also include currency renames (e.g. "typed words" -&amp;gt; "narrative gold"), though those haven't been fully implemented yet.&lt;/p&gt;
&lt;p&gt;Next week will be primarily focused on finishing up both the text and the CYOA functionality for chapter 1 of the crin tale, as well as adding a much-needed options menu. If I have spare time after that, I will also research and compose the musical score for the first chapter. With those taken care of, I can put together the Steam/Itch pages and publish a demo. I won't be taking that public until I have feedback from friends first.&lt;/p&gt;</content><category term="totypeatale"/><category term="devlog"/><category term="totypeatale"/></entry><entry><title>2026-04-19 Type It All devlog</title><link href="https://greyshadowsoftware.com/totypeatale/2026-04-19-type-it-all-devlog.html" rel="alternate"/><published>2026-04-20T01:40:00-05:00</published><updated>2026-04-20T01:40:00-05:00</updated><author><name>Ibb</name></author><id>tag:greyshadowsoftware.com,2026-04-20:/totypeatale/2026-04-19-type-it-all-devlog.html</id><summary type="html">&lt;p&gt;Music and better MainText logic&lt;/p&gt;</summary><content type="html">&lt;p&gt;This week marks the first full week of development since August 2025 and thus is the perfect time to start doing devlogs again.&lt;/p&gt;
&lt;p&gt;The major user-facing changes this week were improvements to blue-command processing and the addition of music. The major backend improvements include a debug window and a massive reorganization of how MainText works.&lt;/p&gt;
&lt;p&gt;Blue commands are the major interactive element of the game, so having multiple blue words in a single line is to be expected. Unfortunately, my old method of handling that was to just execute all of them if you typed multiple. The new version only executes the first encountered. I may eventually change it to have priorities so that "obvious" choices are fired over "default" choices like typing all the text on the screen.&lt;/p&gt;
&lt;p&gt;The current music is effectively a placeholder, but still sounds decent. I eventually aim to have custom songs for each chapter of the story (and possibly custom songs for each act of Hamlet). I don't think all of the tracks are currently achievable with the text I have available to type, but enough is triggerable to get the feel of it.&lt;/p&gt;
&lt;p&gt;The debug window allows me to see which music tracks have been triggered, and also to mute the music (so I can listen to something better while coding). I'm considering adding debug builds to my regular daily builds. Let me know if you want this! (daily builds are, as always, available at files.greyshadowsoftware.com)&lt;/p&gt;
&lt;p&gt;Finally, MainText got an overhaul to add per-paragraph command words and bookmarks. I essentially had to retool how text is processed at the start as well as how it is stored and accessed throughout the lifetime of a MainText object. MainText can also now provide several paragraphs and does so based on the size of the game window.&lt;/p&gt;
&lt;p&gt;Next week is going to be fixing a few bugs and then delving into actual content creation, with a goal of producing roughly 250 words of story each day (to meet the goal of 8000 by mid-May).&lt;/p&gt;</content><category term="totypeatale"/><category term="devlog"/><category term="totypeatale"/></entry><entry><title>2026-04-19 Type It All intro</title><link href="https://greyshadowsoftware.com/totypeatale/2026-04-19-type-it-all-intro.html" rel="alternate"/><published>2026-04-20T01:30:00-05:00</published><updated>2026-04-20T01:30:00-05:00</updated><author><name>Ibb</name></author><id>tag:greyshadowsoftware.com,2026-04-20:/totypeatale/2026-04-19-type-it-all-intro.html</id><summary type="html">&lt;p&gt;Intro to new project Type It All&lt;/p&gt;</summary><content type="html">&lt;p&gt;NOTE: &lt;em&gt;Type It All&lt;/em&gt; was renamed during development to &lt;em&gt;To Type a Tale&lt;/em&gt;, but I have left most references to the old name for posterity.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Type It All&lt;/em&gt; is a typing game where everything is typeable. I've started this project in an effort to get something published quickly, as MorCol is going to take several years and I want to gauge the viability of games publishing sooner than that.&lt;/p&gt;
&lt;p&gt;The inspiration for &lt;em&gt;TIA&lt;/em&gt; was me noticing that most/all typing games are simply other genres (FPS, tower defense, adventure, etc.) with the typing of random words slapped on. I wanted to make a game where not only was typing the primary focus, but you typed full sentences and paragraphs. I've been struggling coming up with an actual "game" with this gameplay, but I believe I've settled on making a choose-your-own-adventure story where the challenge is in reaching a certain WPM in order to make choices. e.g. if you don't reach 50 WPM, you can't rush across the cave successfully and stab the villain&lt;/p&gt;
&lt;p&gt;Additional challenge is generated by having certain words interrupt or damage your WPM or letter-collection. The examples I'm sure of so far are red words which halve your WPM if collected and yellow words which explode (destroying letters around them instead of collecting them) if they are not collected quickly. I aim to slowly introduce these "challenge words" over the course of the story, to simulate the difficulty of a long journey.&lt;/p&gt;
&lt;p&gt;Another USP I'm putting in is dynamic music. The songs I'm composing will be split into ~10-18 tracks, with each track being associated with a certain group of letters. As you type the letters, those tracks will fade in and out accordingly.&lt;/p&gt;
&lt;p&gt;The ultimate goal is ~8000 words of story and ~2 hours of gameplay with a 2$ price tag. Depending on playtester playtimes, I might bump that up to 3-4$. The game will be released on Steam, Itch.io, and the high seas simultaneously. Steam will have the mentioned price tag, Itch.io will have pay-what-you-want with a suggested price of roughly double Steam's, and the high seas version will obviously be free. The demo version on Steam will consist of the first chapter+challenge word of the story.&lt;/p&gt;
&lt;p&gt;If you want to try the alpha builds of the game, you can check them out on my &lt;a href="https://files.greyshadowsoftware.com"&gt;fileserver&lt;/a&gt;.&lt;/p&gt;</content><category term="totypeatale"/><category term="devlog"/><category term="totypeatale"/></entry></feed>