Samurai Shaver + Goodnight Sheep Post-mortem

This is a post-mortem writeup for Samurai Shaver and Goodnight Sheep.

This was my 17th time competing in Ludum Dare, and for the first time, our team ended up making TWO games instead of one. Also for the first time, we took 1st place Overall!!!

This time around we had a team of 3 -- myself on programming and audio, @xellaya doing graphics and character design, and @littlecloudflower doing writing and narrative work.

Our first game is called Goodnight Sheep and is the brainchild of @littlecloudflower. It's a simple interactive story where you click sheep to progress. The narrative centers around having too many thoughts to fall asleep at night.

The second game we made is called Samurai Shaver! It's a Rhythm Heaven-inspired music game where you slice hairs to the beat.

Let's take a look at the results for both games!

Goodnight Sheep

Overall:    79th  (4.000 average from 57 ratings)
Fun:        534th (3.361 average from 56 ratings)
Innovation: 106th (3.868 average from 55 ratings)
Theme:      89th  (4.136 average from 57 ratings)
Graphics:   152nd (4.227 average from 57 ratings)
Audio:      5th   (4.426 average from 56 ratings)
Mood:       5th   (4.546 average from 56 ratings - highest ever!)

Average Score: 4.08

Samurai Shaver

Overall:    1st   (4.545 average from 68 ratings)
Fun:        1st   (4.538 average from 68 ratings - highest ever!)
Innovation: 47th  (4.038 average from 67 ratings - highest ever!)
Theme:      377th (3.659 average from 68 ratings)
Graphics:   24th  (4.652 average from 68 ratings - tied with highest ever)
Audio:      1st   (4.817 average from 65 ratings)
Humor:      6th   (4.438 average from 67 ratings - highest ever!)
Mood:       9th   (4.476 average from 65 ratings)

Average Score: 4.40 (highest ever!)

We did really fantastic all around! Samurai Shaver performed exceptionally well, and got first place in Overall, Fun, and Audio, resulting in a super-impressive average score of 4.40 (previous record was an average of 4.23 for Grow Your Love). Interestingly enough, the audio score of 4.817 seems really high but isn't even in the top 3 of my own personal audio scores: Melody Muncher, Ripple Runner, and Labyrinth all scored higher...

I was actually pleasantly surprised at the fact that Goodnight Sheep did so well. I thought we did a good job but feared that people wouldn't like it for being too unconventional or too much of a "non-game". However, it turned out that quite a few people really appreciated what we did with it, which is great to see.

Samurai Shaver's 4.438 was our best score in Humor by far (next highest was 4.11 for Hyper Furball), and both games also broke our records for Mood (next highest was 4.385 for The Music Box). That really makes sense when looking at the games themselves -- Samurai Shaver is pretty zany and ridiculous and I think people had a lot of laughs, both at the whole concept and also at the people's reactions and bloody cuts when missing. Both games also do a good job of setting a tone and running with it. I think that's a good sign that we were able to come together as a team and work towards a unified vision!

What about my personal goals? In my I'm In post this time around, I said that my 3 personal goals for LD40 were:

I'm happy to report that for once, I actually hit all three of my goals!

Keep it simple -- Check! We actually kept things simple enough that we were able to make two whole games! Part of the whole reason that we decided to start on Samurai Shaver midway through the jam was that Goodnight Sheep was a pretty simple concept to execute and Samurai Shaver didn't seem like it would be terribly difficult either (although this was before it turned into a rhythm game).

Leave enough time for music -- Check! Of course, "enough time" is relative, as it only took me 1 hour 18 minutes on average to write each song for Samurai Shaver. But I actually had quite a lot of time on Monday to work on music -- I ended up writing 5 out of 6 of the songs for Samurai Shaver on Monday, which took me 5 hours 16 minutes in total.

Don't kill myself -- Check! I was definitely pretty stressed out at points, especially before we nailed down the design for Goodnight Sheep (more on that later), but overall I feel like I didn't have to crunch that hard this time around. I wouldn't say that everything went super smoothly, but more like I really just ended up having time to do everything. Such is the advantage of making games that are easier to execute and require less moving parts to come together at once.

As always, let's go over some things that went well and some things that didn't go so well during the jam. Let's start with what didn't go so well:

What didn't go so well

Sickness and remote coordination

Right off the bat our team was already off to a rocky start because our writer @littlecloudflower had fallen ill earlier in the week and wouldn't be able to work together with us -- instead she was going to try and help out remotely so we wouldn't also catch whatever she had come down with. To make matters worse, I wasn't actually feeling the greatest as the jam started either, but thankfully I managed to bounce back from that pretty quickly.

