Rain Without End by Bloodless Mushroom

Back in 2018-2020 I published a few guitar-and-bass songs as Rain Without End. Well, I want to have fewer things to manage, so I folded the REW stuff into my main Bloodless Mushroom project and re-released the the music that people liked as an the “Rain Without End” EP by Bloodless Mushroom today.

Listen on your favorite platform here:


Why You Shouldn’t Use Google’s Programmable Search Engine

Google’s Programmable Search Engine, formerly known as the Custom Search Engine (or CSE), is a simple solution to integrate basic site search into a website. In just a few clicks, you can add an easy search box that more-or-less works for site-wide search.

The search box looks like this, complete with Google branding:

Google Programmable Search Engine Search Box



In addition, you can integrate this search with AdSense so that you get some ad revenue when someone clicks on an ad or sponsored link in the search results. It’s not much, only a tiny fraction of what you might get from other ads on your site, but it’s something.

You don’t have any control over how pages rank in search results.

Here’s an example of what the search results looked like for one of my sites:

Google Custom Search Engine Results With Ads

If you don’t really care about the user experience or look and feel of your site and want to give away all of the valuable information that search data can tell you, then you’re done.

If, however, you care about the user experience for your site and want to make it better over time, you’re better off finding a creating a different solution.

If you’re using a framework or CMS like WordPress, there are plenty of built-in and plugin solutions that you can use that will let you see what people actually searched for.

Let’s compare two pieces of data.

First, here is the google Programmable Search report for my website soundprogramming.net:

Google Programmable Search Engine Data

Note that there is not a lot of useful information here. Although you can see the text of queries that people made more than 10 times, that doesn’t tend to be a lot of information. You lose ALL unique search queries, uncommon variations, and are left with almost nothing that you can use to improve your site content or user experience. This is all I get from more than 30,000 queries over more than a decade!

Second, here’s an example of what I saw in the first 24 hours after switching to my own site search:

Homegrown Site Search Data


In my case, I coded something from scratch, but you probably don’t have to. Like I said, there will be options and plugins for whatever you’re using.

Although some of these searches are from me doing testing, I already have some useful information. For example, I had some information on the “triton” synthesizer, but nothing about the “triton extreme”. This was a clue that I should add that to my site (which I did). I would never have realized that I had left that out if I didn’t know what people were looking for. Even better, because I built this custom, I can see what the top search result was for each query. This tells me whether people are getting what they want with a quick glance.

The value of this information is FAR more than the paltry few pennies that you’d get from Google’s custom search, and those pennies come at a cost — directing people away from your site.

In addition, I now have full control of how pages rank on my site. Because I know my site better than Google and have more context about my particular niche, I can provide more relevant prioritization of results.

Hosting your own search is more work overall (although maybe just a few minutes), and you may need to do a bit to filter out bot and crawler traffic, but this is valuable information worth having access to. You shouldn’t just give it away.

Dragon Dropper 2023 Year-End Numbers

I started building games in April 2023. It’s been an interesting ride so far, and I’ve learned a lot from just under 8 full months of full-time work. Starting from zero, here’s what I accomplished in 2023:

  • 2 games released on Steam.
  • 1300 total wishlists and 150 follows.
  • 80 sales totalling $700 before Steam fees.
  • Two released game soundtracks.
  • Two small Kickstarter campaigns funded.
  • Two released demos for games launching in 2024.

It’s less than I’d hoped for and more than I’d feared.

It will be interesting comparing these numbers at the end of 2024, which will be my first full year as a solo indie game developer barring any unexpected life changes.

Goodnight MusicSrch

I’ve had MusicSrch for about seven years now.

Although it was an interesting curiosity, I never really figured out what to do with it, and it never managed to have more than a few dozen visits per month.

It was super helpful when writing music reviews because I could just dig up all the streaming links for a band with a quick search.

About a year ago I added a sort of “directory browse” feature, where it would save the data for a band, and keep track of some historical numbers, and let you browse by genre. That was kind of interesting, but not really useful, especially given the plethora of music sites out there in the world.

If I haven’t figured out what to do with the site in seven years, seven more won’t help.

So, goodnight, MusicSrch.

If you’d like to see the historical site, it’s been saved on the Wayback Machine over the years:


A New Save System – Easy Save To The Rescue

With Into The Inferno development, I reached the point where it was time to get a better save-game system than the existing hacked-together-in-an-hour XML file. It had been on my to-do list for a while as part of evolving past the “you get one save slot, and that’s it” stage.

I have a ton of experience with C#, so throwing something in an XML file is second nature. That’s not necessarily a good or bad thing, but some of the legacy bits are strongly disrecommended by Microsoft at this point (BinaryFormatter for example).

I decided to “do what everyone else does” and get a copy of Easy Save from the Unity Asset Store. It’s immensely popular and highly recommended and it seemed like it’d be the shortest time-to-implement of the available options.

