[KrampusHack 2016] Kitten Kerfuffle
Eric Johnson

Kitten Kerfuffle

This is my entry for KrampusHack 2016. Please visit KrampusHack's official forum thread for more information. I was assigned to Mark Oates.

Mark had this to say about his wishlist:


I like cats. So something with cats would make me extra happy.

And later added:


1. Cats
2. Noodles (as in like a bowl of Japanese-style ramen)
3. Designs with a nice color palette ;):P

Well, you play as a cat, noodles are referenced in-game, and depending on your preference, the colors are nice. ;)

{"name":"4458_large.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/7\/677ddf0c1e37d59949e803e0c332e61a.png","w":768,"h":448,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/7\/677ddf0c1e37d59949e803e0c332e61a"}4458_large.png {"name":"4457_large.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/4\/54ed8c9b5b8e25b997542c2c726768a4.png","w":768,"h":448,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/4\/54ed8c9b5b8e25b997542c2c726768a4"}4457_large.png


You assume the role of Nini, a mother cat who has unfortunately misplaced her kittens. You must find all ten of your kittens before sundown, or your kittens may perish in the cold weather overnight.

How to Play

Use the arrow keys to traverse the map, and use the Z key to let out a mighty meow to destroy adjacent objects and to call nearby kittens. Also, keep an eye on the text overhead; it tracks the distance between you and the nearest kitten. Finally, use the T key to toggle displaying kitten names (off by default).

How to Compile

Allegro 5 is (obviously) required to compile. Once installed, execute make (in Linux) to compile automagically, and then run ./kerfuffle to play the game.

Pre-built Binary Releases

Ubuntu x64
Windows x64

Be sure to also check out Kitten Kerfuffle's depot page and source code on GitHub. ;D

Enjoy the game (or don't...) and happy 2017! :D

Mark Oates

I played it and it was great! Thank you so much for your wonderful game!

It was ridiculously easy to compile. :o

After just jumping in I had to read the README.md file for some more clues. In the middle of playing I realized there was the distance meter... and I raced and barely made in time as the sun almost set. :o

Haha, it was exciting ;D and I loved the kittens & noodles :)

Thanks again! :)


Hehe nice work. The pixelation is becoming your signature style, isn't it?

The linux binary worked out of the box on my system.

Eric Johnson

Thank you for the kind words, Mark! I'm glad you enjoyed it. :) You may not have been able to tell, but that pixelated mess after the credits was supposed to be a bowl of ramen noodles. All graphics are 8x8 pixels, so it can be tough conveying objects with so little room to spare! ;)

Good to hear the Linux binary worked for you, Amarillion. And yeah, very limited pixel "art" is becoming a specialty of mine. :P


Very nice! I found my first kitten without reading the readme - once I could zap walls it got much easier :)

Eric Johnson

Elias is a strong, independent elephant (your profile picture) who don't need no readme! Well done. :P