Not being able to be in the same place and discuss our ideas in person really hurt us, especially since @littlecloudflower hadn't worked with us before and this was her first time doing Ludum Dare. There were several occasions during the brainstorming process especially, where I felt like it was pretty hard for us to all get on the same page.

Got stuck on design for Goodnight Sheep

Goodnight Sheep was particularly difficult to work on initially because it was mainly being concepted by @littlecloudflower so there was a lot of back and forth talking about the design that probably would have went faster if we had all been in the same location.

The initial prototypes of Goodnight Sheep were actually quite different from the end result. In fact, initially it started off as a typing game! (more on this later) There was definitely a point at which we were all feeling kind of frustrated that it wasn't really coming together, and I think we had to sit and let things turn over in our minds a bit before we ended up making sense of all of our ideas.

Not enough warning for first slash in Samurai Shaver

Possibly a result of not having enough people test our game during the jam process (always a difficult thing to fit in), but we saw pretty consistently in people's playthrough videos that they would often miss the first slash in Samurai Shaver. If you're paying attention to the rhythm, this doesn't happen, but apparently it was pretty common for people to rely more heavily on the visual indicator line.

The main problem was that the indicator line didn't show up until a single beat before the first note, and at that time your visual focus is actually at the bottom of the screen if you're looking at the blue pulse effects for each of the notes. So a lot of people ended up being late on the first note as a result.

There wasn't all that much I could change to fix the problem fundamentally, but for the post-jam version of Samurai Shaver I altered the speed and timing of the indicator line so that it shows up earlier and travels at a slower speed, thus giving people way more time to react to it for the first note.

Here's a comparison of how it looks before and after:

It's a small adjustment, but hopefully it helps.

What went well

Deciding to start another game

Who knew that doing two games for LD instead of one would lead to such great success? The idea for Samurai Shaver came up during our initial brainstorming process and was something that seemed like it would be really fun, but we ended up starting on Goodnight Sheep instead, in large part because we wanted to see what we could do with the help of @littlecloudflower. We ended up really hitting a wall with Goodnight Sheep, and I personally felt like starting something else rather than continue to bang our heads against the wall, especially because I had such a strong vision for what Samurai Shaver could become.

We were about 24 hours into the jam and @xellaya and I decided we would start working on Samurai Shaver, especially because even if/when we did end up figuring out Goodnight Sheep, it was a simple enough game that we wouldn't need a whole other 48 hours to implement whatever we came up with. @xellaya actually started concepting and sketching out some initial drafts right away, but I figured I should at least get Goodnight Sheep all packaged up and finished, so I started working on the music for Goodnight Sheep, as well as some other things like implementing the title and credits screens.

Ironically, it was towards the end of my music writing process that I made some key realizations about Goodnight Sheep -- that it shouldn't be a typing game, that the words should linger after the sheep disappear, that I could use a simple shader effect to highlight the active sheep, etc. These weren't really mindblowing changes, but I think in the moment I had missed the forest for the trees, so to speak. I think it was actually the fact that I decided "to heck with it, let's just make a different game" that allowed me to take a step back and div things out.

Experience and past learnings

When it's your 17th time doing LD you really have a LOT of stuff under your belt. I've written in the past already about how it really comes in handy to already have solutions to a lot of common problems, so you don't have to reinvent the wheel when you need something like screenfade transitions, or basic platformer movement (the way YOU want it to be), or any number of other things. The highlight shader for Goodnight Sheep, for example, was taken straight out of my work from Watch for Falling Rocks -- it also got used in The Music Box as well!

One of the ways our experience helped us most was actually giving us the confidence to start Samurai Shaver a whole 24+ hours into the jam, even though we weren't even finished with Goodnight Sheep and it seemed like a crazy idea. I already knew that we were more than capable of making a simple game in that timeframe because we did just that with Watch for Falling Rocks!

