To begin with, I've never made a sequel to any of my Ludum Dare games before. I mentioned to some friends at the start of the 48 hours that I'd be making a sequel to Ribbon, my LD47 entry, and I was warned that making a sequel might not be the best idea. Ribbon was my first game to earn a trophy (2nd place in innovation) and a lot of people started following my LD games because of Ribbon. It's a game with a legacy, and if I were to completely fumble the sequel I'd be tarnishing that legacy. So the stakes were high this Ludum Dare... let's see talk about how it turned out. This is my postmortem for Ribbon 2!
I like to take notes for next time in these postmortems, so let's review what I wrote after my previous LD game. "I think I need to focus on simply making the game more intuitive" and "...(in the future, I should be) getting feedback before the deadline, and testing a build of the game frequently during development". Those were the big takeaways, but I also had some other goals. Here's the bullet points we'll talk about in greater detail:
- Live up to the quality of the original game
- Intuitiveness and address feedback before the deadline
- Notes from prior LD games
- Add an acapella track
- Smooth sailing into submission hour
- Holding the wrong hands
To begin with:
Live up to the quality of the original game
First things first, I'm not going to just re-use the old game's code. It was incredibly messy and it barely worked. To make the ribbon rotate around in the original, I had a series of 128 nested rectangles that all rotate slightly. gross.

I wanted to "do it right" which meant constructing a single mesh that bends and curves.
Furthermore, I had some ideas cooking for this sequel that the original game couldn't do at all. I had plans for the player leaving the ribbon and running around in a 3D space. The original game is a 2D game, that can steer around a 3D space, but since the Y axis isn't really used, it loops back around to being 2D again. For the sequel, I want you to be able to jump, and you need to drag the ribbon along in the Y axis too!

To make a long story short, the core idea I came up with to separate this game form the original and expand on the concept was entering/exiting the ribbon, and ribbon customization. Entering/Exiting allowed for some fun puzzles with buttons and doors, and the ribbon customization would showcase how I could expand this game in the future. With those features combined, I think it would be even better than the original, thus living up to the expectations of the sequel.
Intuitiveness and address feedback before the deadline
This was the key point of failure with my previous LD game. As a recap, in level 3 of "Inbox Fool" the player needs to toss a bomb at a magic tile, and the bomb needs to make contact while the player is at the apex of their jump. This was NOT explained, and it made level 3 (which is supposed to be an introductory level) way harder than I thought it would be. The difficulty curve was ruined.
To prevent that in Ribbon 2, I needed to hold the player's hand as much as possible, but hopefully not to a degree that ruins the puzzles. The puzzles in "level 1" involve buttons and doors, and while I assumed the puzzles were super easy, just in case the player forgets to use the core mechanic of re-entering the ribbon, I added a textbox that reads "You can press shift to re-enter the ribbon" if the player has walked around for 45 seconds without doing that yet.
Something I learned last Ludum Dare was to build the game and test it in a built state frequently during development. To my surprise, the shader I created to make the trees sway in the wind was completely broken in the built game (but not the editor)!

I simply decided to remove the shader (after putting in way too much time to fix it).
with about 6 hours remaining, despite the game not being done yet, I gave a build to my roommates. Watching my roommates play the game revealed something I thought was intuitive, but wasn't! One of my roommates struggled while customizing the ribbon, despite the text "Click on the ribbon", they were clicking on basically everything except the ribbon. The solution: Add a text box that says "The ribbon" with arrows pointing to the ribbon. easy fix!

