In some of my previous posts, I talked about my generative music system. The bug hit me, so I spent some time integrating all of the work that I had done on that into the most recent build of groovelet.com - it’s technically the first-ever live, public facing version of the generative music system.
The procgen music is about as bad as I remember it, so I also made sure to include a “mute” button.
It starts very quiet and gets more all up in your business the longer you sit around. It is, to be honest, a little much when it gets wound all the way up.
It’s kind of a funny story, but I wasn’t having a lot of luck with instruments for Tone.js - there are some sample libraries out there but they sound real bad, and building my own tones with nothing but audio primitives and raw code turned out to be extremely difficult. (especially for me: an audio idiot, although in my defense I do not think that Tone.js is designed for anybody who isn’t already a very experienced audiobot).
Do you know what was really satisfying? Sampling myself. In fact, almost all of the instruments that are currently generated are either “the default synth” or “various sounds I made”.
Because all of the music is being generated inline, in the browser, it’s also pretty easy to change the mix based on stuff that’s happening - I don’t do too much of that yet, but if, for example, you pick up a card, a drum track will kick in and start contributing.
Loads of little updates to the location system. More well-developed biomes, each location has its own forage deck, locations have weather and season. It rains every three days in game, and my biggest problem with that is that I kinda prefer the rainy days. Can I just have it raining all the time?
Art. It’s hard. I’m not terribly good at it. I need a lot of card art.
Well, AI is generated all of the music for me, why don’t we point it at the art problem a little bit.
I’ve been fiddling with VQGAN+CLIP to have my GPU poop out card art based on seed images and brief text descriptions.
This requires a stupidly powerful GPU. My 2070 can barely manage images that are 180x270, which fortunately happens to be the size I decided that card art was going to be.
It’s slow-going, but… fascinating, and a lot of fun.
Here are some GAN-generated cards:
in retrospect maybe that last one was a mistake.
anyways I love it. I’m gonna make so much weird, abstract in-game card art this way.
paying artists is for schmucks.
The game needs a messaging system. So I’ve been working on that, with a generous helping hand from the absolutely stellar, 10/10 “windups” library.
So, cards can now trigger messages that pop up on screen, animated by windups.
I have a few different message types in mind, including full-on character dialogue boxes; but for now it’s just a grey strip called an “alert”.
One thing that I’m super proud of is that the typing sound effect of the text box… happens in time with the drum track.
Another thing I’m super proud of? The message language is a customizable XML-based DSL, so I can write things like this:
I am feeling <bouncy>sassy</bouncy> and
<spooky>M U R D E R Y</spooky> today.
<fast>How about <strong>you?</strong></fast> <pause />
<slow>...</slow>
<small>I thought so.</small>
That’s pretty neat. It’s very useful if I’m feeling sassy, or MURDERY.
Lots of updates, it’s been a busy month. Most of this stuff is pretty unpolished, too.