Fast-forward 8 hours later. I have a working save system with three save slots and it’s better in every way than the previous system. I was able to re-use a lot of my existing data code, rewrote some of it to be cleaner, and have “summaries” that are saved as part of the game saves that say where and who the party was at the time of save, and the interface changes necessary to support all of this.


Into The Inferno Main Menu Load Game - Before

Loading From the Main Menu – Before

Into The Inferno Save Game - Before

Saving At The Inn – Before\

As you can see, there’s just “Load Game” but you have no idea what you’re loading. Similarly, saving the game is just “Save Game” with nothing beyond that.

After implementing Easy Save, this is what I have:

Loading From the Main Menu - After

Loading From the Main Menu – After

Into The Inferno Save Game - After

Saving At The Inn – After

The first screenshot shows what comes up after you click “Load Game” on the menu. The summary text is localized in realtime, so in Spanish you’ll see that Archie is a “nivel 1 guerrero” even if you saved the game in English.

The second screenshot is saving the game from the inn. Saves at this point are an intentionally-limited resource (for better or worse), but at least now you have more control over them, and it’s easy to customize the number of slots that there are.

In the future I’d like to add Steam cloud save synchronization, but I have no idea how tough that will be. In any case, Easy Save made what I thought was a 40-hour task into a single day project, testing and UI changes included, and I definitely recommend it.

Into The Inferno Demo Now Available on Steam!

I’ve posted a demo version of Into The Inferno on Steam. It includes roughly half of the game — the main town, the three wilderness areas, the orc village, goblin village, gnoll village, and the first of eight dungeon levels.

Into The Inferno - Main Town

Into The Inferno – Main Town

There’s still a lot more work to do between now and the October launch, but it’s mostly cosmetic and translation work and the gameplay itself isn’t going to change much.

If you’d like to offer suggestions or feedback, you can hit the F12 key from within the demo to send comments.

Why Thieves Are So Useful in Into The Inferno

I made a video demonstrating some thief abilities in Into The Inferno.

Today I want to share with you why thieves and classes with thief skills are so special.

You can absolutely win the game without a thief.

But it will be much more expensive.

Number one is the item identification ability, which you can use to identify the random drops you get from killing monsters. It’s based on your intelligence score with a 20 Intelligence having about an 80% chance of success, and failing to identify an item will give your character a headache, which will give a -5 Intelligence penalty. These penalties stack, and they wear off after a while. It’s harder for non-pure-thief classes like mercenary and trickster, think 25% harder or so, but they can still do it.

It was designed so that you’ll probably have to fight a couple battles before being able to identify something with a reasonable chance of success again.

You can always pay for identification, or use items without identifying them. But you can’t sell unidentified items, and some items are cursed, and if you equip a cursed item, you can’t remove it without help.

Another thief ability is the ability to hide.

This offers a few benefits.

Hidden characters cannot be attacked in physical combat. They are not immune to spells like fireball, but they can stay hidden and untouched forever, if they keep clicking “hide”.

Hidden characters become visible when they take certain actions like spellcasting, attacking, blocking, or dodging. But they don’t become visible when attempting to flee, so with a hidden character it’s only a matter of time before they can flee the battlefield. Monsters may block the path for a turn or two, but if you’re hidden, you’ll eventually make it out unscathed.

Being hidden also gives advantages when attacking, namely the notorious “backstab” ability, that does double damage, or in the case of pure thieves, double damage plus a small level-based bonus on top of that.

Thieves are difficult to do well, because a successful thief requires high agility, dexterity, and intelligence to perform well. You might have to roll a lot of dice to get a good thief, but once you have one, they will earn their keep.

Of course, the trickster and mercenary classes have thief skills, but at a slightly lower level of ability. The mercenary trades some of this ability to gain better fighting abilities similar to a warrior, and the trickster trades some of this ability to gain wizard spellcasting abilities.

Beast Dungeon Nearing Completion

In the last week and a half I’ve put a lot of work into Beast Dungeon.

What’s been added? More dungeon variety, more monsters, more items, UI improvements, adding the endgame, adding a high score list, adding tracking of monsters killed, and adding localization in Spanish.

Beast Dungeon Kill Screen

The new kill tracker in Beast Dungeon.

At this point, it just needs a bit more translation and few audio tracks and it’s done. I anticipate it being completed within the next week. Wishlist it on Steam, it’s releasing soon!

Log 19: Beast Dungeon Roguelike RPG

Here’s a video about the roguelike RPG that I started while waiting for Into The Inferno to go through the Steam approval process.

The demo is available for free download at https://dragondropper.itch.io/beast-dungeon if you’d like to give it a try.

YouTube is a Risky Platform

If you’re building your audience or business primarily on YouTube you should probably think again, or at least have a backup plan.

Google can and will destroy all of your work at a whim, or with a bad bot decision, and there’s nothing you can do about it. You have no recourse, and there is no “manager” you can talk to.

