🤑 Indie game store🙌 Free games😂 Fun games😨 Horror games
👷 Game development🎨 Assets📚 Comics
🎉 Sales🎁 Bundles

Blood Not Allowed

A topic by Itooh created Jan 07, 2018 Views: 296 Replies: 10
Viewing posts 1 to 11
(Edited 1 time) (+1)


This is the weekly devlog for a narrative game I've been working on for some months now. Blood Not Allowed, or Don't Play This Game If You're Afraid Of Skeletons is a Twine game (text-only adventure game) with a dynamic soundtrack. It is both a comedy with a pinch of horror, and a jazzy musical exploration.

State of the Project

Right now the writing and the programming are done! It has even be proof-read, woohoo! Although I wouldn't say no to another proof-reader, if you are interested.

Before I dive into the story, let's talk about what's been programmed exactly: I'm using Twine 1.4 to render the story. However, I implemented some javascript macro to add a dynamic soundtrack. I already experimented with synchronized samples in my last project, Moog Memories. The basic idea is to have a musical loop, and when the user click on a button on the page, instruments are added or removed. All theses instruments and loops must stay within the tempo, so there is constantly a metronome and a conductor to keep them sync. The code I've used is basically the same, except that I moved it to ES5. I plan to release later these tools as a reusable open-source library.

In Twine, I use it to fade-in and fade-out instruments and various sound-loop as the user progress in the story. Except that it isn't a linear story: it's a manor that the player can freely explore. Like an old adventure game, the player goes from rooms to rooms, and interact with object they find there. Each room has its own musical atmosphere, and every objects or events are associated to a sound. This way the player explore the game space as well as the music. The project was actually imagined as a 3D walking-simulator, but I eventually realized that I was mostly interested in the musical and narrative aspects, and a textual game would give me more freedom.

So there you go: as of today the engine is functional, all the text has been written so that the manor is fully explorable, and even the ending is here… What is the last bit missing?


Time for composition! I will mostly talk about music in this devlog. But there will sure be some interesting game-design aspect I will be able to discuss, given that this soundtrack must be explorable in a non-linear way. And music is cool anyway.

What is there to do? Well, the manor have 12 rooms, each one containing between 3 and 5 interactions, to which we have to add the game's introduction and ending. So far I have done the intro and one room. Yup, there's still plenty of work to do! I'm using LMMS for composing, and Audacity for eventual sounds I have to create.

Let's talk about the song in a global way: it's jazz, with some electro-swing parts or other styles depending on the room. The idea is that this is a fake horror game, with a settings that pretends to be spooky, but is actually pretty uplift. Kind of like the Day of the Dead? So the music will be pretty upbeat and energetic to create this contrast.

One particular aspect is that it has a constant motif: E G F♭ B (the song is in minor E). This motif is first played as a creepy tune in the intro, but quickly change into something more pleasant inside the manor. It will be played in every room by different instruments. It is more or less the manor theme.

As I continue to compose, we will explore (and hear) the manor's different rooms. Let's start with the most recent addition:

The Lobby

The lobby is the first room the player discovers after the introduction. While the introduction has a dark and unsettling atmosphere, this room is bright and welcoming. The contrast must hit the player as soon as they enter the manor, in order to give them the idea “this is actually not an horror game at all” (although the game already play with that joke earlier and still after). This is how the room sounds when the player enters it:


I initially intended to have a “moderated swing”, but… This is quite energetic! As I said, I had to create a strong contrast with the introduction. I hope it won't impact the reading. I will try to be softer for the other rooms. Except for those who were planned to be loud, they'll have to top that one!

As the player look at the room and its content, new instruments will be added for each descriptions. They will then remain until the player leave the room, so that when everything has been inspected, the harmony is complete. For example, one element of the room is the skeletons. Yes, there are skeletons absolutely everywhere in this game, and this is the room that introduce them. Here is how they sound:


And this is the lobby with all of its instruments:


One on the difficulty I have encountered for now is that cheap sound fonts do not work well with jazz… Until now I was doing mostly electro, and was happy with oscillators, samples, and a bunch of filters and effects! Here I need some real instruments, and… Well, I have to find pretty good sound fonts, and know their limits! For example, I can't use a lot of guitars, because guitar sound fonts easily sound fake. In the end, I know that my music will not sound acoustic at all, and that its MIDI aspect will be pretty obvious. But I want to get closer to a N64 Grant Kirkhope style than a SNES low-budget RPG one!

That's all for this week! Next time I will finish a little sub-part of the lobby, and hopefully another room. I might not be super active though with the AGDQ going on… Also, did I mention I acquired a Switch and started Mario Odyssey and it is a great game and I also have Breath of the Wild waiting in line? Boy, those new year resolutions about productivity will sure be hard to keep!

So, AGDQ was fantastic this year! Did it still let me some time to work? Actually, yes! I have one more room, and a little section from the lobby. Let's start with this one!


There's a bar in the corner of the lobby. There's not much there, it's just a little place with some weird drinks and a bartender. I still wanted it to be musically separated from the lobby, while still being close to it. I thus decided to use mostly percussions, and a discrete piano. Each drink is represented by another percussion, and the bartender has a short organ solo.


Ball room

After the lobby, the player has access to several rooms, including this one. I wanted to do this one because it has very different style from the lobby. While the music should globally be jazz swing, each room should have its own personality. The ball room, a large and spectacular place, has this sort of slow rock kind of like a spy movie theme. I'm pretty happy with the result:


However, for the additional instruments, I changed my initial plan. I previously stated that I wanted each instrument to remain so that they all play together in the end. The idea is that the more you observe a room, the more you appreciate its whole. I composed this room this way, but I ended up with the same issues I had with the lobby: it quickly become too loud and confusing. See, there is 5 observable element in the room. Technically, adding 5 instruments is doable, but the problem comes from the fact that the player must clearly hear each one! If they click somewhere and are not able to detect the instrument because the others one are too loud, it would break their experience. So, each instrument must be clearly distinct from the others… But they can't all take the lead, otherwise they will just fight each other and create nothing but a musical mess!