What I later found out post-submission was that one of the bonus spools, which required jumping into the bouncy ribbon, was harder to collect that I initially though. If you let go of the jump button before the apex of your jump, you intentionally lose a lot of momentum. this allows for "short-hopping" but this also completely destroys the momentum needed to reach the bonus spool. Whoops! I guess I still have much to learn about explaining mechanics to the players.
Notes from prior LD games
Previously, I've made the decision to focus the gameplay on a single mechanic and worry about the story (if any) later. In complete contrast to that note, I felt like the game was lacking while designing level 2. I couldn't just make every puzzle have the same solution of "go here, enter ribbon, viola!" so I made some mini-games. The shape tracing game felt like a great use for the ribbon, though issues arose with the other ideas. The other spools, namely the "hidden box" and "chase game" spools could exist in any game, whether there was a ribbon or not. All the cool ideas I had were way out of scope, but I'm still glad I was able to add something to fill the space.
Add an acapella track
Ohhhh boy I was burning out, and I honestly considered not making one this time. For those unaware, my previous 3 LD games had an acapella track in them, and as much as I didn't want to break the streak, I didn't know where to put it. This game has, for the most part, taken itself very seriously as a sequel to Ribbon. As I pieced together what the bonus ribbon would be (for collecting 100% of the spools) I decided, "hey- I can make the music inside the bonus ribbon acapella. why not? I got time and energy." So I did.
I added a bunch of other fun acapella noises, like clicks and pops, but also a fun noise you can make when humming the letter 'v' in a falsetto. My roommates think the humming-the-letter-'v'-in-a-falsetto thing is super weird, but it's a fun noise to make, and I didn't add it in the previous game's boss fight music, so I had to put it in this game!
And that was the final addition to this game! Once the acapella track was in (and volume controls to only play it when inside the bonus ribbon) I was ready to build the game and submit, with about 20 minutes to spare until submission hour.

It was certainly a less ambitious acapella song than last time, but hey- I was burnt out and had less than an hour.
Smooth sailing into submission hour
If you read my postmortem for "Inbox Fool" you may recall this section was named "OH NOOO!" because, like always, I encounter some form of last-minute panic. For Inbox Fool, the shaders in the built game were breaking which required making serious changes to the camera / calculating the mouse position.
This time around, I built frequently during development. I encountered the trees being bad super early, (tried to fix it for about an hour and a half) and removed that shader.
I had about 20 minutes to spare, and I didn't know what I could do with the time, so I took some screenshots for my LD game page, and got it set up.
It was very bizarre having the game page ready at the start of submission hour instead of the last-minute-panic at the end that I usually experience, and I definitely believe it's because I built frequently during development and fixed minor things along the way instead of unknowingly letting them build up.
And with those bullet points out of the way...
Holding the wrong hands
Despite how much I tried to hold the hands of the players, there were a few comments stating that they didn't reach the end of the game for various reasons. One player forgot about the ribbon customization menu. This could've easily been fixed if I made the "you unlocked a new spool, press the Q button" text appear after unlocking the second unlockable ribbon, though I honestly assumed everyone would've played around with the customization a few times before reaching that point. Perhaps I didn't showcase the customization with as much importance as I should have. Again, notes for next time: remind players of required features if there's a gap in using them, and make sure players understand everything about them. Perhaps I need better explanations when introducing those features?
One issue that was brought up a lot was the camera. People wanted to be able to fully rotate the camera even though everything was desgined to be viewed from the front. The idea I had for camera rotating would be to simply add some curves to the ribbon and step inside, though perhaps once again my ideas are far from intuitive.
Speaking of the camera, I had an invisible wall in my game (in the form of a fence, with a realllly tall hitbox) that players were trying to get over. The entire reason it exists was to give the camera space so it didn't need to clip into a wall, but I still needed a boundary to prevent the player from going there. Anyway, yeah- people tried climbing over the fence, and even asked in their comments if they missed something that was over there. Perhaps I should just write "This fence exists to give the camera some space." on the floor next time, ha! The other invisible wall in my game had a neat effect where the floors, walls, and decorations were all greyscale beyond a certain point. Perhaps I should've re-used that as a motif instead of a fence.
Speaking of the camera... again... My code for following the player when inside the ribbon had a slight malfunction when the ribbon is at a sharp turn. A single line of code would've fixed it, but the camera would zoom real close to the ribbon, making the player impossible to see.
And I had one player who completely didn't understand the game at all. They left very little feedback, but from the sounds of it they couldn't solve the tutorial, got frustrated, and gave up. I honestly don't know what to take from that, as every other comment at least made it to the second stage. Reading that comment hurt. I'm still struggling to make my games intuitive. I don't know... I'm afraid this will lead to me over-explaining everything in the future, removing any chance of an "Ah-ha! moment" for any puzzles.
Reflection
So- now that the game is done, did I live up to the hype? Was Ribbon 2 better than the original? I'd say absolutely.
It's been 3 years since the first Ribbon game and in that time, though I may not immediately realize it, I have grown tremendously as a game developer. The problems I had to solve while developing this game seemed to be minor issues instead of taking most of the weekend. Were there issues? Well sure- I scoped insanely large as always. The camera in this game wasn't great, though that's partially just due to letting the player orient the ribbon in any way, and trying to make the camera follow the player inside it is... difficult to say the least.
Of course, it wouldn't be Ludum Dare if I didn't learn anything for next time, and one of the big takeaways from this one was a lack of Key-Rebinding. A friend of mine played the game on Twitch, and I was unaware they were left handed, which complicated playing the game. To my surprise, nobody has ever made such a comment to me. I never even considered how WASD + Spacebar was such an issue for the left-handed, and again, how has nobody informed me of this in 23 ludum dares?! Furthermore, I've come to realize QWERTY isn't the default everywhere, and WASD isn't always convenient. You live and you learn! You bet my next LD game will have button remapping.
I'm still figuring out "intuitiveness" after my 23rd Ludum Dare, and I think I need to really take the time to figure out why. And now we get to talk about the real puzzles of the game... I thought the "Very high jump" bonus spool was a clever use of the bounce ribbon, other's never figured it out. Some people found some very interesting uses for the entering/exiting ribbon mechanic with my generous "Coyote Time" as a means to collect that spool, and hey- the more solutions there are the better. That being said, I wanted there to be puzzles, I have to stop holding the player's hand at some point, but I still haven't figured out the perfect balance.

