Nine Lives: A weird platformer

Source code is here. The game is nowhere near finished but here is my intent for when the game is finished:
It's a procedurally generated platformer where you play as a cat. Its gimmick? Well, there's two.
Just like the myth, you have nine lives. Lose all nine? Bam. Save data gone.
The second one is that jumping (will, once I'm finished) causes your cat to spin in mid-air. Just like a real cat you (once again, not implemented) will need to balance yourself using the crank, and land on your feet. If you don't, you lose a life!

Here's what's implemented, and what's not:

  • Cat Sprite
  • Movement
  • Gravity
  • Jumping
  • Mid-air rotation
  • 1-ups (will be Calicos once I implement them)
  • Death system
  • Procedural generation
  • Scrolling

Feel free to submit a pull request if you want to enhance something!

2 Likes

Game sounds great, very cool concept! Any screenshots out animations of what you have so far?

ps: watch out other people can tick your forum post checkboxes.

Sure! I'll try and get a screenshot fast enough before the sprite falls off screen :stuck_out_tongue:


Here's the game's current state. OFC it's nothing really, but hopefully I'll get platforms and what not set up soon enough.

2 Likes

I've made an itch page for the game:

Donations are disabled since a) I don't have payment setup and b) I don't even have a build uploaded

Proper jumping support is now here! :partying_face:

Now you can (somewhat) rotate your sprite in midair as of this PR. The hitbox is quite buggy though.

The rotation gimmick is mostly implemented, with your cat randomly turning in midair!

It's pretty cute so far :smiley_cat: nice work

Thanks! Speaking of, would you mind helping me out with things? I'm kinda stuck when it comes to procedural generation.

Speaking of that, Untitled Unicycle Game might benefit from procedural generation, due to the nature of it. Currently, the game has a definitive end. Using procedural generation might help you out there!

Hey, I downloaded and checked out your project. This is a super fun start!

I made a single change right away to gameScene/sprites.lua that I think will help you out. On line 116, at the very end of your update function, I added the line:

	gfx.fillRect(box)

This essentially draws the box that you used to create your ground sprite. Alternatively, you could give the sprite an image, (probably what you want eventually), or maybe take a look at the vectorsprite.lua file in the SDK's Asheteroids example for how to programaticly draw using a sprite.

It's hard to know how to help you with your procedural generation without knowing what kind of thing you want to happen, but essentially, you're going to want to create a table (array) of boxes (or box sprites, probably), and set their sizes and positions randomly based on some minimums and maximums that make sense for your game.

But probably before that, or at the same time, you'll also need to think about how you're going to "move the camera" in your game. There are a lot of different ways you could approach this... so again it's hard to know what advice to give you. Usually, you would set some kind of maximum distance from the edge of the screen your cat can move to, then whenever it would move beyond that, you instead move everything else in the scene but the cat, if that makes sense.

Good luck, and feel free to DM me if you've posted some additional questions and/or want some follow-up!

Like @grid said, it's kinda hard to give solid advice on procedural generation unless I know exactly what you're trying to achieve. I can give you a quick run down on a way I might approach this with the disclaimer that I am no expert on procedural generation. (I'm doing this in P5.js btw, just treat is a psudo code)

First I'd set some goals, something like this maybe:

  • always go left to right
  • gets harder the further you go
  • jumping higher is harder
  • jumping further is harder

Let's do these one at a time
always go left to right:

not very exciting but it is always going left to right, lets add some variation in height and distance


There we go, a bit more exciting but we want to to get harder as we go!

We could use the x distance as way to scale difficulty up as you move along.

There we go! This is a very simple demo but does everything I was trying to do, it goes left to right and it gets harder the further it goes.

You'd probably want to add more nuance to it, this is still very random and basic. Adding more nuance to it is just the same process, ask yourself what you want and then come up with some rule for it.

2 Likes

Wow! Thanks for the tip! That looks exactly like I want!

Off-topic, but what editor is that? Nova?

it's P5js link, it a creative coding thing that runs in the web and uses javascript. I like it just for quick demos and such.

Beta 4 is now out! With a menu and procedural generation! Horray!

1 Like

After 1 year, I've finally gotten back to work on this game. I'm remaking the cat sprite to look cuter and more animated, stay tuned!

1 Like

I've decided to start signing new releases and builds (with the GPG key B2E045AD5C08D28B). Since there's no builtin mechanism for this as far as I know, I've created the .pdxs format which is really just a zip file containing:

  • game.pdx.zip
  • game.asc (Base64 PGP Signature Data)

You can then extract the game by extracting it, then extracting the PDX inside (unzip game.pdxs whatever_playdate_game; unzip whatever_playdate_game/game.pdx.zip ./game.pdx). You can also verify the signature with GPG: gpg --verify "whatever_playdate_game/game.asc whatever_playdate_game/game.pdx.zip"