So after several attempts, I decided that additional instruments should be heard separately, only when their section is read. This way they can all create different melodies, and don't have to worry about their volume! I think I will still keep the idea of keeping an instrument active after it has been looked: it works great in the lobby. I hope it won't be too confusing.

Anyway, now that I have two room, I can experiment the transition between them. Simply fading from one to another might not sound very pleasant. This is why I added plenty of corridors and vestibules in the manor! I will work on that next week.

I don't have a lot to show this week. It turns out being sick doesn't put in the right mood to write music!

Anyway, let's talk about the made progress:


As you may have noticed, rooms can play on different chords. When the player go from a room to another, there is a 3s fading to make the create a smooth transition and give the impression of moving inside an auditive space. Still, some music section can't just be next to the other without sounding wrong. This is one of the reasons I divided the manor with several corridors and little transitions room, to create gap between some sections. The other reason is that I want the manor to be like a confusing small mansion, not gigantic but with enough rooms and passages to lose you a bit. I've actually made a map of it before writing!

In the first floor, there is a “main corridor” with three aisles: West, East and South. Each one of these allow to go to different rooms, as well as upstairs and to the basement. Player will go there just after the lobby. So its purpose is to quiet down the music a bit, and prepare for other rooms. The music must make it clear that the player is between two rooms. For this, I've chosen to use only percussions, and play the manor motif with a contrebasse. While the contrebasse remains in the three aisles, each one has its own rhythm.

Say, how does the transition between the lobby and the ballroom sound? Let's find out. (seriously, I have no idea as I'm writing this. Crossing fingers) (game dev, so exciting)


So, not so consistent in a musical perspective. But there is some story-telling here!

Anyway, the other corridor I've been working on is… The second corridor. Yeah, not a super original name, I know, but how do you name corridors in a house? The second corridor leads to the dining room and the lounge, two very different places: one is busy and chaotic, the other one quiet and elegant. I intend to work on them next. For now, I have prepared their grid chords : the dining room will use Em - B - Am B / Em - B - C - B, and the lounge A7 - A7dim - G7. To compose the transition between the two, I took chords that are shared between the two or close to them: B - C - A. We'll see how the transition goes… Since this is still a corridor, I've kept the contrebasse from the main one, as well as a similar percussion. However, I add some piano for the motive to hint on what's awaiting behind the doors! Let's say it's the "second" touch of the second corridor. I then used a high pitch guitar to play the chords. I had some trouble with this one. I didn't want to use the piano again, it felt redundant. But with synth instruments, you're quite limited. This guitar doesn't sound too bad, so I've decided to go with it. Hopefully this is not an area the player is supposed to drag in!


Next week, if I heal a bit, I intend to work on the dining room. This will be quite a challenge, because it's the pure electro-swing part, and I've never composed that! Plus, using virtual instruments can be quite challenging. Eh, I'm here to experiment anyway! :)

(Edited 1 time)

I'm just back from the Global Game Jam 2018! It sure was fun. It especially allowed me to work on something else, which is nice. (… I would love to share the incredible VR game that we made, but the thing is… we couldn't make a functional build. Erf.)

But back to our skeleton game. With this week's room:

Dining room

One of the most busy room in the game. Tons of skeletons are having presents here, eating and talking loudly. It's a party, so the music should represent this with some loud swing! More precisely, electro-swing. I took Caravan Palace and Parov Stelar as inspirations. Yes, classics. My main goal was to learn the typical electro-swing rhythm. I went with a fundamental kick + snare alternance, and some brush a guitar to make make it a bit more bouncy.

Although I used entirely "fake acoustic" instruments (sound fonts, but no synth or electronic sounds), the result still sounds electro due to its percussions and its strong bass:


I must admit, the brass are a mess. It was a tough challenge to find correct sound fonts, and separating them into three separate instruments… Overall, it's a bit of a mess. There may be too much instruments in this. The issue is, separately they sound awful, and its only altogether, hidden among each others, that they give a decent result.

At least, I like the violon touch! But it won't be the main melody: later, there is a trumpet that join the group, taking the lead. It will also be persistent (until the player leave the room). Since it will be associated with the word "skeleton" (yes, hum, it's a very recurring word, seriously), I'm wondering if I shouldn't make this rule: elements associated with skeletons remain. I will read the other rooms, see if I can apply this logic everywhere.

Another little touch: there is a window in the room. Looking at it lead to the description of the outside, a dark and rainy night, on a sinister land. I wanted to transcribe this contrast with the warm and festive inside with this cold outside. I thus applied a bass filter and reverb to the room's music, and added some string and piano:


There are other places where I use this effect in the game, such as the entrance. It gives the feeling of hearing a room from the outside, and entering it. It's a bit of a hack though: fading a song into a filtered song isn't the same as gradually applying a filter! But… it sounds still ok.

I'd like to share quickly some thoughts about my music and composing. I've been working this week-end with a sound designer, and once again, it was a huge reminder that I'm far from being an actual composer! Maybe not even a good musician. I have a lot of friend and family who are, and some actually work in music, so I guess they had a (good) influence on me. But I'm not sure if I want to become musician. I do music for fun, and it's, hum, bad. I could invest in a sound card, recording material, instruments, learn some more advanced software, other instruments… Maybe I'd like to, but maybe I'm more comfortable in coding. That doesn't mean I'm done with musical game: I have still ideas for procedural music and toying with sound! But that might be what I want to explore: using programmation to create generative sounds and music. This project makes me realize that while I like making music, any musicians will be far better than me! And that's ok.

