Thwimbly - Kepler's Platformer Dev Thread

Thwimbly!

he's sittin there. [beeg_yoshi.png]

Sittin there because progress has been slow lately, owing to the dual releases of both the semester start (I'm officially a grad student) and Silksong (ees gud gaem). I've still been making some progress though!

Let's talk about movement.

Over the past few weeks, I played around with the movement a bit, experimenting with the slide, and while its cool, it feels like it moves a bit too far away from the simplistic vibe I was targeting, and would require a dramatic rethink of how the entire game plays. I ended up just removing it. There's a new, context-dependent offensive action that got added (more on this later). The slide trivialized most enemies and also made the levels feel even smaller and more claustrophobic with the increased speed, both of which aided the decision to remove it.

After watching Zweek's Titanfall 2 Strafe Lurch Video, I decided to attempt to add "Strafe Lurch" to Thwimbly. The basic idea is simple: If the player jumps at the same time as they change directions, give them a little nudge to let them change directions quicker. This manifests in snappier platforming and helps reduce the feeling of inertia. It used to be way, way stronger (literally just flipping Thwimbly's velocity), and reducing jump height to compensate, but I ended up just adding a constant impulse of 1 pixel per second to the velocity. I think it feels good right now, but there's still some tuning for sure.

strafelurch.gif

In terms of movement, I also changed speed significantly. Run speed has been reduced in an effort to make it easier to navigate the tight, winding levels. Walk speed has also been increased to make it slightly more useful. My main goal for this new version of the demo is to get feedback on the movement. Something still feels a bit off, need to get some more hands on it to see why.

In other news:

I think I'm going to revert my custom engine changes. I've been seeing some random, unexplainable crashes in the editor that I'm not entirely sure how to deal with. Relaunching it works most of the time, but I'm not super confident in whether it'll lead to the game itself crashing, since a limited version of the editor is bundled in with the game in an isolated export. In any case, reverting to a stock version of TIC lets me fight back against scope creep, which is good because it was looking like the kaizo levels were going to add another year onto development. :/

Current plan for that is to:
  1. Design levels that teach the mechanics in a slower-paced manner
  2. Hide secrets behind kaizo challenges that require mechanic mastery
  3. If Thwimbly is successful, romhack my own game to do a full kaizo campaign, release as separate executable to keep using stock TIC-80.

Let's talk about level design.

The levels are getting a massive overhaul. Going back to the verb discussion from last time, I was trying to figure out what I could do to increase the number of verbs. Taking some inspiration from Super Mario Bros (especially World and 2), I decided to make throwing/carrying items a core mechanic. In the previous build of the game, you wouldn't get to carry items until 4-4, which seemed pretty late to add such a massive new verb to the lexicon.

So, carrying items is now a core mechanic. You can pick up certain items and throw them. The mechanics aren't perfect now, there's some fine tuning for game feel I need to do, but it's getting there.

You may be asking, "Carry what?" and I decided to pick the absolute best candidate for the job:

Butternut Squash??
Yes please!

Squash.gif

It's a great, heavy vegetable that can be used as a weapon in a pinch. Thwimbly can pick it up, carry it around, and yeet it at any munchers that may be blocking the way.

To be specific, only entity munchers, not tile munchers. I need to come up with some way of differentiating them besides tile munchers just being smaller. Different palette? idk

You can also bounce on them, allowing you to use them as platforms, or shelljump with them (these replaced the shells from the Thumbshredder gif from earlier). I'm not sure how frequently I'll require it outside of secrets, maybe World 7 will be very kaizo-focused?

To prevent softlocking or requiring a death if the player manages to yeet a squash out of the map, instead of being destroyed like all other entities, they'll teleport back to their spawn point, marked with a little vine.

There are some other things you can carry, but I'll let those be a surprise for now. :D

The other major reason for the total reconstruction of the levels is the introduction of a new character!

1758223600296.webp

This is Thwimblette, or Samantha, I have no clue what to call her right now. She is Thwimbly's love interest, except she doesn't get kidnapped (I'm much too lazy to make that cutscene and I just kind of like the vibes of them both going on an adventure together). Her main purpose is to deposit lore into the equation, along with tutorialization (another reason not to reduce her to a macguffin)

Thwimblette/Samantha is a scientist (she has glasses, its obvious), and this whole adventure gets kicked off because she wants to research some plants, and the plants aren't behaving as expected... It's almost like someone is messing with them... someone evil perhaps?

The chat system used is Kepler's Light Chat System, a little program I built back in the summer of 2023 because I was bored on a saturday. I needed to mod it a bunch to make it work in Thwimbly, but it's honestly pretty solid. The version implemented in Thwimbly has support for up to two lines of text, plus different character portraits, and arbitrarily long message sequences.


Example from early in development. Newer ones have more personalization for Thwimblette/Samantha and follow Thwimbly's currently equipped hat.

The text boxes do take up a bunch of my (extremely limited now that I'm going back to stock TIC!) memory, so I might look into implementing a compression algorithm to reduce that hit, but for now, it's very easy to write messages so I'll only do that when I absolutely need to.

Part of Samantha's scientist vibe ended up leading to the changing of bounce flowers. They were one of the first entities made for the game (back when the main character was still a slime), but now that Thwimbly's design is basically just a palette swap of them, it felt really weird to be bouncing on their heads.

To keep with the botanical theme, they have been replaced with flowers. They animate back and forth, and it feels a lot more natural, even if a bit strange after four years of the lil blue guys.

Flower.gif

Mechanical progression for the demo (as of right now!) is

Level 1: Tile Munchers (kill Thwimbly if touched), Bounce flowers (give velocity if touched), Hidden paths (disappear if touched, revealing hidden paths/coins/challenges), and basic movement/progression (checkpoints, goalposts, jumping, etc.), Thwimblette/Samantha (more on this later)

Level 2: Throwable butternut squash, entity munchers (kill Thwimbly if touched, die if they touch a butternut squash)

Level 3: Onoff blocks (toggle solidity on specific blocks if hit by Thwimbly or Butternut squash) and more???

Level 4: ???

Levels 3/4 are unfinished right now. Trying to save the weird muncher variants (walking, jumping, disco and moar) for later in the game to better fit my current idea of the plot.

Open questions
  1. Bosses? How many, where they show up? how complex? How to make them without taking up limited graphics and code space?
  2. I have problems with world 2, it feels kind of tonally inconsistent with the rest of the game, but I also don't want to completely rework it if I don't have to...
  3. How to incite Thwimbly/Samantha to traverse the rest of the game without giving too much away?

Anyways, gotta go play more silksong. until next time :3

(also, apologies for gif resolution, trying to send gifs below the size limit is hard!)
 
Back
Top