Once I figured out that Samurai Shaver needed to become a rhythm game (which didn't actually happen until partway through development), my experience making music games really came in handy as well, as I knew right off the bat how to set everything up, and even which helper functions I needed to write in order to handle time/beat conversions and to make things trigger on each beat.

But I think what really struck me this time around was that I think our design sense and general game-making experience has gotten a lot better. I'm talking about the ability to make quick and effective decisions about game design and have a sort of intuitive sense of what is missing or what should be done to make things work. I realize now that this is something that is really hard to come by and understand until you've really just gone and made a ton of different games. We still have a lot to learn, of course, but there are a lot of mistakes we've made over the other 16 LDs that we've learned from and that has really helped us.

Having enough time for polish

The last two games we made (The Music Box and Raven Delivery Service) both involved so much content and so many moving parts that we spent basically most of the jam just getting them to their initial "completed" state. While it feels great to be able to execute ambitious projects like these, in the end it's much better for the game as a whole if you can have it "finished" at a baseline level early on. Not only is this nicer in terms of project morale, but it gives you way more time to really make the character of your game shine.

Both Goodnight Sheep and Samurai Shaver were simple enough to implement at their core that we had plenty of time to put in all of these extra features to make them more "juicy" beyond the basics. Goodnight Sheep had a lot of subtle visual and audio tweaks, like the differing music for each night, and Samurai Shaver was oozing in extra features, like the results screen that shows all of the clients you shaved perfectly (or slashed into bloody messes). @xellaya also had way more time to work on things like title screens and backgrounds, as opposed to the usual "crapcrapcrap we've only got 2 hours left and we need a tutorial, draw something quick"...

Fun Japanese music!

The music for Samurai Shaver was one of the most enjoyable things to work on out of the entire jam. Interestingly enough, it didn't even start out as a rhythm game! Initially you were just going to slash hairs based purely on visual cues, but I figured the music should have set phrase lengths so that there can be a dramatic pause in the song when you get to the slashing part. I had implemented that, but I was running into a design issue where it was hard to time your slashes correctly based purely on visuals. Around this time @xellaya was also making the "happy" and "uhhh" reactions and once I saw those it really just clicked that this needed to be a Rhythm Heaven/WarioWare-style music game. Not only would that be fun, and match with the musical structure I had already made, but it also solved the design problem by using rhythmic patterns to guide the player on when to slash.

Besides just pulling out the random traditional Japanese instrument patches that I had and seeing what I could do with them, I also referenced a handful of different soundtracks and songs for inspiration and to remind myself of different patterns and canonical instrumentations/techniques that were used in the types of songs I was trying to emulate:

Wan Nyan Slash Original Soundtrack by chibi-tech
Okami Original Soundtrack
"1 Hour of Japanese Instrumental Music", especially the "Cherry Blossoms" track, which I used as a basis for level 5.
INSERT vol.3 - NINJA OR DIE by Prof.Sakamoto

I also directly pulled from Jiraiya's Theme from Naruto for the opening "Yooo!!!" intro for level 1.

It was a real blast to work in a new style with new instruments and I think Ludum Dare was a great opportunity for me to do so.

Progression of each game

Since I still have the full commit history of each game, I thought it would be fun to trace through the evolution that both of them underwent throughout the 72 hours.

Goodnight Sheep - 19 hours in

The very first prototype of Goodnight Sheep, which we put together on Saturday afternoon. As you can see, the initial idea was that you type out the words on each sheep to advance. The thinking behind that was that typing would help (force?) people to read the narrative, and would also play into the idea of acknowledging your crowded thoughts one by one in order to put them aside. Of course, there were a bunch of different issues with this system, including the fact that you can make progress toward multiple sheep at once.

Goodnight Sheep - 20 hours in

I got the sheep moving and wandering around pretty early on, though it doesn't look pretty at all since they have no borders and they don't layer well. @xellaya had also made the "poof" animation for the sheep disappearing by this point. Our gameplay actually remained like this for quite some time.

Samurai Shaver - 28 hours in

It was nearing the end of Saturday night and by this time we were feeling pretty frustrated with Goodnight Sheep and were blocked on @littlecloudflower's narrative and concept, so @xellaya and I started the initial prototype of Samurai Shaver, which...looks pretty goofy. xD @xellaya had already sketched out a design for the background, but she hadn't yet figured out how the people should look. There were a lot of other art assets that I didn't have, including the indicator line and slash marks...the only thing I had was a single placeholder hair sprite, so for a while everything was just hair...

Goodnight Sheep - 42 hours in

During the early part of Sunday I decided I would switch gears and try to finish up Goodnight Sheep since I knew I would have to do that at some point, so I might as well get it over with. At this point @xellaya was still working out a bunch of Samurai Shaver stuff as well, so this was a good time for me to do all the clean up and remaining work for Goodnight Sheep. Here you can also see the appearance of the infamous demonic "angry sheep". We thought that there should be some visual indication of which sheep is active so that you can find it among the crowd...and thus the angry sheep was born.

Ready to give you nightmares

Goodnight Sheep - 43 hours in

It didn't actually take that much implementation work to bring Goodnight Sheep from "weird demonic angry sheep" to something which was actually sensible and matched what we wanted the game to feel like -- in fact, it ended up being simpler in the end because I didn't have to worry about typing input or anything.

We had discussed clicking instead of typing as a main mechanic earlier, but we turned that down initially because we figured people would just click the sheep without reading any of the narrative. The key realization was figuring out that we could just have the text linger after the sheep disappeared, so there was still an opportunity to read it. I also got rid of the creepy angry sheep and replaced it with the subtle glow/highlight pulsing effect.

There were some additional things that got put in after this, like animations for the sheep, the ending and title screen, and other small tweaks, but for the most part this was where the game ended up coming together.

Samurai Shaver - 46 hours in

We turned our attention back to Samurai Shaver, which was still looking really goofy. But we had decided that we wanted the people ("victims", as they are referred to in the code) to roll in on a conveyor belt as that made the most sense for the gameplay as well as being relatively simple to execute. I actually felt really on top of things here as I had already implemented a bunch of stuff, such as the conveyor belt, multiple victims, and I even had it synced to the musical phrases. The placement of the hairs on each victim were totally unrelated to the rhythms in the song though, as I hadn't yet realized that we needed to make this into a music game.

Samurai Shaver - 48 hours in

With @xellaya's art, the game's look and feel really started to come together. Now that we could see what the game looked like, it became easier for me to figure out what changes were needed in the design. You'll notice in this animation that the hairs aren't slashed immediately when you press space -- rather, we put markers down wherever you hit space and then there was going to be some sort of cool *Swasshhh* effect where you slice through all of the marks that you made at once, like some sort of secret sword technique. That was my initial vision for how the game would work, anyways.

You'll also notice that the hair patches are pretty small here. In the beginning I imagined that there would be hair patches of different size and that in the beginning there would be large, easy-to-hit patches, but in later levels there would be many smaller patches, to increase the difficulty.

If you look you can see that I've synced the person's bouncing and "happy dance" to the beat, but the actual hair-slashing gameplay is still independent of the music. The gameplay itself still wasn't feeling quite tight and it didn't feel like there was enough time to adjust to the speed of the indicator line before you needed to start slashing. We already had a Rhythm Heaven/WarioWare vibe going so I realized then that I should just sync the actual gameplay to the music as well and turn it into a rhythm game, which would basically solve those problems.

Samurai Shaver - 51 hours in

Fortunately, I've got loads of experience programming music games, so it only took me about 3 hours to change around the gameplay so that the hair slashing was set up to match the music. It helped that the rest of the game was already set up to work with the beat, so it was just a matter of changing around how the hair slashing worked. I also spent some time ironing out how the musical phrases would work (4 bar phrases, with bar 3 for indicating the rhythm and bar 4 for the player repeating the rhythm), and realized that it no longer made sense to do the "mark and then slash" idea -- it would be better feedback if we just made the sword slashes happen right away. We also added the crazy bleeding effect here...

Samurai Shaver - 52 hours in

Once we added in the pulsing horizontal lines for indicating the rhythm visually (yellow at this point, but we changed them to blue to make them easier to see), we basically had our core gameplay finished, and it felt great! This left us with essentially all of Monday to fill out the content of the game, including the title and menu screens, the results screen, and of course the 4 different levels. As I mentioned earlier, I think one of our greatest strengths this time around was that we finished most of the core work early. We really needed that extra time on Monday to work on all the polish items and content -- I ended up writing no less than *five* songs on Monday throughout the day!

Goodnight Sheep - Post-jam

The post-jam version of Goodnight Sheep saw a handful of improvements and small tweaks. We added the new spiraling "swirly sheep" mode for nights 3 and 4, as well as an effect to push the rest of the sheep aside so that the text was easier to read. The "active" sheep is also always automatically brought to the front now. Before the idea was that when there are more sheep it would be (intentionally) more difficult to find and click the active sheep since it could be lost among the flock of other sheep, but in the end we decided that it was a little more frustrating than we wanted it to be, and made it more difficult to read the narrative (which was the whole focus of the game). Getting the sheep to spread out from the text in a natural way was actually an interesting challenge and I ended up trying a few different methods before settling on what I ended up implementing.

Samurai Shaver - Post-jam

Samurai Shaver got some extra features after the jam ended as well, most notably new songs and the dropdown sign at the beginning of each level that tells you the name of the level (this also fills in the "dead time" at the beginning of each stage where the music intro plays). I also implemented a better method of syncing to the audio, and made the visual indicator line move more smoothly -- during the jam I had implemented music sync the quick and easy way since the more precise method would have taken longer.

A huge thanks to everyone who played and/or rated our games. We had a lot of fun making them and we are really excited by how well they've been received!

<< Back to "Articles"