The conflicting point, about this game specifically, is that it won't have "good" music. It have an interesting system of spatial music, fading instruments across the rooms, which might be fun but won't make a big impression if the music isn't actually great. Sometimes I wonder if the game wouldn't be better without sound: letting the player enjoy the reading without a soundtrack to tell them how to feel. The issue is that this project was conceived as a musical game! Removing this aspect would be a huge downer.

I don't intend to change my plans anytime soon. I have everything prepared, some songs ready, I want to finish that. And it's still for me a great occasion to try stuff in composing! It's just that the music will probably be just okay, while I wanted it to really incarnate the game. Eh, at best it will be a message to sound designers: “I've done this using samples, wanna do a collab for a next game?”. For my next projects anyway, I will go back to more minimalist music, with electronic sounds. That's definitely where I'm comfortable!

But I'm far from being done with this one! It's too soon to write post-mortem, come on! :P

Next room will be one just next to the dining room: the kitchen. Then we'll leave the food to move to the lounge, a more peaceful room.

Couldn't get a lot of time to work last week. So I won't be able to show the final version of the kitchen. Sorry!

So far, I have the "instrumental part", with the melody and the rhythmic. The kitchen is kind of the dining room backstage, so I'm keeping the same chords. But this time it's more dry, with only high pitched piano, pizzicato violon, and a bass. However, even with a battery, it seemed too quiet. The kitchen is not as chaotic as the dining room, but it is still pretty busy, with a lot of cooks running around in a constant rush. So I decided to add… samples.

Truth be told, recording them was a fun distraction. I took some kitchen tools, tried to record some noises… My goal is to get close to something like the Micmacs à Tire-larigot soundtrack. My sounds aren't perfect yet, I need a kick, and some sounds like broken dishes or honing knives. I'll have to find somewhere. Then the tricky part will be to arrange them in a nice rhythm. Then I'll be able to work on the "extra" instruments.

This is a great occasion to talk about how I'm trying to design the music. While the game is entirely textual, the music is not here to describe how a room sounds, but rather how it feels. This is why it isn't always consistent with what the text describe. For example, the ballroom is supposed to be filled with a waltz… But as you can listen above, its soundtrack doesn't really reflect that! The goal is more to evoke the size of the room, its dream-like aspect, while giving it a unique atmosphere that is still part of the global music of the game. Same thing goes for the dining room, filled with laughs and loud talking in the text.

This is why I'm reluctant to use samples to transcribe some elements. When the player click on something, they shouldn't necessarily hear a sound that this thing makes. But since it should still have some kind “musical / emotional” connection with that thing, it can be tricky. For example, there are ghosts in the ballroom. I wanted them to be some kind of weird moog with a lot of reverb… But I couldn't achieve something musically pleasant, and ended up with a noise that just sounds like… ghosts? In the end it fits well in the music, and effectively gives the impression of looking at those ghosts. But I'd like to keep those exceptions as rare as possible. I want instruments, not sound effects!

This is why in the kitchen, while I use samples to illustrate the room, I'm trying to arrange them so that they sound more like percussion that ambiant sounds. They should be structured in a way that only make sense musically, as if the cooks were using their tool to make music. I admit, it's still another exception. Maybe because the kitchen is more down to earth than the rest of the manor, I feel it should use actual sounds? I don't know. The essential is that it should sound great!

Newt week will be another week with not a bunch of free time. I expect to finish the kitchen, but I don't know if I'll have something for the lounge. We'll see.

The kitchen is done!

Well, not a lot to add to what was said earlier. The result is a bit messy, but it fits with the atmosphere I want. Here is the full track, including the different instruments added when the player click somewhere in the room:


For once, I used some electronic instruments. It creates some kind of weirdness, as if the food in the room was alien. And after all, I did plan to do some electro-swings. LMMS (and maybe most of DAW if you don't record any instrument at all?) is best suited for electro, so I might try to stick where it works great.

I also started to work on the lounge. I changed a bit what I planned for the chords: it's now C7 / Am7 / Am7dim. Lots of 7, I want this place jazzy!  It's a peaceful room, isolated from the party. The beat is divided by two, and actually even the manor motif is slower. For now, I have the bass and the chords. It still needs some percussions, and maybe another instrument to give it more consistance. And the vibraphone is temporary, I want to try something new to play the motif (maybe some rhodes?).


Next week I expect to finish the lounge. Then thee will be only one room left before we end the first floor! Progress is slow, but… Uh…

I forgot how I intended to finish this sentence. See you next week!

This last week was finally productive! Both for the game and my other projects. I hope I will be able to keep this pace.


The lounge remained close to what I've shown last week. As I said, I mostly added some light percussions. And the motif is now played by a very light Rhodes. And actually it also give the music enough weight, so I didn't need any other instrument! Rhodes are great. Sadly finding a pleasant sound font for this instrument wasn't easy either. But so far it's always how I've been composing: I have a sound in mind, I try to reproduce it, instead I find something that sounds nice, so I keep it. Happy accidents. (yes, I've been watching some Bob Ross lately)


This loop doesn't have much melody. Actually it's minimalist enough so that most of the additional instruments change drastically its mood: an organ holding chords makes it relaxing, strings give some melancholy, vibraphone create some mystery, and piano or saxophone solo creates some kind of sad or noir atmosphere. Again, this part has a very distinct style, completely different from what I'm used to do. So it was nice to experiment with it. The result is far from being perfect, and again it lacks acoustic records (mostly for the solo parts, sequencers are not the best tools for that). But I sure learned a bit, and explored some interesting sounds and rhythmic patterns. While it isn't the cool jazz I had in mind, I hope players will enjoy a bit the mood of this room.

Talking about distinct styles, we arrive at the last room of the first floor. And it's a very special room! Once in the lounge, the player will see a door leading back to the corridor, and another with a sign:

