[Easter Hack 2017] Keebo's Quest
Eric Johnson

Keebo's Quest

The wicked Bumbles have stolen the peaceful Gourdonians' Easter eggs! Now it is up to Keebo to get the eggs back and to save Easter in the process! Explore a randomly-generated forest complete with trees, rocks, carrots, skulls, Bumble hives, and Gourdonians in this cartoon-y 2D game! Chat with the Gourdonians to learn more about them, the world, their issues, and to trade with them. Can you help the Gourdonians and save Easter?

Keebo's Quest was written in JavaScript, so it runs in your browser. You can play it at this link (tested in latest versions of Chrome, Firefox, and Opera).


Attaching images doesn't seem to work on the forum right now. Here are individual links to screenshots:

Screenshot A
Screenshot B


Keebo's Quest, its source code, and all of its assets, can be downloaded on this page.


A link to play Keebo's Quest
Easter Hack 2017 forum thread
My Easter Hack 2017 progress logs
Everyone's Easter Hack 2017 progress logs
A blog post about Keebo's Quest featuring a development time-lapse video

Closing Remarks

Keebo's Quest is an improvement of my TINS 2016 entry, Mori. It's not a remake, per se, but it's also not a sequel; it's more of a spiritual evolution.

I'd love to hear what you think of the game--good or bad! Thanks! :D


The sounds played somewhat loudly for me, otherwise it worked great! I like the art style (just like I liked Mori's). It amuses me to no end that there's an Allegro themed JavaScript library ;D.

Gideon Weems

I beat the game! I was still in the Easter mood today, which added to the experience. I like how the NPCs sacrifice their lives. It's eerie.

The slowly pulsing doodle art style (ala Dr Katz or Home Movies) is excellent. Great job.

Eric Johnson

Thanks for playing, SiegeLord! :D Yeah, the audio being loud is something I noticed towards the end of the hack, but didn't get around to lowering. And I'm glad you liked the art style!


I didn't see your message while I was writing my reply to SiegeLord, Gideon. :-X

I appreciate you playing my game! What was your time and score at the end? As for the eeriness of the NPCs, I try to sprinkle a little bit of "darkness" or "eeriness" in games whenever I can; it just adds a little bit something extra, you know? ;)

I'm really glad that the doodle art style has been well-received so far. I wasn't too sure how it'd pan out when I was designing it.


I played through it as well. Nice entry.

Eric Johnson

Thanks for playing, bamccaig! :D


Finished in 307 seconds with 4460 points!

I like how you can be effective with really simple graphics. The re-tracing method gives it a unique style too. It's a great idea that I might steal for myself one day.

I'll be studying your JavaScript code as well. I'm not great with JavaScript myself so I hope to learn and one day be able to do something similar.

Gameplay wise it's not different from Mori, it doesn't add much new. I guess that's understandable since you basically did rewrite it from scratch in a different language, with new graphics as well. But I was hoping for some new game element - like maybe some crafting recipies or more complex quests. Hopefully next time!

Eric Johnson

Thanks for playing, amarillion!

The movement, art style, and bombs are all different; but yes, the core gameplay is very much the same as Mori's. I wanted to add enemies and a boss fight to mix things up, but ran out of time on Saturday. Maybe next time!

I'll be studying your JavaScript code as well. I'm not great with JavaScript myself so I hope to learn and one day be able to do something similar.

Good luck. My code for hacks is seldom well-organized. :-X

Gideon Weems

What was your time and score at the end?

Time was embarrassingly long, as I spent most of it exploring. I would try, for instance, to get 3+ beehives on screen at the same time. I would also talk excessively to the same NPCs and deduce their dialog templates. I seem to remember my final score being in the 6,000+ range.

Weird thing: The game does not have any music, yet I seem to remember it with music.

Eric Johnson

Getting multiple hives at once is a good technique. Also, I think that's a higher score than I ever got. :o

The NPCs select at random something to say from a pool of 15 total sayings. There's 3 sayings for greetings (first time talking to them); 3 sayings for getting the item they asked for; and the rest are all just chit-chat. Each one also has a name selected from a list of 12 (6 male and 6 female).

You can check out the source code for a closer look of what's going on behind the scenes. Be warned, however, it's a bit of a mess.

Was the music you remembered good? It must have been a ghost... :o

Gideon Weems

I made a video for this one, too. I hope that is okay.


I also noticed sound is disabled after a certain amount of time. And Firefox CPU usage stays at 100% even after closing Keebo's tab. (These are likely issues with allegro.js.)


The last one sounds like more of a bug with Firefox... >:(

Eric Johnson

Nice video, Gideon! :D

Keebo's Quest actually uses allegro5.js, a little shim I wrote to overhaul allegro.js with Allegro 5 functionality. I made it a stand-alone library in the middle of Easter Hack. It is a work in progress that will likely never be finished, as it has a lot of bugs.

As for Firefox and CPU usage, I agree with bamccaig--it sounds like a Firefox issue. Which version of Firefox are you using?

Also, I am slowly working on my own minimal 2D JavaScript game library separate from Allegro called Momo. It is still in its infancy, but it already sports a handful of features:

- Draw primitives (arcs, circles, rectangles, triangles, lines, and filled versions of each)
- Load and draw images (drawn normally, rotated, scaled, and partial versions)
- Load fonts and draw text (filled and outlined versions)
- Interface with the keyboard (check if a key is pressed or released)
- Interface with the mouse (check if a mouse button is pressed or released; get X, Y, and Z axes; and show and hide cursor)

I will add loading and playing of audio files soon.

Thread #616858. Printed from Allegro.cc