By the way, I kept a progress log throughout the event. You can read it on GitHub. The game started out as a cartoon-y clone of Tamagotchi (didn't get very far though) before becoming what it is now.


I forgot to mention: if you run the game from a terminal / command prompt, you can pipe in a seed for the map generator to use (by default it uses the current epoch time). So for example, ./kerfuffle 19950306 places you in the same map featured in the above screenshots.


Oh, very detailed log, I enjoy reading those - it's one of the things I always liked about Speedhacks :) So I'm not the only one spending a day just hunting for a bug...

Eric Johnson

Oh, very detailed log, I enjoy reading those - it's one of the things I always liked about Speedhacks

Same here. I'd love to read some other KrampusHack progress logs, if they exist. Mine's mostly rambling/complaining about things not working. :P


Compiled fine with Debianx64 (testing) and allegro5.2
I had to change the cppflags to add debugging information as the entry was crashing directly when starting due to al_init_ttf_addon not working.

I move the checkReturn(al_init_ttf_addon()); after the display creation and it worked like a charm !

The log is in the spoiler if anyone wants to check.

(gdb) run
Starting program: /home/gull/Téléchargements/kitten-kerfuffle-master/kerfuffle
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Seed: 1483349193
[New Thread 0x7fffed84c700 (LWP 4171)]
kerfuffle: /build/allegro5-xTIZcw/allegro5-5.2.0/src/misc/vector.c:174: _al_vector_alloc_back: Assertion `vec->_itemsize > 0' failed.

Thread 1 "kerfuffle" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
58 ../sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
#1 0x00007ffff605e40a in __GI_abort () at abort.c:89
#2 0x00007ffff6055e47 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x7ffff6d433e1 "vec->_itemsize > 0",
file=file@entry=0x7ffff6d43358 "/build/allegro5-xTIZcw/allegro5-5.2.0/src/misc/vector.c", line=line@entry=174, function=function@entry=0x7ffff6d434d0 "_al_vector_alloc_back") at assert.c:92
#3 0x00007ffff6055ef2 in __GI___assert_fail (assertion=0x7ffff6d433e1 "vec->_itemsize > 0", file=0x7ffff6d43358 "/build/allegro5-xTIZcw/allegro5-5.2.0/src/misc/vector.c", line=174,
function=0x7ffff6d434d0 "_al_vector_alloc_back") at assert.c:101
#4 0x00007ffff6d0cc85 in _al_vector_alloc_back () from /usr/lib/x86_64-linux-gnu/liballegro.so.5.2
#5 0x00007ffff7194d93 in al_register_font_loader () from /usr/lib/x86_64-linux-gnu/liballegro_font.so.5.2
#6 0x00007ffff739f17f in al_init_ttf_addon () from /usr/lib/x86_64-linux-gnu/liballegro_ttf.so.5.2
#7 0x000055555555c145 in Engine::initialize (this=0x555555769560 <Engine>, w=1024, h=768, t="Kitten Kerfuffle") at src/engine.cpp:114
#8 0x000055555555a264 in Krampus::initialize (this=0x7fffffffdd40, seed=1483349193) at src/krampus.cpp:698
#9 0x000055555555be18 in main (argc=1, argv=0x7fffffffe1d8) at src/main.cpp:27
(gdb) quit

That aside that a well finished entry, with sounds and a goal. Thanks for mentioning me in the participants :-)

I noticed that those pesky cats are moving too !

Now I'm gonna enjoy my noodles, I got them all :-D

Eric Johnson

Thanks for playing! I hope I have everyone's username spelled correctly in the credits. Enjoy your noodles. :D


Hey Eric, are you going to merge this entry with your TINS 2016 entry? I think you could make 'find kitties' one of the quests of the villagers before they trade crafting materials.

Eric Johnson

That's a neat idea, Amarillion. I don't think I'll merge it with my TINS 2016 entry, but I might incorporate elements from both in a future game. I look at these game-making events as an opportunity to experiment and develop prototypes.

I learned a lot in both TINS 2016 and now KrampusHack 2016. I'd like to someday make a game about living in a small village, which would incorporate interacting with trees and crops (similar to interacting with trees and mushrooms in my TINS 2016 entry, but more fleshed out). It'll happen someday. :)

Anyway, I updated Kitten Kerfuffle. See the links and changes (in the spoiler) below.

Linux x64 1.1
Windows x64 1.1
Source and assets repository

An in-game score counter has been added, which increases each time an entity is destroyed or collected. Scores listed below:

Brown tree - 5 points
Green tree - 10 points
Mushroom - 15 points
Kitten - 250 points

Each additional entity destroyed in a single meow results in a multiplier bonus. For example, if three entities are destroyed simultaneously, the resulting score will be the sum of the individual entities multiplied by three.

Likewise, a time bonus was added to the final score upon winning the game. The faster you find all of the kittens, the higher your score will be. There is no time bonus awarded upon losing.

Finally, a vaporized "shadow" of each destructible entity was added. Destroy a tree or a mushroom and its shadowy silhouette will remain. This was added in an attempt to break up the monotony of the landscape, though I am not sure that I am completely satisfied with it.

Furthermore, the windows binary is no longer accompanied by a pesky console.



That was enjoyable, although I wasn't very convinced by the meow sound-effect. To make this game harder, you could remove the distance text and instead have the kittens meow back when you meow, and through sound positioning/volume you could estimate their direction/distance.

Eric Johnson

Thanks for playing, SiegeLord. I originally had intended to include a real meow sound effect, and to have "3D" sound with kitten meows. The problem with the former was that the constant meowing was really obnoxious, so I scrapped it for a "crunch" sound. I never started on the latter idea, unfortunately (ran out of time). Also, the game originally didn't have the distance text, but I felt finding 10 kittens in a randomly-generated map would become boring without any sense of direction, so I added it in.

I'll keep your suggestions in mind for future games. :)

Mark Oates

Yea, like a "meow radar" ;D

Also, the game originally didn't have the distance text, but I felt finding 10 kittens in a randomly-generated map would become boring without any sense of direction, so I added it in.

It was a good addition. I was looking around randomly (got a little frustrated) until I noticed the distance meter.


I don't know if you noticed the green arrow in Dr. Evil F, kind of like a radar, which helps you point towards the goal.

This used to be so that the green arrow was there all the time, but I thought it made the game too easy.

So instead I made it so the green arrow shows up only if you are within a certain distance of a gift. That makes it so you have to do more exploring, but not so much that you have to examine every pixel of the map.

Thread #616662. Printed from Allegro.cc