The Club

The real party takes place here! Forget about jazz and sophistications, skeletons are there to dance (and get drunk) until the end of this (eternal) night! The dining room was chaotic, this is pure madness. Flashing lights, dancing crowd, and… loud electro music!

This room is a great "break", since I don't have to use sound fonts anymore. Just synthesizers, and crazy effects. Not only this is more appropriate for the tools I use, but it also gives me a lot of creative freedom. This room is just “stupid” techno, locked on minor E, so I can have some fun making loud and repetitive noises! =D And since it doesn't have to sound acoustic anymore, I can even explore some effects to obtain strange results.

Here is how the room sounds so far:


As much as I try to stay consistent on the global song, the lounge and the club couldn't be more far appart from each other! But this contrast is intentional: just like the kitchen, the club is one of the few room that "sounds as it should sound".  Which mean the music the player hear might be the exact same one played actually in the fiction.

As stated above, I use LMMS. More specifically, I use its Triple Oscillator to create some instruments. Though it allows to obtain great sounds (combined with filters and effects), I'm thinking of trying to learn a new synth. I still have a lot to explore with this one, but I'm beginning to notice there are some resemblance in the different songs I composed with it. It could be interesting to try something new in the future. For now, a thing I should definitely do is save my instruments instead of trying every time to find a new one! Switching randomly waves and filters can sometime be tedious.

Anyway, the club is nearly done. What it needs now is the additional instruments. I wan to try some basic dubset effect (first time, huh), as well as some compressed percussions (it needs to be over-saturated). And that will still be a good excuse to randomly select some effects and see what it produce!

And once the Club is done… We'll have our first floor! Finally! Then we will be able to attack… the second half of the soundtrack. *sigh*

But before that, I will implement what I have here, and make some test in the game. So next week I might be able to show a little bit how the game will sounds! And it will be a nice occasion to share some code, why not.

We have a lot of thing to discuss today! Let's start with what was planned last week: the Club.

The Club

As said above, the Club was quite fun to make. Pure electro, completely brutal, lots of dumb effects. I tried to make some dubstep sounds, I managed to do a decent "wah-wah", but not a very convincing "pew-pew". Fair enough! I must admit that as enjoyable it was to work on that room, I didn't want to spend to much time on it. It's quite appart from the style of the rest of the game, and it's not where I should focus the more.

There's also a little intro for it: a corridor where the player can hear it's muffled music from the outside. Bass filter, remove high pitched instruments, and voilà! Sure, the fading between the corridor and the room is not perfect. This is due to how the system works: we only fade two different tracks, and do not actually apply an actual dynamic filter.

I'll let you judge on the result. Here is how the Club sounds, with the intro and some of the extra instruments:


And with that… We have the first floor completed! Time to implement it! But first…

One architecture oddity

Something peculiar occurred to me last week… Let's talk about how the manor is designed: very early in the development and writing, I made some plans for the manor interior. My goal was to have a cohesive architecture! I want the manor to be confusing and twisted, while still making some sense! Even if most players wouldn't notice, that aspect was important to me.

So I drew some basic plans. Here is the one I made for the first floor. Since we just finished it, it seems fair that I show it now!

You might recognize the rooms we discussed so far! As you can see, lots of doors and interconnections everywhere. There are a lot of paths that the player can take to visit the floor in its entirety.

But there is a small mistake I made! Maybe you have already noticed it if you were very attentive. Some weeks earlier, I talked about a window. I wanted a room to have one so that I could describe the rain outside. Reasoning with the tone of each room, I decided the dining room would be perfect for it, since its warm atmosphere would contrast with the cold night.

But you probably see now what the matter is… The dining room in the only room, in the ENTIRE game, to have not a single exterior facade! Yeah, no kidding: even of the second floor any room can have windows. This is literally the single one that couldn't possibly host any window. And I precisely chose it without realizing anything! Derp.