In my case, I had been posting logs of my journey starting a game development studio. It started with a few videos detailing my goals and my process of learning the Unity game development framework, then with demos of the process of building my first-person dungeon crawler game Into The Inferno. It was totally normal stuff, just like hundreds of other channels are doing or have done. This approach is a time-tested way of telling your story, building an engaged audience, connecting with the world, and having more success than you would have without telling your story. This is the sort of thing YouTube was designed for in the first place. Or so I thought.

Just shy of two weeks ago I woke up to an email saying that YouTube had deleted my channel for “spam, deceptive practices, or scams”.

This was a pretty big surprise. There was no warning, no strikes, and no indication what, exactly the problem was. They didn’t indicate that there was something wrong with a particular video, so I really had no idea why my channel was deleted. There was nothing deceptive. If anything, I might have been too honest, bordering on oversharing. There was certainly no scam. I wasn’t trying to get people to do anything, or asking for money, or selling anything (yet). My game wasn’t even ready to wishlist on Steam.

I only have two guesses, and they’re vague ones. Maybe they decided that posting mostly videos on the same topic (my video game development) was spam, even though all the videos had different focus and were in different stages of the game’s progress. Or, since my account was nuked right after I uploaded a video describing how I had implemented in-game shops where you could buy equipment, recharge your mana, or heal your characters with the gold you get from killing monsters, maybe that was it, MAYBE they thought I was talking about some sort of real-money transaction thing. That’d be a stretch – since shops are just a standard mechanic that thousands of games have, and I wouldn’t ever consider adding real-money transactions to a game because that’s dirty, disgusting, slimy, and wrong. People who put real-money transactions in games should be ashamed. Look for the “Log 15” video on this blog if want to review that one and venture a guess.

Assuming it was just an algorithm glitch — after all, Google is not very good at algorithms, and they often make very dumb assumptions (I speak from experience since I’ve had quite a few websites over the last 20 or so years) — I sent in an appeal. The auto-responder said that they’d reply within 2 days.

Now, 12 days later, I have received a response.

“Hi Dragon Dropper,

We have reviewed your appeal for the following:

Channel: Dragon Dropper

We reviewed your channel carefully, and have confirmed that it violates our spam, deceptive practices and scams policy. We know this is probably disappointing news, but it’s our job to make sure that YouTube is a safe place for all.

How this affects your channel

We won’t be putting your channel back up on YouTube.

The YouTube team”

Again, still no indication of what the problem is. Whatever it was, I was definitely making YouTube an unsafe place.

They did NOT delete any of my other YouTube channels associated with the same email, some of which are more than 10 years old (my band channel, my vintage synthesizer demo channel, and some various other music channels). They certainly did delete any motivation I have to maintain or grow any of those channels.

I’ve switched all of my video hosting to Vimeo and re-uploaded all of my videos. They’re visible here on this blog at xangis.com or you can see my channel on Vimeo here. The first 15 log entries were hosted on YouTube. If you want to watch them and figure out why they might have insta-banned me, be my guess. I’m out of ideas.

I’ll miss those ~10 subscribers, and the extra organic visitors that YouTube brings, but at least with Vimeo I won’t have to worry about some random bot arbitrarily declaring that I am a scam because you can give in-game gold to a healer to have your injuries repaired in one of my games.

Take caution, a random deletion could happen to anyone, including you, and there will be nothing you can do about it.

Am I John Connor?

Do you ever feel like John Connor or is it just me?

It feels like lately any time there’s something that I do that involves an algorithm making a decision, the algorithm goes against me. Whether that’s posting a video (separate rant entirely!), or posting a comment, or placing an advertisement, or writing an article, the bots always seem to come up with something.

It’s never because there’s a reason. The excuse produced by the algorithm is always invalid and not applicable. But I probably used the wrong keyword, or had the wrong IP address, or exhibited “bot-like behavior” because I type so ridiculously fast (40 years of typing experience), or because my vocabulary is too large, or any of a thousand things that makes me not appear to 100% adhere to the “average, standard Human” that algorithms expect.

I am not good at bullshitting. I’m annoyingly honest, because making stuff up is EXHAUSTING and I just don’t have the patience for it. My style is to tell you what’s up, give a (hopefully concise) explanation, and get on with my day or whatever I was creating. So, the idea that a bot would flag me for “deceptive statements” or “misleading links” is doubly offensive. First, your bot is stupid. Second, that’s not something I’d even try to do.

Google/YouTube, Facebook, and every other platform: Fix your half-assed algorithms. You’re making the world a worse place with them. Stop being evil.

I expect that this problem will only get worse as the internet becomes mostly just robots lying about things. Before “AI”, this was already tough. Now it’s probably going to become impossible. It’s hard enough to get a tech support Human now. As companies hand over more and more of their business to algorithms, Human support is pretty much going to disappear.

The thought that I might be the one to defeat the AI apocalypse gives me a lot of hope for the future.