Results
11th Overall.
Moving on...
Conclusion
This game was a bit different from my previous few entries. I usually add humor all throughout my games, while Ribbon 2 only had a single joke at the very end. (I still scored 12th in humor though!) Take my previous LD game for instance, where every level had at least one bad joke in it as the villain taunts you through a TV screen. The game before that, The Bountiful, had a psychopathic crow giving you bad advice, then "Watch out" had a talking pocketwatch to make bad jokes, "Block or Bust"... well the core gameplay loop of that game is humorous.
I think I was too excited to make Ribbon 2 that I focused on the wrong things. My game has so many details that barely anyone would see, yet lacked general polish on the game's camera. I shouldn't care how smooth the camera movements are, if the camera is moving to inconvenient places! I think that's what affected my score the most.
So what's the big "Note for next time" that I'm taking from this LD? I feel like I've brought up a lot, from the lack of key rebinding, to the unintuitiveness, to the jank camera. I think the biggest note to reflect on is to figure out where to polish. This game had polish, sure, but I think it was in all the wrong places.
Don't get me wrong, I'm still very happy with the game I made. I still think it's one of, if not my best game jam game yet (despite the ratings). In my "Postmortem for 20 Ludum Dares" post, where I covered my first 20 LD games, I mentioned around LD38 through LD42 that my games were getting more ambitious, but they were poorly explained. I'm seeing the trend repeat, and I'm going to be focusing on making better introductory levels in the future.
I don't know if I'll make more sequels in future Ludum Dares, but I'm glad I got to make some of the ideas I've had for this one. That being said, I really like the dynamic I had in Inbox Fool with a foolish villain... I think I could get away with more foolish villains and not call it a sequel. We'll see.
☃