So how to fix this? Well, this isn't the Shining's hotel (albeit it's close), we don't want impossible structures. Or more exactly: I don't want them to be implicit. It just look like they are accidental (which they are). So I used my plan B: the windows shall now be in the lounge! It's a quite room, with a bit of melancholy in its music. The perfect mood for staring at rain. Adding an extra instrument for this room wasn't too hard, so it's alright. We just won't use the little special track made for the dining room windows. It will just remain here.

Okay, NOW the first floor is ready. Let's put the music in it! The perfect occasion to show you how ugly my code is.

Music implementation

How do my system for playing loops in Twine work? Well, I won't go into too much details, but let's say there is an orchestra director that keeps the rhythm at all time. This entity manage the loops ("musicians") to tell them exactly when they should loop, based on the tempo. When a musician starts, it asks the director how far in the measure we are, so that it can move exactly to that point. Finally, every time a musician start or stop, it perform a fading of 3 seconds.

On top of all that, we have two twine macros: one that starts a list of musicians, and one that stop them. What if we start a musician already playing? Well, nothing happen: there is an orchestra entity that tells if a musician is already playing (or already stopped). Thus, we can trigger several time the same macro, musician will change their state only when needed.

This means that in each room, we have to start and stop the corresponding loops. The “main” loop must be started in the room description, and all the loops from the additional instruments must be stopped, as well as those from the neighbor rooms. The result looks like this:

<<playAudio "dining_main">>
<<stopAudio "second_corridor" "ballroom_main" "kitchen_main" "kitchen_cooks">>
<<stopAudio "dining_band" "dining_food">>

Yes, it can seem a bit redundant. Having to stop every eventual tracks, even the one that aren't playing. And calling "playAudio" even when not needed! But this logic allows me to keep the rest of the Twine code very basic: we navigate from passage to passage, and nothing special happen between them. It makes also the loops easy to manage: I don't really have to worry when they should be played and when not, just when they start, when they stop. Thus, I have a lot of freedom with this system: I can decide to play only one track for one passage, or to add an instrument, or several, or to stack them on top of another through a series of passages.

It's not even that fastidious. The longer part was to add them to the orchestra, where I have to declare their name and their path in a pretty large array:

{name: 'ballroom_main', url: './audio/ballroom/ballroom_main.ogg'},
{name: 'ballroom_decorations', url: './audio/ballroom/ballroom_decorations.ogg'},
{name: 'ballroom_dancers', url: './audio/ballroom/ballroom_dancers.ogg'},

But then, for each room, I actually only have to worry about the link already present in it. This is one of the perk of having a consistent space: links work always in both ways. Which mean that if a room leads to the kitchen and the corridor, I can be certain that only the kitchen and the corridor leads to that room reciprocally! And thus I know that I have to stop their sound loop. With that logic, writing all the macros into the story was pretty easy.

And you know what the best part is? It worked on the first try! I love it when a plan comes together.

Well, truth be told, I already had tested those macro way earlier, at the very beginning of the development. But still, it's pretty pleasant to see all this work finally making something nice.

I recorded a little demo of the first floor. Here is a short footage. Enjoy!


Phew, half of the music, DONE!

Now we move to the second floor! There are some interesting rooms in there too, with again various musical styles. So far I've only planned which chords I will use. But I talk more about it next week!

Okay, it's time to start the second floor! There is nearly as many rooms as in the first one, and even more interconnection.

Last week, I've written al the chords I wanted to use for each rooms. And doing this, I came back on a choice I've made for the first floor: the scale. On the first floor, I was playing on a Harmonic Minor E (E F♯ G A B C D♯). A bit mysterious and dark, perfect for a haunted manor. But as I was searching chords, I realized that A Major sounded really nice!  But this one requires a C♯… So for the second floor, I decided I will change the scale for a Dorian E (E F♯ G A B C♯ D). Still a minor scale, but more cheerful, allowing some epic contrasts. After all, once the player comes this far it's no use to pretend this manor is scary.. Plus, having a different scale for the second floor will give it more identity!

What is there to find on the second floor? Six rooms, and two vestibules to connect them. Each room has its own theme, and its own kind of music. Let's start with the most simple ones:


The first floor had corridors to connect rooms, the second has vestibules. More exactly, two: the red vestibule, and the fountain vestibule. Named as so because the first is… red, and, uh… the seconde has a… fountain… Hey, it's still better than "second corridor"! It's a textual game, I have to identify rooms as I can!

These rooms act a bit like corridors: they are here to create connections between rooms, spatially and musically. Like corridors, they must focus more on percussions than melodies, so that they blend well with other rooms. However, I didn't want them to have only percussions like the first floor's corridors. I wanted them to have a bit more personality. So I composed as I did for the second corridor: I looked at the most used chords in the different rooms, and alternated between those two. Here, it is minor E (present in every room), and major A. This second chord will really be the second floor signature, so it deserve to be introduced early!

The red vestibule is accessed from the corridor on the first floor. So I kept it close to it: jazz percussions, and a contrebasse. The exact same contrebasse actually! But this time, it isn't playing the motif. It's like the player was bored and decide to play something completely different. Hopefully it will make for a nice transition. I just added a high pitched bass to play the motif, and a rhodes that just play the chords, and accentuate the rhythm defined by the contrebasse.


Sooo… It wasn't planned, but I ended up with a bossa nova rhythm. Woops.

Oh, well. Let's go for it! Fountain vestibule will be even more latin. I'm keeping the same contrabasse, but the percussion change for something definitely bossa nova. And I intended to use a harp to represent the water, but this turned out to be a bit too cliche (sorry Grant Kirkhope). So I replaced it with a bright piano that sounds just as well.


Talk about a haunted manor soundtrack!

Now it's time for the second floor first room. The “Room 1”, also known as:

Kids Room

The second floor has 4 numerated "bedrooms", each one with a distinct theme. Actually I'm not sure they all have beds… This is where the house becomes really weird. But for now, it's still pretty conventional: the Room 1 has tiny skeletons, toys, and clumsy drawings on the walls. It's a cute room for children. Its music should be playful and naive. And let me say this: it's pretty hard to do on a minor scale! I found some chords that do a bit the trick, but it still has creepy vibes. Well, it's supposed to be a bit spooky after all…

I also set a challenge for myself: I wanted to use only xylophones, vibraphones and the likes. Not even any percussions! Sure, pizzicato violon could also sound great, but I wanted to see what I could obtain with a restricted set of instruments. It was in interesting exploration. I also used marimba, glockenspiels, and music box… It makes a simple melody, that creates a nice atmosphere.


Not the most complex part of the soundtrack. Actually what you hear here is only a part of the melody: the external instruments add some depth to it. Mostly the skeletons' one, which remains permanent once clicked.

But we are not done yet! There is a little detail that makes the kids room a but special…

Air vent passage

That's right, there is a “secret” shortcut between the kids room and the Club. I wanted more than one way to travel between the two floors, and I didn't want the Club to be a dead end. The reason I chose the kids room is narrative: I like the idea of naughty children secretly accessing to a room exclusively for adults. While this is never explicitly stated, I hope the player will have this impression as well.

There's nothing very special about this air vent. It just connect the Club and the kids room. It's still a passage, so it needs it own soundtrack. I wanted to make it simple, so I stood in minor E. To make a proper transitions between the two rooms, I mixed a bit of electronics instruments with a vibraphone. Then I added a bit random sounds and notes. The goal is to obtain something a bit claustrophobic and unsettling. The result sounds a bit like ambient music, I'm quite satisfied with it.


Since I'm currently on holidays, I should have plenty of time to work on the project next week! So hopefully there should be a few more rooms added.

The second floor is done!

Not only its music is complete, but it is even implemented, tested and approved! That was pretty fast, for once. I'm glad I've finally had so much time dedicated to this project. Now, there is a ton of content to introduce. Last time I've shown you Room 1, now it's time for Room 2.

Animals Room

Room 2 is just a room with animal skeletons. Yeah, I wanted to have some fun. Each instrument in there represents an animal. The room itself have a deep vegetation, making it look like a jungle. Not sure there is much furniture there actually.

So, jungle ambiance! It's… Pretty hard to make actually. Firstly because I needed a lot of tribal percussion, with instruments whose names are mystery to me. Tough search for samples. And secondly… Well, making a decent rhythmic can be pretty challenging! It took me some time to find the correct beat. My main inspirations here was Henry Mancini's Sounds of Hatari, Donkey Kong Country soundtrack,  and (obviously) Toto's Africa.


This is probably the music I'm the most satisfied with. While it is a bit cliché, it manages to convey the atmosphere I intended, and bring different emotion with each extra instruments.

Before we move on to Room 3, we there is a little special room we have to visit:

Portraits Room

A small tower with only portraits of skeletons, as well as skulls inside glass domes. The player can there listen to what the skulls have to say.

Here I wanted to go back to jazz. More precisely, some kind of gypsy jazz with a bit of harpsichord. I had difficulties not making it sound like country (I do not like country), but adding some violin magically turned it into a nice swing.


However this room turned out to be pretty challenging! The reason being that I wanted to add… scat singing. Yup, each skull should have had their own voice, with some cuts and effects to make them sound strange and surreal.

So I started recording myself… And well, it turned out singing is hard! Even for two little measures. I also tried to do some beat-box, but it was just as pathetic. Huh, that should have been expected. I tried applying effects, cutting only the parts that sounded almost correctly, but it was no use: it still sounded like crap. And making cuts and shifting each of them, like Pogo does, was way too fastidious.

So… Plan B. If I wasn't able to sing properly, I could maybe use my voice to build a home-made vocaloid? So I recorded several syllabes while singing an A4, with different voices and intonation. Then I imported them separately in LMMS, written a melody… And soon realized my mistake. See, each syllabe was an instrument. If I wanted the singing to alternate between several syllabes… I had to make sure each instrument played only one single note at a time of the same melody! After four notes, it was already a nightmare. Sure it could be done, but it was ridiculously fastidious! Doing only one melody would need to take an entire day, and I needed four!

Time for plan B's plan B. If I couldn't use several syllabes at a time, well, maybe one would be enough. It's sounds a bit like Banjo-Kazooie voices (does those things have a name? In French we have the term “yogurt voice”, but I'm not sure it actually exists in English). Eh, it's always back to Grant Kirkhope, isn't it?


