Hi! My name’s Steve, and I’m a programmer at Dream Show Adventures. This Ludum Dare, we created Chacket Valleyparker: DRILL BUNNY, and I thought I’d share my thoughts on the experience.
Last time around, I did Ludum Dare with my kids, creating most of the content myself. However, I’ve since joined the team at Dream Show Adventures, and I wanted to get the group to contribute. Luckily, it wasn’t a tough sell!
Planning is 90% of Something
Last time around, I did almost no prep work at all, and it really bit me. This time, I resolved to have things set up well in advance. I knew I wanted to use Phaser, but I’m still learning the ins and outs of serious JavaScript development. I knew NodeJS and Grunt could help me automate, and I wanted to use Travis CI to build to a Github page automatically from our source repo. I also found a pretty good Phaser template to work from. It was a bit outdated, but that was fixed easily enough.
Initially, we had two programmers, two artists, and a musician on board. Unfortunately, one programmer couldn’t contribute, and one artist and the composer dropped out at the last minute. This left us with one artist (Andrew, who also serves as creative director) and one programmer, myself. This was unfortunate, but not unexpected. Still, it meant more work for the two of us.
Beginning of… the Beginning

When the theme was announced brainstorming began immediately. The bunny/drill concept came about pretty quickly, initially as a bit of an inverted shmup starring Chacket Valleyparker, a character that Andrew never got to use from an earlier project.

Getting started with Phaser was fairly easy, and we had a very very basic prototype quickly. However, I was dependent on Travis to build a working copy of the game, which meant that testing was painfully slow. Attempts to run the game locally failed, and I still don’t know why. Searching for solutions online made it very apparent that the current system wasn’t working, despite my attempts to plan ahead. That’s when I stumbled upon Jeremy Dowell’s fantastic Flappy Bird Phaser tutorial, but more importantly, his Phaser template building tool.
Unfortunately, this new template would require a lot of re-work. With a heavy heart, I implemented the new system, losing all of our progress in the process, with the hope that it would save time in the long run. I also stored my github credentials via winstore after another method to store username and password failed, and wrote a simple batch command to make updating the repo easier.
Gaining Traction
It wasn’t long before we had a playable prototype. Unfortunately, we had already lost about 24 hours in getting to this point, when ideally I prefer going to bed Friday night with something that works at least as a proof-of-concept.

With Andrew spriting rapid-fire, and new features going in all the time, there was great momentum until about noon Sunday. That’s when I decided to implement a procedural tilemap generator for the background dirt. Basically, each new dirt block would see what was above and to the left of it when created, and pick from a subset of dirt blocks that would look nice next to the others. Unfortunately, I couldn’t figure out how to implement this, and went through 3 complete systems (each taking several hours to code) before I found one that worked (and was severely scaled back from the original system). Early on I thought that I would have to simplify, but my hubris prevented me from accepting this early, when it would have saved the most time.
Sleep. I just want sleep.
The last day, I was very tired. However, we had some happy accidents. While our composer was still absent, Andrew had some great tunes he had made but never used, and we decided to put them in. Furthermore, my day-and-a-half of experience with Phaser, as well as digging through the docs extensively, made coding quick and painless. I was even able to add some localization (if your computer or browser’s language is set to Chinese, Spanish, French, German, Italian, or Japanese, the title screen should load in that language) to the title screen, and I fulfilled my promise to let my kids help somehow by putting some apples they drew on the title.

At the end of the day, it was down to the wire. I scrambled to get a decent ‘game over’ screen, as we hadn’t bothered with one prior. Including the company name was important, and almost got overlooked entirely! The boost mechanic was the last thing to go in, and was only fully functional about one minute before the deadline. Even now, boost speed doesn’t scale over the course of the game (unlike the normal speed or I made sure that the variables most likely to need tweaking (turn speed, damage from different objects) were simple to find, and Andrew tweaked as needed while I focused on code. We pulled together, and we’re proud of the final product.

Unfortunately, we couldn’t get to everything. Money was originally meant to be used to buy upgrades, with Chacket returning to the surface every time the drill overheated, visiting the store, and then trying again. Worms were meant to get in your way, and you would have to pay their medical bills if you touched them with your drill. Moles were also planned, but not drawn or implemented. I was also searching for a way to minimize the likelihood that rocks would overlap lava, but it’s quite common. Also, we were hoping to scale up the difficulty as you got deeper, but that never happened, and the game is fairly easy. There’s also no true win condition; originally, you were trying to get to the core.
What now?
Well, that’s where you come in. If we get a positive response, we’d love to develop DRILL BUNNY into our original vision, a sort of inverted shmup roguelike, where “death” (the destruction of your drill) forces you to upgrade and try again. Otherwise, it’s back to work on Pipeworks, a game that is near and dear to our hearts, and has been in development for quite a while.

So, please provide feedback — negative and positive — here and on the game’s page — so we can ensure that Chacket’s future lives up to everyone’s dreams. Thanks for playing, and keep digging!