[Pine2K][Game] Miaou - Charlotte et les 64 Miauleurs

(Meow - Charlotte and the 64 meowers)

Here is my second finished game after TAZS. (and it’s still not a c++ game, sigh)

It’s a very simple platform game made in Pine2K, grown out of a few experiments.

  • Touch every cats, rush to the door, repeat until you’ve finish the 10 levels.
  • It is quite short : unless you’re stuck, you will never take more than 5 minutes to complete a single run. With a bit of experience you’ll finish them all in no more than 2 minutes!
  • It’s relying almost solely on custom assets, except for the font which isn’t customizable anyway.
  • It also features a timing / scoring system, with a per-level time tracking!
  • Finally there is an ending and some SFX too.

You can download the release version here:
miaou.zip (51.6 KB)

  • This version doesn’t contain all the original assets and scripts needed to compile the 565s/sprites/maps/res files.
  • However it contains everything needed to run as a Pine2K game.
  • The source repository isn’t ready yet, I’ll update this post after it’s finished.

2020-09-10 - Level1
Almost 99% of the gameplay is demoed in this GIF.

MiaouSplash 2020-09-10 - Banner *
Splashscreen & banner.

Important!

  • It takes a lot of time to load!
  • Make sure you’re using the last Pine2K version.
  • Do NOT run a game before it - you’ll end up with a corrupted score screen.
  • You cannot exit the game without restarting the Pokitto for the same reason.

Everything below is a copy of the readme.md file inside the archive

Charlotte et les 64 Miauleurs

Introduction

Charlotte was walking back to her home.

That day, she decided to take a shortcut through the old industrial area.

It’s a district with a lot of abandoned buildings, made mostly out of bricks, devoid of life.
… or so she thought.

She heard a lot of meowing inside an old factory. Cats kept calling her.
After a short passage through the pet store, She decided to enter the factory. Well-prepared.

It’s time to feed those 64 cats!

But the old factories aren’t exactly a safe place…

Controls

  • LEFT/RIGHT - Move Charlotte to the left or right.
  • A - Charlotte will jump.

Gameplay

Guide Charlotte through 10 levels in increasing difficulty!

Each level will features the following elements:

  • Charlotte is your character. She’ll appear out of a door.
  • Meowing Cats are the one that should be visited.
    • Just touch them briefly with Charlotte to do so!
    • They’ll purr and sleep after a few instants.
  • The Cat Door is your exit to the next level.
    • It’ll open when all the Cats are sleeping.
    • Just touch them after!
  • Catnips are bonus items.
    • They’re usually trickier to get.
    • There are 13 of them to retrieve.
    • They’re worth a lot of points!
  • Pits are bad things to fall into.
    • If you do, it’ll reload the current level, so you’ll have to redo it!

Scoring

A timer is launched when you first move your character in Level 1.
When you’re through the Level 10, you’ll have a summary about your times, collected catnips - and the resulting score.

  • The par-time is 4 minutes for the 10 levels.
  • Each 2ms below the par-time is worth a point.
  • Each collected catnip is worth 5000 points.
    • So you probably don’t want to spend more than 10s getting a single catnip!

Falling in a pit will not reset the current level’s timer!

Important Notes

  • The game will take a long time to compile in Pine2K.
    • 13s on my own device, we’ve seen 40s as well. It depends a lot on the SD card.
  • On the Pine2K version it’s designed to run for, it’ll use 2040 bytes of PROGMEM.
    • Needless to say, chances are it might break in upcoming Pine2K updates.
  • The game cannot be run after another game - some corruptions will ensue.
  • Because of that, it cannot run itself again either, so the only way to exit it is to restart the Pokitto.

Tech Notes & Tools

  • FemtoIDE, Aseprite, Tiled were used to create this game.
  • It was really challenging to pack that many features into 2K of compiled bytecode (PROGMEM).
  • The whole code relies a lot on the weird pointer arithmetics that can be done in Pine2K.
  • A lot of weird tricks were also used, on the basis that they would save 4, 8, 12, 16, 24 or more PROGMEM bytes.
    • Such as converting a if (a && b) into two if.
    • Or moving around the var declaration out of their loops because somehow it saves a bit.
    • The Character Entity is always at the end of the entities array, and it saved a lot of bytes to do so (a fixed pointer costs less than a pointer as parameter).
  • The same animation structure was used wherever the entity was animated or not.
  • The collision detection is based on the tile identifier - if it’s above or equal to 20, it’s colliding.

Special Thanks

References

10 Likes

Woohoo! This is a great platformer! And another one I can expect to be challenged on by @tuxinator2009 I’m sure :smirk:

Thanks for letting me play this early!

3 Likes

@carbonacat mais qu’est-ce-que il dit, le chat, l’apres le Miaou? “Ronrons”? What does he say?

EDIT:
https://translate.google.com/#view=home&op=translate&sl=en&tl=fr&text=purrs

2 Likes

It’s the french equivalent of “purrs” (as a noun, plural form) :stuck_out_tongue:

2 Likes

A nice game! I only got to the level 5 or 6 so no points yet.

1 Like

sorry about that!
I did want to add such a feature but I really ran out of progmem

It’s the kind of things that makes me want to port the game to c++, because it’s missing a couple of things (a timer, the current level number and a death/fall counter would be nice to have as well)

5 Likes

(by the way I started porting it to C++ today, as an exercise)

7 Likes