Well, it makes the skulls sounds a bit “video-gamish”, but eh, at least the result is fun, and hopefully still surprising.

Okay, let's move on to Room 3!

Costumes Room

Room 3 looks like a backstage, with groups of skeletons in costumes rehearsing or just fooling around. It even has a curtain hiding a mysterious audience.

For this room, I decided to make a bit of rock. I initially wanted electric guitars, but I stated earlier that they sounded terrible. So I added Rhodes (yay) and an organ to blend it nicely. On top of that, I wanted to try ternary rhythm. It swings nicely, let's experiment and take some risks! Hey, I even use a C major, and no E minor. It's cheating, but it just sounds great with A major!

The result… Sounded like country (I still do not like country!). Well, jazz percussions and a clearer melody saved it a bit.


Nice. But you know what? I wanted to break even more rules! See, in each room, examining elements just add extra instruments. But here, I decided that looking at a group of skeleton would actually change the music's feeling by removing and adding instruments. Yes, I can do that. Let's use our power to their maximum! Here is an example:


Um, well, I still have a good excuse: there is a bit of meta in this room. The skeletons disguise themselves for a play, witha little insinuation for the player that they are in a play themselves. So, for each group, their own story, their own game… Eh, okay, fine, I just like to change the rules and now and then.

Though I maybe went too far with this one. It sounds great, but blend poorly with the other rooms. Mostly because of the ternary rhythmic: the fading is super weird! Also, we barely hear the motif. In most rooms, I tried to let it in the background, to avoid it being too annoying. But here it's really hidden. There are other rooms with sharp transitions, but this one is the most flagrant one. Still I'll keep it like that, because despite all this I find it sounds great.

We can now enter Room 4! Well, “entering”, so to speak…

Bay Room

There is a peaceful bay inside Room 4. With a night sky, a lighthouse in the distance, and the sea stretching toward the horizon. If the game wasn't dream-like already, this should do the trick.

This room should be peaceful and a bit atmospheric. I took inspiration from one particular track of David Kanaga's game Oikospiel, Menu Hotel Elegy. Its slow rhythm evokes waves, and I love how the drum is used in it.


Not as close as I wish, especially with the drums. To my surprise though, the flute playing the motif somehow took the lead, and give to the music all its consistency! The result is melancholic, but with a pleasant dream aspect. I like it.

Finally, there is one last room to visit.


It wouldn't be a haunted manor without a library. Actually, there's also some kind of church in it. My plan thus was to write a kind of modern jazz, with a lot of electro. Maybe something close to Jaga Jazist?

But first, there is a little room between Room 3 and the library. Its presence is mostly narrative: it cover the eventual noise from the room (and giving it is the costume room, boy is that needed). I also wanted it to be a musical transition between the two, but giving what I said earlier, you already know it didn't work out. Well, at least it makes the manor even more labyrinthine.

I used the same reasoning than with the first floor second's corridor: two chords, one from both the rooms. Given that they don't share any one, this was needed! So it was back to good ol' A major and E minor. This time reversed, to change a bit. There is also a window in this room, and I used the same technique than in room 3: removed some instruments and add other, to create a different mood.

