asilva4000

LD 40

Kinball - our ld40 game! Read about it here!

Kinball - a Ludum Dare 40 Post Mortem

Play here: https://ldjam.com/events/ludum-dare/40/kinball

It's that time of the year again. Another edition of Ludum Dare: "We're gonna nail this one" - we said :) We're a team of two friends who do mostly web development on separate jobs, but we teamed up for Ludum dare 39, and we want MOAR! So here we are now :) Last time, we felt that using a plain javascript and KISS approach really paid off, so this time we tried to build upon that experience.

postem1/emfinal.png

ld39 vs ld40 jam entry

We submitted our entry sometime at 01:45: Kinball, a pinball game with, hum… balls. Yeah. We know. Try it in your browser if you haven’t!! https://ldjam.com/events/ludum-dare/40/kinball

So it all began some days before the hackathon, and we discussed possible game styles to tackle, technologies to use, visuals etc. The usual flood if “what ifs” and then the usual realization of “but it is just three days”.

hereemtrigui/emtrigui.png

Here, trigui trigui...

When the subject was out, we had decided on a physics engine (matter js is amazing btw), we had an idea of the game type and a proper bootstrap prepared which we took from one of the many rich and useful matter js examples. This has proven itself very valuable. With so few hours available to actually develop the game, everything you can do to help trying out stuff and discussing game ideas instead of secondary technical stuff, do it. Also, even though some subjects may inspire you in unexpected directions, for the most part, you should grasp within your team what would you like your game to be. Worst case scenario being you won't gain many points on the subject but you end up coding and having fun. For the most part, we believe the subject is a catalyst and can work as an additional constraint.

Screen Shot 2017-12-05 at 15.07.18.png

Balls. Can't live with them, can't live... wait, I got that messed up.

We were rooting for other subjects, but we ended up with "the more you have, the worse it is". We were hyped up for implementing the pinball game and thought we could lightly address the subject. We ended up using it like this: the game starts with 3 spare balls. By the time you lose the third one, you're granted 6 balls at once. It should be a gift to have 6 additional balls but of course it's very hard to keep them all in the table! :)

So we tried to get the flippers working right, probably the hardest thing to address in the physics engine. We burned almost a day with them! We tried several approaches both regarding the shapes to use (closed poly vs union of primitives), how to implement the hinge (2 moving nails vs single nail and circles limiting the angles). We had to apply forces proportional to the angle so it got reactive and stable. Then we addressed rendering sprites properly mapped to their physical counterparts (pixi vs matterjs). Funny enough we ended up ditching proper custom rendering and stuck with the one matter js offers for debugging. It's colorful and easy to set up.

flip_it.png

We know it does not look like much, but hey, it's what you do with it.

asilva4000 was producing game music loops and came up with the idea of a developing game audio that changed according to the game pace. He started preparing sound effects too, including adding that creepy voice over in the end. We didn't like it at first, but it was a good fit for the game, so we kept it!

At times of distraction (we had those too, believe it or not) we played some videos of pinball games we liked in our childhood, such as Pinball Fantasies, Sonic Spinball.

What we like about LDD is the exercise on the best compromise with gaming in mind. In hindsight, we like to ask ourselves, “what would a triple A studio do in 3 days?” (and we mean, a team with infinite resources, except time) and we think that the balance would simply tilt in other direction: it would be equally “stressful”, but the crunch on management would be way harder, versus the ability to fit all your team in one small room.

We ended up playing a lot of Kinball while developing. It helped us tune all the levels and, well, when it started to get addictive, we knew we were in the “right” direction :) What do you think?

Anyway, this post is too long! We really hope someone plays our game: we had a ton of fun making it!!