Anyway, back to the library. I had some difficulty finding out what I wanted to create. It was supposed to be mysterious and quiet, but maybe not too far away from jazz and the game's global tone. Finally, I decided I should go with drums close to the ones from the Binding of Isaac. From that I added some kind of organ to make it church-like, harp, and a synth to play the motif… But then it sounded mostly electro, and I completely lost the jazz aspect! Fortunately, adding some brass and a sax magically fixed it. Now it's closer to electro-swing, with a pleasantly dark atmosphere.


And that was second floor! Here is a map of how it is supposed to look like:

To be honest, while the compositions here are richer, I'm less satisfied on how they blend together. They might have to much personality on their own. Well, I guess one of this project's goal was to experiment anyway.

Now, we're nearly finished! The only missing piece is the Basement, where the end of the game takes place. After that, there will be some technical details to take care of (finally, some code!). Then, I'll guess the game will be good to ship! We're pretty close to the release here. This is exciting! See you next week.

The game has been has been released! You can play it here!

Glad the final stretch didn't take too long. This time I won't showcase what have been done in term of composition (since can just listen to it for yourself), but just focus on the technicals aspects of the development. Next time I might try to write a post mortem.


Last piece of music in the game. Well, “music”… It's actually noise. First dark piano and a low cello, then dissonant notes, and finally just voices, random instruments and noises. A pretty din! The tricky part was obviously to make it progressive. I had to export each sound individually, make sure they fit well together, try several combinations, regularly change the volume… The result is pretty ok in term of atmosphere. I might not be able to sing, but at least I can make groans!

But the real challenge was making those noises loop. Unlike the music bits, these are sustained notes, or ambients that keep changing. If I just loop on them, it will sound like a scratched disk. So I have two techniques:

  • For sustained notes, I export two measures, and then cut to only take the second one. This way the attack isn't part of the sound, there only here the sustain.
  • For sounds that don't loop, I cut them approximately in the middle, then invert the position of the two parts, so that the end fits with the beginning. Then, at the middle, I create a fading by duplicating the track. This works well when the track is longer than the intended loop: the two parts can overlap each other and fade smoothly.

Did it work? Eh, kind of, but with mixed results. The sounds are looping, but there are still presence of light "pops". This seems to be linked to the Web Audio API: I encounter no problem with Audacity, and for other game engines it actually worked. It's not the first time I encounter this issue in the game, but usually the "pops" are masked by percussion. Here they are not here, so… It makes the sound a bit glitchy. Fortunately, the text is short enough and the loop long enough so that the player won't have time to notice it. And if they do, it can be perceived as part of the noise. I'm certainly not a perfectionist, but I tried my best to have a result at least decent.

And so we are done with the music. But there is a last thing before the game can be released…

Handling promises and errors

There's a lot of resources this game has to load before properly working. All those audio files need to get fetched to be read by the browser! And if you try to start the game before they are all loaded? Hem, you won't get really far before the game collapse on itself.

So instead of writing a message asking for players to wait a bit if they don't want to crash the game, I needed to actually make a loading screen! Fortunately for me, there is already one in SugarCube 2! SugarCube is the story format for Twine I used for this project. It is not installed by default with twee, but I heavily recommend it if you know a bit of programming and want to go beyond the basics of Twine. It has a nice API, and (most importantly) a clear documentation. I was about to lose my mind with Jonah and Sugarcane before I tried out this one. Anyway, as I was saying, SugarCube display a short loading screen before launching the game. You can control this screen with the methods LoadScreen.lock and LoadScreen.unlock. So working with promises is quite easy, just a little then and you're good to go!

But we also to take in consideration this important detail: this is a web application. It is doomed to fail somehow. Browsers compatibility, or connection mishaps. The factor most prone to error is the Web Audio API itself. Some browsers are just not compatible with it. But the player should still be able to play the game, even without sound! Checking if the browser is compatible with the Web Audio API is easy: you just have to check if window.AudioContext or window.webkitAudioContext exist. The most tedious part was maybe to display a little warning if the sppund part fail. I intended to use a Twine variable, and perform a basic if operation… Well, here's what took me half an hour to figure out: a variable called myVar in the JS object States.variables of SugarCube will be referenced as $myVar in Twine passagesQuite simple, but poorly explained in the documentation.

Another little thing I learned, and I'm surprised there isn't a lot of resources about it on the web. The function AudioParam.linearRampToValueAtTime is deprecated on Chrome! Instead, you should use AudioParam.setTargetAtTime. It's less intuitive, but should be supported in the long term, and actually works better on some browsers. Yep, it fixed a bug I had on Firefox. Finding it at the very end of the development was frightening, but I happy I could resolve it so quickly! I also changed my fading function so that the audio doesn't increase weirdly when you quickly switch between two rooms. Haha, take THAT sneaky player who try to break my game! I'm know what you're doing!

Anyway, the synchronized loop system I have is now pretty solid. I plan to make it into an open-source library, maybe. It just needs some polishing with names, and a documentation.

Okay now the game works, it handle errors, it has everything… It can finally be released! Oh, but there's just a little silliness on the way.

Meta Game Jam

Meta Game Jam is a jam still open, on meta games. I joined it last year when it has been announced, thinking it would be a nice break from my projects. What I didn't know is that it would start the very same day my game was finished! Well, I could have put Blood Not Alone aside to just work on something else, but I was so close to getting it done Friday that I decided to rush it in order to join the jam completely free!

I had some initial ideas for the jam. The theme was "meta", games about games. I had decided I should make an Alexandre Pontaise's game. Alexandre Pontaise is a supposedly genius game-designer, but actually a terrible one, with garbage opinions like “Games should be fun and rewarding for players”, “If video game artists had any talent, they wouldn't be working in the game industry”, or “Players are just pathetic people that need to escape in virtual worlds to feel great about themselves”. A lovely character, isn't he? I already used him in one of my previous game, All About the Player, which is a satire about the opposition of “gameplay” and art or story, and the hypocrisy behind putting the player at the center of everything. For the Meta Game Jam, I thought of a game about game development, where the player would be given instructions from Pontaise to make a sequel. It would just be a boring QTE until they disobey, which would trigger fun glitches. But then Pontaise would step in to explain that this excessive creativity goes against his genius vision. That concept and story was pleasant… However, there was something troubling me: it was a satire again. It was mostly a complain about “Game development is hard”, “Artists don't get the respect they deserve”, “Nintendo games are mostly crap”, blablabla. Could I make a positive meta game, for a change?

But then this lucky coincidence came: I finish my game, Blood Not Allowed, just at the start of the jam! Wouldn't it be a fun idea to make a game about it? Dumb enough for me at least! Plus, it can be a celebration about creation. How finishing something can feel great, how releasing a several month project is exciting, how working on something can be hard but seeing the work done is so satisfying! Great. So let's not release Blood Not Allowed now: let's make a game teaser for it. Announcing a game not with a trailer, but a playable teaser. Heeeeeey. (now that I think about it, Blood Not Allowed is a fake horror game, it would have been fun to actually make a P.T. for it). I had several ideas in mind. Maybe I could learn bitsy for the jam? Yeah, my game is a text-only walking simulator with music. I could make a silent walking-simulator with visuals to reproduce the manor, give a little preview of the game's world! All this accompanied with comments by me and maybe Pontaise promoting Blood Not Allowed, criticizing its game-design, giving fake goals and challenges, questioning its nature of game, and how this jam entry is just a disguised advertisement. So I read the bitsy documentation, then opened a new project, and then… Wait, where is my motivation gone?

Oh dear, it turned out I wasn't in the mood to be creative at all. I've spent the week working on a previous game, that took me months to finish, starting a new one immediately was too abrupt. Plus, I was eager to release my game! It monopolized my mind: I wanted this game to be out! So I step down a bit, went back to the previous idea: okay, a QTE, just a QTE. It can be done in full JS, with a bit of vector drawing, it would be a nice occasion to learn it. And I can work on another dynamic soundtrack, make weird visual effects, and create some kind of story… Maybe a "dev" mode and a "game" mode, the first with Pontaise and the second with me? I opened Sublime Text, initialized a npm project… And faced the same wall. I realized I didn't want to spend the week-end working on a game. I needed a break. Time for myself. And I wanted Blood Not Allowed to be out, dammit!

So I aimed at something cheap. Really reeaaaally cheap. A silly thing, lazy, short. Just a dumb joke. And most importantly: easy to make. Using only tools that I know well. The initial idea, making a game with just QTE, seemed simple enough! Display a text, choose a random key, wait for the player to press it, increase an index, then repeat. Okay. But that would just be a serie of sentence laborious to read. It needed something more. I like games to be systems, and I wanted to present at least a fun one. Then I had the idea to just make 3D corpses move randomly. Yeah, easy too. I can do it with superpowers, it will be faster. Well, I have never done that actually. But I know how to make it in 2D! Bouncing floating objects, with a bit of rotation. Just put them on different Z axis, and you get a nice depth! All there was to do then was create the prefab, display the text behind, and call the same function when the player press the correct key to spawn another floating object and update the text. And just with that, the game creates some fun visuals. Its systems is very basic, but it has enough emergence and random aspects to be a bit pleasant.

How about assets? Just use some from older projects. LAZY. Actually, this laziness was the core joke of the game: it's a game that doesn't even try to be good or original. A complete scam! The two dialogs of the game go in this direction. The first one doesn't make any sense at first, just mixing game-design terms in absurd ways. Then it become even more satirical by just revealing that it is mostly interested in players' money. The second one is more honest, it's my speech to the players. Promoting Blood Not Allowed, apologizing for this terrible game, and being honest with my current mood. And thus I kinda achieved what I wanted: a text that, sure, is a bit satirical, but mostly humorous and positive. A game about finished projects, the joy of game making, and the satisfaction of seeing the end of it!

And so, Stuff Made was released the same day than Blood Not Allowed. Instead of promoting Blood Not Allowed, I directed people toward this game! The actual game announcement was included in it. I received some feedbacks without being sure they were talking about this one or Blood Not Allowed. I'm a bit ashamed to have made this opportunist entry, but fortunately people took my joke quite well so far. And most importantly: I had the entire Sunday to relax (and continue Breath of the Wild!).

What can I learn from this? Well, making a silly little game is funny, but let's not be kidding: it's the equivalent of “I make a thing to says I'm out of idea”, and it only work once! I feel also a bit for not taking the jam seriously. At least, I intend to check out the other entries! Sure, on the other hand, I couldn't make a decent entry anyway. It's not so negative, and in fact I'm happy with how things turned out. It started as a nice little coincidence, and ended with a dumb little thing, nothing more. But it got me thinking: if I want to promote my next games with something fancy, let it be a game or video or something else, it should definitely be prepared in advance, and most importantly, not once the game is finished! Because then I just want to release it as soon as possible, which make any other creation nearly impossible. I can prepare a teaser, trailer, demo, in the middle of development, or when I feel the end is getting closer. It might even fix a release date! This way I am still productive, and can change my mind just a bit. Because you know what? Creating Stuff Made was actually fun. Making teasers is quite enjoyable, and makes you regain confidence a bit in your project. I'm terrible at self-promoting, but I'm surprisingly more comfortable with those kind of teasers than with forum posts. Maybe because I can be creative and express myself with fun ideas, instead of just asking people to take a look at my things.

And that closes this devlog! As said above, maybe I will update this topic with a post mortem one day. But until then, I will probably start another project. Hopefully this one will be short. Thank you for your time, and see you soon!